This page documents the goals and results for a series of milestones for the first implementation of RAMCloud. Each milestone last 2 weeks, ending on a Monday.
Milestone 3: ends March 15, 2010
- Aravind:
- Implement RPC API on TCP (est: 3 days) (actual: done, 2 days)
- Finish Protocol Buffer analysis (est: 2 days) (actual
- Deallocate Buffer memory (est: 2 days)
- Diego:
- Ryan:
- Multi-host backup (est: 1 day)
- Save and collect segement location info for restore (est: 2 days)
- RPC design
- Steve:
- Log/Segment refactoring (est: 2 days)
- Other code review issues (est: 2 days)
- Threading design
Milestone 2: ends March 1, 2010
- Aravind:
- Analyze protocol buffer performance (est: 0.5 day) (actual: not done, 0.5 day)
- Implement new RPC API on TCP (est: 4 days) (actual: 70% done?, 3 days)
- Code review of RCBUF (est: 0.5 day) (actual: done, 3 days)
- Quick and dirty user-level implementation of scatter-gather (est: 1 day) (actual: done, but not with Buffer, 1 day)
- Diego (modified 2010-02-18 with John's approval, and somewhat changed my mind 2010-02-19):
- RAM-36: Finish mini-transactions (est: 1 day)s (actual: done, 0.5 day)
- RAM-33: Least usable version of file system (est: 5 days) (actual: not done (only directories so far), 4 days)
- RAM-26: Table enumeration (est: 2 days) or maybe instead RAM-38: C/C++ extension for Python bindings (est: 2 days) (actual: not started)
- Ryan:
- Propagate GetSegMetaData through server (est: 0.5 day) (actual: done, 0.5 day)
- Boilerplate recovery routine (est: 0.5 day) (actual: in flux because of segment refactor, 1 day)
- Creating shadow objects in log (est: 2 days) (actual: not done, depends on segment refactor)
- Steve:
- Log/tombstone tests (est: 1 day) (actual: done, 2 days)
- Design for multi-threading (est: 2 days) (actual: not done, 1 day so far)
Milestone 1: ends February 15, 2010
- Aravind:
- RCBuf implementation (including docs and tests) (est: 3 days) (actual: done in 4 days, ~10 hours)
- Use RCBufs in current RPC mechanism (est: 1 day) (actual: done in 2 half-days)
- New RPC API implemented on TCP (est: 4 days) (actual: not done)
- Extras: protocol buffer tests
- Diego:
- Mini-transactions returning Booleans (est: 3 of "7") (actual: not done (90%?) spent "5")
- Mini-transactions returning results/error info (est: 4 of "7") (actual: not done (90%?), spent "2")
- Extras: transaction discussions, functional tests
- Ryan:
- Finish GetSegMetaData (est: 2 days) (actual: done in 16 actual hours)
- Support multiple segments in backup (est: 3 days) (actual: not done)
- Support multiple backups/master (est: 3 days) (actual: not done)
- Extras: cleanup (4 hours)
- Steve:
- New tombstone code (est: 1 day) (actual: done in 4 hours)
- Log/tombstone docs (est: 1 day) (actual: done in 2 hours)
- Log/tombstone tests (est: 3 days) (actual: not done; halfway?)
- Segment docs (est: 1 day) (actual: done in 1 hour)
- Segment tests (est: 1 day) (actual: done in 2-3 hours)