On 31/07/2013 5:30 AM, Andreas Gal wrote:
> 
> I think using /_bulk_docs and /_changes is pretty efficient if the data
> model puts each item (bookmark, password, etc) in a separate CouchDB
> document. There's clearly a spectrum here:
> 
> * one-document DB, with one giant JSON blob containing all e.g.
>   bookmarks.
> 
> * one-document-per-bookmark
> 
> [...snip...]
> 
> One-doc-per-bookmark has a nightmare to keep consistent in the presence of 
> mutation, let alone concurrent mutation overlayed with a replication 
> mechanism. 


We've talked several times about representing bookmarks in a
one-record-per-bookmark setup with a kind of "materialized path" to
ensure that the tree remains consistent.  Rather than using parent/child
pointers, each record would embed its full path and ordering information
via a clever-sounding mechanism called "tumblers":

  https://en.wikipedia.org/wiki/Tumbler_%28Project_Xanadu%29

Has anyone written up the details of how this might work?

(I'd offer to write it up myself, but I'm pretty sure I don't understand
all the details)

If this representation works, maybe we get the best of both worlds.  If
it doesn't work, it would be good to have a concrete failure case that
shoots it down so that we can move on with confidence.


  Cheers,

    Ryan
_______________________________________________
Sync-dev mailing list
[email protected]
https://mail.mozilla.org/listinfo/sync-dev

Reply via email to