@@ -24,8 +24,8 @@
|
|||||||
|
|
||||||
- [Week 3 Overview: MVCC (WIP)](./week3-overview.md)
|
- [Week 3 Overview: MVCC (WIP)](./week3-overview.md)
|
||||||
- [Timestamp Encoding + Refactor](./week3-01-ts-key-refactor.md)
|
- [Timestamp Encoding + Refactor](./week3-01-ts-key-refactor.md)
|
||||||
- [Snapshots - Memtables and SSTs](./week3-02-snapshot-read-part-1.md)
|
- [Snapshots - Memtables and Timestamps](./week3-02-snapshot-read-part-1.md)
|
||||||
- [Snapshots - Engine Read Path](./week3-03-snapshot-read-part-2.md)
|
- [Snapshots - Transaction API](./week3-03-snapshot-read-part-2.md)
|
||||||
- [Watermark and GC](./week3-04-watermark.md)
|
- [Watermark and GC](./week3-04-watermark.md)
|
||||||
- [Transaction and OCC](./week3-05-txn-occ.md)
|
- [Transaction and OCC](./week3-05-txn-occ.md)
|
||||||
- [Serializable Snapshot Isolation](./week3-06-serializable.md)
|
- [Serializable Snapshot Isolation](./week3-06-serializable.md)
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# Snapshot Read - Memtables and SSTs
|
# Snapshot Read - Memtables and Timestamps
|
||||||
|
|
||||||
During the refactor, you might need to change the signature of some functions from `&self` to `self: &Arc<Self>` as necessary.
|
During the refactor, you might need to change the signature of some functions from `&self` to `self: &Arc<Self>` as necessary.
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# Snapshot Read - Engine Read Path
|
# Snapshot Read - Engine Read Path and Transaction API
|
||||||
|
|
||||||
## Task 1: Store Largest Timestamp in SST
|
## Task 1: Store Largest Timestamp in SST
|
||||||
|
|
||||||
|
|||||||
@@ -34,8 +34,8 @@ We have 7 chapters (days) in this part:
|
|||||||
|
|
||||||
|
|
||||||
* [Day 1: Timestamp Key Refactor](./week3-01-ts-key-refactor.md). You will change the `key` module to the MVCC one and refactor your system to use key with timestamp.
|
* [Day 1: Timestamp Key Refactor](./week3-01-ts-key-refactor.md). You will change the `key` module to the MVCC one and refactor your system to use key with timestamp.
|
||||||
* [Day 2: Snapshot Read - Memtables and SSTs](./week3-02-snapshot-read-part-1.md). You will refactor the memtable and the SST format to support multiple version.
|
* [Day 2: Snapshot Read - Memtables and Timestamps](./week3-02-snapshot-read-part-1.md). You will refactor the memtable and the write path to support multiple version reads/writes.
|
||||||
* [Day 3: Snapshot Read - Transaction API](./week3-03-snapshot-read-part-2.md). You will implement a timestamp oracle to assign the timestamps and add multi-version support to the LSM engine by using the transaction API.
|
* [Day 3: Snapshot Read - Transaction API](./week3-03-snapshot-read-part-2.md). You will implement the transaction API and finish the rest part of read/write path so as to support snapshot reads.
|
||||||
* [Day 4: Watermark and Garbage Collection](./week3-04-watermark.md). You will implement the watermark computation algorithm and implement garbage collection at compaction time to remove old versions.
|
* [Day 4: Watermark and Garbage Collection](./week3-04-watermark.md). You will implement the watermark computation algorithm and implement garbage collection at compaction time to remove old versions.
|
||||||
* [Day 5: Transaction and Optimistic Concurrency Control](./week3-05-txn-occ.md). You will create a private workspace for all transactions and commit them in batch so that the modifications of a transaction will not be visible to other transactions.
|
* [Day 5: Transaction and Optimistic Concurrency Control](./week3-05-txn-occ.md). You will create a private workspace for all transactions and commit them in batch so that the modifications of a transaction will not be visible to other transactions.
|
||||||
* [Day 6: Serializable Snapshot Isolation](./week3-06-serializable.md). You will implement the OCC serializable checks to ensure the modifications to the database is serializable and abort transactions that violates serializability.
|
* [Day 6: Serializable Snapshot Isolation](./week3-06-serializable.md). You will implement the OCC serializable checks to ensure the modifications to the database is serializable and abort transactions that violates serializability.
|
||||||
|
|||||||
Reference in New Issue
Block a user