На самом деле неверно, что MongoDB не соответствует требованиям ACID. Напротив, MongoDB совместим с ACID на уровне документа.
Любое обновление отдельного документа
- Атомный: он либо полностью завершается, либо нет.
- Постоянно: ни один читатель не увидит «частично примененное» обновление.
- Изолировано: опять же, ни один читатель не увидит «грязное» чтение.
- Долговечность: (с соответствующей заботой о записи)
Чего нет в MongoDB, так это транзакций, то есть обновлений нескольких документов, которые можно откатить и которые совместимы с ACID.
Транзакции с несколькими документами, запланированные для MongoDB 4.0 летом 2018 года*, будут аналогичны транзакциям, знакомым разработчикам по реляционным базам данных: множественные инструкции, аналогичный синтаксис и их легко добавить в любое приложение.
Итог
Ключевой вывод для интервью: что на самом деле означает несовместимость MongoDB с ACID?