Tasks for SLIK 0.5
Timeline for paper submission (OSDI 14)
Reuse external B-tree, port to RAMCloud
Changing object format, supporting writes/reads with multiple keys
Memory allocation for indexes
1st implementation with mallocs
Real implementation with RAMCloud objects storing tree nodes (04/08 or 04/09) (3/4 - 3/5)
Master Recovery
Recover index data (piggybacking on RAMCloud recovery to get log data then reconstruct trees)
Recover metadata on new index masters
Schema mgmt (schema includes types and location map)
Recovery of index partition metadata on coordinator in case of coordinator crash --> transferred to SLIK 1.0 tasks
RPCs for schema mgmt from client to coordinator (create and delete) (2/25)
RPCs for schema mgmt from coordinator to masters (3/4)
RPCs for schema information from coordinator to client (for lookups) (3/4)
Static partitioning of indexes (needed for scalability) (later)
Write
API (2/24)
RPCs from client to master (and master to backups) (2/24)
RPCs from master to index servers (2/24)
Code to write index entries (call to btree / wrapper for btree) (2/28)
Code to use this at the data master (basically percolate up) (2/28)
Lookup (range)
API
RPC from client to index server and back with primary key hashes – maybe multiple rpcs (if overflow)
Code to retrieve required information (3/7)
IndexedRead
API
RPC from client to master server with pk hashes – maybe multiple rpcs (if overflow)
Code to retrieve required data (3/7)
End-to-end simple system test
End-to-end multiobject ops system test (later)
04/08 - 04/09: Ankita: Related work check which system to benchmark against
04/09 - 04/15: Ankita: Talk to Chris Re about related work
04/09 - 04/15: Ankita: Really crappy first draft: except perf, related work, conclusion
04/09: Arjun: Integrate his allocation code with the system
04/09: Ashish: Trivial benchmark: indexed write, lookup + indexedRead latency in RAMCloud system
04/11: Ashish: Setup MySQL: Install server, write a client that successfully does a write and read
04/11: Arjun: Setup Cassandra: Install server, write a client that successfully does a write and read
04/15: Ashish+Arjun: Benchmark:
End-to-end lookup+indexedRead
For n indexes (vary n), small num and large num of objects
At least single node (distributed if possible)
MySQL, Cassandra, RAMCloud
.....
04/22: Full benchmark
05/01: OSDI Deadline
Apr 17: Experiment 1 (rm), Experiment 2(rm)
Apr 21: Experiment 3 (rm)
--------------------------------------------------------------------------------------
March 14: First correct (acc to tests) implementation done
March 15: Start writing paper draft
March 15: Start benchmarking
March 23: Basic benchmarking done (this will uncover issues)
March 24: Implementation: Start fixing issues discovered
March 24 - 31: related work research + basic benchmarks of other systems
April 5: First draft
April 5: Bug free (for those discovered during benchmarking etc) implementation
April 10: Final benchmarks done + nice graphs
April 14: Second draft
April 23: (Almost) Final draft ready
May 1: OSDI Deadline