CNode

nodejs+mongodb一般如何应对类似传统数据库 事务 的需求啊?

Sshinka发布于12 年前最后回复12 年前17 回复10975 浏览0 收藏

愁人啊,最近需求方要求支持事务,Mongo不支持(支持得不太好),程序写严谨点倒是能防止程序上出现的问题,类似事务那样处理。但是突然宕机或者网络中断啥的应该就处理不了了把。 不知道各位有没有什么方案。

查看回复

回复 (17)

S
shinka#1·12 年前
引用 ngot写check和repaire脚本,一切搞定

@ngot 哦? 大概是什么原理啊? 记录数据库操作,然后万一发生错误自动调用repair脚本?

N
ngot#2·12 年前
引用 ngot写check和repaire脚本,一切搞定

@shinka check脚本就是定义好数据结构正确的格式,定期去检查数据库数据是否结构完好。如果数据有误,就用修复脚本去修复。没有事务,就这么干嘛吧。

R
ravenwang#3·12 年前
S
shinka#4·12 年前
引用 ngot写check和repaire脚本,一切搞定

@ngot 哦 是个解决方案。不过定期处理的话 实时性就差点,而且检查脚本应该工作量还挺大的

H
haohello#5·12 年前

你们可以看看这个站点的信息, http://www.tokutek.com/ 在github上也可以找到他们的代码, 可以用来代替mongodb, 可以支持事务 现有的 mongodb对于批量插入是不支持事务的, tokudb提供的mongodb引擎可以支持,而且官网上说是存储效率和速度都提升了百分之九十多

K
kingapple#8·12 年前

事务,上Oracle吧:)

C
ciiii#9·12 年前

顶一个,同问

R
ravenwang#10·12 年前

NoSQL普遍都不支持事务,你可以自己在业务层实现事务,搜索:mongodb 两阶段提交 不过自己实现太复杂了很容易出错,实在需要事务还是用关系数据库吧

N
ngot#12·12 年前

写check和repaire脚本,一切搞定

N
ngot#13·12 年前
引用 ngot写check和repaire脚本,一切搞定

@shinka 脚本本身倒是不复杂。不过要处理的数据量不了。不过这里面也有很多门道。可以优化的。

S
shinka#14·12 年前
引用 ngot写check和repaire脚本,一切搞定

@ngot 对啊 感觉要定时check数据正不正确 如果表之间关系比较复杂 脚本也就复杂了 不知道oracle的node驱动咋样

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