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());
>

Reply via email to