В случае, если мы хотим выполнить несколько операций обновления, будучи атомарными и изолированными в MongoDB, чтобы другие процессы или потоки не получали данные, пока они находятся в процессе. Мне известно о том, что атомарность и изоляция поддерживаются только на уровне документа, а также блокировки поддерживаются на уровне базы данных. У меня есть следующие запросы в приведенном выше случае:
- Есть ли способ, которым мы можем делать такие множественные обновления изолированно, в пакетном режиме, поскольку «$isolated» не работает для кластера, более того, findAndModify() работает для одного документа?
- Как мы можем выполнить контроль параллелизма для достижения вышеуказанного случая?
- Можем ли мы использовать здесь двухфазную фиксацию, поддерживая транзакцию, будет ли она выполняться изолированно?
- Во время изучения я нашел MongoMVCC для управления параллельным доступом к нескольким версиям, если кто-то использовал его, поделитесь своим опытом в отношении вышеуказанного варианта использования.