On 31/07/2013 10:50 AM, Dale Harvey wrote:
>> I don't consider that a significant win *in isolation*.  (I also don't
>> consider it a lose; just want to be clear that this is not a killer
>> feature)
> 
> If we can avoid atomic multikey updates then in my opinion it is a huge
> win, the architecture looks very similiar to what couchdb was designed
> to handle and rewriting that on top of a database that wasnt designed in
> the same way in a way that is stable and handle a large volume of
> traffic is a huge undertaking, an auth layer is pretty much irrelevant
> in terms of additional work to get a working server (an auth layer
> wouldnt need to sit in front of couchdb, it could just be a token server)
> 
> If we have a hard requirement on atomic multikey writes (without any
> possibility of introducing conflicts) then it is a different story in
> terms of time to get a server running, but still a pretty huge task

I don't want to suggest that the server side is trivial here; it's going
to be a pretty huge task either way.

If CouchDB's semantics and API are a good fit for what we're trying to
do, great!  There's lots to like about it.  But if we go too far down
the road of "CouchDB++" then IMHO its value on the server side
deteriorates rapidly.

I agree that atomic multi-keys writes are probably the boundary of "too
far down that road".

To sanity-check my understanding: AFAICT the proposed queuesync model
requires only this small set of functionality:

   * JSON records, stored by key, with:
      * server-assigned version identifiers
      * atomic compare-and-swap
   * An API for doing bulk upload of new versions
      * maybe with cross-key consistency
   * An API for reading back changes, in order

Have I missed anything?

This seems straightforward to implement on top of CouchDB, minus the
cross-key consistency part.

It also seems straightforward to implement on top of the servers we
built and loadtested and almost-deployed for Sync2.0, including the
cross-key consistency part.

Would it be equivalently straightforward to implement on top of the
Dropbox APIs?

Without wanting to go Off-MVP here, perhaps this a small core protocol
that we can back with CouchDB for an initial fast-to-market
implementation, but also leave open as a possible integration point for
third-party storage services in the future.

(I hope this doesn't come across as argumentative.  I'm not trying to
advocate against CouchDB here!  I just want to be super clear about
where and how we plan to extract value from it, and what we might be
giving up in return.)


  Cheers,

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

Reply via email to