We are studying the internals of JBossCache and we are wondering what exactly are the
performance reasons that made you choose to struture cache as a tree rather than as a flat
hastable.
In this tutorial:
http://www.jboss.org/file-access/default/members/jbosscache/freezone/docs...
We found this paragraph:
anonymous wrote : The first version of TreeCache was essentially a single HashMap that
replicated. However, the decision was taken to go with a tree structured cache because (a)
it is more flexible and efficient and (b) a tree can always be reduced to a map, thereby
offering both possibilities. The efficiency argument was driven by concerns over
replication overhead, and was that a value itself can be a rather sophisticated object,
with aggregation pointing to other objects, or an object containing many fields. A small
change in the object would therefore trigger the entire object (possibly the transitive
closure over the object graph) to be serialized and propagated to the other nodes in the
cluster. With a tree, only the modified nodes in the tree need to be serialized and
propagated. This is not necessarily a concern for TreeCache, but is a vital requirement
for PojoCache (as we will see in the separate PojoCache documentation).
|
We agree on the fact that a tree structure can be always reduced to a hashtable, but we do
not see particular difficulties in handling with incremental updates to replicate a
hashtable.
We could not find a previous discussion on this topic in the forum. So, we would
appreciate if someone can help us in better understanding the reasons underlying this
design choice.
Thanks in advance,
nuno
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4184913#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...