Skip to content

Support Transactions #230

@manishrjain

Description

@manishrjain

Reading the Critique of Snapshot Isolation paper by Yabandeh, I realize that adding transactions (via write snapshot isolation) on top of Badger would be pretty simple. We already do all our writes serially. So, all of our RW transactions, if run from the one serial loop, would not require us to do anything on top of what we're already doing. This would fit really nicely, in fact.

Badger's write throughput is already much better than other KV stores, so even if this causes a slight degradation in write performance, this would be a big win for the users. There won't be much degradation in read performance.

More thought is required to see how other components would be impacted. And if we need to have start and commit timestamps to coordinate this. To make a decision on this, we need to put together a design doc.

Why:

  • Dgraph itself would need this to support transactions.
  • Many use cases need transactions. Some projects wouldn't even consider using Badger unless it does transactions.
  • Bleve integration requires transactions as well. Issue: add badger db support blevesearch/bleve#591

TODO:

  • Put together a design doc to see how this would fit into Badger.

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions