Как MongoDB WiredTiger хранит файлы

MongoDB WiredTiger предлагает LSMT для хранения. Отлично, поэтому в памяти поддерживается сбалансированное дерево поиска, которое сбрасывается на диск в зависимости от конфигурации (времени или размера). Но вопрос в том, как данные хранятся на диске? LSMT в Cassandra/HBase хранятся как неизменяемые файлы. Их время от времени уплотняют. Данные вставляются/обновляются/удаляются как ячейки, являющиеся частью логического распределенного словаря. Таким образом, каждая ячейка идентифицируется по ключу, имени столбца и версии.
Но MongoDB использует BSON. Это единственный документ, поэтому возникает q:

  1. Разбивает ли MongoDB BSON на ячейки и обновляет/версирует ли их? Маловероятно, поскольку BSON был разработан для дискового хранилища.
  2. В таком случае, как memtable (сбалансированное дерево поиска) обновляет файл BSON? Является ли файл BSON изменяемым? LSMT использует неизменяемые файлы в Cassandra/HBase.
  3. В общем, как MongoDB WT делает обновления? Изменяемые файлы на диске или неизменяемые, и усилия по управлению индексами? Поскольку MongoDB предлагает множество типов индексации.
    Спасибо

0 ответов

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