|
From: Ning L. <nin...@gm...> - 2008-03-06 22:47:51
|
Here are the main features discussed so far:
1 Load balancing by using consistent hashing.
2 Fault tolerance by replications.
3 Online update by making all replicas updateable.
4 Eventual consistency.
- An update is sent to W replicas before it completes.
- Assume an application specifies doc version number.
- Using the terms in [1], we should support session
consistency and monotonic write consistency, and
maybe read-your-writes and monotonic read consistency.
5 A document database?
- We store documents anyway.
- We don't support sub-document updates.
- Do we support document versioning? Other features?
Here are a few comments on the features:
1 Consistent hashing uses hash values because hash values
distribute uniformly on the ring. Can we support
application-specified keys for the ring? The difference
is that the distribution may not be uniform so we need
to rebalance sometimes (remove a virtual node and insert
it somewhere else).
1 On the assumption that an application specifies document
version number. It greatly simplifies things, but is
it practical?
2 How much a document database we want it to be? I'm not
sure if CouchDB is a typical document database...
Design for the features is to come...
Ning
|