What you want sounds a lot like Coral, which fragments chunks of a
replica listing across the reverse lookup path of a hash item in a
DHT. You should be able to find some information using citeseer or
something similar.

On Thu, Mar 6, 2008 at 7:58 PM, Karl Ebener <[EMAIL PROTECTED]> wrote:
> Hi,
>
>  I am trying to develop/improve a DHT for my thesis and I seem to have
>  come up with a problem I would love to discuss/hear your thoughts on:
>
>  I want different peers to store information using the same key. Let's
>  say, peer1 performs a Store-Operation with arguments (key,
>  <information1>), where <information1> is the data load. When a second
>  peer peer2 performs another Store-Operation with argument (key,
>  <information2>) I do not want <information2> to replace <information1>.
>  Instead, I need *one* peer to take the "old" <information1>, add
>  <information2>, perhaps just add <information2> as a second element of a
>  list, or even perform some calculations on it first, and then distribute
>  the complete result (e.g. a list <information1, information2>). More
>  peers will add to this list and elements will have to be removed, too.
>  Since a DHT is mainly just like a Java-Map, I need the map to store a
>  list denoted by the key, thus like
>
>  List<String> myList;
>  Map<Integer, myList> distributedList;
>
>  I am currently thinking of this as a special DHT-operation, e.g.
>  STOREINFO or STOREDATA or the like that uses the original
>  Store-information to publicize the aggregated data after adding it up.
>
>  What I do not want, is to store just a link to a list which is then
>  stored on *one* peer (=store just the peers address in the DHT) and then
>  let this one peer handle everything, which would be like storing
>  documents in a DHT, because I want to retain the data even if this *one*
>  peer leaves the network (with performing Leave-Operation or without), I
>  need this data to be distributed and replicated.
>
>  Now, I am trying to think of ways and of DHTs to easily accomplish this.
>  I was very impressed with Kademlia in general, there are some nice
>  Java-implementations out there that would greatly help (e.g. Mojito,
>  Plan-X).
>  However, Kademlia stores the information at the k peers, that are
>  closest to the "address" denoted by the key. When I want to update this
>  information, I have to make sure 1)  only one handles my STOREINFO, 2)
>  this one peer redistributes the changed data to all these k peers, 3)
>  all replicas are updated, 4) no other peer stores data on this key while
>  operations 1-3 are performed. This sounds complex and will most likely
>  fail in a distributed environment. It would no be a problem if it takes
>  some time until the new information is distributed and peers looking it
>  up get the old information until then, but I do not want the list to be
>  corrupted.
>  I am thinking of changing to Chord (OpenChord) where I imagine I might
>  have more control - but losing the advantages of Kademlia, unfortunately.
>
>  Does anyone here have a clue if I can accomplish this operation in a
>  "smarter" way, with a "smarter" DHT to build upon asf.????
>  I am grateful for any tips you have for me! If I am running completely
>  wrong and/or should just look at it another way or anything, I would
>  also like to hear it ;-)
>
>  Thanks very much
>  Karl
>  _______________________________________________
>  p2p-hackers mailing list
>  [email protected]
>  http://lists.zooko.com/mailman/listinfo/p2p-hackers
>
_______________________________________________
p2p-hackers mailing list
[email protected]
http://lists.zooko.com/mailman/listinfo/p2p-hackers

Reply via email to