Denis, Makes sense. Thanks for catching it!
On Sat, Sep 23, 2017 at 8:45 AM, Denis Magda <dma...@apache.org> wrote: > If we’re taking the consolidation path for Memory and Persistence > configurations then it makes sense to merge MemoryMetrics [1] and > PersistenceMetrics [2] plus their JMX beans. > > Agree? > > [1] https://ignite.apache.org/releases/latest/javadoc/org/ > apache/ignite/MemoryMetrics.html <https://ignite.apache.org/ > releases/latest/javadoc/org/apache/ignite/MemoryMetrics.html> > [2] https://ignite.apache.org/releases/latest/javadoc/org/apache/ignite/ > PersistenceMetrics.html > > — > Denis > > > On Sep 22, 2017, at 10:18 PM, Dmitriy Setrakyan <dsetrak...@apache.org> > wrote: > > > > I like it. > > > > Alexey G, can you please chime in? > > > > D. > > > > On Fri, Sep 22, 2017 at 11:33 AM, Vladimir Ozerov <voze...@gridgain.com> > > wrote: > > > >> Guys, > >> > >> Here is my proposal: > >> > >> 1) MemoryPolicyConfiguration is renamed to *DataRegionConfiguration*. > >> 2) PersistenceConfiguration is merged with MemoryConfiguration and > renamed > >> to ... *DataStorageConfiguration*! It has: common memory settings (e.g. > >> default data region), persistence settings (e.g. WAL) and a list of > >> DataRegionConfiguration beans. > >> > >> What we have in the end: > >> > >> <property name="dataConfiguration"> > >> <bean class="o.a.i.DataConfiguration"> > >> <property name="pageSize" value="8192" /> > >> <property name="persistentStorePath" value="/my/path" /> > >> <property name="dataRegions"> > >> <list> > >> <bean class="o.a.i.DataRegionConfiguration"> > >> <property name="name" value="VOLATILE" /> > >> <property name="maxSize" value="1_000_000_000" /> > >> </bean> > >> <bean class="o.a.i.DataRegionConfiguration"> > >> <property name="name" value="PERSISTENT" /> > >> <property name="maxSize" value="1_000_000_000" /> > >> <property name="persistent" value="true" /> > >> </bean> > >> </list> > >> </property> > >> </bean> > >> </property> > >> > >> > >> Makes sense? > >> > >> Vladimir. > >> > >> > >> On Thu, Sep 21, 2017 at 7:04 AM, Dmitriy Setrakyan < > dsetrak...@apache.org> > >> wrote: > >> > >>> Firstly all, why not call it DataPolicy instead of MemoryPolicy? > >> Secondly, > >>> why not set data policies directly on IgniteConfiguration. And lastly, > >> how > >>> about we combine memory and disk properties in one bean with clear > naming > >>> convention? > >>> > >>> Here is the example. Note that all properties above must start with > with > >>> "Memory" or "Disk". > >>> > >>> *IgniteConfiguration cfg = new IgniteConfiguration();* > >>> > >>> > >>> > >>> > >>>> > >>>> > >>>> > >>>> > >>>> *cfg.setDataPolicies( new DataPolicyConfiguration() > >>>> .setName("bla"), .setMemoryMaxSize(1024), // must be greater > >> than > >>> 0, > >>>> since memory always needs to be enabled. .setDiskMaxSize(0), // > >> if > >>>> greater than 0, then persistence is enabled. );* > >>> > >>> > >>> > >>> I think this approach is much more concise and straight forward. What > do > >>> you think? > >>> > >>> D. > >>> > >>> On Wed, Sep 20, 2017 at 4:55 AM, Vladimir Ozerov <voze...@gridgain.com > > > >>> wrote: > >>> > >>>> I prefer the second. Composition over inheritance - this is how all > our > >>>> configuration is crafted. > >>>> > >>>> E.g. we do not have "CacheConfiguration" and " > >>>> StoreEnabledCacheConfiguration". > >>>> Instead, we have "CacheConfiguration.setCacheStoreFactory". > >>>> > >>>> On Wed, Sep 20, 2017 at 2:46 PM, Alexey Goncharuk < > >>>> alexey.goncha...@gmail.com> wrote: > >>>> > >>>>> Reiterating this based on some feedback from PDS users. > >>>>> > >>>>> It might be confusing to configure persistence with "MemoryPolicy", > >> so > >>>>> another approach is to deprecate the old names and introduce a new > >> name > >>>>> "DataRegion" because it reflects the actual state when data is stored > >>> on > >>>>> disk and partially in memory. I have two options in mind, each of > >> them > >>>>> looks acceptable to me, so I would like to have some feedback from > >> the > >>>>> community. Old configuration names will be deprecated (but still be > >>> taken > >>>>> if used for backward compatibility). Note, that old names deprecation > >>>>> handles default configuration compatibility very nicely - current PDS > >>>> users > >>>>> will not need to change anything to keep everything working. The two > >>>>> options I mentioned are below: > >>>>> > >>>>> * we have two separate classes for in-memory and persisted data > >>> regions, > >>>>> so the configuration would look like so: > >>>>> > >>>>> IgniteConfiguration cfg = new IgniteConfiguration(); > >>>>> > >>>>> cfg.setDataRegionsConfiguration(new DataRegionsConfiguration() > >>>>> .setDataRegions( > >>>>> new MemoryDataRegion() > >>>>> .setName("volatileCaches") > >>>>> .setMaxMemorySize(...), > >>>>> new PersistentDataRegion() > >>>>> .setName("persistentCaches") > >>>>> .setMaxMemorySize(...) > >>>>> .setMaxDiskSize())); > >>>>> > >>>>> cfg.setPersistentStoreConfiguration(new > >> PersistentStoreConfiguration() > >>> ); > >>>>> > >>>>> > >>>>> * we have one class for data region configuration, but it will have a > >>>>> sub-bean for persistence configuration: > >>>>> > >>>>> IgniteConfiguration cfg = new IgniteConfiguration(); > >>>>> > >>>>> cfg.setDataRegionsConfiguration(new DataRegionsConfiguration() > >>>>> .setDataRegions( > >>>>> new DataRegion() > >>>>> .setName("volatileCaches") > >>>>> .setMaxMemorySize(...), > >>>>> new DataRegion() > >>>>> .setName("persistentCaches") > >>>>> .setMaxMemorySize(...), > >>>>> .setPersistenceConfiguration( > >>>>> new DataRegionPersistenceConfiguration() > >>>>> .setMaxDiskSize(...)))); > >>>>> > >>>>> cfg.setPersistentStoreConfiguration(new > >> PersistentStoreConfiguration() > >>> ); > >>>>> > >>>> > >>> > >> > >