cayley
cayley copied to clipboard
Does cayley support transactions? Is it ACID compilant?
It depends on the backend.
Some backends don't do ACID -- MongoDB for example. Some backends might -- the proposed Postgres backend, for example. LevelDB could probably be damned close, but may take a little tuning -- already it does work in one write batch, but a bit of extra locking is probably reasonable.
Where possible, we'll use the underlying locking primitives to provide the best consistency and atomicity we can, but, depending on your stack and architected tradeoffs, there's only so much one can do.
Well .. it would be useful to provide info about ACID in readme
- if it's support for any backen
- how it is supported
- how to make transactions...
Well .. it would be useful to provide info about ACID in readme
+1
+1
An update for @barakmich answer with more details:
memstore: Can implement transactions as it is our own implementation (Proven by https://github.com/hashicorp/go-memdb)bolt: Bolt supports ACIDmongo: MongoDB supports ACID since version 4elastic: Elastic itself doesn't support ACID unless it is on top of a relational DB that does. See: https://dbdb.io/db/elasticsearchcouch: CouchDB supports ACIDpostgres: Postgres supports ACIDcockroach: Cockroach supports ACIDmysql: Some MySQL engines support ACID and some doesn't. See: http://ronaldbradford.com/blog/q-does-mysql-support-acid-a-yes-2016-06-29/sqlite: SQLite supports ACID