Коллеги, добрый день!
Мне нужно ежедневно удалять большое количество документов из индекса, для этого я использую _delete_by_query запросы. Но удаление идет очень медленно.
Все оптимизации которые предлагает документация я выполнил: добавил slices, установил requests_per_second = -1 и даже запустил параллельные запросы на удаление из разных индексов, но это не позволило приблизится к приемлемой скорости выполнения.
Структура индекса такова: есть корневые сущности, к ним проиндексированы дочерние документы, мне нужно удалять одновременно корневые и все дочерние по id, для этого я использую такие запросы:
{
"query": {
"bool": {
"should": [
{
"bool": {
"should": [
{
"has_parent": {
"parent_type": "plc",
"query": {
"ids": {
"values": [
"plc_37875675_37879713_0_0_0"
]
}
}
}
},
{
"ids": {
"values": [
"plc_37875675_37879713_0_0_0"
]
}
}
]
}
},
{
"bool": {
"should": [
{
"has_parent": {
"parent_type": "plc",
"query": {
"ids": {
"values": [
"plc_37875675_37879715_0_0_0"
]
}
}
}
},
{
"ids": {
"values": [
"plc_37875675_37879715_0_0_0"
]
}
}
]
}
}
]
}
}
}
Я объединяю в пачки по 100 id через условие ИЛИ. В каждом индексе по 3 шарды, индекс весит ~150Гб, что укладывается в рекомендуемые нормы и все же удаление идет по 18 секунд.
На всякий случай приложу ответ:
{"took":18793,"timed_out":false,"total":100,"deleted":100,"batches":6,"version_conflicts":0,"noops":0,"retries":{"bulk":0,"search":0},"throttled_millis":0,"requests_per_second":-1.0,"throttled_until_millis":0,"slices":[{"slice_id":0,"total":18,"deleted":18,"batches":1,"version_conflicts":0,"noops":0,"retries":{"bulk":0,"search":0},"throttled_millis":0,"requests_per_second":-1.0,"throttled_until_millis":0},{"slice_id":1,"total":19,"deleted":19,"batches":1,"version_conflicts":0,"noops":0,"retries":{"bulk":0,"search":0},"throttled_millis":0,"requests_per_second":-1.0,"throttled_until_millis":0},{"slice_id":2,"total":17,"deleted":17,"batches":1,"version_conflicts":0,"noops":0,"retries":{"bulk":0,"search":0},"throttled_millis":0,"requests_per_second":-1.0,"throttled_until_millis":0},{"slice_id":3,"total":15,"deleted":15,"batches":1,"version_conflicts":0,"noops":0,"retries":{"bulk":0,"search":0},"throttled_millis":0,"requests_per_second":-1.0,"throttled_until_millis":0},{"slice_id":4,"total":18,"deleted":18,"batches":1,"version_conflicts":0,"noops":0,"retries":{"bulk":0,"search":0},"throttled_millis":0,"requests_per_second":-1.0,"throttled_until_millis":0},{"slice_id":5,"total":13,"deleted":13,"batches":1,"version_conflicts":0,"noops":0,"retries":{"bulk":0,"search":0},"throttled_millis":0,"requests_per_second":-1.0,"throttled_until_millis":0}],"failures":[]}
Буду благодарен за любу информацию как еще можно оптимизировать или подкрутить настройки?