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