Transactions and atomicity
Hi all! I'm researching JanusGraph and I'm excited to learn more. There's one thing I haven't understood when using JanusGraph with a storage backend like ScyllaDB:
According to the docs, the best way to avoid data inconsistencies is to use a storage backend that supports atomic batch writes. If I do that, do I remove all risk of half-edges and other permanent inconsistencies -- i.e. is eventual consistency guaranteed? And if the storage backend does support atomic batch writes, how can I tell if JanusGraph actually uses it?
2 Replies
Cassandra/ScyllaDB supports atomicity if the write is made in the same batch.
You can ensure it by enabling:
storage.cql.atomic-batch-mutate = true
or by ensuring the batch size covers your whole write size.
Your consistency will be controlled by your read / write consistency settings (like ONE + ALL, QUORUM + QUORUM, etc.).
thank you, that's very helpful!