【问题标题】:Looking for a NoSQL DB with JTA support [closed]寻找支持 JTA 的 NoSQL DB [关闭]
【发布时间】:2010-05-12 04:58:59
【问题描述】:

是否有任何可靠且知名的 NoSQL DB 支持 JTA 事务?在我的应用程序中,我需要在同一个事务中将一些数据存储到 RDBMS DB 和一些数据存储到 NoSQL DB,并且我使用 JTA 进行 RDBMS 事务。

【问题讨论】:

  • 为什么需要nosql数据库?你的用例是什么?

标签: java nosql jta


【解决方案1】:

是否有任何可靠且知名的 NoSQL DB 支持 JTA 事务?

Neo4j 确实支持 XA 协议事务、死锁检测、事务恢复、JTA。

更新:回答 OP 的评论:

虽然 Neo4j 不是 RDBMS,但据我了解,NoSQL 数据库指的是新一代的面向文档的数据库,如 CouchDB 和 MongoDB。但感谢您的回答。

面向文档的数据库(CouchDB 和 MongoDB)只是 ONE 一种 NoSQL 数据库,你的理解是错误的。 键/值数据库(Riak、Redis、Voldemort)、面向列的数据库(HBase 和 Cassandra)、面向图的数据库(Neo4j、 HypergraphDB 和 FlockDB)都属于 NoSQL 数据库家族。

如果您专门寻找面向文档的数据库,您可能应该更新您的问题,因为它具有误导性。

【讨论】:

  • 虽然 Neo4j 不是 RDBMS,但据我了解,NoSQL 数据库指的是新一代的面向文档的数据库,如 CouchDB 和 MongoDB。不过谢谢你的回答。
  • @BytecodeNinja 查看我的更新,您的理解是错误的,您可能需要澄清您的问题。
  • 感谢您的澄清。我将保持这个问题不变,稍后我可能会发布一个关于面向文档的数据库的新问题。
【解决方案2】:

嗯,这是一个是与否的答案,是的,一些 NoSQL 数据库提供原子操作,但这些不是 RDMBS 意义上的事务,通常只影响single document

但是你有一个更大的问题,你的 NoSQL 连接资源需要支持 XA 事务,这是一个很大的问题,我在最流行的产品中找不到任何关于 XA 事务支持的参考。您总是可以创建自己的 XA 资源或可能将东西放在 UserTransaction 中?

【讨论】:

  • 注意所有的java ee默认都做XA。
  • @Chris XA 需要在所有相关系统上进行两阶段提交的概念,因此虽然 XA 可以跨 SQL 数据库和 JMS 队列运行,但您不能将其扩展到 Redis 操作.
  • Redis 不完全支持分布式事务或其他方式。有许多网络应用程序或非企业软件产品不进行交易。但是在企业应用领域,XA已经无处不在这么久了,在产品广告中的表现并不多,也许我们是一个更成熟一点的NoSQL数据库产品。
猜你喜欢
  • 1970-01-01
  • 2011-01-02
  • 2010-11-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-07
  • 2014-02-26
相关资源
最近更新 更多