Версия 17.8.0#

Что нового:

  • Улучшены диагностические инструменты для анализа артефактов, которые относятся к dump/WAL/page. DumpReader выводит имя кеш-группы в диагностических сообщениях. Обработка чувствительных данных при удобочитаемом преобразовании WAL стала более безопасной и предсказуемой. Улучшен запуск утилит command/control на новых JDK.

  • В журнал добавлено событие завершения вытеснения партиции кеш-группы. Сообщение упрощает диагностику освобождения места и позволяет видеть окончание процесса вытеснения без косвенного анализа состояния партиций.

  • Добавлена возможность задавать локальный порядок запуска сервисов DataGrid с помощью ServiceConfiguration.setLocalStartOrder(int). Сервисы с меньшим значением инициализируются раньше при статической конфигурации и групповом runtime-развертывании. Глобальный порядок между узлами параметр не задает.

  • Устранены конфликты при создании SQL-таблиц поверх существующих кешей. DDL корректно учитывает схему существующего кеша и поля ключа в индексах, поэтому таблицу можно создать без перезаливки уже загруженных данных.

  • SQL-движок Calcite получил крупный набор улучшений: расширена поддержка SQL, DDL и DML, исправлена обработка типов и параметров, улучшены планирование, выбор индексов и распределенное выполнение запросов. Дополнительно повышены стабильность, производительность и совместимость клиентских сценариев.

  • Повышена надежность и наблюдаемость вытеснения страниц. Исправлено зависание операций записи с RANDOM_LRU и RANDOM_2_LRU, добавлена метрика EvictionsStarted, а предупреждение о начале вытеснения и рекомендации по мониторингу уточнены отдельно для каждого региона данных.

  • Повышено самовосстановление после кратковременных сетевых сбоев: исправлены повторные отправки и проверки соединения в discovery- и cache-communication, улучшена обработка SSL-ошибок и попыток подключения тонких клиентов, добавлены диагностические сообщения и параллельная проверка удаленных узлов при восстановлении связи между ЦОД.

  • Добавлена поддержка мультиЦОД для одного кластера DataGrid: узлам назначается идентификатор ЦОД, аффинити равномерно размещает копии партиций между ЦОД, а Topology Validator контролирует конфигурацию. Оптимизированы процессы обнаружения, ребалансировка, снятие снепшотов, SQL и работа клиентов. Добавлены представления и метрики для ЦОД и клиентского маршрутизатора.

  • Добавлены метрики для локализации кратковременной сетевой недоступности узлов, включая показатели состояния соединений и максимального интервала недоступности. Документация дополнена рекомендациями по использованию этих метрик при диагностике сетевых инцидентов.

  • Событие EVT_CONSISTENCY_VIOLATION теперь включено по умолчанию, поэтому команда consistency repair работает без предварительной настройки хранилища событий. С помощью утилиты control.sh можно во время работы кластера просмотреть, включить или отключить нужные типы событий без перезапуска узлов.

  • Тонкий клиент Java получил возможность задавать количество партиций при создании кеша. Параметр доступен с помощью аффинити-настройки ClientCacheConfiguration и передается серверу с учетом версии протокола.

  • Ошибки операций с кешем тонкого клиента Java теперь содержат пользовательское имя кеша. При обращении к отсутствующему кешу диагностика показывает заданный псевдоним (alias) вместо внутреннего идентификатора.

  • Тонкий клиент Java получил синхронные и асинхронные методы ClientCache.sizeLong, которые возвращают размер кеша как значение long. Это позволяет корректно получать размер кешей, в которых количество записей превышает диапазон int.

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