Архитектура базы данных MongoDB

Я хочу больше узнать о архитектуре системы и БД MongoDB.

Я пытаюсь понять, как MongoDB хранит и извлекает документы. Если все это в памяти и т.д.

Сравнительный анализ между MongoDB и Oracle станет бонусом, но я в основном фокусируюсь на понимании архитектуры MongoDB как таковой.

Любые указатели будут полезны.

Ответ 1

Память MongoDB отображает файлы базы данных. Это позволяет ОС контролировать это и выделять максимальный объем ОЗУ для отображения памяти. Поскольку MongoDB обновляет и считывает из БД, он считывает и записывает в ОЗУ. Все индексы в документах в базе данных также хранятся в ОЗУ. Файлы в ОЗУ сбрасываются на диск каждые 60 секунд. Чтобы предотвратить потерю данных в случае сбоя питания, по умолчанию запускается при включенном журналировании. Файл журнала сбрасывается на диск каждые 100 мс, и если для возврата базы данных в постоянное состояние используется потеря мощности. Важным дизайнерским решением с монго является объем оперативной памяти. Вам нужно выяснить размер рабочего набора - то есть, если вы собираетесь читать и писать только самые последние 10% своих данных в базе данных, то это 10% - ваш рабочий набор и должен храниться в памяти для максимальной производительности, Поэтому, если ваш рабочий набор составляет 10 ГБ, вы получите не более 10 ГБ для максимальной производительности - в противном случае ваши запросы/обновления будут работать медленнее, поскольку страницы памяти будут выгружаться с диска в память. Другими важными аспектами mongoDB являются репликация для резервного копирования и масштабирования для масштабирования. Есть много отличных онлайн-ресурсов для обучения. MongoDB является бесплатным и с открытым исходным кодом.

EDIT: Это хорошая идея, чтобы проверить учебник http://www.mongodb.org/display/DOCS/Tutorial и руководство http://www.mongodb.org/display/DOCS/Manual и зона администратора тоже полезна http://www.mongodb.org/display/DOCS/Admin+Zone и если вам скучно читать, то презентации стоит проверить. http://www.10gen.com/presentations