CNode

在不使用事务的情况下,有哪些办法可以保证数据的原子性?

问答
JJarvisQJ发布于9 年前最后回复9 年前8 回复8091 浏览0 收藏

有些场景下,逻辑关系很复杂,往往要多个集合(表)中的数据保持一致性,大家一般用什么办法处理这种情况呢?因为我使用的mongodb不支持事务,所以希望大家给出不用事务,保证数据原子性的办法。

查看回复

回复 (8)

F
Fov6363#1·9 年前

可以手动回滚数据

J
JarvisQJ#2·9 年前
引用 Fov6363可以手动回滚数据

@Fov6363 可以说具体点吗

Z
zhanzhenzhen#3·9 年前

又给你扒了一篇文章:使用$isolated操作符 https://docs.mongodb.com/manual/core/write-operations-atomicity/

L
libook#4·9 年前

两段提交+自动回滚+实时校验+日志监控,应该基本就可以了吧。 系统复杂到一定程度的话,数据库自身的事务机制恐怕也难保所有业务的原子性操作(跨数据库、非数据库IO等情况),有一套独立的管理原子性业务的系统可能会比依赖数据库的事务机制靠谱一些。

Z
zhanzhenzhen#6·9 年前

我改名字了?好像没,我一直是这个ID~

Z
zhanzhenzhen#7·9 年前

发现一篇文章,在官方文档上: https://docs.mongodb.com/manual/tutorial/perform-two-phase-commits/

This document provides a pattern for doing multi-document updates or “multi-document transactions” using a two-phase commit approach for writing data to multiple documents. Additionally, you can extend this process to provide a rollback-like functionality.

参与回复
登录后即可参与回复。登录