[elephant-devel] BDB Replication
Ian Eslick
eslick at media.mit.edu
Mon Jan 5 21:52:38 UTC 2009
What confused me is that the documentation FAQ says that it doesn't
forward updates to the master and that this is the responsibility of
the application. However, it doesn't indicate where update message
are produced...
If it is simply a matter of forwarding low level messages, then this
is actually somewhat reasonable to implement. The communications
consists of registering a callback function in lisp from the BDB
library that sends and receives packets to/from the master.
Alternatively, we could have C functions implement the callbacks and
socket IO that BDB needs a callback into and thus avoid the chain of
conversions foreign bytes->lisp bytes->lisp stream->foreign bytes-
>network.
The steps would be:
- Change the way DBs are opened
- Add some code to start or respond to election events
- Add the communications support
- Socket IO
- BDB API callbacks and configuration
I won't be doing this anytime soon, but if someone wants to figure out
the BDB side of this and particularly the callbacks/comm layer I can
help integrate it into elephant.
Ian
On Jan 5, 2009, at 4:05 PM, Yarek Kowalik wrote:
> Ian,
>
> I think the later is what's supported/implemented by BDB:
>
> "Berkeley DB supports replication over multiple systems, enabling
> applications to scale massively with low latency and provide fault
> tolerance for high availability solutions. This technique works by
> having all updates go to a designated master, which distributes
> changes automatically to a set of replicas ..."
>
> http://www.oracle.com/technology/products/berkeley-db/db/index.html
>
> I'm not sure at this stage if there are any changes required within
> Elephant itself as this may just be an "off-the-shelf" capability of
> the BDB backend.
>
> Yarek
>
>
> On Mon, Jan 5, 2009 at 6:19 AM, Ian Eslick <eslick at media.mit.edu>
> wrote:
> For kicks I spent a little bit of time thinking about what it would
> take to make Elephant work with BDB replication. There is one thing I
> don't understand, if a client wants to initiate a write transaction on
> the master, does it have to be a completely application level process
> (for example, you have the execute-transaction function call run
> remotely) or can you do this at a lower level where you somehow
> forward the low level read/write log information from client to server
> to be committed?
>
> Ian
>
> _______________________________________________
> elephant-devel site list
> elephant-devel at common-lisp.net
> http://common-lisp.net/mailman/listinfo/elephant-devel
>
> _______________________________________________
> elephant-devel site list
> elephant-devel at common-lisp.net
> http://common-lisp.net/mailman/listinfo/elephant-devel
More information about the elephant-devel
mailing list