Thanks Matthias,
So with BDB I think the picture is very clear, Titan will delegate Transaction management to BDB and BDB can handle them as I choose.
Yet, with C* and hbase, I don't even see how atomicity can be achieved since atomicy guarantees that transactions cannot be partially committed.
HBase and C* will guarantee that an insert operation (e.g. put in hbase) is atomic but I don't see how titan can implement a transaction using a single insert operation,
especially when a single transaction can cross multiple vertices and edges.
For instance, if a node that is now performing a transaction which inserts multiple vertices and edges (using multiple inserts)
goes down in the middle of executing the transaction the transaction will be partially committed.
Rollback will not occur when the node is restarted unless it maintains some transactions log.
(or if there is some more sophisticated mechanism behind the scenes which I am not aware of).
As far as hbase and C* are concerned, they provided atomicity for each insert but this is not enough for graphdb atomocy ...
Furthermore, even when inserting a single edge between v1 and v2 both vertices need to be updated (v1's outgoing and v2's incoming),
hence I am not sure even this can be done using a single db insert ...
So potentially, even an addEdge does not guarantee atomocy.
Is this correct or am I missing something?
Regards,
Roy.