transaction: All content tagged as transaction in NoSQL databases and polyglot persistence
Thursday, 25 April 2013
PostgreSQL Transaction System
Original title and link: PostgreSQL Transaction System (©myNoSQL)
Monday, 20 June 2011
Multi-Document Transactions in RavenDB vs Other NoSQL Databases
“We tried using NoSQL, but we are moving to Relational Databases because they are easier…”
This is how Oren Eini starts his post about RavenDB support for multi-document transactions and the lack of it from MongoDB:
- For a single server, we support atomic multi document writes natively. (note that this isn’t the case for Mongo even for a single server).
- For multiple servers, we strongly recommend that your sharding strategy will localize documents, meaning that the actual update is only happening on a single server.
- For multi server, multi document atomic updates, we rely on distributed transactions.
In the NoSQL space, there are a couple of other solutions that support transactions:
- Google Megastore
- Redis has two mechanisms that come close to transactions: MULTI/EXEC/DISCARD and pipelining —this one is exemplified in this Redis based triplestore database implementation
- many of the graph databases (Neo4j, HyperGraphDB, InfoGrid)
If you look at these from the perspective of distributed systems, the only distributed ones that support transactions are Megastore and RavenDB. There’s also VoltDB which is all transactions. Are there any I’ve left out?
Original title and link: Multi-Document Transactions in RavenDB vs Other NoSQL Databases (NoSQL database©myNoSQL)
Wednesday, 24 November 2010
Neo4j Transactions and JTA
I’ve already told you about ☞ Chris Gioran’s series on Neo4j internals. Now, he is working on providing support for pluggable JTA compliant transaction managers in Neo4j and details about the current status can be found in his ☞ last post. Anyways, before that he started with a deep dive into the Neo4j transactions and that resulted in 4 (quite long) articles:
- ☞ Write Ahead Log and Deadlock Detection
In this post I will write a bit about two different components that can be explained somewhat in isolation and upon which higher level components are build. The first is the Write Ahead Log (WAL) and the other is an implementation of a Wait-For graph that is used to detect deadlocks in Neo before they happen.
- ☞ XaResources, Transactions and TransactionManagers
This time we will look into a higher level than last time, discussing the Transaction class and its implementations, Commands and TransactionManagers, touching a bit first on the subject of XAResources.
- ☞ Xa roundup and consistency
This post covers Data sources and XA connections, management of XaResources, and putting all these together.
- ☞ A complete run and a conclusion
Here I will try to follow a path from the initialization of the db engine and through the begin() of a transaction and creation of a Node to the commit and shutdown.
As I’ve estimated in my first mention of this series on Neo4j internals, Chris ends up giving up writing and starting to hack Neo4j:
Truth been told, I have reached a point where I no longer want to write about Neo but instead I want to start hacking it
Original title and link: Neo4j Transactions and JTA (NoSQL databases © myNoSQL)
Monday, 2 August 2010
Transactions in Distributed Systems
In case you didn’t know it already: banks are not really using ACID transaction on all operations that you would have thought they are. If that’s a surprise then let me tell you that ☞ not even Starbucks is using two-phase commit.
Distributed systems are changing the rules of the game:
the more distributed and decentralized a system is, the less likely it is that we can use transactions that span the entire system. That is certainly true for the banking system, apparently also true for systems inside banks, and in many other places. ACID transactions were invented for the mainframe, the world’s most centralized computing construct. But computing is not “one mainframe” any more I’m afraid as it was in the sixties.
via: http://infogrid.org/blog/2010/08/acid-transactions-are-overrated/