[erlang-questions] distributerl-0.1 (with improved Merkle trees)

Justin Sheehy <>
Mon Sep 15 17:35:47 CEST 2008

Hello Davies,

Thanks for your interest.

The current implementation does not yet make any attempt at space optimization only due to the fact that the single application it is actively used in does not happen to need very large trees in practice at this time.  I know of a few ways we could reduce the space used; they just haven't been worthwhile to focus on yet.

Also, the internal structure used for the trees right off was somewhat space-wasteful due to focusing the first swing more on being relatively easy to understand.  We're certainly interested in improving efficiency at some point - if you care about it now, I'd welcome either private discussion or patches in the interest of improvement.



On 9/15/08 11:07 AM, "Davies Liu" <> wrote:

I care about the Space-efficient of Merkle Tree,
how many keys (with length 20 bytes) can been stored in 1G memory?

Thank you.

Best regards,
Davies Liu

On Mon, Sep 15, 2008 at 9:53 PM, Justin Sheehy <> wrote:
Hello All,

(erlang-questions is on the CC list because there was interest in this topic
before and I do not know of a general announcement list for such things)

This is the second release of distributerl. The first had no version number,
and was mainly intended to get the code into the hands of other potential
users and experimenters as quickly as possible -- motivated by requests for
such code by projects including but not limited to the Kai project. The
distributerl-0.1 release is driven by two improvements to the Merkle Tree

   1. User-specified keys for objects are now arbitrary terms
      instead of being restricted to 160b binaries.
   2. A bug that caused incorrect diff/2 results has been fixed.

Due to item #2, any systems making use of merkerl.erl should upgrade.

A couple of smaller handy features were also added:

   1. New function merkerl:delete/2 means that items can be
      deleted from trees.
   2. New function merkerl:allkeys/1 will return the keys for
      all objects in a tree.

(The vclock and chash modules are unchanged in this release)

Future releases will include generic versioned objects, gossip protocol, and
proper packaging of the modules.

The project can be found at http://code.google.com/p/distributerl/

If you have any thoughts or questions about this, just drop me a line.



erlang-questions mailing list


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20080915/3714bbe6/attachment.html>

More information about the erlang-questions mailing list