fjall icon indicating copy to clipboard operation
fjall copied to clipboard

Serializable Snapshot Isolation (SSI)

Open jeromegn opened this issue 1 year ago • 0 comments

This allows multiple concurrent write transactions.

Checklist

  • [x] Change MSRV back to 1.74
  • [x] Uncomment unwrap_used lint
  • [x] Remove #[inline] attributes
  • [x] Keep the option to use the single-writer transaction type
  • [x] Remove dependency on wmark (copy just the necessary parts into here), or maybe extract SnapshotTracker into a generic Watermark (probably needs a rewrite)
  • [x] Increment snapshot tracker watermark, so that old MVCC versions can be freed
  • [x] Verify that TxPartition does not create a cyclic Arc to TxKeyspace
  • [x] Clean up unused, commented code
  • [x] Look at TODO comments in write_tx
  • [x] More tests (ranges, prefix, fetch_update, update_fetch, etc.)
  • [x] Make sure memory usage has an upper bound (stuff is getting GC'ed in the transaction manager)
  • [x] Make CI pass
  • [x] Think about lifetime on Transaction (dangling iter)
  • [x] Benchmarks (WriteSet::insert was marked as SLOW function... cannot be sped up by SSI tx...)

jeromegn avatar Sep 22 '24 20:09 jeromegn