<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On 26 Nov 2010, at 14:06, Eduardo Martins wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div>Currently JBoss Cache (along with JTA) is what is holding off<br>Mobicents performance improvements, a profiling session will put<br>everything related with JBC interaction as top hotspots. Note that<br>currently performance is not bad at all, we are at same level as<br>competition but in this business, and unlike Java EE, latency and<br>throughput is all that matters.<br><br>Tell me more about this indirection/references layer, since I believe<br>no locks on child insert/removals will be a must. Also note that we<br>will need to keep a transaction isolation similar to what JBoss Cache<br>provides now, so 2 parallel child inserts/removals must be handled<br>correctly at JTA level too, dunno if it matters at all but just want<br>to define what are the requirements.<br></div></blockquote><div><br></div><div>Well, step 1 should be for you to have a look at the srcs of the Tree module and see how it breaks up tree structured data into flat data. If this is what you would have done manually anyway, then it's already done for you. :-)</div><div><br></div><div><a href="https://github.com/infinispan/infinispan/tree/master/tree/">https://github.com/infinispan/infinispan/tree/master/tree/</a></div><br><blockquote type="cite"><div><br>-- Eduardo<br>..............................................<br><a href="http://emmartins.blogspot.com">http://emmartins.blogspot.com</a><br>http://redhat.com/solutions/telco<br><br>On Fri, Nov 26, 2010 at 1:54 PM, Manik Surtani <manik@jboss.org> wrote:<br><blockquote type="cite"><br></blockquote><blockquote type="cite">On 26 Nov 2010, at 13:38, Eduardo Martins wrote:<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><blockquote type="cite">You mean we will get 5-10% if implementing the parent, child relations<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">ourselves, where needed?<br></blockquote></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">Maybe. Since some of the relationships could be denormalized/flattened, etc.<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><blockquote type="cite">That would for sure be worth the data model<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">rework.<br></blockquote></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">Depends. How much of your time is spent in the data grid? 5%? So 5% x 5% = overall 0.25% gain? :-)<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><blockquote type="cite">The child relation would be done using a cache map entry with<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">a set/array value? If yes wouldn't that lock the parent on each child<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">insert/removal?<br></blockquote></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">Yes. Or you could use a layer of indirection/references which will then not lock the hierarchy.<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">-- Eduardo<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">..............................................<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">http://emmartins.blogspot.com<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">http://redhat.com/solutions/telco<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">On Fri, Nov 26, 2010 at 1:05 PM, Manik Surtani <manik@jboss.org> wrote:<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">On 25 Nov 2010, at 03:24, Eduardo Martins wrote:<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">Great, finally an easy migration from JBoss Cache.<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">Just to know our options in Mobicents future, are there any cons on<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">using this API? Is there a reason to change a data model/schema coming<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">from JBoss Cache, that really takes advantage of node relations<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">parent/child? For instance it's very common to retrieve the set of<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">childs for a node, another common usage is the removal for a complete<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">subtree. We have time to rework this data model if it's not the best<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">usage, we want it as fast as possible, both local and cluster/cloud<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">modes.<br></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">There is nothing wrong with using the Tree API, except that it doesn't perform as well as the flat API. Now don't let this scare you off - in terms of performance, we're talking 5 ~ 10% and if the API works better for you, then use it. But you should benchmark for yourself and see whether you need to extract this extra performance in exchange for reworking your data model. YMMV. :-)<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">Cheers<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">Manik<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">--<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">Manik Surtani<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">manik@jboss.org<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">Lead, Infinispan<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">Lead, JBoss Cache<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">http://www.infinispan.org<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">http://www.jbosscache.org<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">_______________________________________________<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">infinispan-dev mailing list<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">infinispan-dev@lists.jboss.org<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">https://lists.jboss.org/mailman/listinfo/infinispan-dev<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">_______________________________________________<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">infinispan-dev mailing list<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">infinispan-dev@lists.jboss.org<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">https://lists.jboss.org/mailman/listinfo/infinispan-dev<br></blockquote></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">--<br></blockquote><blockquote type="cite">Manik Surtani<br></blockquote><blockquote type="cite">manik@jboss.org<br></blockquote><blockquote type="cite">Lead, Infinispan<br></blockquote><blockquote type="cite">Lead, JBoss Cache<br></blockquote><blockquote type="cite">http://www.infinispan.org<br></blockquote><blockquote type="cite">http://www.jbosscache.org<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">_______________________________________________<br></blockquote><blockquote type="cite">infinispan-dev mailing list<br></blockquote><blockquote type="cite">infinispan-dev@lists.jboss.org<br></blockquote><blockquote type="cite">https://lists.jboss.org/mailman/listinfo/infinispan-dev<br></blockquote><blockquote type="cite"><br></blockquote><br>_______________________________________________<br>infinispan-dev mailing list<br>infinispan-dev@lists.jboss.org<br>https://lists.jboss.org/mailman/listinfo/infinispan-dev<br></div></blockquote></div><br><div>
<span class="Apple-style-span" style="font-size: 12px; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>--</div><div>Manik Surtani</div><div><a href="mailto:manik@jboss.org">manik@jboss.org</a></div><div>Lead, Infinispan</div><div>Lead, JBoss Cache</div><div><a href="http://www.infinispan.org">http://www.infinispan.org</a></div><div><a href="http://www.jbosscache.org">http://www.jbosscache.org</a></div><div><br></div></div></span><br class="Apple-interchange-newline"><br class="Apple-interchange-newline">
</div>
<br></body></html>