Tentative schedule for both linearizability and TX.
Nov 3: Today
Nov 14: TX design draft
Nov 21: Linearizability implementation
Jan 27: TX Implementation
Feb 27: 1st draft & Measurements
Mar 28: Final
Transaction Components (Assumes 4 + 1 days / wk)
Client Driven Transaction
- Prep Rpc and Handling - Seojin / 4 days
- Client driven transactions "task" - Collin / 3 days (John said 2 weeks.)
- Transaction object & API - 2days
- Multiple objects per prepare RPC - 2days
Transaction Cleanup Coordinator (Recovery Coordinator)
- Timer and Rpc for initiating recovery protocol. - Seojin / 1 day
- Request Abort Rpc and Handling - Seojin / 2 day
- Transaction Cleanup "task" - Collin / 3 days
- Transaction Cleanup crash recovery - Collin / 2 days
Common Components (Mostly in Data Master)
- Decision Rpc - seojin / 4 days
- lock table - Collin / DONE!
- Special GC rules for transaction entires (& lease expiration handling) - Seojin / 3 day
- Transaction log records & recovery - Seojin / 4 days
Linearizability Components
- increment handling
- Coordinator RPC GetLeaseInfo w/ batching
Coordinator
Cluster Clock and Time support - CollinLease manager - Collin
Master
Backup's log reading during recovery - Collin (6days)Recovery from log <logReplay> (6 days)Handling of Linearizable RPC in MasterService - Seojin (3 days)Durable logging - Seojin (3 days)Log cleaning for rpc log entry - Collin (4 days)In-memory client table (UnackedRpcResult) - Seojin
Client
Linearizable RPC handling. (using RpcTracker and ClusterClock) - Seojin (3 days)Client lease - Collin (4 days)In-memory RPC table (RpcTracker) - Seojin