|
From: Ning L. <nin...@gm...> - 2008-04-23 16:00:30
|
On Tue, Apr 22, 2008 at 7:56 PM, Doug Cutting <cu...@ap...> wrote: > This is nice. Ideally the flow wouldn't require a lot of state. So > adding X' is triggered first (by turning on a new node or by splitting a > hot spot or somesuch). Once X' is online, then (2), (3) and (4) are > triggered by the over-replication, with a lock to permit only one > transaction at a time. There's no explicit plan or worklist. Instead, > the state can be evaluated at each point, and the highest priority > transaction can be executed. Repeat. > > So the algorithm might look like: > > condition: action: > ----------------------------------------------------- > under-replication start a replication > over-replication start a reduction > new node available add @ hottest spot > hot spot free a node > > These are priority-ordered. Only one action may be in progress at a > time in a given region of the ring. > > Does that work? Yep! Before I change the code to do the above, what do you think of the current implementation in terms of the master-host communication, the host-host communication, and the logic of the cleanup threads which make sure there is no data loss if no host goes down in the process? BTW, you are still enthusiastic about Bailey, right? :) Cheers, Ning |