Как увеличить время ожидания запроса в VoltDB

В VoltDB Community edition Когда я загружаю CSV-файл (размер: 550 МБ) более 7 раз, а затем выполняю базовые операции агрегирования, отображается время ожидания запроса. Но затем я попытался увеличить время ожидания запроса через веб-интерфейс, и все же он показывает ошибку «тайм-аут запроса составляет 10 секунд». Что мне делать, если я хочу решить эту проблему?


person Kunal Mali    schedule 27.06.2018    source источник


Ответы (1)


Как выглядит ваш файл конфигурации/развертывания? Чтобы увеличить время ожидания запроса, в файле deployment.xml должен быть следующий код:

<systemsettings>
   <query timeout="30000"/>
</systemsettings>

Например, где 30000 — это 30 секунд. Время ожидания запроса для всего кластера устанавливается при первой инициализации базы данных с помощью voltdb init. Вы можете принудительно повторно инициализировать новый файл развертывания с указанным выше разделом:

voltdb init --force --config=new_deployment_file.xml

Или вы можете оставить кластер работать и просто использовать:

voltadmin update new_deployment_file.xml

Раздел Query Timeout в этой части документации также содержит дополнительную информацию:

https://docs.voltdb.com/AdminGuide/HostConfigDBOpts.php

Полное раскрытие: я работаю в VoltDB.

person Andrew    schedule 27.06.2018
comment
Спасибо, @andrew, но когда я попробовал выполнить описанные выше шаги и увеличил время ожидания запроса, оно по-прежнему показывает мне ошибку, поскольку время ожидания для конкретного запроса составляет 10 секунд, хотя я увеличил его на 300 секунд. Например: SQL-запрос был завершен через 10,001 секунды, потому что он превышено время ожидания для конкретного запроса. Тайм-аут для конкретного запроса в настоящее время составляет 10,0 секунд. Время ожидания запроса по умолчанию в настоящее время составляет 300000,0 секунд, и его можно изменить в разделе systemsettings файла развертывания. в org.voltdb.sysprocs.AdHoc_RO_SP.run(AdHoc_RO_SP.java:46) - person Kunal Mali; 29.06.2018
comment
@KunalMali - как вы вызываете запрос? Это через sqlcmd, VMC или с клиента? - person BenjaminBallard; 29.06.2018
comment
В веб-интерфейсе VoltDB на вкладке «SQL-запрос» рядом с кнопкой «Выполнить» есть значок шестеренки, где вы можете установить тайм-аут для конкретного запроса. Тайм-аут для конкретного запроса имеет приоритет над глобальным тайм-аутом по умолчанию. Возможно, если это не установлено, по умолчанию оно равно 10 секундам, но вы сможете переопределить его. - person BenjaminBallard; 29.06.2018
comment
@BenjaminBallard Я пытаюсь использовать как sqlcmd, так и VMC. Вышеупомянутая ошибка связана с sqlcmd. Я попытался изменить тайм-аут для конкретного запроса с помощью этого маленького механизма в веб-интерфейсе voltDB, но он все равно отображается как «Ошибка: тайм-аут запроса». Кроме того, он показывает ошибку через 15 секунд, тогда как я изменил его тоже через 300000 мс. Более того, я попытался изменить через вкладку VMC Admin › Advanced › Query timeout. - person Kunal Mali; 29.06.2018