В некотором смысле операция сохранения по умолчанию в MongoDB выглядит асинхронной.Кажется, что когда клиент сохраняет документ, он обычно получает успешный ответ от сервера, даже если операция еще не была применена к базе данных (не говоря уже о сохранении на диске).
(IЯ основываю эту модель на том, как save()
ведет себя на PHP-клиенте документация , которая содержит необязательный параметр - safe
- который, я думаю, делает , гарантирует, что сохранениебыл обработан сервером, а не просто получен сервером, и комментарий к сообщению в блоге Матиасом Стерном, в котором он говорит, что «по умолчанию« совершено »означает только применение к структуре mmaped, но он также можетозначает реплицирование или сброс на диск. ")
Я вижу, что есть несколько уровней" успеха ", которых может достичь save()
, включая: (a) отправленный клиентом;(б) получен сервером;(c) совершено сервером для внутренних структур данных;(d) отправлено сервером на n реплик;и (e) записаны на диск.
- Что делает MongoDB по умолчанию?
- Как это можно настроить?(Я не смог найти эквивалент для режима PHP
safe
в оболочке mongo, например.)
Кроме того, есть ли какое-либо различие в поведении по отношению к клиенту, выдающему save()
,а любой другой клиент?т. е. поддерживает ли MongoDB чтение-ваши-записи или подобное?