Облачная платформаAdvanced

Управление кешем векторного индекса

Эта статья полезна?
Язык статьи: Русский
Показать оригинал
Страница переведена автоматически и может содержать неточности. Рекомендуем сверяться с английской версией.

Поисковый движок CSS vector построен на C++. Он использует off-heap память для повышения производительности и эффективности. Чтобы лучше управлять и оптимизировать кеш векторного индекса, база данных CSS vector предоставляет ряд специализированных API, которые можно гибко контролировать и настраивать использование кеша, чтобы обеспечить стабильную производительность запросов.

Проверка статистики кеша

Используйте следующий API для проверки использования off-heap памяти и возврата ключевых метрик, таких как текущее использование off-heap памяти, cache hits и время загрузки данных. Эти метрики помогают понять состояние кеша, чтобы вы могли корректировать кеш в зависимости от его использования. В реализации плагина векторного поиска каждый сегмент создаёт и сохраняет файл индекса. Во время запроса все эти файлы загружаются в off-heap память, и плагин использует механизм кеша для управления off-heap памятью.

GET /_vector/stats

Пример ответа:

{
"_nodes" : { # Node information
"total" : 1, # Total number of nodes
"successful" : 1, # Number of successful nodes
"failed" : 0 # Number of failed nodes
},
"cluster_name" : "css-d3a7", # Cluster name
"cpu_circuit_breaker_triggered" : false, # Whether circuit breaking is triggered
"nodes" : {
"cAHmVUZTR9ON7t6jxcDCkg" : { # Node UUID
"cpu_cache_capacity_reached" : false, # Whether the off-heap memory usage of the current node reaches the upper limit
"cpu_eviction_count" : 0, # Number of segment-level cache swap-outs on the current node
"cpu_hit_count" : 0, # Number of segment-level cache hits on the current node
"cpu_load_exception_count" : 0, # Number of segment-level index loading failures on the current node
"cpu_load_success_count" : 0, # Number of segment-level index loading successes on the current node
"cpu_miss_count" : 0, # Number of segment-level cache misses on the current node
"cpu_query_memory_usage" : 0, # Off-heap memory usage on the current node, in KB
"cpu_total_load_time" : 0 # Total segment-level index loading time on the current node, in ms
}
}
}

Предзагрузка векторных индексов

Используйте следующий API для предзагрузки указанных векторных индексов в off-heap память. Это гарантирует, что эти индексы могут быть быстро доступны в последующих запросах, обеспечивая высокую эффективность запросов и низкую задержку.

PUT /_vector/warmup/{index_name}

где {index_name} указывает индекс.

Пример ответа:

{
"_shards" : {
"total" : 1,
"successful" : 1,
"failed" : 0
}
}

Очистка кеша

Когда кеш заполнен, система автоматически меняет его данные. Однако частая замена кеша может влиять на производительность запросов. Вы можете использовать следующий API для ручной очистки кеша векторного индекса. Таким образом, вы освободите ресурсы внекучевой памяти и обеспечите производительность запросов к горячим данным.

  • Очистить весь кеш:
    PUT /_vector/clear/cache
  • Очистить указанные индексы из кеша:
    PUT /_vector/clear/cache/{index_name}

Пример ответа:

{
"acknowledged" : "true"
}