Proposed Server API

Data Model

API (objId below refers to (table, key)):

Note that using versions we can create higher-level synchronization primitives, but do we want cmpxchg or something similar for performance reasons?

Do we want reads/writes to be full-update only? What about appending writes or writes to subranges?

What do we want keys to be?

  1. Fixed n-bit length, set by system?
  2. hash(crud), user-defined?
  3. Variable-length blobs (generalization of above)?

Indexing

API (objId below refers to (table, key)):

We probably want multiple flavours of indexes (hash tables, trees, etc).