Опубліковано Valkey 9.0, форк СУБД Redis

Відбувся реліз СУБД Valkey 9.0, яка торік відлучилася від СУБД Redis. Форк був утворений після переведення Redis 7.4 на ліцензію на пропрієтар. У випуску Redis 8.0 код повернуто на вільну ліцензію AGPLv3, але це не вплинуло на розробку проекту Valkey. Valkey розвивається на нейтральному майданчику під заступництвом організації Linux Foundation за участю розробників з таких компаній, як Amazon, Google, Oracle, Ericsson та Snap. Код проекту написаний мовою Сі та поширюється під ліцензією BSD. Підтримується робота в Linux, MacOS, OpenBSD, NetBSD і FreeBSD.

СУБД Valkey та Redis надають функції для зберігання даних у форматі ключ/значення, розширені підтримкою структурованих форматів даних, таких як списки, хеші та множини, а також можливістю виконання на стороні сервера скриптів-обробників мовою Lua. БД зберігається в пам'яті та синхронізується з версією на диску або відображається у лозі змін на диску, що гарантує збереження даних у разі аварійного завершення роботи. Підтримуються транзакції, режим «публікація/підписка», команди для інкременту/декременту, операції над списками та множинами (об'єднання, перетин), перейменування ключів, master-slave реплікація, множинні вибірки та функції сортування.

В новой версії:

  • Для перенесення даних між вузлами в кластері задіяна техніка атомарної міграції слотів, при якій дані переносяться не на рівні окремих ключів (один ключ за іншим), а на рівні переміщення атомарного 16384 байтових слотів зберігання даних. Перенесення здійснюється з використанням формату AOF, що дозволяє надсилати окремі елементи колекцій замість всіх даних, пов'язаних із ключем. Подібний підхід помітно підвищує продуктивність, дозволяє уникнути перенаправлень і виключає затримки, що виникали при доступі клієнта до ключа, що переноситься.
  • Додано можливість визначення окремого часу життя для різних полів у хешах, пов'язаних з одним ключем (раніше час життя прив'язувався до ключа і охоплював разом усі поля). Для управління часом життя даних додано нові команди: HEXPIRE, HEXPIREAT, HEXPIRETIME, HGETEX, HPERSIST, HPEXPIRE, HPEXPIREAT, HPEXPIRETIME, HPTTL, HSETEX та HTTL.
  • Надано можливість використання в кластерному режимі нумерованих БД, у яких простір ключів поділяється на кілька різних БД (за умовчанням 16).
  • Підвищено ефективність роботи великих кластерів — продемонстровано кластер із 2000 вузлів, здатний обробляти мільярд запитів на секунду.
  • Додана оптимізація, що дозволяє в деяких ситуаціях на 40% підвищити пропускну спроможність за рахунок випереджального завантаження групованих (pipelining) команд на згадку.
  • Додано оптимізацію, що дозволяє в деяких ситуаціях на 20% підвищити пропускну здатність за рахунок виключення копіювання даних у пам'яті (zero copy) під час обробки великих запитів.
  • Додано підтримку технології Multipath TCP для організації доставки пакетів одночасно по кількох маршрутах через різні мережеві інтерфейси, прив'язані до різних IP-адрес. Застосування Multipath TCP дозволяє в деяких ситуаціях зменшити затримки на 25%.
  • У BITCOUNT і HyperLogLog додані оптимізації, які використовують процесорні інструкції SIMD, що в деяких ситуаціях дозволяють збільшити пропускну здатність на 200%.
  • У геопросторові індекси додано підтримку запитів розташування за координатами багатокутника.
  • Додана команда DELIFEQ для видалення ключа, якщо пов'язане з ним значення відповідає вказаному.
  • У команді «CLIENT LIST» реалізована можливість завдання фільтрів, що відсівають елементи на ім'я, прапори, активність, БД, IP-адресу та повноваженням.
  • Відновлено підтримку 25 команд, раніше оголошених застарілими.

Джерело: opennet.ru

Додати коментар або відгук