Согласно документации MongoDB, транзакции работают только для наборов реплик, а не для одного узла. Почему такое требование? Разве не легче выполнять транзакции на одном узле, чем в распределенной системе?
1 ответ
Реализация транзакций использует сеансы, которые, в свою очередь, требуют журнала операций. Oplog предоставляется наборами реплик для синхронизации данных между узлами.
Разве не легче выполнять транзакции на одном узле, чем в распределенной системе?
Это правда, но на практике MongoDB позиционирует себя как базу данных с высокой доступностью, поэтому существует довольно мало производственных развертываний с использованием автономного сервера (насколько я знаю, это даже не вариант в Atlas, например). Следовательно, отсутствие поддержки транзакций на автономных серверах обычно ни на что не влияет.
И наоборот, реализация транзакций только на автономных серверах не удовлетворит потребности подавляющего большинства развертываний / клиентов MongoDB, которые используют наборы реплик и сегментированные кластеры.
В целях разработки вы можете запустить набор реплик с одним узлом, который дает вам журнал операций, необходимый для сеансов и транзакций, но при этом только один процесс mongod.
Похожие вопросы
Новые вопросы
mongodb
MongoDB - это масштабируемая, высокопроизводительная база данных NoSQL с открытым исходным кодом, ориентированная на документы. Он поддерживает большое количество языков и платформ разработки приложений. Вопросы по администрированию сервера можно задать на https://dba.stackexchange.com.