Предположим, у вас есть база данных ACID. Без явной гарантии заказа операций вы все равно можете сделать вывод о заказе в результате долговечности.
, например
- Я вставляю
x
в базу данных и оператор возвращает
- Теперь я вставляю
y
- из-за гарантии долговечности, я знаю,
x
был сделан долговечным до y
.
Таким образом, в случае аварии у меня либо:
- ни один из
x
или y
в базе данных
- только
x
- и
x
и y
.
Теперь предположим, что база данных с гарантией долговечности. например MongoDB без safemode или getlasterror.
Какая у меня гарантия того, что первая операция станет долговечной, а вторая - прочной?
Пожалуйста, укажите мне часть документации, которая требует этого, или соответствующий тест.
В случае сбоя моя база данных может содержать y
, но не x
?
EDIT:
Кажется, по умолчанию (только?) Механизм хранения - это механизм отображения файлов в памяти. Если журналирование не включено (теперь включено по умолчанию), похоже, что сбой сервера может привести к непоследовательному и непоправимому состоянию. Я думаю, ответ лежит в журнале.