Labs/Bespin/DesignDocs/MetaData

< Labs‎ | Bespin‎ | DesignDocs
Revision as of 14:11, 5 May 2009 by JoeWalker (talk | contribs) (Created page with ' == Meta Data == === Examples === There are a number of areas where we have a growing need for a meta-data system: * status messages active on file save for future commit messa...')
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Meta Data

Examples

There are a number of areas where we have a growing need for a meta-data system:

  • status messages active on file save for future commit message
  • currently edited (unsaved) version of a file
  • diffs of old saved versions
  • diffs for server undo queue
  • chat logs associated with a file

Requirements

The meta-data system should:

  • Be accessed via an API so the disk layout can be changed in the future
  • Have 0 risk of data and meta-data files colliding
  • Should allow the storage of large amounts of data (e.g. the current edit version of a file)
  • Storage should count towards a users quota (TODO: Are there any cases where this should not be the case?)

Proposed Solution

Inside a users project directory we should have something like: - SomeProject/

 - example1.js
 - some-dir/
   - example2.js
 - ...

- SomeProjectMeta/

 - example1.js/
   - status-messages
   - live-edit
   - chat-log
   - ...
 - some-dir/
   - example2.js/
     - status-messages
     - live-edit
     - chat-log
     - ...

I think this system is extendable, and there isn't any danger that the data will collide with the meta-data.