Elasticsearch версия 7.9.0
Также см. Изменения, прерывающие работу в 7.9.
Обновления безопасности
- В Elasticsearch при выполнении поиска со скроллингом и защитой на уровне поля была обнаружена уязвимость раскрытия поля. Если пользователь выполняет тот же запрос, что недавно выполнил другой пользователь с более высокими привилегиями, поиск со скроллингом может раскрыть поля, которые должны быть скрыты. Это может привести к тому, что злоумышленник получит дополнительные разрешения для ограниченного индекса. Все версии Elasticsearch до 7.9.0 и 6.8.12 подвержены этой уязвимости. Для исправления необходимо обновить до Elasticsearch версии 7.9.0 или 6.8.12. CVE-2020-7019
Известные проблемы
- Обновление до 7.9.0 с более ранней версии приведет к некорректным отображениям в индексе аннотаций машинного обучения и, возможно, также в конфигурационном индексе машинного обучения. Это приведет к некорректной отображению некоторых страниц в пользовательском интерфейсе машинного обучения и может помешать созданию или обновлению задач машинного обучения. Лучший способ избежать этой проблемы, если вы узнали об этой известной проблеме до обновления, — это вручную обновить отображения в этих индексах в вашей старой версии Elasticsearch *перед* обновлением до 7.9.0. Если вы узнали о проблеме после обновления, необходимо выполнить повторный индексирование для восстановления. Полные сведения о методах устранения находятся в Обновление до 7.9.0 вызывает некорректные отображения.
- Lucene 8.6.0, на котором основан Elasticsearch 7.9.0, содержит утечку памяти. Эта утечка памяти проявляется в Elasticsearch, когда один документ многократно обновляется с принудительной перезагрузкой. Уровень хранения состояния кластера в Elasticsearch основан на Lucene и использует обновления отдельных документов с принудительной перезагрузкой, что означает, что эта утечка памяти проявляется в Elasticsearch в стандартных условиях. Она также проявляется, когда управляемые пользователем рабочие нагрузки многократно обновляют один документ в индексе с принудительной перезагрузкой. В обоих случаях утечка памяти составляет около 500 байт на обновление, поэтому для заметного влияния на систему требуется некоторое время. Признаками этой утечки памяти являются медленное повышение размера используемой кучи со временем, отказ запросов в реальном прерывателе памяти и, потенциально, ошибки исчерпания памяти. Обходной метод заключается в перезапуске узлов, демонстрирующих эти симптомы. Мы активно сотрудничаем с сообществом Lucene, чтобы выпустить исправление в Lucene 8.6.2 для Elasticsearch 7.9.1, которое устранит эту утечку памяти.
-
SQL: Если в
WHERE-оператор содержит как минимум два реляционных оператора, соединенных черезAND, из которых один является оператором сравнения (<=,<,>=,>), а другой - оператором неравенства (!=,<>), оба над литералами или сводимыми выражениями, то оператор неравенства будет проигнорирован. Обходной метод заключается в замене оператора неравенства операторомNOT IN.Мы исправили эту проблему в Elasticsearch 7.10.1 и более поздних версиях. Более подробную информацию см. в #65488.
-
Снимок и восстановление: Если индекс удален, а кластер одновременно выполняет более одного снимка, существует риск, что один из снимков может никогда не завершиться, а также что некоторые данные фрагмента могут быть потеряны из хранилища, что приведет к отказу будущих операций восстановления. Чтобы устранить эту проблему, установите
snapshot.max_concurrent_operations: 1для предотвращения одновременных операций снимка:PUT _cluster/settings { "persistent" : { "snapshot.max_concurrent_operations" : 1 } }Эта проблема исправлена в версиях Elasticsearch 7.13.1 и более поздних версиях. Восстановить хранилище после возникновения этой проблемы невозможно, поэтому необходимо восстановить его из резервной копии или очистить хранилище, выполнив
DELETE _snapshot/<repository name>/*, или перейти на новое хранилище. Более подробную информацию см. в #73456. - Парсинг запроса, когда последний элемент в массиве отфильтрован (например, с использованием
_source_includes), завершается ошибкой. Это связано с ошибкой в парсере Jackson. Исправлено в Elasticsearch 8.6.1 (#91456) - Устаревшее
index.mapper.dynamic-настройка может нарушить работу вашего кластера. Она может быть установлена только с помощью API Обновить настройки индекса. Симптомы включают отказ узлов от запуска или отказ фрагментов от выделения. Не используйте эту настройку в версиях до 7.17.22. Ошибка исправлена в 7.17.22 (номер проблемы: #109160)
Изменения, прерывающие работу
- Кэш скриптов
- API возможностей полей
- Ограничение скорости восстановления снимка
-
- Восстановление из снимка (определенная форма восстановления) теперь должным образом учитывает ограничение скорости восстановления (т.е. настройку
indices.recovery.max_bytes_per_sec). Настройкаmax_restore_bytes_per_secтеперь по умолчанию устанавливается на неограниченное значение, тогда как ранее она была установлена на40mb, что является значением по умолчанию, используемым дляindices.recovery.max_bytes_per_sec. Это означает, что в кластерах, где настройки восстановления и восстановления не были изменены от значений по умолчанию, изменения в поведении не будут замечены. #58658
- Восстановление из снимка (определенная форма восстановления) теперь должным образом учитывает ограничение скорости восстановления (т.е. настройку
- Размер очереди пула потоков записи
-
- Значение по умолчанию для размера очереди пула потоков WRITE (
thread_pool.write.size) увеличено с 200 до 10000. Малый размер очереди (200) вызывал проблемы, когда пользователи хотели отправлять небольшие запросы индексирования с большим количеством клиентов. Добавлен дополнительный механизм обратной связи по памяти с настройкойindexing_pressure.memory.limit. Эта настройка определяет ограничение объема данных, потребляемых активными запросами индексирования. #59263
- Значение по умолчанию для размера очереди пула потоков WRITE (
- Висящие индексы
-
- Автоматический импорт висящих индексов теперь устарел, отключен по умолчанию и будет удален в Elasticsearch 8.0. См. примечания по миграции. #58176 #58898 (номер проблемы: #48366)
Изменения, прерывающие работу Java
- Агрегации
- Функции/Ввод данных
Новые функции
- Агрегации
-
- Добавление агрегации потока скользящих перцентилей #55441 (задача: #49452)
- Добавление агрегации нормализации #56399 (задача: #51005)
- Добавление агрегации гистограммы с переменной шириной #42035 (задачи: #9572, #50863)
- Добавление агрегации вывода прогнозов #58193
- Ускорение округления интервалов времени вокруг перехода на летнее время (DST) #56371 (задача: #55559)
- Гео
- Машинное обучение
-
- Добавление API для обновления аналитики фреймов данных #58302 (задача: #45720)
- Введение параметра model_plot_config.annotations_enabled для задач обнаружения аномалий #57539 (задача: #55781)
- Отчет о значительных изменениях моделей обнаружения аномалий в аннотациях результатов #1247, #56342, #56417, #57144, #57278, #57539
- Картирование
- Поиск
Улучшения
- Агрегации
-
- Добавлена поддержка числовых диапазонов в качестве ключей #56452 (задача: #56402)
- Добавлена поддержка выборочного вычисления стандартного отклонения/дисперсии для расширенных статистик #49782 (задача: #49554)
- Созданы отдельные операции для поиска значимости #57903
- Увеличено значение search.max_buckets до 65 535 #57042 (задача: #51731)
- Оптимизированы агрегации date_histograms при переходе через время смены часового пояса #55559
- Возвращается ясное сообщение об ошибке, если тип агрегации некорректен #58255 (задача: #58146)
- Экономия памяти при обработке числовых значимых терминов, не находящихся на вершине #56789 (задача: #55873)
- Экономия памяти, когда auto_date_histogram не находится на вершине #57304 (задача: #56487)
- Экономия памяти, когда date_histogram не находится на вершине #56921 (задачи: #55873, #56487)
- Экономия памяти, когда агрегация histogram не находится на вершине #57277
- Экономия памяти, когда агрегация numeric terms не находится на вершине #55873
- Экономия памяти, когда родительские и дочерние агрегации не находятся на вершине #57892 (задача: #55873)
- Экономия памяти, когда rare_terms не находится на вершине #57948 (задача: #55873)
- Экономия памяти, когда significant_text не находится на вершине #58145 (задача: #55873)
- Экономия памяти, когда string terms не находится на вершине #57758
- Ускорение уменьшения auto_date_histo с часовым поясом #57933 (задача: #56124)
- Ускорение округления в auto_date_histogram #56384 (задача: #55559)
- Распределение
-
- Учёт оставшегося восстановления в диске-аллокаторе #58029
- Анализ
- Аутентификация
- Авторизация
- CCR
-
- Разрешить индексам фолловеров переопределять настройки лидера #58103
- CRUD
-
- Повторная попытка неудачной репликации из-за временных ошибок #55633
- Двигатель
- Функции/Потоки данных
-
- Добавлена поддержка создания моментальных снимков и восстановления для потоков данных #57675 (задачи: #53100, #57127)
- Валидация создания потоков данных разрешает использование префиксных индексов #57750 (задача: #53100)
- Запрещено удаление составного шаблона, если он используется потоком данных #57957 (задача: #57004)
- Проверка операций с псевдонимами, которые не нацелены на потоки данных #58327 (задача: #53100)
- Функции/ILM+SLM
-
- Добавлена поддержка потоков данных к действию searchable snapshot #57873 (задача: #53100)
- Добавлена поддержка потоков данных к действию shrink #57616 (задача: #53100)
- Добавлена поддержка перекатки потоков данных #57295 (задачи: #53100, #53488)
- Проверка, что управляемый индекс не является индексом записи потока данных #58239 (задача: #53100)
- Функции/API индексов
-
- Добавить шаблонные составные шаблоны для новой стратегии индексирования #57629 (проблема: #56709)
- Добавить API блока индекса #58094
- Добавить новый флаг для проверки наличия алиаса при удалении #58100
- Добавить параметр prefer_v2_templates для переиндексации #56253 (проблема: #53101)
- Добавить API моделирования шаблонов для моделирования композиции шаблонов #56842 (проблемы: #53101, #55686, #56255, #56390)
- Функции/Ingest
- Функции/Java High Level REST Клиент
- Функции/Java Low Level REST Клиент
- Инфра/Разрывы цепи
- Инфра/Ядро
-
- Введение параметра node.roles #54998
- Инфра/Упаковка
- Инфра/Плагины
-
- Улучшенный ExtensiblePlugin #58234
- Инфра/Устойчивость
- Машинное обучение
-
- Учет размера модели, когда модели не кэшируются. #58670
- Добавляет новый флаг for_export к API GET _ml/inference #57351
- Добавляет обнаружение геометрии WKT в find_file_structure #57014 (проблема: #56967)
- Вычисление пропусков кэша для вывода и возвращение в статистику #58252
- Удаление автоматически сгенерированных аннотаций при удалении задания. #58169 (проблема: #57976)
- Удаление автоматически сгенерированных аннотаций при откате моментальной снимки модели #58240 (проблема: #57982)
- Удаление устаревших данных по заданию #57337
- Введение поля Annotation.event #57144 (проблема: #55781)
- Добавить поддержку больших прогнозов в памяти через параметр max_model_memory #1238, #57254
- Не терять точность при сохранении состояния модели #1274
- Параллелизация вычисления важности признаков для классификации и регрессии над деревьями #1277
- Добавить возможность выполнения категоризации независимо для каждого раздела #1293, #1318, #1356, #57683
- Объем памяти сообщается во время инициализации задания #1294
- Более реалистичная оценка памяти для классификации и регрессии означает, что для этих анализов потребуются более низкие ограничения памяти, чем раньше #1298
- Точка восстановления состояния для эффективного failover во время грубого поиска параметров для классификации и регрессии #1300
- Улучшение шаблонов доступа к данным для ускорения классификации и регрессии #1312
- Улучшение производительности для классификации и регрессии, особенно при многопоточном выполнении #1317
- Улучшение времени выполнения и использования памяти при обучении глубоких деревьев для классификации и регрессии #1340
- Улучшение обработки больших определений моделей для вывода #1349
- Добавление поля peak_model_bytes в model_size_stats #1389
- Картирование
-
- Добавить поддержку запросов regex к полю wildcard #55548 (проблема: #54725)
- Сделать
keywordсемейством типов полей #58315 (проблема: #53175) - Сохранить обработанные параметры сопоставления в IndexSettings #57492 (проблема: #57395)
- Поле wildcard - добавить поддержку пользовательских нулевых значений #57047
- Сеть
- Восстановление
- Переиндексация
- SQL
-
- Реализуйте функцию TIME_PARSE для преобразования строк в значения TIME #55223 (проблемы: #54963, #55095)
- Реализуйте TOP в качестве альтернативы LIMIT #57428 (проблема: #41195)
- Реализуйте функцию TRIM #57518 (проблема: #41195)
- Улучшить производительность LTRIM/RTRIM #57603 (проблема: #57594)
- Сделать преобразование строки в DATETIME более гибким #57451
- Скрыть учётные данные в исключениях подключения #58650 (проблема: #56474)
- Сделать разбор символов даты/времени более гибким #58336 (проблема: #58262)
- Добавить поддержку скаляров в LIKE/RLIKE #56495 (проблема: #55058)
- Поиск
-
- Добавить описание для отправки и получения асинхронного поиска, а также для отмены задач #57745
- Добавить статический метод matchBoolPrefix в билдерах запросов #58637 (проблема: #58388)
- Добавить поддержку запросов по диапазонам к полю с подстановкой #57881 (проблема: #57816)
- Группировать docIds по сегментам в FetchPhase для лучшего использования кэша LRU #57273
- Улучшить обработку ошибок при декодировании идентификаторов асинхронного выполнения #56285
- Указать причину отмены асинхронного поиска #57761
- Применяйте запрос по диапазону сортировки индекса по возможности #56657 (проблема: #48665)
- Безопасность
- Снимок/Восстановление
-
- Устранить дублирование метаданных индекса в BlobStore #50278 (проблемы: #45736, #46250, #49800)
- По умолчанию устанавливать 0 реплик для поисковых снимков #57802 (проблема: #50999)
- Разрешить полностью одновременные операции снимков #56911
- Поддержка клонирования поисковых снимков индексов #56595
- Отслеживать вызовы API GET/LIST Azure Storage #56773
- Отслеживать вызовы API GET/LIST GoogleCloudStorage #56585
- Отслеживать операции PUT/PUT_BLOCK на AzureBlobStore #56936
- Отслеживать вызовы API multipart/resumable uploads GCS #56821
- Отслеживать запросы загрузки в хранилищах S3 #56826
- Управление задачами
- Преобразование
Исправления ошибок
- Агрегации
-
- Исправить интервал авто-датированной гистограммы #56252 (проблема: #56116)
- Исправить ошибку округления интервала быстрее #56433 (проблема: #56400)
- Исправить ошибку агрегаторов родительских и дочерних элементов при отсутствии родительского поля #57089 (проблема: #42997)
- Исправить отсутствие нулевых значений для std_deviation_bounds в статистических агрегациях ext #58000
- Распределение
- Аутентификация
-
- Сопоставить только определённый тип OIDC-утверждений #58524
- Авторизация
- Двигатель
- Функции/ILM+SLM
- Функции/API индексов
- Функции/Обработка данных
- Гео
- Инфраструктура/Сценарии
- Машинное обучение
-
- Исправить сериализацию по проводам для подтверждений обработки #58413
- Сделать ожидание перенормирования необязательным для внутренней обработки задания #58537 (проблема: #58395)
- Последовательно читать в лог C++ перед подключением других каналов #56632 (проблема: #56366)
- Исправить числовые проблемы, приводящие к взрыву границ модели графика #1268
- Исправить причины для инвертированных границ доверительного интервала прогноза #1369 (проблема: #1357)
- Ограничить рост максимальной длины совпадающей строки для категорий #1406
- Сопоставление
- SQL
- Поиск
- Снапшот/Восстановление
Модернизация
- Поиск
-
- Обновить до lucene snapshot e7c625430ed #57981
© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/7.17/release-notes-7.9.0.html