# -*- org -*-
# (setq org-tags-column -80)

* Design
** DONE Pseudocode
** TODO How to emulate memcached?

* Shared implementation
** DONE Build RPC layer 			                         :Irene:
*** DONE Signal Handling                                                 :Irene:
** DONE Generic serialization/deserialization buffers                   :Austin:
** TEST Test intervals
** TEST Test pin sets

* Cache server implementation
** DONE Hash table implementation                                       :Austin:
** DONE Balanced binary tree implementation                             :Austin:
** DONE Version store                                                   :Austin:
** DONE Eviction                                                        :Austin:
** DONE Server                                                          :Austin:
** TEST Store corner cases
** TEST Eviction
** DONE Stubs                                                           :Austin:
** STARTED Signal for printing stats
** TODO Signal for flushing the cache
** TODO Implement support for alternate policies

* Pin cushion implementation
** DONE Pin table                                                        :Irene:
** DONE Pin server                                                       :Irene:
** TEST Test
** DONE Stubs                                                           :Austin:
** DONE Signal for printing stats                                        :Irene:
** DONE Signal for flushing the pin cushion                              :Irene:
** DONE Update pin timestamps if a pin is inserted again                 :Irene:

* Client binding-independent implementation
** DONE Spec interface                                                  :Austin:
** DONE Begin/commit                                                    :Austin:
** DONE Exec                                                            :Austin:
** DONE Enter/exit                                                      :Austin:
** TODO Pin policies
** TEST Test

* Client binding-dependent implementation
** DONE PHP bindings                                                    :Austin:
** DONE zval<->IOBuf routines                                           :Austin:
** TODO Lamport cookies

* Postgres implementation
** DONE Fix validity intervals for joins                                   :Dan:
** DONE Return timestamps of pins                                          :Dan:
** DONE Return latest timestamp instead of infinite                        :Dan:
** DONE Bound unbounded intervals                                          :Dan:
** DONE Garbage-collect xid->xstamp commit map                             :Dan:
** DONE Piggy-back validity on SELECTS                                     :Dan:
** DONE Optimize vacuum satisfiability check                               :Dan:
** DONE Fix aggregates                                                     :Dan:
** FIXED bug-1
** FIXED bug-2
** BUG Sometimes Postgres crashes during RUBiS initDB

* Evaluation
** Benchmark infrastructure
*** DONE Automate test running                                             :Dan:
*** DONE Automate DB server configuration                                  :Dan:
*** TODO Automate cache server setup                                       :Dan:
*** TODO Generate graphs
** DB performance
*** DONE Compare modified Postgres to stock (RUBiS)                        :Dan:
** RUBiS
*** DONE Figure out how to run RUBiS on MySQL                           :Austin:
*** DONE Port RUBiS to Postgres                                         :Austin:
*** DONE Wrap RUBiS code in functions                                   :Austin:
*** DONE Mark cachable functions in RUBiS                               :Austin:
*** DONE Optimize cachable functions                                    :Austin:
*** TODO Distribution for item viewing
** TODO Build straw-man LJ

* Paper
** DONE Write (and agree on) an outline                                    :Dan:
** STARTED Figures                                                       :Irene:
** STARTED Write introduction                                              :Dan:
** DONE Write architecture section                                         :Dan:
*** DONE Write programming model subsection                                :Dan:
** DONE Write "running transaction in the past" section                    :Dan:
*** DONE And find a better name for it!                                    :Dan:
** STARTED Write cache section                                             :Dan:
** DONE Write up DB modifications                                          :Dan:
** DONE Write library section                                              :Dan:
** TODO Write evaluation section
** DONE Write related work section                                       :Irene:
** TODO Write conclusion
** DONE Write abstract                                                     :Dan:

#+SEQ_TODO:  TODO STARTED DONE
#+SEQ_TODO:  BUG FIXED
#+SEQ_TODO:  TEST DONE
#+STARTUP:   nofold
# LocalWords: LocalWords TODO Postgres RUBiS RPC pseudocode deserialization
# LocalWords:  memcached
 
