Marklogic有诸多特性,其中,事务的支持在NoSQL领域不多见,因此,Marklogic也对此有颇多描述,此篇来自Marklogic官网,翻译自原文http://cdn.marklogic.com/wp-content/uploads/2016/09/ACID-Transactions-Datasheet.pdf
如果你的应用需要事务支持,那么你可能需要拥有ACID特性的数据库。这样的数据库能让你持续地行进读和写操作,并能保证事务隔离。否则,你的应用可能遭遇数据风险:脏数据、数据不一致等等。
Marklogic是一个事务性的企业家NoSQL数据库,从诞生之初就支持ACID事务。包括多文档事务(multi-document transaction)、多语句事务(multi-statement transaction)、XA事务(transactions across a cluster)。这一特性使Marklogic不同于其他文档数据库,能够稳定的运行大规模任务密集型用例。
可信的ACID数据库
在关系型数据库领域,ACID事务早已经成为标准,可以保证数据不丢失。对于一些涉及到金融数据、健康数据、国家安全数据这样的关键应用,数据一致性显得格外重要。当然,就算不是数据敏感性应用,事务性数据库还是能帮助开发者节省开发时间,还能避免一些数据丢失的麻烦。
很多全球性企业选择Marklogic,正是因为其ACID特性。当然还有他的政府级安全、高可用性、灾备机制等等。
基于MVCC
Marklogic实现ACID使用的是MVCC(multi-version concurrency control).对MVCC来说,每一次更新都会对应有时间戳到相应的文档,数据库根据这些时间戳去确保数据的一致性。
这样的设计还有附加的好处:能保证高的数据吞吐量,更少的锁,可以避免数据冲突,还能方便快捷地数据恢复。
ACID的一致性还能提供更为强大的功能:高可用性、灾难恢复、分层存储。
成功实例
- 德意志银行Deutsche Bank 全球贸易数据存储于Marklogic,每天的数据处理量在5亿级别
- 美国国防部 U.S. Department of Defense 需要在10亿量级数据中检索数据
- 医疗保险和医疗补助服务中心The Centers for Medicare & Medicaid Services 在HealthCare.gov网站,有数十万用户使用
- 安泰 Aetna