[chord] what value does get return after multiple puts to a key?

Emil Sit sit at MIT.EDU
Thu Mar 31 00:13:22 EST 2005


Reza,

On Wed, 30 March 2005 at 14:19 (+0200), Reza AKBARINIA wrote:
> I am a PhD studnt and I am working on DHT P2P networks. I would like, 
> please, to know the result of the following operations on Chord:
> 
> put(k, value1);
> 
> put(k, value2);
> 
> ...
> 
> get(k)
> 
> 
> what is the result of get(k)? "value2"  or a set containing "value1" and 
> "value2"?

Strictly speaking, Chord is a look-up/routing protocol that
supports the operation node = lookup(key).  On top of that, we
would like to build a DHT (e.g. DHash) that supports put and get.
In our DHash implementation, we primarily support immutable data.
The 'put' operation only takes the value and generates a key based
on the value (in our implementation, the SHA-1 hash of the value).

There is some ongoing work on supporting mutable data in our
implementation (Athicha maybe can chime in here) --- providing
strong semantics for multiple writes turns out to be pretty
difficult, especially in light of network partitions and other
failures.  While one might ideally like to see "value2", it is more
likely that one would get either "value1", or "value2" or maybe
neither.

Some of the prior work from this group on the problem is documented
in the Ivy paper, available from http://project-iris.com/papers/.
You might also investigate other systems that support some form
of data mutation, perhaps such as Oceanstore, ePOST or Beehive, to
see how they do it.

-- 
Emil Sit / MIT CSAIL PDOS / http://pdos.lcs.mit.edu/chord/  



More information about the chord mailing list