[Spread-users] Spread questions
mike at marketocracy.com
Mon Aug 12 10:43:17 EDT 2002
On 8/12/02 8:08 AM, "Eric C. Newton" <ecn at metaslash.com> wrote:
> Recall does most of what you are looking for. Even has an attr/value server.
> What is it that you are trying to accomplish with coordinator election?
> With VS, all members of a group get the group message successfully. No
> master required, or at least none that you see. What are you trying to
> accomplish w/two-phase commit? Is there another resource you are trying
> to coordinate? If your local commit fails, then you can call it a local
> failure, and shut down that node in the cluster.
> If you want to bring up a new node, you will need a way to snapshot
> current state, transfer it to the new node, and begin integrating the
> updates based upon the snapshot point. Adding a unique value to messages
> will ensure that a new group member will be able to synchronize properly.
> Recall has hooks for this sort of thing.
> Recall uses a master/slave scheme, uses CORBA for communications, and has
> fairly high performance, although it won't scale to hundreds of nodes.
Thanks for the pointer. I don't know if that will work for me since I'm not
using CORBA, nor really want to. I would like to build a solution that
works on top of Spread to cut down on the number of communications libraries
that I have to deal with :-) Ideally, since Spread supports group as well
as point-to-point communication, I should be able to use it for
point-to-point as well.
I have a unique number approach. I define a "system change number" that
starts at zero when bootstrapped to the initial state. Every write
transaction that is applied will increment this number. That way, peers
should only have to compare their SCN values instead of the entire state.
I need some performance (maybe 50 writes/second) and very little scalability
(2-3 nodes connected via switched 100Mbit).
So, in summary (to see if I have this right):
- I don't have to do a two phase commit protocol...I just need to send a
SAFE_MESS 'write transaction' message to the group, since everyone is
guaranteed to receive it before any successive read calls?
- Since I don't need to do two phase commit, I also don't need a coordinator
to drive it, so I don't need to deal with an election protocol.
More information about the Spread-users