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.
In crux, we can say that there are four types of NoSQL Databases: Key-Value (KV) Stores, Document Stores, Column Family Data stores, and Graph Databases.
No, it really does not, and depending on your exact workload could be a lot faster or a little faster or slower - it all depends on the types of operations you are doing, your available physical resources, the structure of your data, as well as the needs of your application.
The correct answer is option 3. The storage environment is essentially virtualized from the developer's perspective. So NoSQL databases support automatic replication means that you get high availability and disaster recovery.
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.
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?
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With