Garnet .NET

Данный раздел находится в работе и пока здесь хозяйствует Муза.

Муза

Про проект Garnet обычно говорят очень мало, а если и упоминают, то только как одну из альтернатив Redis, который сошёл с рельс свободного программного обеспечения, породив массу альтернативных продуктов и сопутствующих скандалов. Но я бы предложил заглянуть глубже, возможно это, в некотором смысле сокровищница из целой палитры возможных применений.

Так что же такое Microsoft Garnet лично для меня?

  • Это высокопроизводительный журнал, фактически содержащий механизмы для реализации очереди сообщений.
  • Не менее высокопроизводительное хранилище ключ-значение.
  • Многоуровневое хранилище. От базового дискового до облачного.
  • Эффективная реализация базовых структур данных, таких как хэш-таблицы, множества, списки, упорядоченные списки, битовые карты, HyperLogLog и другие.
  • Возможность расширения за счёт добавления своих, специализированных типов данных. Например, реализовать колумнарное хранилище, графы, деревья, документы.
  • Возможность добавлять хранимые функции на уровне хранилища и на уровне сессии.
  • Эффективный сетевой слой с поддержкой TLS.
  • Поддержка кластеризации, репликции, шардирования.
  • Возможность использовать как самостоятельный сервер, так и встраивать в собственные приложение.
  • Хорошая кросс-платформенность.
  • И уже поверх всей этой платформы, одна из возможностей - это реализация протокола Redis RESP и его комманд.

Такое многообразие инструментов подталкивает к размышлениям о том, что Garnet мог бы сыграть роль первой срипки в идее платформы данных.

Ещё одно преимущество заключается в возможности гармонично использовать для образовательных целей. Преимущества интерфейса Redis заключаются в том, что предоставляя самые примитивные структуры данных, например работу с парами ключ-значение, он позволяет плавно переходить к более продвинутым, классическим структурам данных. А дальше открываюся безграничные возможности как углубления внутрь организации, так и в масштаб.

An unhandled error has occurred. Reload 🗙