MongoDB обеспечивает консистентность данных в replica sets, используя журнал операций (oplog). Каждая операция записи на primary узле записывается в oplog, и secondary узлы постоянно реплицируют эти операции, чтобы оставаться в синхронизации.
Write concern определяет, сколько узлов должны подтвердить запись, прежде чем MongoDB сочтёт её успешной.
w: 1 — только primary подтверждает запись (быстрее, менее надёжно)w: "majority" — большинство узлов должны подтвердить (медленнее, более надёжно)j: true — запись должна быть закоммичена в журнал на диске перед подтверждениемБолее высокий write concern повышает надёжность, но увеличивает задержку.
Read concern контролирует уровень консистентности и изоляции данных, возвращаемых операциями чтения.
local — возвращает самые свежие данные на запрашиваемом узле, без гарантии, что они были реплицированыmajority — возвращает только данные, подтверждённые большинством узлов, гарантируя, что они не будут откаченыlinearizable — обеспечивает наиболее строгую консистентность, отражая все предыдущие записи, подтверждённые большинствомКомбинируя настройки write concern и read concern, ты можешь балансировать между консистентностью, доступностью и производительностью:
w: "majority" с readConcern: "majority"w: 1 с readConcern: "local", принимая возможное устаревание данныхЭта гибкость позволяет приложениям выбирать подходящий уровень консистентности в зависимости от их конкретных требований.
The oplog в MongoDB записывает все операции записи на первичном узле, а вторичные узлы используют этот лог для репликации и поддержания консистентности в replica set.
Новый — ещё не проверен сообществом
Вы