我用的 mongodb 数据库,但该数据库没有事务管理的处理,rails 应该怎么实现事务处理呢?
数据库不支持那就不支持了呀,除非在应用级自己实现一个。
#1 楼 @Rei 我就是想自己实现,但是不知如何写
使用支持事务的数据库:MySQL(InnoDB)或者 PostgreSQL
#2 楼 @jky No. 你不可能花一两个月时间,就在一个不支持事务的数据库上,写出完整可靠且性能不差的事务支持。
如果你真的需要事务支持,那必须选择支持事务的数据库,比如 MySQL(with Innodb Engine), PostgreSQL, Oracle, MS SQL Server 等。
要强一致性的话就得换数据库了。弱一致性自己可以做补偿机制
MongoDB 官网有篇相关文章 http://cookbook.mongodb.org/patterns/perform-two-phase-commits/
#4 楼 @kgen 关键是项目一直用这个数据库啊
#5 楼 @mojidong 补偿机制正在学习啊
换 MySQL / PostgreSQL 吧,我的小伙伴们用了 mongodb 以后都回到 MySQL 了
如果想要支持事务的 Mongodb,可以考虑一下 TokuDB
#10 楼 @birdfrank TokuDB 有实例么?
#11 楼 @jky 你可以去它们官网看看。www.tokutek.com