[infinispan-dev] Very confusing L1 cache configuration defaults
Galder Zamarreño
galder at redhat.com
Thu Mar 22 08:15:24 EDT 2012
While working on https://issues.jboss.org/browse/ISPN-1924, I've found myself asking a lot of the questions below, so let me try to add some light...
On Mar 21, 2012, at 3:21 PM, Michal Linhard wrote:
> Hi,
>
> when I was trying to figure out what is the L1 default configuration
>
> The JDG default: DISABLED
>
> when there is no l1-lifespan attribute in the element <distributed-cache
> />, L1 is disabled.
>
> The Infinispan default: DISABLED
>
> when there is no <l1/> element under <clustering/> element, or the <l1/>
> element is empty, L1 is disabled.
>
> However the hardwired default in the code is different:
> https://github.com/infinispan/infinispan/blob/master/core/src/main/java/org/infinispan/configuration/cache/L1ConfigurationBuilder.java#L36
> the enabled field is set to true.
^ The reason for this is because the old org.infinispan.config.Configuration.L1Type.enabled is true
The builder just matches what used to happen in the old config.
>
> this also means that L1ConfigurationBuilder prints a debug message: " L1
> is enabled and L1OnRehash was not defined, enabling it" even though L1
> won't be enabled in the end.
>
>
> The L1 is disabled because of the "activated" attribute.
> All I need to change is one attribute of L1Configuration (even unrelated
> to enablement) to "activate" it and it becomes enabled.
Again, I think this activated thing is legacy code again.
>
> I don't know what is the purpose of the "activated" attribute, it seems
> to be there for LegacyConfigurationAdaptor's purposes.
> But when we get rid of it we might make L1 by default enabled (by mistake)
I don't think so, the activated stuff is there for legacy.
>
> What's the desired default ?
> IMO L1 should be disabled by default, because without proper eviction
> settings, user can't very much control what's in each node's memory. And
> in general the performance tests don't show it performs better.
>
> Shouldn't we sync these ?
> Either set enabled = false in L1ConfigurationBuilder or allow enablement
> by default.
Leave it with me for ISPN-1924 (5.2) and I'll try to do both:
L1ConfigurationBuilder.enabled = false
And get rid of this activated flag that confuses things.
For ISPN-1924, I've been running the testsuite with the old configuration still in place.
This is a good thing because it means that whatever old configuration we had, it should still behave the same way.
So, I can easily test this and make sure that old L1 configuration will still work the same.
>
> m.
>
> --
> Michal Linhard
> Quality Assurance Engineer
> JBoss Datagrid
>
> Red Hat Czech s.r.o.
> Purkynova 99 612 45 Brno, Czech Republic
> phone: +420 532 294 320 ext. 62320
> mobile: +420 728 626 363
>
> _______________________________________________
> infinispan-dev mailing list
> infinispan-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/infinispan-dev
--
Galder Zamarreño
Sr. Software Engineer
Infinispan, JBoss Cache
More information about the infinispan-dev
mailing list