SLIK Tasks
Exploration:
- Stronger consistency for range lookups: quick and dirty mvcc w/o gc
- Implement indexing using arrow transactions rather than ordered write / hints approach
Making system usable:
Coordinator indexing recovery
Features:
- Range lookup: ability to match all
- Range lookup: ability to limit n
- Range lookup: ability to reverse sort
- Multiple types for index keys
- Support indexed operations in transactions
- Client library support for changing index schema / object schema (rewrite all objects in table to reflect index changes; this also allows reuse of index slot)
B+ tree implementation:
- Better locking
- Skip lists?
Split and migrate:
- Automatic load balancing
- Trim / clean up in B+ trees
Misc:
Clean dangling pointers (maybe reuse trim/clean-up mechanism from above)
Other JIRA Issues
Testing:
Deploy and run real app(s) on SLIK
- Check how Reddit is using Cassandra
Testing:
- Add missing unit tests
- Split and migrate
- End-to-end system
- Recovery
New benchmarks:
- HyperDex: indexScalability
- Throughput measurements for basic indexed ops
- Indexed operation timelines
- B+ tree microbenchmarks
- Relation between tree fanout and insert/lookup perf
- Time to insert/remove/lookup for varying params
- YCSB (requires java bindings to support indexed ops)
- TPC-H
- Indexed operation perf affected by concurrent splitAndMigrate
- Indexed operation perf affected by create/drop index
- Memory footprint of indexes OR space overhead per indexed object
- Compare w/ some RDBMS?
- Latency under load
- Recovery
Understand funny perf from current benchmarks
Related Work
- CAP
- H-Store
- HyperDex
- Main mem db overview
- RAMP
- RP*
- STI-BT
- Study of index structs for main mem dbms
- Tell