Aerospike: ошибка перегрузки устройства, когда размер карты слишком велик - PullRequest
0 голосов
/ 25 мая 2018

Мы получили ошибку «Перегрузка устройства» после успешного запуска программы в течение нескольких месяцев.И мы находим, что размеры некоторых карт очень большие, которые могут быть больше 1000.

После проверки исходного кода я обнаружил, что причина "перегрузки devcie" заключается в том, что очередь записи находится вне ограничений, а длина очереди записи связана с эффективностью обработки.

Итак, я проверил файл "частичка_карты" и подозреваю, что вся карта будет переписана, даже если мы просто хотим вставить одну пару KV в карту.

Но я не уверен в этомэтот.Любой совет?

1 Ответ

0 голосов
/ 25 мая 2018

Итак, я проверил файл «частичка_карты» и подозреваю, что вся карта будет переписана, даже если мы просто хотим вставить одну пару KV в карту.

Выверны.При использовании постоянства Aerospike не обновляет записи на месте.Каждое обновление / вставка помещается в блок записи в памяти, который при заполнении ставится в очередь для записи на диск.Эта очередь допускает короткие пакеты, которые превышают максимальный ввод-вывод на ваших дисках, но если пакет поддерживается слишком долго, сервер начнет прерывать запись с ошибкой «перегрузка устройства», которую вы упомянули.То, как далеко за диском разрешено проходить, контролируется параметром механизма хранения max-write-cache *1006*.

Подробнее о нашем уровне хранения можно узнать по адресу https://www.aerospike.com/docs/architecture/index.html.

...