Путаница по поводу эластичного тайм-аута поиска - PullRequest
0 голосов
/ 27 октября 2019

В настоящее время используется версия ES 5.5
У меня есть вопросы о тайм-ауте

добавить таймаут к поисковому запросу

GET s_all/_search
{
    "profile": true,
    <b>"timeout": "1ms",</b>
    "query": {
        "match": {
            "type": "sh"
        }
    }
}

Через профиль узнайте, что он превысил установленное значениевремя.

"profile": {
    "shards": [
    {
        "id": "[qVjmAo1oSXSptAEsqMT76g][s_all01][0]",
        "searches": [
        {
            "query": [
            {
                "type": "TermQuery",
                "description": "type:sh",
                "time": "14.28760800ms",
                "time_in_nanos": 14287608,

видно
"время": "14,28760800 мс", превысило одну миллисекунду. Я установил

, но время ожидания ответа:

"took": 57,  
"timed_out": false,

Почему это?

1 Ответ

0 голосов
/ 27 октября 2019

Я заметил эту проблему и в прошлом, в итоге я нашел несколько удовлетворительное объяснение. source .

Существует настройка уровня узла thread_pool.estimated_time_interval, которая определяет разрешение таймера, используемого для оценки текущего времени для этих видов проверок (это позволяет избежать проверки таймера). слишком дорого в горячих петлях). По умолчанию это разрешение составляет 200 мс.

По сути, вы можете получить искаженные результаты до двух тактов (400 мс), лично я нашел, что это несколько схоже (из моих минимальных тестирование).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...