<div dir="ltr"><br><br><div class="gmail_quote"><div dir="ltr">On Thu, Oct 27, 2016 at 9:56 AM Pedro Ruivo <<a href="mailto:pedro@infinispan.org">pedro@infinispan.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br class="gmail_msg">
<br class="gmail_msg">
On 27-10-2016 14:20, William Burns wrote:<br class="gmail_msg">
><br class="gmail_msg">
><br class="gmail_msg">
> On Thu, Oct 27, 2016 at 4:56 AM Pedro Ruivo <<a href="mailto:pedro@infinispan.org" class="gmail_msg" target="_blank">pedro@infinispan.org</a><br class="gmail_msg">
> <mailto:<a href="mailto:pedro@infinispan.org" class="gmail_msg" target="_blank">pedro@infinispan.org</a>>> wrote:<br class="gmail_msg">
><br class="gmail_msg">
><br class="gmail_msg">
><br class="gmail_msg">
> On 26-10-2016 23:06, William Burns wrote:<br class="gmail_msg">
> > I have been working on adding in off heap support for a given<br class="gmail_msg">
> cache. I<br class="gmail_msg">
> > wanted to check in and let you all know what I was thinking for the<br class="gmail_msg">
> > configuration and changes that would come about with it.<br class="gmail_msg">
> ><br class="gmail_msg">
> > TLDR;<br class="gmail_msg">
> > New config under data container to enable off heap, StoreAsBinary<br class="gmail_msg">
> > removed, Equivalence removed<br class="gmail_msg">
> ><br class="gmail_msg">
> > First I was planning on adding new sub elements of data container.<br class="gmail_msg">
> > These would be instance, binary and off-heap. Only of the three could<br class="gmail_msg">
> > be picked as they are mutually exclusive. Instance is as we<br class="gmail_msg">
> operate now<br class="gmail_msg">
> > where we store the instance of the object passed to us. Binary is<br class="gmail_msg">
> > essentially what we have now that is called storeAsBinary with<br class="gmail_msg">
> both keys<br class="gmail_msg">
> > and values converted. Lastly off-heap would store the entry as a<br class="gmail_msg">
> byte[]<br class="gmail_msg">
> > store completely in native memory.<br class="gmail_msg">
><br class="gmail_msg">
> I prefer 'object' instead of 'instance'.<br class="gmail_msg">
><br class="gmail_msg">
><br class="gmail_msg">
> Sounds fine with me.<br class="gmail_msg">
><br class="gmail_msg">
><br class="gmail_msg">
><br class="gmail_msg">
> Are you also planning to remove the expiration and/or eviction<br class="gmail_msg">
> configuration elements and set them in the data-container sub elements?<br class="gmail_msg">
><br class="gmail_msg">
><br class="gmail_msg">
> I wasn't planning on touching those. But now that you mention it,<br class="gmail_msg">
> eviction only makes sense in the data container, where as expiration is<br class="gmail_msg">
> container and cache store. And taking this further storeAsBinary is<br class="gmail_msg">
> both as well, only off-heap is container only. I wonder if instead we<br class="gmail_msg">
> should have a separate storage element at the same level as<br class="gmail_msg">
> data-container. I can see it either way.<br class="gmail_msg">
<br class="gmail_msg">
Let me know if this makes sense:<br class="gmail_msg">
<br class="gmail_msg">
<expiration> //no changes here<br class="gmail_msg">
<memory evictionStrategy=... evictionPolicy=...><br class="gmail_msg">
<br class="gmail_msg">
//one of the following<br class="gmail_msg">
<on-heap max-entries=.../><br class="gmail_msg">
<on-heap-binary max-size=.../><br class="gmail_msg">
<off-heap ...max-size? and off-heap config.../><br class="gmail_msg">
<br class="gmail_msg">
</memory><br class="gmail_msg">
<persistence> //no changes here<br class="gmail_msg">
<br class="gmail_msg">
wdyt?<br class="gmail_msg"></blockquote><div><br></div><div>Seems fine to me. And to be honest I forgot to mention this but EvictionStrategy and EvictionPolicy are completely redundant now. Policy has been for a while as we always used the same thread and Strategy is only Caffeine and for off heap I was thinking of a simple LRU.</div><div><br></div><div>This means that the data container element would be removed in favor of "memory"? The reason being is that equivalence will be gone and afaik we never really supported a custom data container (eviction wouldn't work with it and neither would off heap). In that case why not just keep using data container element? </div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
><br class="gmail_msg">
><br class="gmail_msg">
><br class="gmail_msg">
><br class="gmail_msg">
> ><br class="gmail_msg">
> > Example:<br class="gmail_msg">
> ><br class="gmail_msg">
> > <data-container><br class="gmail_msg">
> > <off-heap/><br class="gmail_msg">
> > </data-container><br class="gmail_msg">
> ><br class="gmail_msg">
> > The reason it is a subelement instead of a property is because<br class="gmail_msg">
> off-heap<br class="gmail_msg">
> > will most likely require some additional configuration to tell how<br class="gmail_msg">
> many<br class="gmail_msg">
> > entries to store in the a bucket (think non resizing HashMap).<br class="gmail_msg">
> ><br class="gmail_msg">
> > With these changes storeAsBinary becomes redundant, so I was<br class="gmail_msg">
> planning on<br class="gmail_msg">
> > removing this configuration completely. I would rather remove since<br class="gmail_msg">
> > this is 9.0 and not deprecate. As far as I know nobody really used it<br class="gmail_msg">
> > before.<br class="gmail_msg">
> ><br class="gmail_msg">
> > Also another side effect is I was removing all of the Equivalence<br class="gmail_msg">
> > classes. I am not sure if I can plainly remove them since they have<br class="gmail_msg">
> > lived in commons for quite a while, but it would be best if I could,<br class="gmail_msg">
> > although I am fine deprecating. In its place the instance setting for<br class="gmail_msg">
> > data-container will always wrap byte[] to satisfy equals and hashCode<br class="gmail_msg">
> > methods.<br class="gmail_msg">
> ><br class="gmail_msg">
> > Any feedback would be appreciated.<br class="gmail_msg">
> ><br class="gmail_msg">
> > Thanks,<br class="gmail_msg">
> > - Will<br class="gmail_msg">
> ><br class="gmail_msg">
> ><br class="gmail_msg">
> > _______________________________________________<br class="gmail_msg">
> > infinispan-dev mailing list<br class="gmail_msg">
> > <a href="mailto:infinispan-dev@lists.jboss.org" class="gmail_msg" target="_blank">infinispan-dev@lists.jboss.org</a> <mailto:<a href="mailto:infinispan-dev@lists.jboss.org" class="gmail_msg" target="_blank">infinispan-dev@lists.jboss.org</a>><br class="gmail_msg">
> > <a href="https://lists.jboss.org/mailman/listinfo/infinispan-dev" rel="noreferrer" class="gmail_msg" target="_blank">https://lists.jboss.org/mailman/listinfo/infinispan-dev</a><br class="gmail_msg">
> ><br class="gmail_msg">
> _______________________________________________<br class="gmail_msg">
> infinispan-dev mailing list<br class="gmail_msg">
> <a href="mailto:infinispan-dev@lists.jboss.org" class="gmail_msg" target="_blank">infinispan-dev@lists.jboss.org</a> <mailto:<a href="mailto:infinispan-dev@lists.jboss.org" class="gmail_msg" target="_blank">infinispan-dev@lists.jboss.org</a>><br class="gmail_msg">
> <a href="https://lists.jboss.org/mailman/listinfo/infinispan-dev" rel="noreferrer" class="gmail_msg" target="_blank">https://lists.jboss.org/mailman/listinfo/infinispan-dev</a><br class="gmail_msg">
><br class="gmail_msg">
><br class="gmail_msg">
><br class="gmail_msg">
> _______________________________________________<br class="gmail_msg">
> infinispan-dev mailing list<br class="gmail_msg">
> <a href="mailto:infinispan-dev@lists.jboss.org" class="gmail_msg" target="_blank">infinispan-dev@lists.jboss.org</a><br class="gmail_msg">
> <a href="https://lists.jboss.org/mailman/listinfo/infinispan-dev" rel="noreferrer" class="gmail_msg" target="_blank">https://lists.jboss.org/mailman/listinfo/infinispan-dev</a><br class="gmail_msg">
><br class="gmail_msg">
_______________________________________________<br class="gmail_msg">
infinispan-dev mailing list<br class="gmail_msg">
<a href="mailto:infinispan-dev@lists.jboss.org" class="gmail_msg" target="_blank">infinispan-dev@lists.jboss.org</a><br class="gmail_msg">
<a href="https://lists.jboss.org/mailman/listinfo/infinispan-dev" rel="noreferrer" class="gmail_msg" target="_blank">https://lists.jboss.org/mailman/listinfo/infinispan-dev</a><br class="gmail_msg">
</blockquote></div></div>