mmap о mongodb - PullRequest
       32

mmap о mongodb

0 голосов
/ 13 декабря 2011

Распространенным заблуждением является то, что «MongoDB - это БД в памяти». Монго отображается в виртуальной памяти: не нужно помещаться в оперативную память. Теперь он показывает диаграмму виртуального адресного пространства: пространство ядра, стек, куча, текст программы и т. Д. Текст программы mmap, как и файлы данных Mongo. Показывает, где сопоставленные файлы данных находятся в виртуальном адресном пространстве. "

Что такое текст программы, и что означает "текст программы mmap 'точно так же, как файлы данных Mongo. Показывает, где файлы отображенных данных находятся в виртуальном адресном пространстве"?
спасибо!

1 Ответ

1 голос
/ 13 декабря 2011

Отображение памяти - это то, что делает операционная система (Windows делает это, я уверен, что linux делает то же самое), когда она загружает ваши двоичные файлы.Сами двоичные файлы можно назвать «текст программы».Следовательно, все файлы .exe и .dll по существу отображаются в память.Сообщение здесь таково: если вы можете доверять ОС выполнять сопоставление памяти для ее основной цели, позволяющей выполнять другие двоичные файлы, вы также можете доверять ей отображение файлов данных вашей базы данных, что и делает MongoDB.

Все это не имеет никакого отношения к «in-memory db», потому что отображение памяти «просто» причудливый способ координировать доступ к файлам через ОС.

Это также объясняет, что как двоичные файлы, так и данные находятсяв той же памяти, что, как я помню, является одним из наиболее важных вкладов Конрада Цузе в первые дни вычислений: программы и данные не находятся в разной физической памяти, потому что между ними нет принципиальной разницы.

...