Services/KeyValueStorage: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
Line 24: Line 24:
It would be good to find and isolate some use cases in the existing Services apps.
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?
* Build a SyncStorage plugin that stores data in the KVStore?
Management features
* built-in quota system?  Will be more efficient than simulating it at a higher level.

Revision as of 04:21, 13 September 2011

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?
  • bulk insert, update or delete operations?

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?


Management features

  • built-in quota system? Will be more efficient than simulating it at a higher level.