MongoDB полагается на WiredTiger storage engine для управления конкурентностью, комбинируя несколько уровней блокировок для сбалансирования консистентности данных с высокой производительностью.
MongoDB применяет intent locks на двух широких уровнях перед доступом к данным:
Intent Shared (IS) — сигнализирует о намерении прочитать данные в рамках ресурсаIntent Exclusive (IX) — сигнализирует о намерении записать данные в рамках ресурсаТакой многоуровневый подход означает, что движок эскалирует к строгой блокировке только там, где это действительно необходимо.
WiredTiger также использует MVCC (Multi-Version Concurrency Control):
Каждая транзакция видит консистентный снимок данных
в момент своего начала, избегая грязного чтения.
Это означает, что читатели никогда не блокируют писателей, и писатели никогда не блокируют читателей.
Модель конкурентности MongoDB эффективна, потому что:
MongoDB применяет intent locks на уровне базы данных и коллекции, а exclusive locks для реальных модификаций данных удерживаются только на уровне документа, позволяя выполнять одновременные записи в разные документы в одной коллекции.
Новый — ещё не проверен сообществом
Вы