The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Выпуск СУБД Redis 4.0 с новым движком репликации и поддержко..."
Отправлено opennews, 15-Июл-17 10:32 
Представлен (https://groups.google.com/forum/#!msg/redis-db/5Kh3viziYGQ/5...) релиз СУБД Redis 4.0 (http://redis.io/), относящейся к классу NoSQL-систем. Redis предоставляет похожие на Memcached функции для хранения данных в формате ключ/значение, расширенные поддержкой структурированных форматов данных, таких как списки, хэши и множества, а также возможностью выполнения на стороне сервера скриптов-обработчиков на языке Lua.

В отличие от Memcached, Redis обеспечивает постоянное хранение данных на диске и гарантирует сохранность БД в случае аварийного завершения работы.  Исходные тексты проекта распространяются в рамках лицензии BSD. Клиентские библиотеки доступны для большинства популярных языков, включая Perl, Python, PHP, Java, Ruby и Tcl. Redis поддерживает транзакции, позволяющие выполнить за один шаг группу команд, гарантируя непротиворечивость и последовательность (команды от других запросов не могут вклиниться) выполнения заданного набора команд, а в случае проблем позволяя откатить изменения. Все данные в полном объёме кэшируются в оперативной памяти.

Для управления данными предоставляются такие команды, как инкремент/декремент, стандартные операции над списками и множествами (объединение, пересечение), переименование ключей, множественные выборки и функции сортировки. Поддерживается два режима хранения: периодическая синхронизация данных на диск и ведение на диске лога изменений. Во втором случае гарантируется полная сохранность всех изменений. Возможна организация master-slave репликации данных на несколько серверов, осуществляемая в неблокирующем режиме. Доступен также режим обмена сообщениями "публикация/подписка", при котором создаётся канал, сообщения из которого распространяются клиентам по подписке.

Ключевые улучшения (https://raw.githubusercontent.com/antirez/redis/4.0/00-RELEA...), добавленные в Redis 4.0:


-  Реализован новый движок репликации -  PSYNC2 (Partial Replication v2), предлагающий более эффективные методы согласования обмена данными и доставки изменений между первичными и вторичными узлами. Вторичные узлы (slave) теперь могут переводиться в категорию первичных (master) без проведения полной ресинхронизации и могут на лету принять на себя репликацию на другие вторичные узлы. Кроме того, вторичные узлы теперь могут быть временно остановлены, например для проведения обновления, а после возвращения в строй доведены до актуального состояния при помощи частичной ресинхронизации, охватывающей только изменившиеся за время простоя данные.


Более того, первичный узел может быть переведён во вторичный и присоединён к новому первичному узлу с выполнением лишь частичной ресинхронизации или первичный и вторичный узлы могут поменяться местами. Значительно изменена работа при организации цепочек репликации, в которых одни вторичные узлы (sub-slave) реплицируются от других вторичных узлов. Поток репликации для slave и sub-slave теперь не отличается и идентичен потоку, отдаваемому главным первичным узлом.
Новый протокол репликации обратно совместим с прошлыми выпусками, что позволяет использовать Redis 4.0 на slave-серверах, подключаемых к master-узлам на основе старых выпусков Redis;


-  Обеспечена (https://github.com/antirez/redis/blob/unstable/src/modules/I...) возможность подключения дополнительной функциональности через модули. Redis теперь может применяться как фреймворк для создания сетевых сервисов - через модули могут быть добавлены новые возможности и структуры хранения данных, реализованы новые типы и вынесены в отдельные потоки медленные обработчики, которые не будут блокировать основной поток запросов. API для создания модулей абстрагирован от ядра Redis, что позволяет использовать один и тот же модуль с разными версиями Redis без внесения в него изменений;


-  Улучшена (http://antirez.com/news/109) работа кэша, который теперь поддерживает алгоритм замещения элементов  LRU (Least-Frequently Used), который обеспечивает вытеснение на основе частоты обращения к элементу, а не на основе времени последнего обращения (LRU, Least Recently Used);


-  Операции DEL, FLUSHDB и FLUSHALL теперь могут выполняться в фоновом режиме с выносом обработчика в отдельный поток, не блокирующий основной процесс. Для фонового удаления вместо DEL предлагается команда  UNLINK, а для фонового выполнения команд FLUSH* необходимо указать опцию ASYNC;

-  Представлена новая команда SWAPDB, которая позволяет полностью и мгновенно заменить одно содержимое БД на другое. Замена выполняется атомарно без ощутимых задержек;

-  Реализован новый комбинированный режим сброса данных на диск, который сочетает использование полного дампа RDB и AOF-лога (Append Only File), отражающего изменения, внесённые с момента создания дампа;

-  В число поддерживаемых платформ добавлены платы Raspberry Pi, работа на которых теперь проверяется для каждого выпуска Redis;

-  Добавлена новая команда MEMORY и её варианты "MEMORY USAGE", "MEMORY OVERHEAD" и  "MEMORY DOCTOR", предоставляющие средства для анализа использования памяти в Redis и диагностики проблем;

-  Расширены возможности Redis Cluster, в котором появилась поддержка запуска узлов в контейнерах с NAT и контейнерах Docker, улучшен код определения сбоев, снижена нагрузка на CPU;

-  Добавлена поддержка активной дефрагментации памяти, которая позволяет выполнять дефрагментацию налету без остановки работы, если   применяется система распределения памяти Jemalloc (в Linux по умолчанию);

-  Снижено потребление памяти, в процессе работы тот же набор данных  теперь занимает меньше ОЗУ;

-  Модернизирован формат дампов RDB, в котором теперь поддерживаются 64-разрядные размеры блоков и предварительно отсортированные метаданные;


-  Увеличена эффективность реализации хэш-таблиц (тип dict);

-  Добавлена защита от межпротокольных атак (https://www.opennet.ru/opennews/art.shtml?num=45321), в которых используется сходство элементов протокола "POST" и "Host:" в HTTP и Redis, что позволяет отправить POST-запрос к Redis на локальной системе из запущенного в браузере web-приложения;

-  Команды RPUSHX и LPUSHX теперь могут принимать произвольное число элементов;

-  Серьёзно переработаны некоторые внутренние подсистемы.

URL: https://groups.google.com/forum/#!msg/redis-db/5Kh3viziYGQ/5...
Новость: https://www.opennet.ru/opennews/art.shtml?num=46856

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру