Looking for a NoSQL DB with JTA support [closed]
Asked Answered
E

2

7

Are there any reliable and well-known NoSQL DBs available that support JTA transactions? In my application I need to store some data to the RDBMS DB and some data to the NoSQL DB in the same transaction and I am using JTA for my RDBMS transactions.

Ehudd answered 12/5, 2010 at 4:58 Comment(1)
Why do you need a nosql database? What is your use case?Niela
M
6

Are there any reliable and well-known NoSQL DBs available that support JTA transactions?

Neo4j does support XA-protocol transactions, deadlock detection, transaction recovery, JTA.

Update: Answering a comment from the OP:

While Neo4j is not an RDBMS, it is my understanding that NoSQL databases refer to these new generation of document-oriented databases like CouchDB and MongoDB. But thanks for the answer.

Document-oriented databases (CouchDB and MongoDB) are just ONE kind of NoSQL databases, your understanding is wrong. Key / Value databases (Riak, Redis, Voldemort), column-oriented databases (HBase and Cassandra), graph-oriented databases (Neo4j, HypergraphDB and FlockDB) all belong to the NoSQL databases family.

If you're specifically looking for a document-oriented database, you should maybe update your question because it's misleading.

Moschatel answered 12/5, 2010 at 6:33 Comment(3)
While Neo4j is not an RDBMS, it is my understanding that NoSQL databases refer to these new generation of document-oriented databases like CouchDB and MongoDB. But thanks for the answer.Ehudd
@BytecodeNinja See my update, your understanding is wrong and you need maybe to clarify your question.Moschatel
Thanks for the clarification. I will keep this question as is and I may post a new question regarding document-oriented databases later.Ehudd
P
2

Well this is a yes and a no answer, yes a few NoSQL db's offer atomic operations but these are not transactions in the sense of a RDMBS and generally only affect a single document.

However you have a bigger problem, your NoSQL connection resource would need to support XA transactions which is a big ask I cannot find any reference to XA transaction support in the most popular offerings. You could always create your own XA resource or possibly place things inside a UserTransaction?

Plasticizer answered 12/5, 2010 at 6:5 Comment(3)
Note that ALL java ee does XA by default.Landbert
@Landbert XA requires the concept of a two phase commit on all involved systems so while it is possible for XA to run across a SQL database and JMS queue, you cannot for instance extend this to a Redis operation.Plasticizer
Redis doesn't fully support transactions distributed or otherwise. There are many web app or non-enterprise software products out there that don't do the transaction thing. but in the enterprise application space, XA has been so ubiquitous for so long, its not featured much in product advertising Perhaps us a NoSQL database product that is a bit more mature.Landbert

© 2022 - 2024 — McMap. All rights reserved.