ignite-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ivan Rakov <ivan.glu...@gmail.com>
Subject Re: Persistence per memory policy configuration
Date Mon, 02 Oct 2017 18:10:49 GMT
Denis,

Yes, you're right. All cache groups without specific data region 
configured will be persistent.
And if you want to add another persistent data region, you should set 
*isPeristenceEnabled* flag in its *DataRegionConfiguration* explictly.

Best Regards,
Ivan Rakov

On 02.10.2017 21:01, Denis Magda wrote:
> Missed the point with defaults. Makes sense to me now. So to wrap this up, if I want
to enable the persistence globally and don’t have any regions configured explicitly I need
to take the default region and switch the persistence on for it. Is my understanding correct?
>
> —
> Denis
>
>> On Oct 2, 2017, at 10:57 AM, Ivan Rakov <ivan.glukos@gmail.com> wrote:
>>
>> Denis, why do you need to access an instance of the default region bean? If you want
to set any parameter, just instantiate new bean with this parameter set (like in XML snipped
below). Other parameters will be automatically initialized with their default values.
>>
>> Best Regards,
>> Ivan Rakov
>>
>> On 02.10.2017 19:28, Denis Magda wrote:
>>>>>       <property name="dataStorageConfiguration">
>>>>>           <bean class="org.apache.ignite.configuration.DataStorageConfiguration">
>>>>>               <property name="systemCacheInitialSize" value="#{100
* 1024 * 1024}"/>
>>>>>               <property name="defaultRegionConfiguration">
>>>>>                   <bean class="org.apache.ignite.configuration.DataRegionConfiguration">
>>>>>                       <property name="maxSize" value="#{5 * 1024 *
102 * 1024}"/>
>>>>>                   </bean>
>>>>>               </property>
>>>>>           </bean>
>>>>>       </property>
>>>> In other data regions persistence will be disabled by default.
>>> Ivan, how to get an instance to the default region bean and change a parameter?
Obviously, if the goal is to enable the persistence I don’t want to create the default region
bean from scratch.
>>>
>>> —
>>> Denis
>>>
>>>> On Oct 2, 2017, at 9:11 AM, Ivan Rakov <ivan.glukos@gmail.com> wrote:
>>>>
>>>> Agree with Alexey.
>>>>
>>>> Properties like *defaultDataRegionSize*, *isDefaultPersistenceEnabled* can
confuse users who don't know that there's such thing as default data region. They can decide
they are inherited by all data regions where size and persistence flag are not explicitly
set.
>>>>
>>>> Let's get rid of these properties and add *defaultRegionConfiguration* property
with explicit configuration of default data region.
>>>>
>>>> Regarding XML configuration, changing size or persistence flag of default
data region will be just two lines longer (for bean description):
>>>>
>>>>>       <property name="dataStorageConfiguration">
>>>>>           <bean class="org.apache.ignite.configuration.DataStorageConfiguration">
>>>>>               <property name="systemCacheInitialSize" value="#{100
* 1024 * 1024}"/>
>>>>>               <property name="defaultRegionConfiguration">
>>>>>                   <bean class="org.apache.ignite.configuration.DataRegionConfiguration">
>>>>>                       <property name="maxSize" value="#{5 * 1024 *
102 * 1024}"/>
>>>>>                   </bean>
>>>>>               </property>
>>>>>           </bean>
>>>>>       </property>
>>>> In other data regions persistence will be disabled by default.
>>>> I've updated draft in https://issues.apache.org/jira/browse/IGNITE-6030 with
these changes.
>>>>
>>>> Best Regards,
>>>> Ivan Rakov
>>>>
>>>> On 02.10.2017 18:35, Denis Magda wrote:
>>>>>> To resolve this, I suggest to
>>>>>> introduce just another field defaultRegionConfiguration and get rid
of
>>>>>> other defaults in DataStorageConfiguration.
>>>>> Won’t it complicate the configuration from a Spring XML file? I’m
not an expert in Spring so how do I get defaultRegionConfiguration bean first to change any
parameter?
>>>>>
>>>>> —
>>>>> Denis
>>>>>
>>>>>> On Oct 2, 2017, at 8:30 AM, Alexey Goncharuk <alexey.goncharuk@gmail.com>
wrote:
>>>>>>
>>>>>> Agree with Vladimir. If we are to implement this, we would either
need to
>>>>>> have a Boolean (non-primitive) for persistenceEnabled on
>>>>>> DataRegionConfiguration, or introduce an enum for this field which
is also
>>>>>> an overkill. On the other hand, one can assume that the defaults
we are
>>>>>> talking about are actually inherited. To resolve this, I suggest
to
>>>>>> introduce just another field defaultRegionConfiguration and get rid
of
>>>>>> other defaults in DataStorageConfiguration.
>>>>>>
>>>>>> Thoughts?
>>>>>>
>>>>>> 2017-10-02 15:19 GMT+03:00 Ivan Rakov <ivan.glukos@gmail.com>:
>>>>>>
>>>>>>> Vladimir,
>>>>>>>
>>>>>>> I like your approach because it's easier to implement.
>>>>>>>
>>>>>>> However, user may be confused by setting *isDefaultPersistenceEnabled*
>>>>>>> flag and seeing that persistence is not enabled by default in
custom memory
>>>>>>> region. I'll add clarifying Javadoc at this place.
>>>>>>>
>>>>>>> Best Regards,
>>>>>>> Ivan Rakov
>>>>>>>
>>>>>>>
>>>>>>> On 02.10.2017 11:28, Vladimir Ozerov wrote:
>>>>>>>
>>>>>>>> Ivan,
>>>>>>>>
>>>>>>>> I do not think this is correct approach, because it will
be hard to
>>>>>>>> explain, and you will have to use "Boolean" instead of "boolean"
for
>>>>>>>> DataRegionConfiguration. I do not think we need default "persistence
>>>>>>>> enabled" for all regions. Instead, we should have "persistence
enabled"
>>>>>>>> flag for default region only. It should not be propagated
to custom
>>>>>>>> regions.
>>>>>>>>
>>>>>>>> On Mon, Oct 2, 2017 at 11:14 AM, Ivan Rakov <ivan.glukos@gmail.com>
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>> Guys, I think I got the point now.
>>>>>>>>> Let's check the final design:
>>>>>>>>>
>>>>>>>>> *DataStorageConfiguration* will have *isDefaultPersistenceEnabled*
>>>>>>>>> property (default = false), which will be used for enabling
persistence
>>>>>>>>> in
>>>>>>>>> default data region.
>>>>>>>>> *DataRegionConfiguration* will have *isPersistenceEnabled*
property,
>>>>>>>>> which
>>>>>>>>> will be used for enabling persistence in corresponding
data region. If
>>>>>>>>> value is not set, value of *DataStorageConfiguration::isD
>>>>>>>>> efaultPersistenceEnabled*
>>>>>>>>> will be used by default.
>>>>>>>>>
>>>>>>>>> Best Regards,
>>>>>>>>> Ivan Rakov
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On 02.10.2017 7:49, Dmitriy Setrakyan wrote:
>>>>>>>>>
>>>>>>>>> On Mon, Oct 2, 2017 at 7:46 AM, Denis Magda <dmagda@apache.org>
wrote:
>>>>>>>>>> On Oct 1, 2017, at 4:41 AM, Ivan Rakov <ivan.glukos@gmail.com>
wrote:
>>>>>>>>>>
>>>>>>>>>>> 1) You're right. I forgot to include the main
flag in
>>>>>>>>>>>> DataRegionConfiguration - *isPersistenceEnabled*.
Persistence will be
>>>>>>>>>>> enabled globally if at least one memory region
has this flag set.
>>>>>>>>>>>
>>>>>>>>>>> I’m confused. Why the persistence should be
enabled *globally* if the
>>>>>>>>>>> purpose is to have it set for a specific region?
If it’s enabled for
>>>>>>>>>>> region
>>>>>>>>>>> A only, I don’t want to have it activated for
region B.
>>>>>>>>>>>
>>>>>>>>>>> Yes, you are right. By default the persistence
will be disabled
>>>>>>>>>>> globally.
>>>>>>>>>>>
>>>>>>>>>> But we should also give users a way to switch the
default behavior from
>>>>>>>>>> in-memory only (no-persistence) to persistence.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message