Всегда ли содержимое LMDB хранится ОБА на диске И в памяти?

Я хочу использовать ржавую реализацию LMDB, но я не могу найти, будет ли она всегда поддерживать копию того, что находится в памяти, также на диске и наоборот. Я полагаю, что в БД будет некоторый кеш, и любые переполнения будут записаны на диск, но, поскольку я не могу найти его в документации, я не уверен.

В другом случае LMDB отображает свое содержимое на диске в память, и это будет работать для небольших количеств, но не для того, что я имею в виду.

Кто-нибудь знает, как работает LMDB в этом отношении?

2 ответа

Кто-нибудь знает, как работает LMDB в этом отношении?

Если вы беспокоитесь о том, что не сможете работать с набором данных, который не помещается в памяти, все в порядке — LMDB справится с этим. Ваш набор данных не ограничен размером оперативной памяти.

LMDB отображается в памяти, что является методом, который позволяет разработчикам читать/записывать данные на диск «как» в памяти — ОС выполняет всю необходимую тяжелую работу.

LMDB всегда хранится ОБА на диске И в памяти?

Весь набор данных находится на диске. Некоторые его части остались в памяти. Когда нужны части, которых нет в памяти - ОС извлекает их с диска и отдает приложению, помещая в память процесса

В другом случае LMDB сопоставляет свое содержимое на диске с памятью, и это будет работать для небольших количеств, но не для того, что я имею в виду.

Да, это так.

Я читал, что RocksDB поддерживает использование, которое вы ищете, предлагая аналогичные гарантии.

Небольшие количества зависят от доступной оперативной памяти. Основные поставщики, включая mongodb с бэкэндом wiredtiger, но не только, также приходит на ум postgresql, который настоятельно рекомендует иметь столько памяти, сколько рабочий набор данных .

Наоборот, вы можете найти системы баз данных, такие как полнотекстовый поисковый движок rust, использующие холодное (автономное?) хранилище объектов.

Другие вопросы по тегам