поэтому в настоящее время я пытаюсь оценить memsql как вариант базы данных для нашего конвейера реального времени. У меня было одно сомнение, скажем, мы используем row-store для наших таблиц, и вдруг происходит всплеск событий, и мы не можем обрабатывать все в памяти. Будет ли он проливаться на диск или какое поведение он проявит в таком сценарии. Спасибо
Поведение Memsql, если оперативная память полностью используется
Ответы (3)
Вы спрашиваете о запросах, потребляющих временную память, или пишете запросы, заполняющие таблицы в объеме памяти?
Если запросы пытаются потреблять больше памяти, чем доступно, некоторые запросы возвращают ошибку. Клиентское приложение может повторить их позже или запланировать запросы, чтобы избежать отправки слишком большого пакета в базу данных.
Если запросы на запись заполняют таблицы rowstore до полного объема памяти, они начнут возвращать ошибку, и вам придется либо увеличить объем памяти, либо удалить некоторые данные. (В качестве альтернативы вы можете рассмотреть возможность использования таблиц columnstore на диске, в зависимости от вашей рабочей нагрузки.)
Я думаю, что вопрос в том, «Хранит ли memsql все данные rowstore в памяти»?
Я тоже делаю аналогичную оценку и не могу найти ответ (пока) в документации memsql.
Но исходя из моего личного опыта, похоже, что ВСЕ таблицы ROWSTORE ХРАНЯТСЯ ТОЛЬКО В ПАМЯТИ. Поэтому, если из-за этого некоторым из ваших листовых узлов не хватает памяти, вам не повезло. Пишите в COLUMNSTORE (к тому времени вы могли бы также использовать ParAccel, Vertica или Greenplum).
Я думал, что memsql будет достаточно умным, чтобы сохранять некоторые данные rowstore на диск.
Да, все данные rowstore должны помещаться в памяти. Это одна из причин, почему хранилище строк MemSQL намного быстрее, чем традиционное хранилище строк на диске (см. указатель списка пропусков MemSQL для более подробной информации). Системная переменная maximum_table_memory
определяет, сколько памяти MemSQL позволит использовать в таблицах, прежде чем начнет отклонять запросы на запись (см. Документация по управлению памятью MemSQL.