Services/KeyValueStorage

From MozillaWiki
< Services
Revision as of 07:47, 7 September 2011 by Rfkelly (talk | contribs) (Created page with "==Planning Questions== How simple can we get away with while still providing useful functionality? * maximum key size, value size? * key => single value? * key => set of values?...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Planning Questions

How simple can we get away with while still providing useful functionality?

  • maximum key size, value size?
  • key => single value?
  • key => set of values? (like e.g. riak with siblings enabled)
  • key + column => value? (like e.g. bigtable or cassandra)
  • keys in sorted order? (i.e. hash or btree?)
  • handling of concurrent edits, conflicts?

Crypto

  • can it sensibly be done at this layer, or do we need to defer to the application?
  • encrypted keys would make key-ordering useless

Authentication to App

  • can AppKeys be used for authentication, e.g. some sort of request signing with the app key?

We will probably want some sort of partitioning or "buckets".

  • AppKey => list of buckets?
  • AppKey + UserID => list of buckets?
  • can a bucket be shared between multiple apps? multiple users?

It would be good to find and isolate some use cases in the existing Services apps.

  • Build a SyncStorage plugin that stores data in the KVStore?