Valkey 9.0: Новий реліз з підтримкою атомарних міграцій

Valkey 9.0: Новий реліз з підтримкою атомарних міграцій

Через рік після випуску Valkey 8.0, компанія анонсувала Valkey 9.0. Це другий великий реліз для цього відкритого, сумісного з Redis, сховища даних. Головна зміна полягає в атомарних міграціях слотів. Це основна переробка способу переносу даних між вузлами у кластері.

Переваги атомарних міграцій у Valkey 9.0

Раніше Valkey використовував підхід переміщення даних ключ за ключем. Кожен ключ переміщувався, видалявся та повторно вставлявся індивідуально. Це було ефективно для легких навантажень, проте під час важких навантажень або великих наборів даних це могло призводити до зниження продуктивності та блокування міграцій.

Valkey 9.0 впроваджує слотну систему міграції. Тепер замість перенесення ключів один за одним, групи ключів, що розташовані в слотах, мігрують атомарно за допомогою формату Append Only File. Це дозволяє ефективно переносити структури даних, такі як набори та списки, не перевантажуючи вхідний буфер цільового вузла. Результат – плавніші міграції, менше повторних спроб та відсутність часткових станів даних.

Нова функціональність та оптимізації

Окрім цього, оновлення впроваджує функцію терміну дії полів хешу. Раніше Valkey дозволяв вказувати термін дії лише для ключів. Якщо одне з полів потрібно було видалити, повинен був бути видалений увесь хеш. У новій версії з’явилися команди, такі як HEXPIRE, HEXPIREAT, HGETEX та HPERSIST, що надає змогу контролювати термін дії на рівні полів.

Ще однією вагомою зміною стала повна підтримка номерованих баз даних у кластерному режимі. Раніше кластерні розгортання працювали лише з одною базою даних (db 0), що обмежувало масштабованість. Тепер користувачі можуть логічно розділяти навантаження, уникати колізій ключів, зберігаючи при цьому функціональність кластера. Це особливо корисно для багатокористувацьких середовищ або шардованих додатків.

Оптимізації для підвищення продуктивності

Valkey 9.0 пропонує ряд оптимізацій для покращення продуктивності та зменшення затримки:

  • 1 мільярд запитів на секунду: Підвищена стійкість кластера дозволяє масштабуватися до 2,000 вузлів і обробляти до мільярда запитів на секунду.
  • Передплата пам’яті у конвеєрі: Збільшує пропускну здатність до 40%.
  • Відповіді без копіювання: Зменшує навантаження на пам’ять та покращує обробку великих запитів.
  • Підтримка multipath TCP: Знижує затримку приблизно на 25% на множинних мережевих з’єднаннях.
  • Оптимізації SIMD: Додає векторизовану обробку для BITCOUNT та HyperLogLog, покращуючи продуктивність до 200%.
  • Умовне видалення: Нова команда DELIFEQ видаляє ключі тільки тоді, коли їх значення відповідає заданій умові.
  • Фільтрація списку клієнтів: Дозволяє фільтрувати за прапорцями, іменами, адресами IP та іншими параметрами для точнішого моніторингу.

Крім того, проект переглянув 25 раніше застарілих команд і знову їх поновив. Для отримання додаткової інформації, будь ласка, відвідайте [оголошення на офіційному сайті Valkey](https://valkey.io/blog/introducing-valkey-9/). Valkey 9.0 вже доступний у вигляді бінарних файлів, контейнерів та вихідного коду, а пакети для дистрибутивів з’являться найближчим часом.