Версия 17.7.0#
Что нового:
Исправлено выполнение Calcite-запросов с большим количеством значений в операторе
IN: построение выражения больше не приводит к ошибкеStackOverflowErrorв крупных списках аргументов.CDC автоматически очищает поврежденные файлы состояния, чтобы после сбоя восстановить обработку без ручного удаления некорректного файла состояния (state-файла).
Снепшот можно размещать сразу по нескольким физическим путям с помощью
extraSnapshotPaths. Дополнительно исправлено восстановление, когда путь индексов совпадает с одним из путей хранения.Добавлены метрики пула TCP-соединений CommunicationSpi. Они позволяют отслеживать количество активных соединений и состояние пула соединений при разборе перегрузок и очередей.
Добавлена метрика количества обнаруженных взаимных блокировок транзакций. Метрика упрощает мониторинг роста deadlock-событий и помогает быстрее выявлять проблемные транзакционные сценарии.
Добавлена опциональная поддержка транзакций для SQL-запросов Calcite и
ScanQuery. Запросы можно объединять с операциями типа «ключ-значение» в одной транзакции: они видят собственные незафиксированные изменения и скрывают их от других транзакций до фиксации. Режим включается с помощьюTransactionConfiguration.setTxAwareQueriesEnabled(true). ПоддержкаIndexQueryв состав текущей реализации не вошла.В плагин для работы с кеш-дампами
ignite-dump-readerдобавлен режим восстановления только отсутствующих кешей. Он сохраняет уже созданные приложением кеши, создает недостающие конфигурации из дампов и восстанавливает данные без перезаписи структуры существующих кешей. Записи с просроченным временем восстанавливаются с сохранением срока жизни, остальные данные загружаются пакетами.Улучшена штатная остановка DataGrid: унифицированы поставочные
start- иstop-скрипты, увеличено время ожидания корректного завершения узла, а перед вынужденнымkill -9активные записи JFR завершаются с помощью jcmd. Это снижает риск поврежденных JFR-файлов и ручной очистки после остановки.Добавлены рекомендации по диагностике и ограничению роста RMI-/JMX-потоков от систем мониторинга. Описаны признаки накопления
idle- иtimeout-потоков, проверка потребления native-памяти и подбор ограничений соединений и времени их жизни без потери данных мониторинга.В плагине безопасности добавлена настройка RMI-порта защищенного JMX-сервера. Фиксированный порт можно задать с помощью
SecuredJmxServerConfiguration, что упрощает настройку межсетевых экранов и подключение систем мониторинга.Повышена устойчивость SQL-индексов и B+ дерева: устранено повреждение дерева при конкурентных удалениях, добавлена защита при смене класса ключа и проверка типа поля аффинити-индекса. Документация дополнена настройкой строгой проверки SQL-схемы с помощью
SqlConfiguration.validationEnabled.На Grafana-дашборд добавлены метрики выполнения
ComputeJob: активные, ожидающие, запущенные, завершенные, отмененные и отклоненные задания, а также время ожидания и выполнения. Метрики используют существующийMBeanвычислительных заданий и не требуют доработки ядра DataGrid.Шаблоны Zabbix переведены на Batch-JMX: несколько метрик теперь собираются одним пакетным запросом. Обновлены discovery-правила, макросы и важность триггеров, что уменьшает нагрузку мониторинга на DataGrid и риск отказов из-за большого количества JMX-обращений.
Исправлена очистка транзакционного контекста после явных
commit()илиrollback(). Завершенная или асинхронно откатившаяся транзакция больше не остается привязанной к потоку и не блокирует последующие неявные транзакции.Повышена надежность
ignite-dump-reader.shи кеш-дампов: в дампе сохраняются данные, которые были загружены с помощьюDataStreamerдо перезапуска узла, кеши сnodeFilterкорректно обрабатываются, а метаданные проверяются общим механизмом валидации снепшотов.Уточнено поведение SQL-операции
MERGEи очищена диагностика H2: корректный запрос с полемKEYбольше не создает избыточное предупреждение парсера. Ограничения и рекомендуемый синтаксисMERGEзафиксированы в документации.Подготовлены и проверены рекомендации по запуску толстого клиента DataGrid в Kubernetes с помощью Istio/Envoy egress. Описаны размещение клиентских сертификатов, сетевые настройки и тестовые сценарии подключения. При присоединении узлов DataGrid сохраняет их сертификаты для последующей проверки.
Расширено обнаружение потерянных партиций между остановкой и повторным запуском кластера. DataGrid сохраняет необходимое состояние и выявляет потерю данных после периода неактивности, вывод команды
control.sh --cache distributionстал удобнее для диагностики.Подготовлены тестовые шаблоны Zabbix для сбора метрик DataGrid с помощью
http-metric-exporter. Доступны варианты для HTTP-агента и Zabbix-агента, которые позволяют проверить сбор метрик кеша без JMX-подключений к каждомуMBean.SQL-запросам теперь можно назначать пользовательский
initiatorId. Метка передается тонким клиентом на сервер, отображается в представлениях активных и исторических запросов и добавляется в журнал, упрощая поиск медленных и проблемных запросов конкретного приложения.Ускорена массовая обработка прикладных данных в распределенных кешах. Операции
UPDATEиDELETEв Calcite выполняются на узлах хранения данных: каждый узел обрабатывает свою локальную часть записей, а инициатор получает суммарное количество изменений. Для эксплуатационных сценариев с помощью JDBC/SQLline добавлен режимlocal=true, который позволяет направлять запрос к данным конкретного узла.Исключена необходимость указывать настройки realm в конфигурации толстых клиентов DataGrid.
Если пользователю необходимо сменить пароль, это явно описано в тексте ошибки.