You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ignite.apache.org by Denis Magda <dm...@apache.org> on 2017/05/26 01:00:07 UTC

Persistent Store example fails with NPE

Igniters,

I’ve just added the first Persistent Store example to the branch that fosters the donation:
https://github.com/apache/ignite/tree/ignite-5267/examples/src/main/java/org/apache/ignite/examples/persistentstore

However, the example fails with an NPE if a MemoryConfiguration is not defined explicitly:
https://issues.apache.org/jira/browse/IGNITE-5295

Please those who are involved in the store development fix the issue by the end of tomorrow. I want to complete with the technical documentation referring to a workable example.

—
Denis

Re: Persistent Store example fails with NPE

Posted by Denis Magda <dm...@apache.org>.
Well, merged the fix to the branch with the donation and closed the ticket:
https://issues.apache.org/jira/browse/IGNITE-5295 <https://issues.apache.org/jira/browse/IGNITE-5295>

—
Denis

> On May 26, 2017, at 1:25 PM, Denis Magda <dm...@apache.org> wrote:
> 
> As I see from the AffinityFunction implementations, client nodes are not used there that implies there is no way to deploy replicated and partitioned caches there.
> 
> —
> Denis
> 
>> On May 26, 2017, at 12:19 PM, Dmitriy Setrakyan <ds...@apache.org> wrote:
>> 
>> On Fri, May 26, 2017 at 12:17 PM, Denis Magda <dm...@apache.org> wrote:
>> 
>>> Local and near caches can be configured on clients. But you can still
>>> define replicated and partitioned ones in the clients’ configuration and
>>> they will be simply ignored. I want us to do the same for the persistent
>>> store (simply ignore it if it’s defined in a client’s configuration).
>>> 
>> 
>> Denis, are you absolutely 100% sure that there is no way to configure
>> normal cache on the client nodes? If yes, then I agree with you.
>> 
>> 
>>> Sounds reasonable?
>>> 
>>> 
>>> —
>>> Denis
>>> 
>>>> On May 26, 2017, at 12:14 PM, Dmitriy Setrakyan <ds...@apache.org>
>>> wrote:
>>>> 
>>>> On Fri, May 26, 2017 at 11:59 AM, Denis Magda <dm...@apache.org> wrote:
>>>> 
>>>>> Exactly, you can specify caches in the configuration of both clients and
>>>>> servers BUT the caches will be deployed on the servers only.
>>>>> This is why it’s absolutely fine to use a single configuration (with
>>>>> caches defined) for all your cluster nodes because Ignite can
>>> automatically
>>>>> figure out what doesn’t make sense for clients and what’s not.
>>>>> 
>>>> 
>>>> Agree. But it is still possible to configure caches on the client side,
>>>> right? All I want is for us to remain consistent and provide identical
>>>> behavior with persistence enabled.
>>>> 
>>>> 
>>>>> 
>>>>> —
>>>>> Denis
>>>>> 
>>>>>> On May 26, 2017, at 11:46 AM, Dmitriy Setrakyan <dsetrakyan@apache.org
>>>> 
>>>>> wrote:
>>>>>> 
>>>>>> Denis,
>>>>>> 
>>>>>> I think I misunderstand the issue. How do we do it for caches? Caches
>>> are
>>>>>> only supposed to be enabled on the servers by default. Do we require a
>>>>>> different configuration file for clients and servers for the caches?
>>>>>> 
>>>>>> D.
>>>>>> 
>>>>>> On Fri, May 26, 2017 at 11:41 AM, Denis Magda <dm...@apache.org>
>>> wrote:
>>>>>> 
>>>>>>> I tend to use a single XML configuration for all my cluster nodes
>>>>> (servers
>>>>>>> and clients). Presently, I forced to create and maintain at least 2.
>>>>> This
>>>>>>> is the first concern. The second concern is if persistence store has
>>> no
>>>>>>> effect for the client node why not simply ignore it and not make the
>>>>> user
>>>>>>> to set MemoryConfiguration explicitly if the goal is to use a single
>>> XML
>>>>>>> config.
>>>>>>> 
>>>>>>> —
>>>>>>> Denis
>>>>>>> 
>>>>>>>> On May 26, 2017, at 11:33 AM, Dmitriy Setrakyan <
>>> dsetrakyan@apache.org
>>>>>> 
>>>>>>> wrote:
>>>>>>>> 
>>>>>>>> On Fri, May 26, 2017 at 11:29 AM, Denis Magda <dmagda@apache.org
>>>>>>> <ma...@apache.org>> wrote:
>>>>>>>> 
>>>>>>>>>> Can we just fix the exception
>>>>>>>>>> message to clearly state that client mode requires all explicit
>>>>>>>>>> configuration for such and such functionality?
>>>>>>>>> 
>>>>>>>>> I don’t like this. It will require me as a user:
>>>>>>>>> 
>>>>>>>>> * have a separate configuration for clients ALL the times.
>>>>>>>>> * initialize the memory bean explicitly which looks like a hack and
>>>>>>>>> workaround
>>>>>>>>> 
>>>>>>>>> <property name="memoryConfiguration">
>>>>>>>>> <bean class="org.apache.ignite.configuration.MemoryConfiguration">
>>>>>>>>> </bean>
>>>>>>>>> </property>
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>> Denis,
>>>>>>>> 
>>>>>>>> Why would you even have a use case for a persistence configuration on
>>>>> the
>>>>>>>> client side? What happened in your case was a mistake and you should
>>>>> have
>>>>>>>> received a proper exception. I am simply suggesting that in the odd
>>>>> case
>>>>>>>> that someone does need it, we provide proper error message explaining
>>>>>>>> exactly what needs to be done. Why not?
>>>>>>>> 
>>>>>>>> 
>>>>>>>>>> On May 26, 2017, at 11:02 AM, Dmitriy Setrakyan <
>>>>> dsetrakyan@apache.org
>>>>>>>> 
>>>>>>>>> wrote:
>>>>>>>>>> 
>>>>>>>>>> I don't like ignoring any configuration, but I do agree that
>>> enabling
>>>>>>>>>> persistence on the client side seems odd. Can we just fix the
>>>>> exception
>>>>>>>>>> message to clearly state that client mode requires all explicit
>>>>>>>>>> configuration for such and such functionality?
>>>>>>>>>> 
>>>>>>>>>> D.
>>>>>>>>>> 
>>>>>>>>>> On Fri, May 26, 2017 at 10:34 AM, Sergey Chugunov <
>>>>>>>>> sergey.chugunov@gmail.com
>>>>>>>>>>> wrote:
>>>>>>>>>> 
>>>>>>>>>>> Denis,
>>>>>>>>>>> 
>>>>>>>>>>> Thanks for quick reply,
>>>>>>>>>>> 
>>>>>>>>>>> I made a change and tested it with your example, everything looks
>>>>>>> fine.
>>>>>>>>>>> 
>>>>>>>>>>> Pull request is open and available at [1]
>>>>>>>>>>> 
>>>>>>>>>>> [1] https://github.com/apache/ignite/pull/2016
>>>>>>>>>>> 
>>>>>>>>>>> On Fri, May 26, 2017 at 8:25 PM, Denis Magda <dm...@apache.org>
>>>>>>> wrote:
>>>>>>>>>>> 
>>>>>>>>>>>>> I would suggest on the first iteration to simply ignore
>>>>> persistence
>>>>>>>>>>>>> configuration on client nodes.
>>>>>>>>>>>>> If client node finds persistence configuration on startup it
>>> will
>>>>>>>>>>>> printout
>>>>>>>>>>>>> warning message to log and proceed without persistence.
>>>>>>>>>>>> 
>>>>>>>>>>>> +1 for this. Otherwise, it looks like a dirty hack when I need to
>>>>> add
>>>>>>>>> an
>>>>>>>>>>>> empty MemoryConfiguration to a client config file. Plus, it
>>>>> requires
>>>>>>> us
>>>>>>>>>>> to
>>>>>>>>>>>> create different configuration files for servers and clients
>>> which
>>>>>>> has
>>>>>>>>> to
>>>>>>>>>>>> be optional by default.
>>>>>>>>>>>> 
>>>>>>>>>>>> —
>>>>>>>>>>>> Denis
>>>>>>>>>>>> 
>>>>>>>>>>>>> On May 26, 2017, at 9:50 AM, Sergey Chugunov <
>>>>>>>>>>> sergey.chugunov@gmail.com>
>>>>>>>>>>>> wrote:
>>>>>>>>>>>>> 
>>>>>>>>>>>>> Moreover, enabling persistence on client node is very risky and
>>>>> may
>>>>>>>>>>> lead
>>>>>>>>>>>> to
>>>>>>>>>>>>> many tricky cases.
>>>>>>>>>>>>> 
>>>>>>>>>>>>> I would suggest on the first iteration to simply ignore
>>>>> persistence
>>>>>>>>>>>>> configuration on client nodes.
>>>>>>>>>>>>> If client node finds persistence configuration on startup it
>>> will
>>>>>>>>>>>> printout
>>>>>>>>>>>>> warning message to log and proceed without persistence.
>>>>>>>>>>>>> 
>>>>>>>>>>>>> Supporting persistence on client nodes definitely requires more
>>>>>>>>>>>> thoughtful
>>>>>>>>>>>>> discussion and may be added in the future.
>>>>>>>>>>>>> 
>>>>>>>>>>>>> Thanks,
>>>>>>>>>>>>> Sergey.
>>>>>>>>>>>>> 
>>>>>>>>>>>>> On Fri, May 26, 2017 at 7:28 PM, Sergey Chugunov <
>>>>>>>>>>>> sergey.chugunov@gmail.com>
>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>> 
>>>>>>>>>>>>>> Denis,
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> I see from example that you're trying to start a client node
>>> with
>>>>>>>>>>>>>> persistence configuration specified and you're saying that
>>> Ignite
>>>>>>>>> must
>>>>>>>>>>>>>> provide default MemoryConfiguration.
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> But that contradicts with decision we all agreed on in the
>>>>>>>>>>>> discussion[1]:
>>>>>>>>>>>>>> if user wants to do something unusual on client nodes like
>>>>> storing
>>>>>>>>>>> cache
>>>>>>>>>>>>>> partitions (or in this case persisting stuff) he/she *must
>>>>> *provide
>>>>>>>>>>> all
>>>>>>>>>>>>>> necessary configuration explicitly.
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> Server node with the same persistence configuration (and
>>> without
>>>>>>>>>>>> explicit
>>>>>>>>>>>>>> memory configuration) starts just fine.
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> [1] http://apache-ignite-developers.2346864.n4.nabble.
>>>>>>>>>>>>>> com/Question-local-cache-on-client-nodes-tt15950.html
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> Thanks,
>>>>>>>>>>>>>> Sergey.
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> On Fri, May 26, 2017 at 7:03 PM, Denis Magda <
>>> dmagda@apache.org>
>>>>>>>>>>> wrote:
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> Sergey,
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> The issue vanishes as soon as I add the following to the
>>>>>>>>>>> configuration:
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> <property name="memoryConfiguration">
>>>>>>>>>>>>>>> <bean class="org.apache.ignite.configuration.
>>>>>>>>>>> MemoryConfiguration">
>>>>>>>>>>>>>>> </bean>
>>>>>>>>>>>>>>> </property>
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> My point is that we just need to create a MemoryConfiguration
>>>>>>>>>>>> implicitly
>>>>>>>>>>>>>>> if it’s not defined (no any warnings or extra messages). It’s
>>> a
>>>>>>>>>>>>>>> responsibility of our platform to generate a default
>>>>> configuration
>>>>>>>>> if
>>>>>>>>>>>> it’s
>>>>>>>>>>>>>>> not set explicitly.
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> —
>>>>>>>>>>>>>>> Denis
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> On May 26, 2017, at 8:46 AM, Sergey Chugunov <
>>>>>>>>>>>> sergey.chugunov@gmail.com>
>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> Hi Denis,
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> What is the expected behavior in that case? Bug doesn't
>>> suggest
>>>>>>>>> any.
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> From my point of view it would be better to throw an
>>> exception
>>>>> on
>>>>>>>>>>>>>>> startup
>>>>>>>>>>>>>>>> with meaningful message than to silently create a default
>>>>>>>>>>>>>>>> MemoryConfiguration under the cover.
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> Thanks,
>>>>>>>>>>>>>>>> Sergey.
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> On Fri, May 26, 2017 at 4:00 AM, Denis Magda <
>>>>> dmagda@apache.org>
>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> Igniters,
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> I’ve just added the first Persistent Store example to the
>>>>> branch
>>>>>>>>>>> that
>>>>>>>>>>>>>>>>> fosters the donation:
>>>>>>>>>>>>>>>>> https://github.com/apache/ignite/tree/ignite-5267/
>>>>>>>>>>>>>>>>> examples/src/main/java/org/apache/ignite/examples/
>>>>>>> persistentstore
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> However, the example fails with an NPE if a
>>>>> MemoryConfiguration
>>>>>>> is
>>>>>>>>>>>> not
>>>>>>>>>>>>>>>>> defined explicitly:
>>>>>>>>>>>>>>>>> https://issues.apache.org/jira/browse/IGNITE-5295
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> Please those who are involved in the store development fix
>>> the
>>>>>>>>>>> issue
>>>>>>>>>>>> by
>>>>>>>>>>>>>>>>> the end of tomorrow. I want to complete with the technical
>>>>>>>>>>>>>>> documentation
>>>>>>>>>>>>>>>>> referring to a workable example.
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> —
>>>>>>>>>>>>>>>>> Denis
>>>>>>> 
>>>>>>> 
>>>>> 
>>>>> 
>>> 
>>> 
> 


Re: Persistent Store example fails with NPE

Posted by Denis Magda <dm...@apache.org>.
As I see from the AffinityFunction implementations, client nodes are not used there that implies there is no way to deploy replicated and partitioned caches there.

—
Denis

> On May 26, 2017, at 12:19 PM, Dmitriy Setrakyan <ds...@apache.org> wrote:
> 
> On Fri, May 26, 2017 at 12:17 PM, Denis Magda <dm...@apache.org> wrote:
> 
>> Local and near caches can be configured on clients. But you can still
>> define replicated and partitioned ones in the clients’ configuration and
>> they will be simply ignored. I want us to do the same for the persistent
>> store (simply ignore it if it’s defined in a client’s configuration).
>> 
> 
> Denis, are you absolutely 100% sure that there is no way to configure
> normal cache on the client nodes? If yes, then I agree with you.
> 
> 
>> Sounds reasonable?
>> 
>> 
>> —
>> Denis
>> 
>>> On May 26, 2017, at 12:14 PM, Dmitriy Setrakyan <ds...@apache.org>
>> wrote:
>>> 
>>> On Fri, May 26, 2017 at 11:59 AM, Denis Magda <dm...@apache.org> wrote:
>>> 
>>>> Exactly, you can specify caches in the configuration of both clients and
>>>> servers BUT the caches will be deployed on the servers only.
>>>> This is why it’s absolutely fine to use a single configuration (with
>>>> caches defined) for all your cluster nodes because Ignite can
>> automatically
>>>> figure out what doesn’t make sense for clients and what’s not.
>>>> 
>>> 
>>> Agree. But it is still possible to configure caches on the client side,
>>> right? All I want is for us to remain consistent and provide identical
>>> behavior with persistence enabled.
>>> 
>>> 
>>>> 
>>>> —
>>>> Denis
>>>> 
>>>>> On May 26, 2017, at 11:46 AM, Dmitriy Setrakyan <dsetrakyan@apache.org
>>> 
>>>> wrote:
>>>>> 
>>>>> Denis,
>>>>> 
>>>>> I think I misunderstand the issue. How do we do it for caches? Caches
>> are
>>>>> only supposed to be enabled on the servers by default. Do we require a
>>>>> different configuration file for clients and servers for the caches?
>>>>> 
>>>>> D.
>>>>> 
>>>>> On Fri, May 26, 2017 at 11:41 AM, Denis Magda <dm...@apache.org>
>> wrote:
>>>>> 
>>>>>> I tend to use a single XML configuration for all my cluster nodes
>>>> (servers
>>>>>> and clients). Presently, I forced to create and maintain at least 2.
>>>> This
>>>>>> is the first concern. The second concern is if persistence store has
>> no
>>>>>> effect for the client node why not simply ignore it and not make the
>>>> user
>>>>>> to set MemoryConfiguration explicitly if the goal is to use a single
>> XML
>>>>>> config.
>>>>>> 
>>>>>> —
>>>>>> Denis
>>>>>> 
>>>>>>> On May 26, 2017, at 11:33 AM, Dmitriy Setrakyan <
>> dsetrakyan@apache.org
>>>>> 
>>>>>> wrote:
>>>>>>> 
>>>>>>> On Fri, May 26, 2017 at 11:29 AM, Denis Magda <dmagda@apache.org
>>>>>> <ma...@apache.org>> wrote:
>>>>>>> 
>>>>>>>>> Can we just fix the exception
>>>>>>>>> message to clearly state that client mode requires all explicit
>>>>>>>>> configuration for such and such functionality?
>>>>>>>> 
>>>>>>>> I don’t like this. It will require me as a user:
>>>>>>>> 
>>>>>>>> * have a separate configuration for clients ALL the times.
>>>>>>>> * initialize the memory bean explicitly which looks like a hack and
>>>>>>>> workaround
>>>>>>>> 
>>>>>>>> <property name="memoryConfiguration">
>>>>>>>> <bean class="org.apache.ignite.configuration.MemoryConfiguration">
>>>>>>>> </bean>
>>>>>>>> </property>
>>>>>>>> 
>>>>>>>> 
>>>>>>> Denis,
>>>>>>> 
>>>>>>> Why would you even have a use case for a persistence configuration on
>>>> the
>>>>>>> client side? What happened in your case was a mistake and you should
>>>> have
>>>>>>> received a proper exception. I am simply suggesting that in the odd
>>>> case
>>>>>>> that someone does need it, we provide proper error message explaining
>>>>>>> exactly what needs to be done. Why not?
>>>>>>> 
>>>>>>> 
>>>>>>>>> On May 26, 2017, at 11:02 AM, Dmitriy Setrakyan <
>>>> dsetrakyan@apache.org
>>>>>>> 
>>>>>>>> wrote:
>>>>>>>>> 
>>>>>>>>> I don't like ignoring any configuration, but I do agree that
>> enabling
>>>>>>>>> persistence on the client side seems odd. Can we just fix the
>>>> exception
>>>>>>>>> message to clearly state that client mode requires all explicit
>>>>>>>>> configuration for such and such functionality?
>>>>>>>>> 
>>>>>>>>> D.
>>>>>>>>> 
>>>>>>>>> On Fri, May 26, 2017 at 10:34 AM, Sergey Chugunov <
>>>>>>>> sergey.chugunov@gmail.com
>>>>>>>>>> wrote:
>>>>>>>>> 
>>>>>>>>>> Denis,
>>>>>>>>>> 
>>>>>>>>>> Thanks for quick reply,
>>>>>>>>>> 
>>>>>>>>>> I made a change and tested it with your example, everything looks
>>>>>> fine.
>>>>>>>>>> 
>>>>>>>>>> Pull request is open and available at [1]
>>>>>>>>>> 
>>>>>>>>>> [1] https://github.com/apache/ignite/pull/2016
>>>>>>>>>> 
>>>>>>>>>> On Fri, May 26, 2017 at 8:25 PM, Denis Magda <dm...@apache.org>
>>>>>> wrote:
>>>>>>>>>> 
>>>>>>>>>>>> I would suggest on the first iteration to simply ignore
>>>> persistence
>>>>>>>>>>>> configuration on client nodes.
>>>>>>>>>>>> If client node finds persistence configuration on startup it
>> will
>>>>>>>>>>> printout
>>>>>>>>>>>> warning message to log and proceed without persistence.
>>>>>>>>>>> 
>>>>>>>>>>> +1 for this. Otherwise, it looks like a dirty hack when I need to
>>>> add
>>>>>>>> an
>>>>>>>>>>> empty MemoryConfiguration to a client config file. Plus, it
>>>> requires
>>>>>> us
>>>>>>>>>> to
>>>>>>>>>>> create different configuration files for servers and clients
>> which
>>>>>> has
>>>>>>>> to
>>>>>>>>>>> be optional by default.
>>>>>>>>>>> 
>>>>>>>>>>> —
>>>>>>>>>>> Denis
>>>>>>>>>>> 
>>>>>>>>>>>> On May 26, 2017, at 9:50 AM, Sergey Chugunov <
>>>>>>>>>> sergey.chugunov@gmail.com>
>>>>>>>>>>> wrote:
>>>>>>>>>>>> 
>>>>>>>>>>>> Moreover, enabling persistence on client node is very risky and
>>>> may
>>>>>>>>>> lead
>>>>>>>>>>> to
>>>>>>>>>>>> many tricky cases.
>>>>>>>>>>>> 
>>>>>>>>>>>> I would suggest on the first iteration to simply ignore
>>>> persistence
>>>>>>>>>>>> configuration on client nodes.
>>>>>>>>>>>> If client node finds persistence configuration on startup it
>> will
>>>>>>>>>>> printout
>>>>>>>>>>>> warning message to log and proceed without persistence.
>>>>>>>>>>>> 
>>>>>>>>>>>> Supporting persistence on client nodes definitely requires more
>>>>>>>>>>> thoughtful
>>>>>>>>>>>> discussion and may be added in the future.
>>>>>>>>>>>> 
>>>>>>>>>>>> Thanks,
>>>>>>>>>>>> Sergey.
>>>>>>>>>>>> 
>>>>>>>>>>>> On Fri, May 26, 2017 at 7:28 PM, Sergey Chugunov <
>>>>>>>>>>> sergey.chugunov@gmail.com>
>>>>>>>>>>>> wrote:
>>>>>>>>>>>> 
>>>>>>>>>>>>> Denis,
>>>>>>>>>>>>> 
>>>>>>>>>>>>> I see from example that you're trying to start a client node
>> with
>>>>>>>>>>>>> persistence configuration specified and you're saying that
>> Ignite
>>>>>>>> must
>>>>>>>>>>>>> provide default MemoryConfiguration.
>>>>>>>>>>>>> 
>>>>>>>>>>>>> But that contradicts with decision we all agreed on in the
>>>>>>>>>>> discussion[1]:
>>>>>>>>>>>>> if user wants to do something unusual on client nodes like
>>>> storing
>>>>>>>>>> cache
>>>>>>>>>>>>> partitions (or in this case persisting stuff) he/she *must
>>>> *provide
>>>>>>>>>> all
>>>>>>>>>>>>> necessary configuration explicitly.
>>>>>>>>>>>>> 
>>>>>>>>>>>>> Server node with the same persistence configuration (and
>> without
>>>>>>>>>>> explicit
>>>>>>>>>>>>> memory configuration) starts just fine.
>>>>>>>>>>>>> 
>>>>>>>>>>>>> [1] http://apache-ignite-developers.2346864.n4.nabble.
>>>>>>>>>>>>> com/Question-local-cache-on-client-nodes-tt15950.html
>>>>>>>>>>>>> 
>>>>>>>>>>>>> Thanks,
>>>>>>>>>>>>> Sergey.
>>>>>>>>>>>>> 
>>>>>>>>>>>>> On Fri, May 26, 2017 at 7:03 PM, Denis Magda <
>> dmagda@apache.org>
>>>>>>>>>> wrote:
>>>>>>>>>>>>> 
>>>>>>>>>>>>>> Sergey,
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> The issue vanishes as soon as I add the following to the
>>>>>>>>>> configuration:
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> <property name="memoryConfiguration">
>>>>>>>>>>>>>> <bean class="org.apache.ignite.configuration.
>>>>>>>>>> MemoryConfiguration">
>>>>>>>>>>>>>> </bean>
>>>>>>>>>>>>>> </property>
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> My point is that we just need to create a MemoryConfiguration
>>>>>>>>>>> implicitly
>>>>>>>>>>>>>> if it’s not defined (no any warnings or extra messages). It’s
>> a
>>>>>>>>>>>>>> responsibility of our platform to generate a default
>>>> configuration
>>>>>>>> if
>>>>>>>>>>> it’s
>>>>>>>>>>>>>> not set explicitly.
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> —
>>>>>>>>>>>>>> Denis
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> On May 26, 2017, at 8:46 AM, Sergey Chugunov <
>>>>>>>>>>> sergey.chugunov@gmail.com>
>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> Hi Denis,
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> What is the expected behavior in that case? Bug doesn't
>> suggest
>>>>>>>> any.
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> From my point of view it would be better to throw an
>> exception
>>>> on
>>>>>>>>>>>>>> startup
>>>>>>>>>>>>>>> with meaningful message than to silently create a default
>>>>>>>>>>>>>>> MemoryConfiguration under the cover.
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> Thanks,
>>>>>>>>>>>>>>> Sergey.
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> On Fri, May 26, 2017 at 4:00 AM, Denis Magda <
>>>> dmagda@apache.org>
>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> Igniters,
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> I’ve just added the first Persistent Store example to the
>>>> branch
>>>>>>>>>> that
>>>>>>>>>>>>>>>> fosters the donation:
>>>>>>>>>>>>>>>> https://github.com/apache/ignite/tree/ignite-5267/
>>>>>>>>>>>>>>>> examples/src/main/java/org/apache/ignite/examples/
>>>>>> persistentstore
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> However, the example fails with an NPE if a
>>>> MemoryConfiguration
>>>>>> is
>>>>>>>>>>> not
>>>>>>>>>>>>>>>> defined explicitly:
>>>>>>>>>>>>>>>> https://issues.apache.org/jira/browse/IGNITE-5295
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> Please those who are involved in the store development fix
>> the
>>>>>>>>>> issue
>>>>>>>>>>> by
>>>>>>>>>>>>>>>> the end of tomorrow. I want to complete with the technical
>>>>>>>>>>>>>> documentation
>>>>>>>>>>>>>>>> referring to a workable example.
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> —
>>>>>>>>>>>>>>>> Denis
>>>>>> 
>>>>>> 
>>>> 
>>>> 
>> 
>> 


Re: Persistent Store example fails with NPE

Posted by Dmitriy Setrakyan <ds...@apache.org>.
On Fri, May 26, 2017 at 12:17 PM, Denis Magda <dm...@apache.org> wrote:

> Local and near caches can be configured on clients. But you can still
> define replicated and partitioned ones in the clients’ configuration and
> they will be simply ignored. I want us to do the same for the persistent
> store (simply ignore it if it’s defined in a client’s configuration).
>

Denis, are you absolutely 100% sure that there is no way to configure
normal cache on the client nodes? If yes, then I agree with you.


> Sounds reasonable?
>
>
> —
> Denis
>
> > On May 26, 2017, at 12:14 PM, Dmitriy Setrakyan <ds...@apache.org>
> wrote:
> >
> > On Fri, May 26, 2017 at 11:59 AM, Denis Magda <dm...@apache.org> wrote:
> >
> >> Exactly, you can specify caches in the configuration of both clients and
> >> servers BUT the caches will be deployed on the servers only.
> >> This is why it’s absolutely fine to use a single configuration (with
> >> caches defined) for all your cluster nodes because Ignite can
> automatically
> >> figure out what doesn’t make sense for clients and what’s not.
> >>
> >
> > Agree. But it is still possible to configure caches on the client side,
> > right? All I want is for us to remain consistent and provide identical
> > behavior with persistence enabled.
> >
> >
> >>
> >> —
> >> Denis
> >>
> >>> On May 26, 2017, at 11:46 AM, Dmitriy Setrakyan <dsetrakyan@apache.org
> >
> >> wrote:
> >>>
> >>> Denis,
> >>>
> >>> I think I misunderstand the issue. How do we do it for caches? Caches
> are
> >>> only supposed to be enabled on the servers by default. Do we require a
> >>> different configuration file for clients and servers for the caches?
> >>>
> >>> D.
> >>>
> >>> On Fri, May 26, 2017 at 11:41 AM, Denis Magda <dm...@apache.org>
> wrote:
> >>>
> >>>> I tend to use a single XML configuration for all my cluster nodes
> >> (servers
> >>>> and clients). Presently, I forced to create and maintain at least 2.
> >> This
> >>>> is the first concern. The second concern is if persistence store has
> no
> >>>> effect for the client node why not simply ignore it and not make the
> >> user
> >>>> to set MemoryConfiguration explicitly if the goal is to use a single
> XML
> >>>> config.
> >>>>
> >>>> —
> >>>> Denis
> >>>>
> >>>>> On May 26, 2017, at 11:33 AM, Dmitriy Setrakyan <
> dsetrakyan@apache.org
> >>>
> >>>> wrote:
> >>>>>
> >>>>> On Fri, May 26, 2017 at 11:29 AM, Denis Magda <dmagda@apache.org
> >>>> <ma...@apache.org>> wrote:
> >>>>>
> >>>>>>> Can we just fix the exception
> >>>>>>> message to clearly state that client mode requires all explicit
> >>>>>>> configuration for such and such functionality?
> >>>>>>
> >>>>>> I don’t like this. It will require me as a user:
> >>>>>>
> >>>>>> * have a separate configuration for clients ALL the times.
> >>>>>> * initialize the memory bean explicitly which looks like a hack and
> >>>>>> workaround
> >>>>>>
> >>>>>> <property name="memoryConfiguration">
> >>>>>> <bean class="org.apache.ignite.configuration.MemoryConfiguration">
> >>>>>> </bean>
> >>>>>> </property>
> >>>>>>
> >>>>>>
> >>>>> Denis,
> >>>>>
> >>>>> Why would you even have a use case for a persistence configuration on
> >> the
> >>>>> client side? What happened in your case was a mistake and you should
> >> have
> >>>>> received a proper exception. I am simply suggesting that in the odd
> >> case
> >>>>> that someone does need it, we provide proper error message explaining
> >>>>> exactly what needs to be done. Why not?
> >>>>>
> >>>>>
> >>>>>>> On May 26, 2017, at 11:02 AM, Dmitriy Setrakyan <
> >> dsetrakyan@apache.org
> >>>>>
> >>>>>> wrote:
> >>>>>>>
> >>>>>>> I don't like ignoring any configuration, but I do agree that
> enabling
> >>>>>>> persistence on the client side seems odd. Can we just fix the
> >> exception
> >>>>>>> message to clearly state that client mode requires all explicit
> >>>>>>> configuration for such and such functionality?
> >>>>>>>
> >>>>>>> D.
> >>>>>>>
> >>>>>>> On Fri, May 26, 2017 at 10:34 AM, Sergey Chugunov <
> >>>>>> sergey.chugunov@gmail.com
> >>>>>>>> wrote:
> >>>>>>>
> >>>>>>>> Denis,
> >>>>>>>>
> >>>>>>>> Thanks for quick reply,
> >>>>>>>>
> >>>>>>>> I made a change and tested it with your example, everything looks
> >>>> fine.
> >>>>>>>>
> >>>>>>>> Pull request is open and available at [1]
> >>>>>>>>
> >>>>>>>> [1] https://github.com/apache/ignite/pull/2016
> >>>>>>>>
> >>>>>>>> On Fri, May 26, 2017 at 8:25 PM, Denis Magda <dm...@apache.org>
> >>>> wrote:
> >>>>>>>>
> >>>>>>>>>> I would suggest on the first iteration to simply ignore
> >> persistence
> >>>>>>>>>> configuration on client nodes.
> >>>>>>>>>> If client node finds persistence configuration on startup it
> will
> >>>>>>>>> printout
> >>>>>>>>>> warning message to log and proceed without persistence.
> >>>>>>>>>
> >>>>>>>>> +1 for this. Otherwise, it looks like a dirty hack when I need to
> >> add
> >>>>>> an
> >>>>>>>>> empty MemoryConfiguration to a client config file. Plus, it
> >> requires
> >>>> us
> >>>>>>>> to
> >>>>>>>>> create different configuration files for servers and clients
> which
> >>>> has
> >>>>>> to
> >>>>>>>>> be optional by default.
> >>>>>>>>>
> >>>>>>>>> —
> >>>>>>>>> Denis
> >>>>>>>>>
> >>>>>>>>>> On May 26, 2017, at 9:50 AM, Sergey Chugunov <
> >>>>>>>> sergey.chugunov@gmail.com>
> >>>>>>>>> wrote:
> >>>>>>>>>>
> >>>>>>>>>> Moreover, enabling persistence on client node is very risky and
> >> may
> >>>>>>>> lead
> >>>>>>>>> to
> >>>>>>>>>> many tricky cases.
> >>>>>>>>>>
> >>>>>>>>>> I would suggest on the first iteration to simply ignore
> >> persistence
> >>>>>>>>>> configuration on client nodes.
> >>>>>>>>>> If client node finds persistence configuration on startup it
> will
> >>>>>>>>> printout
> >>>>>>>>>> warning message to log and proceed without persistence.
> >>>>>>>>>>
> >>>>>>>>>> Supporting persistence on client nodes definitely requires more
> >>>>>>>>> thoughtful
> >>>>>>>>>> discussion and may be added in the future.
> >>>>>>>>>>
> >>>>>>>>>> Thanks,
> >>>>>>>>>> Sergey.
> >>>>>>>>>>
> >>>>>>>>>> On Fri, May 26, 2017 at 7:28 PM, Sergey Chugunov <
> >>>>>>>>> sergey.chugunov@gmail.com>
> >>>>>>>>>> wrote:
> >>>>>>>>>>
> >>>>>>>>>>> Denis,
> >>>>>>>>>>>
> >>>>>>>>>>> I see from example that you're trying to start a client node
> with
> >>>>>>>>>>> persistence configuration specified and you're saying that
> Ignite
> >>>>>> must
> >>>>>>>>>>> provide default MemoryConfiguration.
> >>>>>>>>>>>
> >>>>>>>>>>> But that contradicts with decision we all agreed on in the
> >>>>>>>>> discussion[1]:
> >>>>>>>>>>> if user wants to do something unusual on client nodes like
> >> storing
> >>>>>>>> cache
> >>>>>>>>>>> partitions (or in this case persisting stuff) he/she *must
> >> *provide
> >>>>>>>> all
> >>>>>>>>>>> necessary configuration explicitly.
> >>>>>>>>>>>
> >>>>>>>>>>> Server node with the same persistence configuration (and
> without
> >>>>>>>>> explicit
> >>>>>>>>>>> memory configuration) starts just fine.
> >>>>>>>>>>>
> >>>>>>>>>>> [1] http://apache-ignite-developers.2346864.n4.nabble.
> >>>>>>>>>>> com/Question-local-cache-on-client-nodes-tt15950.html
> >>>>>>>>>>>
> >>>>>>>>>>> Thanks,
> >>>>>>>>>>> Sergey.
> >>>>>>>>>>>
> >>>>>>>>>>> On Fri, May 26, 2017 at 7:03 PM, Denis Magda <
> dmagda@apache.org>
> >>>>>>>> wrote:
> >>>>>>>>>>>
> >>>>>>>>>>>> Sergey,
> >>>>>>>>>>>>
> >>>>>>>>>>>> The issue vanishes as soon as I add the following to the
> >>>>>>>> configuration:
> >>>>>>>>>>>>
> >>>>>>>>>>>> <property name="memoryConfiguration">
> >>>>>>>>>>>> <bean class="org.apache.ignite.configuration.
> >>>>>>>> MemoryConfiguration">
> >>>>>>>>>>>> </bean>
> >>>>>>>>>>>> </property>
> >>>>>>>>>>>>
> >>>>>>>>>>>> My point is that we just need to create a MemoryConfiguration
> >>>>>>>>> implicitly
> >>>>>>>>>>>> if it’s not defined (no any warnings or extra messages). It’s
> a
> >>>>>>>>>>>> responsibility of our platform to generate a default
> >> configuration
> >>>>>> if
> >>>>>>>>> it’s
> >>>>>>>>>>>> not set explicitly.
> >>>>>>>>>>>>
> >>>>>>>>>>>> —
> >>>>>>>>>>>> Denis
> >>>>>>>>>>>>
> >>>>>>>>>>>>> On May 26, 2017, at 8:46 AM, Sergey Chugunov <
> >>>>>>>>> sergey.chugunov@gmail.com>
> >>>>>>>>>>>> wrote:
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> Hi Denis,
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> What is the expected behavior in that case? Bug doesn't
> suggest
> >>>>>> any.
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> From my point of view it would be better to throw an
> exception
> >> on
> >>>>>>>>>>>> startup
> >>>>>>>>>>>>> with meaningful message than to silently create a default
> >>>>>>>>>>>>> MemoryConfiguration under the cover.
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> Thanks,
> >>>>>>>>>>>>> Sergey.
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> On Fri, May 26, 2017 at 4:00 AM, Denis Magda <
> >> dmagda@apache.org>
> >>>>>>>>> wrote:
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>> Igniters,
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> I’ve just added the first Persistent Store example to the
> >> branch
> >>>>>>>> that
> >>>>>>>>>>>>>> fosters the donation:
> >>>>>>>>>>>>>> https://github.com/apache/ignite/tree/ignite-5267/
> >>>>>>>>>>>>>> examples/src/main/java/org/apache/ignite/examples/
> >>>> persistentstore
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> However, the example fails with an NPE if a
> >> MemoryConfiguration
> >>>> is
> >>>>>>>>> not
> >>>>>>>>>>>>>> defined explicitly:
> >>>>>>>>>>>>>> https://issues.apache.org/jira/browse/IGNITE-5295
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> Please those who are involved in the store development fix
> the
> >>>>>>>> issue
> >>>>>>>>> by
> >>>>>>>>>>>>>> the end of tomorrow. I want to complete with the technical
> >>>>>>>>>>>> documentation
> >>>>>>>>>>>>>> referring to a workable example.
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> —
> >>>>>>>>>>>>>> Denis
> >>>>
> >>>>
> >>
> >>
>
>

Re: Persistent Store example fails with NPE

Posted by Denis Magda <dm...@apache.org>.
Local and near caches can be configured on clients. But you can still define replicated and partitioned ones in the clients’ configuration and they will be simply ignored. I want us to do the same for the persistent store (simply ignore it if it’s defined in a client’s configuration).

Sounds reasonable?


—
Denis

> On May 26, 2017, at 12:14 PM, Dmitriy Setrakyan <ds...@apache.org> wrote:
> 
> On Fri, May 26, 2017 at 11:59 AM, Denis Magda <dm...@apache.org> wrote:
> 
>> Exactly, you can specify caches in the configuration of both clients and
>> servers BUT the caches will be deployed on the servers only.
>> This is why it’s absolutely fine to use a single configuration (with
>> caches defined) for all your cluster nodes because Ignite can automatically
>> figure out what doesn’t make sense for clients and what’s not.
>> 
> 
> Agree. But it is still possible to configure caches on the client side,
> right? All I want is for us to remain consistent and provide identical
> behavior with persistence enabled.
> 
> 
>> 
>> —
>> Denis
>> 
>>> On May 26, 2017, at 11:46 AM, Dmitriy Setrakyan <ds...@apache.org>
>> wrote:
>>> 
>>> Denis,
>>> 
>>> I think I misunderstand the issue. How do we do it for caches? Caches are
>>> only supposed to be enabled on the servers by default. Do we require a
>>> different configuration file for clients and servers for the caches?
>>> 
>>> D.
>>> 
>>> On Fri, May 26, 2017 at 11:41 AM, Denis Magda <dm...@apache.org> wrote:
>>> 
>>>> I tend to use a single XML configuration for all my cluster nodes
>> (servers
>>>> and clients). Presently, I forced to create and maintain at least 2.
>> This
>>>> is the first concern. The second concern is if persistence store has no
>>>> effect for the client node why not simply ignore it and not make the
>> user
>>>> to set MemoryConfiguration explicitly if the goal is to use a single XML
>>>> config.
>>>> 
>>>> —
>>>> Denis
>>>> 
>>>>> On May 26, 2017, at 11:33 AM, Dmitriy Setrakyan <dsetrakyan@apache.org
>>> 
>>>> wrote:
>>>>> 
>>>>> On Fri, May 26, 2017 at 11:29 AM, Denis Magda <dmagda@apache.org
>>>> <ma...@apache.org>> wrote:
>>>>> 
>>>>>>> Can we just fix the exception
>>>>>>> message to clearly state that client mode requires all explicit
>>>>>>> configuration for such and such functionality?
>>>>>> 
>>>>>> I don’t like this. It will require me as a user:
>>>>>> 
>>>>>> * have a separate configuration for clients ALL the times.
>>>>>> * initialize the memory bean explicitly which looks like a hack and
>>>>>> workaround
>>>>>> 
>>>>>> <property name="memoryConfiguration">
>>>>>> <bean class="org.apache.ignite.configuration.MemoryConfiguration">
>>>>>> </bean>
>>>>>> </property>
>>>>>> 
>>>>>> 
>>>>> Denis,
>>>>> 
>>>>> Why would you even have a use case for a persistence configuration on
>> the
>>>>> client side? What happened in your case was a mistake and you should
>> have
>>>>> received a proper exception. I am simply suggesting that in the odd
>> case
>>>>> that someone does need it, we provide proper error message explaining
>>>>> exactly what needs to be done. Why not?
>>>>> 
>>>>> 
>>>>>>> On May 26, 2017, at 11:02 AM, Dmitriy Setrakyan <
>> dsetrakyan@apache.org
>>>>> 
>>>>>> wrote:
>>>>>>> 
>>>>>>> I don't like ignoring any configuration, but I do agree that enabling
>>>>>>> persistence on the client side seems odd. Can we just fix the
>> exception
>>>>>>> message to clearly state that client mode requires all explicit
>>>>>>> configuration for such and such functionality?
>>>>>>> 
>>>>>>> D.
>>>>>>> 
>>>>>>> On Fri, May 26, 2017 at 10:34 AM, Sergey Chugunov <
>>>>>> sergey.chugunov@gmail.com
>>>>>>>> wrote:
>>>>>>> 
>>>>>>>> Denis,
>>>>>>>> 
>>>>>>>> Thanks for quick reply,
>>>>>>>> 
>>>>>>>> I made a change and tested it with your example, everything looks
>>>> fine.
>>>>>>>> 
>>>>>>>> Pull request is open and available at [1]
>>>>>>>> 
>>>>>>>> [1] https://github.com/apache/ignite/pull/2016
>>>>>>>> 
>>>>>>>> On Fri, May 26, 2017 at 8:25 PM, Denis Magda <dm...@apache.org>
>>>> wrote:
>>>>>>>> 
>>>>>>>>>> I would suggest on the first iteration to simply ignore
>> persistence
>>>>>>>>>> configuration on client nodes.
>>>>>>>>>> If client node finds persistence configuration on startup it will
>>>>>>>>> printout
>>>>>>>>>> warning message to log and proceed without persistence.
>>>>>>>>> 
>>>>>>>>> +1 for this. Otherwise, it looks like a dirty hack when I need to
>> add
>>>>>> an
>>>>>>>>> empty MemoryConfiguration to a client config file. Plus, it
>> requires
>>>> us
>>>>>>>> to
>>>>>>>>> create different configuration files for servers and clients which
>>>> has
>>>>>> to
>>>>>>>>> be optional by default.
>>>>>>>>> 
>>>>>>>>> —
>>>>>>>>> Denis
>>>>>>>>> 
>>>>>>>>>> On May 26, 2017, at 9:50 AM, Sergey Chugunov <
>>>>>>>> sergey.chugunov@gmail.com>
>>>>>>>>> wrote:
>>>>>>>>>> 
>>>>>>>>>> Moreover, enabling persistence on client node is very risky and
>> may
>>>>>>>> lead
>>>>>>>>> to
>>>>>>>>>> many tricky cases.
>>>>>>>>>> 
>>>>>>>>>> I would suggest on the first iteration to simply ignore
>> persistence
>>>>>>>>>> configuration on client nodes.
>>>>>>>>>> If client node finds persistence configuration on startup it will
>>>>>>>>> printout
>>>>>>>>>> warning message to log and proceed without persistence.
>>>>>>>>>> 
>>>>>>>>>> Supporting persistence on client nodes definitely requires more
>>>>>>>>> thoughtful
>>>>>>>>>> discussion and may be added in the future.
>>>>>>>>>> 
>>>>>>>>>> Thanks,
>>>>>>>>>> Sergey.
>>>>>>>>>> 
>>>>>>>>>> On Fri, May 26, 2017 at 7:28 PM, Sergey Chugunov <
>>>>>>>>> sergey.chugunov@gmail.com>
>>>>>>>>>> wrote:
>>>>>>>>>> 
>>>>>>>>>>> Denis,
>>>>>>>>>>> 
>>>>>>>>>>> I see from example that you're trying to start a client node with
>>>>>>>>>>> persistence configuration specified and you're saying that Ignite
>>>>>> must
>>>>>>>>>>> provide default MemoryConfiguration.
>>>>>>>>>>> 
>>>>>>>>>>> But that contradicts with decision we all agreed on in the
>>>>>>>>> discussion[1]:
>>>>>>>>>>> if user wants to do something unusual on client nodes like
>> storing
>>>>>>>> cache
>>>>>>>>>>> partitions (or in this case persisting stuff) he/she *must
>> *provide
>>>>>>>> all
>>>>>>>>>>> necessary configuration explicitly.
>>>>>>>>>>> 
>>>>>>>>>>> Server node with the same persistence configuration (and without
>>>>>>>>> explicit
>>>>>>>>>>> memory configuration) starts just fine.
>>>>>>>>>>> 
>>>>>>>>>>> [1] http://apache-ignite-developers.2346864.n4.nabble.
>>>>>>>>>>> com/Question-local-cache-on-client-nodes-tt15950.html
>>>>>>>>>>> 
>>>>>>>>>>> Thanks,
>>>>>>>>>>> Sergey.
>>>>>>>>>>> 
>>>>>>>>>>> On Fri, May 26, 2017 at 7:03 PM, Denis Magda <dm...@apache.org>
>>>>>>>> wrote:
>>>>>>>>>>> 
>>>>>>>>>>>> Sergey,
>>>>>>>>>>>> 
>>>>>>>>>>>> The issue vanishes as soon as I add the following to the
>>>>>>>> configuration:
>>>>>>>>>>>> 
>>>>>>>>>>>> <property name="memoryConfiguration">
>>>>>>>>>>>> <bean class="org.apache.ignite.configuration.
>>>>>>>> MemoryConfiguration">
>>>>>>>>>>>> </bean>
>>>>>>>>>>>> </property>
>>>>>>>>>>>> 
>>>>>>>>>>>> My point is that we just need to create a MemoryConfiguration
>>>>>>>>> implicitly
>>>>>>>>>>>> if it’s not defined (no any warnings or extra messages). It’s a
>>>>>>>>>>>> responsibility of our platform to generate a default
>> configuration
>>>>>> if
>>>>>>>>> it’s
>>>>>>>>>>>> not set explicitly.
>>>>>>>>>>>> 
>>>>>>>>>>>> —
>>>>>>>>>>>> Denis
>>>>>>>>>>>> 
>>>>>>>>>>>>> On May 26, 2017, at 8:46 AM, Sergey Chugunov <
>>>>>>>>> sergey.chugunov@gmail.com>
>>>>>>>>>>>> wrote:
>>>>>>>>>>>>> 
>>>>>>>>>>>>> Hi Denis,
>>>>>>>>>>>>> 
>>>>>>>>>>>>> What is the expected behavior in that case? Bug doesn't suggest
>>>>>> any.
>>>>>>>>>>>>> 
>>>>>>>>>>>>> From my point of view it would be better to throw an exception
>> on
>>>>>>>>>>>> startup
>>>>>>>>>>>>> with meaningful message than to silently create a default
>>>>>>>>>>>>> MemoryConfiguration under the cover.
>>>>>>>>>>>>> 
>>>>>>>>>>>>> Thanks,
>>>>>>>>>>>>> Sergey.
>>>>>>>>>>>>> 
>>>>>>>>>>>>> On Fri, May 26, 2017 at 4:00 AM, Denis Magda <
>> dmagda@apache.org>
>>>>>>>>> wrote:
>>>>>>>>>>>>> 
>>>>>>>>>>>>>> Igniters,
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> I’ve just added the first Persistent Store example to the
>> branch
>>>>>>>> that
>>>>>>>>>>>>>> fosters the donation:
>>>>>>>>>>>>>> https://github.com/apache/ignite/tree/ignite-5267/
>>>>>>>>>>>>>> examples/src/main/java/org/apache/ignite/examples/
>>>> persistentstore
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> However, the example fails with an NPE if a
>> MemoryConfiguration
>>>> is
>>>>>>>>> not
>>>>>>>>>>>>>> defined explicitly:
>>>>>>>>>>>>>> https://issues.apache.org/jira/browse/IGNITE-5295
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> Please those who are involved in the store development fix the
>>>>>>>> issue
>>>>>>>>> by
>>>>>>>>>>>>>> the end of tomorrow. I want to complete with the technical
>>>>>>>>>>>> documentation
>>>>>>>>>>>>>> referring to a workable example.
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> —
>>>>>>>>>>>>>> Denis
>>>> 
>>>> 
>> 
>> 


Re: Persistent Store example fails with NPE

Posted by Dmitriy Setrakyan <ds...@apache.org>.
On Fri, May 26, 2017 at 11:59 AM, Denis Magda <dm...@apache.org> wrote:

> Exactly, you can specify caches in the configuration of both clients and
> servers BUT the caches will be deployed on the servers only.
> This is why it’s absolutely fine to use a single configuration (with
> caches defined) for all your cluster nodes because Ignite can automatically
> figure out what doesn’t make sense for clients and what’s not.
>

Agree. But it is still possible to configure caches on the client side,
right? All I want is for us to remain consistent and provide identical
behavior with persistence enabled.


>
> —
> Denis
>
> > On May 26, 2017, at 11:46 AM, Dmitriy Setrakyan <ds...@apache.org>
> wrote:
> >
> > Denis,
> >
> > I think I misunderstand the issue. How do we do it for caches? Caches are
> > only supposed to be enabled on the servers by default. Do we require a
> > different configuration file for clients and servers for the caches?
> >
> > D.
> >
> > On Fri, May 26, 2017 at 11:41 AM, Denis Magda <dm...@apache.org> wrote:
> >
> >> I tend to use a single XML configuration for all my cluster nodes
> (servers
> >> and clients). Presently, I forced to create and maintain at least 2.
> This
> >> is the first concern. The second concern is if persistence store has no
> >> effect for the client node why not simply ignore it and not make the
> user
> >> to set MemoryConfiguration explicitly if the goal is to use a single XML
> >> config.
> >>
> >> —
> >> Denis
> >>
> >>> On May 26, 2017, at 11:33 AM, Dmitriy Setrakyan <dsetrakyan@apache.org
> >
> >> wrote:
> >>>
> >>> On Fri, May 26, 2017 at 11:29 AM, Denis Magda <dmagda@apache.org
> >> <ma...@apache.org>> wrote:
> >>>
> >>>>> Can we just fix the exception
> >>>>> message to clearly state that client mode requires all explicit
> >>>>> configuration for such and such functionality?
> >>>>
> >>>> I don’t like this. It will require me as a user:
> >>>>
> >>>> * have a separate configuration for clients ALL the times.
> >>>> * initialize the memory bean explicitly which looks like a hack and
> >>>> workaround
> >>>>
> >>>> <property name="memoryConfiguration">
> >>>>  <bean class="org.apache.ignite.configuration.MemoryConfiguration">
> >>>>  </bean>
> >>>> </property>
> >>>>
> >>>>
> >>> Denis,
> >>>
> >>> Why would you even have a use case for a persistence configuration on
> the
> >>> client side? What happened in your case was a mistake and you should
> have
> >>> received a proper exception. I am simply suggesting that in the odd
> case
> >>> that someone does need it, we provide proper error message explaining
> >>> exactly what needs to be done. Why not?
> >>>
> >>>
> >>>>> On May 26, 2017, at 11:02 AM, Dmitriy Setrakyan <
> dsetrakyan@apache.org
> >>>
> >>>> wrote:
> >>>>>
> >>>>> I don't like ignoring any configuration, but I do agree that enabling
> >>>>> persistence on the client side seems odd. Can we just fix the
> exception
> >>>>> message to clearly state that client mode requires all explicit
> >>>>> configuration for such and such functionality?
> >>>>>
> >>>>> D.
> >>>>>
> >>>>> On Fri, May 26, 2017 at 10:34 AM, Sergey Chugunov <
> >>>> sergey.chugunov@gmail.com
> >>>>>> wrote:
> >>>>>
> >>>>>> Denis,
> >>>>>>
> >>>>>> Thanks for quick reply,
> >>>>>>
> >>>>>> I made a change and tested it with your example, everything looks
> >> fine.
> >>>>>>
> >>>>>> Pull request is open and available at [1]
> >>>>>>
> >>>>>> [1] https://github.com/apache/ignite/pull/2016
> >>>>>>
> >>>>>> On Fri, May 26, 2017 at 8:25 PM, Denis Magda <dm...@apache.org>
> >> wrote:
> >>>>>>
> >>>>>>>> I would suggest on the first iteration to simply ignore
> persistence
> >>>>>>>> configuration on client nodes.
> >>>>>>>> If client node finds persistence configuration on startup it will
> >>>>>>> printout
> >>>>>>>> warning message to log and proceed without persistence.
> >>>>>>>
> >>>>>>> +1 for this. Otherwise, it looks like a dirty hack when I need to
> add
> >>>> an
> >>>>>>> empty MemoryConfiguration to a client config file. Plus, it
> requires
> >> us
> >>>>>> to
> >>>>>>> create different configuration files for servers and clients which
> >> has
> >>>> to
> >>>>>>> be optional by default.
> >>>>>>>
> >>>>>>> —
> >>>>>>> Denis
> >>>>>>>
> >>>>>>>> On May 26, 2017, at 9:50 AM, Sergey Chugunov <
> >>>>>> sergey.chugunov@gmail.com>
> >>>>>>> wrote:
> >>>>>>>>
> >>>>>>>> Moreover, enabling persistence on client node is very risky and
> may
> >>>>>> lead
> >>>>>>> to
> >>>>>>>> many tricky cases.
> >>>>>>>>
> >>>>>>>> I would suggest on the first iteration to simply ignore
> persistence
> >>>>>>>> configuration on client nodes.
> >>>>>>>> If client node finds persistence configuration on startup it will
> >>>>>>> printout
> >>>>>>>> warning message to log and proceed without persistence.
> >>>>>>>>
> >>>>>>>> Supporting persistence on client nodes definitely requires more
> >>>>>>> thoughtful
> >>>>>>>> discussion and may be added in the future.
> >>>>>>>>
> >>>>>>>> Thanks,
> >>>>>>>> Sergey.
> >>>>>>>>
> >>>>>>>> On Fri, May 26, 2017 at 7:28 PM, Sergey Chugunov <
> >>>>>>> sergey.chugunov@gmail.com>
> >>>>>>>> wrote:
> >>>>>>>>
> >>>>>>>>> Denis,
> >>>>>>>>>
> >>>>>>>>> I see from example that you're trying to start a client node with
> >>>>>>>>> persistence configuration specified and you're saying that Ignite
> >>>> must
> >>>>>>>>> provide default MemoryConfiguration.
> >>>>>>>>>
> >>>>>>>>> But that contradicts with decision we all agreed on in the
> >>>>>>> discussion[1]:
> >>>>>>>>> if user wants to do something unusual on client nodes like
> storing
> >>>>>> cache
> >>>>>>>>> partitions (or in this case persisting stuff) he/she *must
> *provide
> >>>>>> all
> >>>>>>>>> necessary configuration explicitly.
> >>>>>>>>>
> >>>>>>>>> Server node with the same persistence configuration (and without
> >>>>>>> explicit
> >>>>>>>>> memory configuration) starts just fine.
> >>>>>>>>>
> >>>>>>>>> [1] http://apache-ignite-developers.2346864.n4.nabble.
> >>>>>>>>> com/Question-local-cache-on-client-nodes-tt15950.html
> >>>>>>>>>
> >>>>>>>>> Thanks,
> >>>>>>>>> Sergey.
> >>>>>>>>>
> >>>>>>>>> On Fri, May 26, 2017 at 7:03 PM, Denis Magda <dm...@apache.org>
> >>>>>> wrote:
> >>>>>>>>>
> >>>>>>>>>> Sergey,
> >>>>>>>>>>
> >>>>>>>>>> The issue vanishes as soon as I add the following to the
> >>>>>> configuration:
> >>>>>>>>>>
> >>>>>>>>>> <property name="memoryConfiguration">
> >>>>>>>>>> <bean class="org.apache.ignite.configuration.
> >>>>>> MemoryConfiguration">
> >>>>>>>>>> </bean>
> >>>>>>>>>> </property>
> >>>>>>>>>>
> >>>>>>>>>> My point is that we just need to create a MemoryConfiguration
> >>>>>>> implicitly
> >>>>>>>>>> if it’s not defined (no any warnings or extra messages). It’s a
> >>>>>>>>>> responsibility of our platform to generate a default
> configuration
> >>>> if
> >>>>>>> it’s
> >>>>>>>>>> not set explicitly.
> >>>>>>>>>>
> >>>>>>>>>> —
> >>>>>>>>>> Denis
> >>>>>>>>>>
> >>>>>>>>>>> On May 26, 2017, at 8:46 AM, Sergey Chugunov <
> >>>>>>> sergey.chugunov@gmail.com>
> >>>>>>>>>> wrote:
> >>>>>>>>>>>
> >>>>>>>>>>> Hi Denis,
> >>>>>>>>>>>
> >>>>>>>>>>> What is the expected behavior in that case? Bug doesn't suggest
> >>>> any.
> >>>>>>>>>>>
> >>>>>>>>>>> From my point of view it would be better to throw an exception
> on
> >>>>>>>>>> startup
> >>>>>>>>>>> with meaningful message than to silently create a default
> >>>>>>>>>>> MemoryConfiguration under the cover.
> >>>>>>>>>>>
> >>>>>>>>>>> Thanks,
> >>>>>>>>>>> Sergey.
> >>>>>>>>>>>
> >>>>>>>>>>> On Fri, May 26, 2017 at 4:00 AM, Denis Magda <
> dmagda@apache.org>
> >>>>>>> wrote:
> >>>>>>>>>>>
> >>>>>>>>>>>> Igniters,
> >>>>>>>>>>>>
> >>>>>>>>>>>> I’ve just added the first Persistent Store example to the
> branch
> >>>>>> that
> >>>>>>>>>>>> fosters the donation:
> >>>>>>>>>>>> https://github.com/apache/ignite/tree/ignite-5267/
> >>>>>>>>>>>> examples/src/main/java/org/apache/ignite/examples/
> >> persistentstore
> >>>>>>>>>>>>
> >>>>>>>>>>>> However, the example fails with an NPE if a
> MemoryConfiguration
> >> is
> >>>>>>> not
> >>>>>>>>>>>> defined explicitly:
> >>>>>>>>>>>> https://issues.apache.org/jira/browse/IGNITE-5295
> >>>>>>>>>>>>
> >>>>>>>>>>>> Please those who are involved in the store development fix the
> >>>>>> issue
> >>>>>>> by
> >>>>>>>>>>>> the end of tomorrow. I want to complete with the technical
> >>>>>>>>>> documentation
> >>>>>>>>>>>> referring to a workable example.
> >>>>>>>>>>>>
> >>>>>>>>>>>> —
> >>>>>>>>>>>> Denis
> >>
> >>
>
>

Re: Persistent Store example fails with NPE

Posted by Denis Magda <dm...@apache.org>.
Exactly, you can specify caches in the configuration of both clients and servers BUT the caches will be deployed on the servers only. 
This is why it’s absolutely fine to use a single configuration (with caches defined) for all your cluster nodes because Ignite can automatically figure out what doesn’t make sense for clients and what’s not.

—
Denis

> On May 26, 2017, at 11:46 AM, Dmitriy Setrakyan <ds...@apache.org> wrote:
> 
> Denis,
> 
> I think I misunderstand the issue. How do we do it for caches? Caches are
> only supposed to be enabled on the servers by default. Do we require a
> different configuration file for clients and servers for the caches?
> 
> D.
> 
> On Fri, May 26, 2017 at 11:41 AM, Denis Magda <dm...@apache.org> wrote:
> 
>> I tend to use a single XML configuration for all my cluster nodes (servers
>> and clients). Presently, I forced to create and maintain at least 2. This
>> is the first concern. The second concern is if persistence store has no
>> effect for the client node why not simply ignore it and not make the user
>> to set MemoryConfiguration explicitly if the goal is to use a single XML
>> config.
>> 
>> —
>> Denis
>> 
>>> On May 26, 2017, at 11:33 AM, Dmitriy Setrakyan <ds...@apache.org>
>> wrote:
>>> 
>>> On Fri, May 26, 2017 at 11:29 AM, Denis Magda <dmagda@apache.org
>> <ma...@apache.org>> wrote:
>>> 
>>>>> Can we just fix the exception
>>>>> message to clearly state that client mode requires all explicit
>>>>> configuration for such and such functionality?
>>>> 
>>>> I don’t like this. It will require me as a user:
>>>> 
>>>> * have a separate configuration for clients ALL the times.
>>>> * initialize the memory bean explicitly which looks like a hack and
>>>> workaround
>>>> 
>>>> <property name="memoryConfiguration">
>>>>  <bean class="org.apache.ignite.configuration.MemoryConfiguration">
>>>>  </bean>
>>>> </property>
>>>> 
>>>> 
>>> Denis,
>>> 
>>> Why would you even have a use case for a persistence configuration on the
>>> client side? What happened in your case was a mistake and you should have
>>> received a proper exception. I am simply suggesting that in the odd case
>>> that someone does need it, we provide proper error message explaining
>>> exactly what needs to be done. Why not?
>>> 
>>> 
>>>>> On May 26, 2017, at 11:02 AM, Dmitriy Setrakyan <dsetrakyan@apache.org
>>> 
>>>> wrote:
>>>>> 
>>>>> I don't like ignoring any configuration, but I do agree that enabling
>>>>> persistence on the client side seems odd. Can we just fix the exception
>>>>> message to clearly state that client mode requires all explicit
>>>>> configuration for such and such functionality?
>>>>> 
>>>>> D.
>>>>> 
>>>>> On Fri, May 26, 2017 at 10:34 AM, Sergey Chugunov <
>>>> sergey.chugunov@gmail.com
>>>>>> wrote:
>>>>> 
>>>>>> Denis,
>>>>>> 
>>>>>> Thanks for quick reply,
>>>>>> 
>>>>>> I made a change and tested it with your example, everything looks
>> fine.
>>>>>> 
>>>>>> Pull request is open and available at [1]
>>>>>> 
>>>>>> [1] https://github.com/apache/ignite/pull/2016
>>>>>> 
>>>>>> On Fri, May 26, 2017 at 8:25 PM, Denis Magda <dm...@apache.org>
>> wrote:
>>>>>> 
>>>>>>>> I would suggest on the first iteration to simply ignore persistence
>>>>>>>> configuration on client nodes.
>>>>>>>> If client node finds persistence configuration on startup it will
>>>>>>> printout
>>>>>>>> warning message to log and proceed without persistence.
>>>>>>> 
>>>>>>> +1 for this. Otherwise, it looks like a dirty hack when I need to add
>>>> an
>>>>>>> empty MemoryConfiguration to a client config file. Plus, it requires
>> us
>>>>>> to
>>>>>>> create different configuration files for servers and clients which
>> has
>>>> to
>>>>>>> be optional by default.
>>>>>>> 
>>>>>>> —
>>>>>>> Denis
>>>>>>> 
>>>>>>>> On May 26, 2017, at 9:50 AM, Sergey Chugunov <
>>>>>> sergey.chugunov@gmail.com>
>>>>>>> wrote:
>>>>>>>> 
>>>>>>>> Moreover, enabling persistence on client node is very risky and may
>>>>>> lead
>>>>>>> to
>>>>>>>> many tricky cases.
>>>>>>>> 
>>>>>>>> I would suggest on the first iteration to simply ignore persistence
>>>>>>>> configuration on client nodes.
>>>>>>>> If client node finds persistence configuration on startup it will
>>>>>>> printout
>>>>>>>> warning message to log and proceed without persistence.
>>>>>>>> 
>>>>>>>> Supporting persistence on client nodes definitely requires more
>>>>>>> thoughtful
>>>>>>>> discussion and may be added in the future.
>>>>>>>> 
>>>>>>>> Thanks,
>>>>>>>> Sergey.
>>>>>>>> 
>>>>>>>> On Fri, May 26, 2017 at 7:28 PM, Sergey Chugunov <
>>>>>>> sergey.chugunov@gmail.com>
>>>>>>>> wrote:
>>>>>>>> 
>>>>>>>>> Denis,
>>>>>>>>> 
>>>>>>>>> I see from example that you're trying to start a client node with
>>>>>>>>> persistence configuration specified and you're saying that Ignite
>>>> must
>>>>>>>>> provide default MemoryConfiguration.
>>>>>>>>> 
>>>>>>>>> But that contradicts with decision we all agreed on in the
>>>>>>> discussion[1]:
>>>>>>>>> if user wants to do something unusual on client nodes like storing
>>>>>> cache
>>>>>>>>> partitions (or in this case persisting stuff) he/she *must *provide
>>>>>> all
>>>>>>>>> necessary configuration explicitly.
>>>>>>>>> 
>>>>>>>>> Server node with the same persistence configuration (and without
>>>>>>> explicit
>>>>>>>>> memory configuration) starts just fine.
>>>>>>>>> 
>>>>>>>>> [1] http://apache-ignite-developers.2346864.n4.nabble.
>>>>>>>>> com/Question-local-cache-on-client-nodes-tt15950.html
>>>>>>>>> 
>>>>>>>>> Thanks,
>>>>>>>>> Sergey.
>>>>>>>>> 
>>>>>>>>> On Fri, May 26, 2017 at 7:03 PM, Denis Magda <dm...@apache.org>
>>>>>> wrote:
>>>>>>>>> 
>>>>>>>>>> Sergey,
>>>>>>>>>> 
>>>>>>>>>> The issue vanishes as soon as I add the following to the
>>>>>> configuration:
>>>>>>>>>> 
>>>>>>>>>> <property name="memoryConfiguration">
>>>>>>>>>> <bean class="org.apache.ignite.configuration.
>>>>>> MemoryConfiguration">
>>>>>>>>>> </bean>
>>>>>>>>>> </property>
>>>>>>>>>> 
>>>>>>>>>> My point is that we just need to create a MemoryConfiguration
>>>>>>> implicitly
>>>>>>>>>> if it’s not defined (no any warnings or extra messages). It’s a
>>>>>>>>>> responsibility of our platform to generate a default configuration
>>>> if
>>>>>>> it’s
>>>>>>>>>> not set explicitly.
>>>>>>>>>> 
>>>>>>>>>> —
>>>>>>>>>> Denis
>>>>>>>>>> 
>>>>>>>>>>> On May 26, 2017, at 8:46 AM, Sergey Chugunov <
>>>>>>> sergey.chugunov@gmail.com>
>>>>>>>>>> wrote:
>>>>>>>>>>> 
>>>>>>>>>>> Hi Denis,
>>>>>>>>>>> 
>>>>>>>>>>> What is the expected behavior in that case? Bug doesn't suggest
>>>> any.
>>>>>>>>>>> 
>>>>>>>>>>> From my point of view it would be better to throw an exception on
>>>>>>>>>> startup
>>>>>>>>>>> with meaningful message than to silently create a default
>>>>>>>>>>> MemoryConfiguration under the cover.
>>>>>>>>>>> 
>>>>>>>>>>> Thanks,
>>>>>>>>>>> Sergey.
>>>>>>>>>>> 
>>>>>>>>>>> On Fri, May 26, 2017 at 4:00 AM, Denis Magda <dm...@apache.org>
>>>>>>> wrote:
>>>>>>>>>>> 
>>>>>>>>>>>> Igniters,
>>>>>>>>>>>> 
>>>>>>>>>>>> I’ve just added the first Persistent Store example to the branch
>>>>>> that
>>>>>>>>>>>> fosters the donation:
>>>>>>>>>>>> https://github.com/apache/ignite/tree/ignite-5267/
>>>>>>>>>>>> examples/src/main/java/org/apache/ignite/examples/
>> persistentstore
>>>>>>>>>>>> 
>>>>>>>>>>>> However, the example fails with an NPE if a MemoryConfiguration
>> is
>>>>>>> not
>>>>>>>>>>>> defined explicitly:
>>>>>>>>>>>> https://issues.apache.org/jira/browse/IGNITE-5295
>>>>>>>>>>>> 
>>>>>>>>>>>> Please those who are involved in the store development fix the
>>>>>> issue
>>>>>>> by
>>>>>>>>>>>> the end of tomorrow. I want to complete with the technical
>>>>>>>>>> documentation
>>>>>>>>>>>> referring to a workable example.
>>>>>>>>>>>> 
>>>>>>>>>>>> —
>>>>>>>>>>>> Denis
>> 
>> 


Re: Persistent Store example fails with NPE

Posted by Dmitriy Setrakyan <ds...@apache.org>.
Denis,

I think I misunderstand the issue. How do we do it for caches? Caches are
only supposed to be enabled on the servers by default. Do we require a
different configuration file for clients and servers for the caches?

D.

On Fri, May 26, 2017 at 11:41 AM, Denis Magda <dm...@apache.org> wrote:

> I tend to use a single XML configuration for all my cluster nodes (servers
> and clients). Presently, I forced to create and maintain at least 2. This
> is the first concern. The second concern is if persistence store has no
> effect for the client node why not simply ignore it and not make the user
> to set MemoryConfiguration explicitly if the goal is to use a single XML
> config.
>
> —
> Denis
>
> > On May 26, 2017, at 11:33 AM, Dmitriy Setrakyan <ds...@apache.org>
> wrote:
> >
> > On Fri, May 26, 2017 at 11:29 AM, Denis Magda <dmagda@apache.org
> <ma...@apache.org>> wrote:
> >
> >>> Can we just fix the exception
> >>> message to clearly state that client mode requires all explicit
> >>> configuration for such and such functionality?
> >>
> >> I don’t like this. It will require me as a user:
> >>
> >> * have a separate configuration for clients ALL the times.
> >> * initialize the memory bean explicitly which looks like a hack and
> >> workaround
> >>
> >> <property name="memoryConfiguration">
> >>   <bean class="org.apache.ignite.configuration.MemoryConfiguration">
> >>   </bean>
> >> </property>
> >>
> >>
> > Denis,
> >
> > Why would you even have a use case for a persistence configuration on the
> > client side? What happened in your case was a mistake and you should have
> > received a proper exception. I am simply suggesting that in the odd case
> > that someone does need it, we provide proper error message explaining
> > exactly what needs to be done. Why not?
> >
> >
> >>> On May 26, 2017, at 11:02 AM, Dmitriy Setrakyan <dsetrakyan@apache.org
> >
> >> wrote:
> >>>
> >>> I don't like ignoring any configuration, but I do agree that enabling
> >>> persistence on the client side seems odd. Can we just fix the exception
> >>> message to clearly state that client mode requires all explicit
> >>> configuration for such and such functionality?
> >>>
> >>> D.
> >>>
> >>> On Fri, May 26, 2017 at 10:34 AM, Sergey Chugunov <
> >> sergey.chugunov@gmail.com
> >>>> wrote:
> >>>
> >>>> Denis,
> >>>>
> >>>> Thanks for quick reply,
> >>>>
> >>>> I made a change and tested it with your example, everything looks
> fine.
> >>>>
> >>>> Pull request is open and available at [1]
> >>>>
> >>>> [1] https://github.com/apache/ignite/pull/2016
> >>>>
> >>>> On Fri, May 26, 2017 at 8:25 PM, Denis Magda <dm...@apache.org>
> wrote:
> >>>>
> >>>>>> I would suggest on the first iteration to simply ignore persistence
> >>>>>> configuration on client nodes.
> >>>>>> If client node finds persistence configuration on startup it will
> >>>>> printout
> >>>>>> warning message to log and proceed without persistence.
> >>>>>
> >>>>> +1 for this. Otherwise, it looks like a dirty hack when I need to add
> >> an
> >>>>> empty MemoryConfiguration to a client config file. Plus, it requires
> us
> >>>> to
> >>>>> create different configuration files for servers and clients which
> has
> >> to
> >>>>> be optional by default.
> >>>>>
> >>>>> —
> >>>>> Denis
> >>>>>
> >>>>>> On May 26, 2017, at 9:50 AM, Sergey Chugunov <
> >>>> sergey.chugunov@gmail.com>
> >>>>> wrote:
> >>>>>>
> >>>>>> Moreover, enabling persistence on client node is very risky and may
> >>>> lead
> >>>>> to
> >>>>>> many tricky cases.
> >>>>>>
> >>>>>> I would suggest on the first iteration to simply ignore persistence
> >>>>>> configuration on client nodes.
> >>>>>> If client node finds persistence configuration on startup it will
> >>>>> printout
> >>>>>> warning message to log and proceed without persistence.
> >>>>>>
> >>>>>> Supporting persistence on client nodes definitely requires more
> >>>>> thoughtful
> >>>>>> discussion and may be added in the future.
> >>>>>>
> >>>>>> Thanks,
> >>>>>> Sergey.
> >>>>>>
> >>>>>> On Fri, May 26, 2017 at 7:28 PM, Sergey Chugunov <
> >>>>> sergey.chugunov@gmail.com>
> >>>>>> wrote:
> >>>>>>
> >>>>>>> Denis,
> >>>>>>>
> >>>>>>> I see from example that you're trying to start a client node with
> >>>>>>> persistence configuration specified and you're saying that Ignite
> >> must
> >>>>>>> provide default MemoryConfiguration.
> >>>>>>>
> >>>>>>> But that contradicts with decision we all agreed on in the
> >>>>> discussion[1]:
> >>>>>>> if user wants to do something unusual on client nodes like storing
> >>>> cache
> >>>>>>> partitions (or in this case persisting stuff) he/she *must *provide
> >>>> all
> >>>>>>> necessary configuration explicitly.
> >>>>>>>
> >>>>>>> Server node with the same persistence configuration (and without
> >>>>> explicit
> >>>>>>> memory configuration) starts just fine.
> >>>>>>>
> >>>>>>> [1] http://apache-ignite-developers.2346864.n4.nabble.
> >>>>>>> com/Question-local-cache-on-client-nodes-tt15950.html
> >>>>>>>
> >>>>>>> Thanks,
> >>>>>>> Sergey.
> >>>>>>>
> >>>>>>> On Fri, May 26, 2017 at 7:03 PM, Denis Magda <dm...@apache.org>
> >>>> wrote:
> >>>>>>>
> >>>>>>>> Sergey,
> >>>>>>>>
> >>>>>>>> The issue vanishes as soon as I add the following to the
> >>>> configuration:
> >>>>>>>>
> >>>>>>>> <property name="memoryConfiguration">
> >>>>>>>>  <bean class="org.apache.ignite.configuration.
> >>>> MemoryConfiguration">
> >>>>>>>>  </bean>
> >>>>>>>> </property>
> >>>>>>>>
> >>>>>>>> My point is that we just need to create a MemoryConfiguration
> >>>>> implicitly
> >>>>>>>> if it’s not defined (no any warnings or extra messages). It’s a
> >>>>>>>> responsibility of our platform to generate a default configuration
> >> if
> >>>>> it’s
> >>>>>>>> not set explicitly.
> >>>>>>>>
> >>>>>>>> —
> >>>>>>>> Denis
> >>>>>>>>
> >>>>>>>>> On May 26, 2017, at 8:46 AM, Sergey Chugunov <
> >>>>> sergey.chugunov@gmail.com>
> >>>>>>>> wrote:
> >>>>>>>>>
> >>>>>>>>> Hi Denis,
> >>>>>>>>>
> >>>>>>>>> What is the expected behavior in that case? Bug doesn't suggest
> >> any.
> >>>>>>>>>
> >>>>>>>>> From my point of view it would be better to throw an exception on
> >>>>>>>> startup
> >>>>>>>>> with meaningful message than to silently create a default
> >>>>>>>>> MemoryConfiguration under the cover.
> >>>>>>>>>
> >>>>>>>>> Thanks,
> >>>>>>>>> Sergey.
> >>>>>>>>>
> >>>>>>>>> On Fri, May 26, 2017 at 4:00 AM, Denis Magda <dm...@apache.org>
> >>>>> wrote:
> >>>>>>>>>
> >>>>>>>>>> Igniters,
> >>>>>>>>>>
> >>>>>>>>>> I’ve just added the first Persistent Store example to the branch
> >>>> that
> >>>>>>>>>> fosters the donation:
> >>>>>>>>>> https://github.com/apache/ignite/tree/ignite-5267/
> >>>>>>>>>> examples/src/main/java/org/apache/ignite/examples/
> persistentstore
> >>>>>>>>>>
> >>>>>>>>>> However, the example fails with an NPE if a MemoryConfiguration
> is
> >>>>> not
> >>>>>>>>>> defined explicitly:
> >>>>>>>>>> https://issues.apache.org/jira/browse/IGNITE-5295
> >>>>>>>>>>
> >>>>>>>>>> Please those who are involved in the store development fix the
> >>>> issue
> >>>>> by
> >>>>>>>>>> the end of tomorrow. I want to complete with the technical
> >>>>>>>> documentation
> >>>>>>>>>> referring to a workable example.
> >>>>>>>>>>
> >>>>>>>>>> —
> >>>>>>>>>> Denis
>
>

Re: Persistent Store example fails with NPE

Posted by Denis Magda <dm...@apache.org>.
I tend to use a single XML configuration for all my cluster nodes (servers and clients). Presently, I forced to create and maintain at least 2. This is the first concern. The second concern is if persistence store has no effect for the client node why not simply ignore it and not make the user to set MemoryConfiguration explicitly if the goal is to use a single XML config.

—
Denis

> On May 26, 2017, at 11:33 AM, Dmitriy Setrakyan <ds...@apache.org> wrote:
> 
> On Fri, May 26, 2017 at 11:29 AM, Denis Magda <dmagda@apache.org <ma...@apache.org>> wrote:
> 
>>> Can we just fix the exception
>>> message to clearly state that client mode requires all explicit
>>> configuration for such and such functionality?
>> 
>> I don’t like this. It will require me as a user:
>> 
>> * have a separate configuration for clients ALL the times.
>> * initialize the memory bean explicitly which looks like a hack and
>> workaround
>> 
>> <property name="memoryConfiguration">
>>   <bean class="org.apache.ignite.configuration.MemoryConfiguration">
>>   </bean>
>> </property>
>> 
>> 
> Denis,
> 
> Why would you even have a use case for a persistence configuration on the
> client side? What happened in your case was a mistake and you should have
> received a proper exception. I am simply suggesting that in the odd case
> that someone does need it, we provide proper error message explaining
> exactly what needs to be done. Why not?
> 
> 
>>> On May 26, 2017, at 11:02 AM, Dmitriy Setrakyan <ds...@apache.org>
>> wrote:
>>> 
>>> I don't like ignoring any configuration, but I do agree that enabling
>>> persistence on the client side seems odd. Can we just fix the exception
>>> message to clearly state that client mode requires all explicit
>>> configuration for such and such functionality?
>>> 
>>> D.
>>> 
>>> On Fri, May 26, 2017 at 10:34 AM, Sergey Chugunov <
>> sergey.chugunov@gmail.com
>>>> wrote:
>>> 
>>>> Denis,
>>>> 
>>>> Thanks for quick reply,
>>>> 
>>>> I made a change and tested it with your example, everything looks fine.
>>>> 
>>>> Pull request is open and available at [1]
>>>> 
>>>> [1] https://github.com/apache/ignite/pull/2016
>>>> 
>>>> On Fri, May 26, 2017 at 8:25 PM, Denis Magda <dm...@apache.org> wrote:
>>>> 
>>>>>> I would suggest on the first iteration to simply ignore persistence
>>>>>> configuration on client nodes.
>>>>>> If client node finds persistence configuration on startup it will
>>>>> printout
>>>>>> warning message to log and proceed without persistence.
>>>>> 
>>>>> +1 for this. Otherwise, it looks like a dirty hack when I need to add
>> an
>>>>> empty MemoryConfiguration to a client config file. Plus, it requires us
>>>> to
>>>>> create different configuration files for servers and clients which has
>> to
>>>>> be optional by default.
>>>>> 
>>>>> —
>>>>> Denis
>>>>> 
>>>>>> On May 26, 2017, at 9:50 AM, Sergey Chugunov <
>>>> sergey.chugunov@gmail.com>
>>>>> wrote:
>>>>>> 
>>>>>> Moreover, enabling persistence on client node is very risky and may
>>>> lead
>>>>> to
>>>>>> many tricky cases.
>>>>>> 
>>>>>> I would suggest on the first iteration to simply ignore persistence
>>>>>> configuration on client nodes.
>>>>>> If client node finds persistence configuration on startup it will
>>>>> printout
>>>>>> warning message to log and proceed without persistence.
>>>>>> 
>>>>>> Supporting persistence on client nodes definitely requires more
>>>>> thoughtful
>>>>>> discussion and may be added in the future.
>>>>>> 
>>>>>> Thanks,
>>>>>> Sergey.
>>>>>> 
>>>>>> On Fri, May 26, 2017 at 7:28 PM, Sergey Chugunov <
>>>>> sergey.chugunov@gmail.com>
>>>>>> wrote:
>>>>>> 
>>>>>>> Denis,
>>>>>>> 
>>>>>>> I see from example that you're trying to start a client node with
>>>>>>> persistence configuration specified and you're saying that Ignite
>> must
>>>>>>> provide default MemoryConfiguration.
>>>>>>> 
>>>>>>> But that contradicts with decision we all agreed on in the
>>>>> discussion[1]:
>>>>>>> if user wants to do something unusual on client nodes like storing
>>>> cache
>>>>>>> partitions (or in this case persisting stuff) he/she *must *provide
>>>> all
>>>>>>> necessary configuration explicitly.
>>>>>>> 
>>>>>>> Server node with the same persistence configuration (and without
>>>>> explicit
>>>>>>> memory configuration) starts just fine.
>>>>>>> 
>>>>>>> [1] http://apache-ignite-developers.2346864.n4.nabble.
>>>>>>> com/Question-local-cache-on-client-nodes-tt15950.html
>>>>>>> 
>>>>>>> Thanks,
>>>>>>> Sergey.
>>>>>>> 
>>>>>>> On Fri, May 26, 2017 at 7:03 PM, Denis Magda <dm...@apache.org>
>>>> wrote:
>>>>>>> 
>>>>>>>> Sergey,
>>>>>>>> 
>>>>>>>> The issue vanishes as soon as I add the following to the
>>>> configuration:
>>>>>>>> 
>>>>>>>> <property name="memoryConfiguration">
>>>>>>>>  <bean class="org.apache.ignite.configuration.
>>>> MemoryConfiguration">
>>>>>>>>  </bean>
>>>>>>>> </property>
>>>>>>>> 
>>>>>>>> My point is that we just need to create a MemoryConfiguration
>>>>> implicitly
>>>>>>>> if it’s not defined (no any warnings or extra messages). It’s a
>>>>>>>> responsibility of our platform to generate a default configuration
>> if
>>>>> it’s
>>>>>>>> not set explicitly.
>>>>>>>> 
>>>>>>>> —
>>>>>>>> Denis
>>>>>>>> 
>>>>>>>>> On May 26, 2017, at 8:46 AM, Sergey Chugunov <
>>>>> sergey.chugunov@gmail.com>
>>>>>>>> wrote:
>>>>>>>>> 
>>>>>>>>> Hi Denis,
>>>>>>>>> 
>>>>>>>>> What is the expected behavior in that case? Bug doesn't suggest
>> any.
>>>>>>>>> 
>>>>>>>>> From my point of view it would be better to throw an exception on
>>>>>>>> startup
>>>>>>>>> with meaningful message than to silently create a default
>>>>>>>>> MemoryConfiguration under the cover.
>>>>>>>>> 
>>>>>>>>> Thanks,
>>>>>>>>> Sergey.
>>>>>>>>> 
>>>>>>>>> On Fri, May 26, 2017 at 4:00 AM, Denis Magda <dm...@apache.org>
>>>>> wrote:
>>>>>>>>> 
>>>>>>>>>> Igniters,
>>>>>>>>>> 
>>>>>>>>>> I’ve just added the first Persistent Store example to the branch
>>>> that
>>>>>>>>>> fosters the donation:
>>>>>>>>>> https://github.com/apache/ignite/tree/ignite-5267/
>>>>>>>>>> examples/src/main/java/org/apache/ignite/examples/persistentstore
>>>>>>>>>> 
>>>>>>>>>> However, the example fails with an NPE if a MemoryConfiguration is
>>>>> not
>>>>>>>>>> defined explicitly:
>>>>>>>>>> https://issues.apache.org/jira/browse/IGNITE-5295
>>>>>>>>>> 
>>>>>>>>>> Please those who are involved in the store development fix the
>>>> issue
>>>>> by
>>>>>>>>>> the end of tomorrow. I want to complete with the technical
>>>>>>>> documentation
>>>>>>>>>> referring to a workable example.
>>>>>>>>>> 
>>>>>>>>>> —
>>>>>>>>>> Denis


Re: Persistent Store example fails with NPE

Posted by Dmitriy Setrakyan <ds...@apache.org>.
On Fri, May 26, 2017 at 11:29 AM, Denis Magda <dm...@apache.org> wrote:

> > Can we just fix the exception
> > message to clearly state that client mode requires all explicit
> > configuration for such and such functionality?
>
> I don’t like this. It will require me as a user:
>
> * have a separate configuration for clients ALL the times.
> * initialize the memory bean explicitly which looks like a hack and
> workaround
>
> <property name="memoryConfiguration">
>    <bean class="org.apache.ignite.configuration.MemoryConfiguration">
>    </bean>
> </property>
>
>
Denis,

Why would you even have a use case for a persistence configuration on the
client side? What happened in your case was a mistake and you should have
received a proper exception. I am simply suggesting that in the odd case
that someone does need it, we provide proper error message explaining
exactly what needs to be done. Why not?


> > On May 26, 2017, at 11:02 AM, Dmitriy Setrakyan <ds...@apache.org>
> wrote:
> >
> > I don't like ignoring any configuration, but I do agree that enabling
> > persistence on the client side seems odd. Can we just fix the exception
> > message to clearly state that client mode requires all explicit
> > configuration for such and such functionality?
> >
> > D.
> >
> > On Fri, May 26, 2017 at 10:34 AM, Sergey Chugunov <
> sergey.chugunov@gmail.com
> >> wrote:
> >
> >> Denis,
> >>
> >> Thanks for quick reply,
> >>
> >> I made a change and tested it with your example, everything looks fine.
> >>
> >> Pull request is open and available at [1]
> >>
> >> [1] https://github.com/apache/ignite/pull/2016
> >>
> >> On Fri, May 26, 2017 at 8:25 PM, Denis Magda <dm...@apache.org> wrote:
> >>
> >>>> I would suggest on the first iteration to simply ignore persistence
> >>>> configuration on client nodes.
> >>>> If client node finds persistence configuration on startup it will
> >>> printout
> >>>> warning message to log and proceed without persistence.
> >>>
> >>> +1 for this. Otherwise, it looks like a dirty hack when I need to add
> an
> >>> empty MemoryConfiguration to a client config file. Plus, it requires us
> >> to
> >>> create different configuration files for servers and clients which has
> to
> >>> be optional by default.
> >>>
> >>> —
> >>> Denis
> >>>
> >>>> On May 26, 2017, at 9:50 AM, Sergey Chugunov <
> >> sergey.chugunov@gmail.com>
> >>> wrote:
> >>>>
> >>>> Moreover, enabling persistence on client node is very risky and may
> >> lead
> >>> to
> >>>> many tricky cases.
> >>>>
> >>>> I would suggest on the first iteration to simply ignore persistence
> >>>> configuration on client nodes.
> >>>> If client node finds persistence configuration on startup it will
> >>> printout
> >>>> warning message to log and proceed without persistence.
> >>>>
> >>>> Supporting persistence on client nodes definitely requires more
> >>> thoughtful
> >>>> discussion and may be added in the future.
> >>>>
> >>>> Thanks,
> >>>> Sergey.
> >>>>
> >>>> On Fri, May 26, 2017 at 7:28 PM, Sergey Chugunov <
> >>> sergey.chugunov@gmail.com>
> >>>> wrote:
> >>>>
> >>>>> Denis,
> >>>>>
> >>>>> I see from example that you're trying to start a client node with
> >>>>> persistence configuration specified and you're saying that Ignite
> must
> >>>>> provide default MemoryConfiguration.
> >>>>>
> >>>>> But that contradicts with decision we all agreed on in the
> >>> discussion[1]:
> >>>>> if user wants to do something unusual on client nodes like storing
> >> cache
> >>>>> partitions (or in this case persisting stuff) he/she *must *provide
> >> all
> >>>>> necessary configuration explicitly.
> >>>>>
> >>>>> Server node with the same persistence configuration (and without
> >>> explicit
> >>>>> memory configuration) starts just fine.
> >>>>>
> >>>>> [1] http://apache-ignite-developers.2346864.n4.nabble.
> >>>>> com/Question-local-cache-on-client-nodes-tt15950.html
> >>>>>
> >>>>> Thanks,
> >>>>> Sergey.
> >>>>>
> >>>>> On Fri, May 26, 2017 at 7:03 PM, Denis Magda <dm...@apache.org>
> >> wrote:
> >>>>>
> >>>>>> Sergey,
> >>>>>>
> >>>>>> The issue vanishes as soon as I add the following to the
> >> configuration:
> >>>>>>
> >>>>>> <property name="memoryConfiguration">
> >>>>>>   <bean class="org.apache.ignite.configuration.
> >> MemoryConfiguration">
> >>>>>>   </bean>
> >>>>>> </property>
> >>>>>>
> >>>>>> My point is that we just need to create a MemoryConfiguration
> >>> implicitly
> >>>>>> if it’s not defined (no any warnings or extra messages). It’s a
> >>>>>> responsibility of our platform to generate a default configuration
> if
> >>> it’s
> >>>>>> not set explicitly.
> >>>>>>
> >>>>>> —
> >>>>>> Denis
> >>>>>>
> >>>>>>> On May 26, 2017, at 8:46 AM, Sergey Chugunov <
> >>> sergey.chugunov@gmail.com>
> >>>>>> wrote:
> >>>>>>>
> >>>>>>> Hi Denis,
> >>>>>>>
> >>>>>>> What is the expected behavior in that case? Bug doesn't suggest
> any.
> >>>>>>>
> >>>>>>> From my point of view it would be better to throw an exception on
> >>>>>> startup
> >>>>>>> with meaningful message than to silently create a default
> >>>>>>> MemoryConfiguration under the cover.
> >>>>>>>
> >>>>>>> Thanks,
> >>>>>>> Sergey.
> >>>>>>>
> >>>>>>> On Fri, May 26, 2017 at 4:00 AM, Denis Magda <dm...@apache.org>
> >>> wrote:
> >>>>>>>
> >>>>>>>> Igniters,
> >>>>>>>>
> >>>>>>>> I’ve just added the first Persistent Store example to the branch
> >> that
> >>>>>>>> fosters the donation:
> >>>>>>>> https://github.com/apache/ignite/tree/ignite-5267/
> >>>>>>>> examples/src/main/java/org/apache/ignite/examples/persistentstore
> >>>>>>>>
> >>>>>>>> However, the example fails with an NPE if a MemoryConfiguration is
> >>> not
> >>>>>>>> defined explicitly:
> >>>>>>>> https://issues.apache.org/jira/browse/IGNITE-5295
> >>>>>>>>
> >>>>>>>> Please those who are involved in the store development fix the
> >> issue
> >>> by
> >>>>>>>> the end of tomorrow. I want to complete with the technical
> >>>>>> documentation
> >>>>>>>> referring to a workable example.
> >>>>>>>>
> >>>>>>>> —
> >>>>>>>> Denis
> >>>>>>
> >>>>>>
> >>>>>
> >>>
> >>>
> >>
>
>

Re: Persistent Store example fails with NPE

Posted by Denis Magda <dm...@apache.org>.
> Can we just fix the exception
> message to clearly state that client mode requires all explicit
> configuration for such and such functionality?

I don’t like this. It will require me as a user:

* have a separate configuration for clients ALL the times.
* initialize the memory bean explicitly which looks like a hack and workaround

<property name="memoryConfiguration">
   <bean class="org.apache.ignite.configuration.MemoryConfiguration">
   </bean>
</property>

—
Denis

> On May 26, 2017, at 11:02 AM, Dmitriy Setrakyan <ds...@apache.org> wrote:
> 
> I don't like ignoring any configuration, but I do agree that enabling
> persistence on the client side seems odd. Can we just fix the exception
> message to clearly state that client mode requires all explicit
> configuration for such and such functionality?
> 
> D.
> 
> On Fri, May 26, 2017 at 10:34 AM, Sergey Chugunov <sergey.chugunov@gmail.com
>> wrote:
> 
>> Denis,
>> 
>> Thanks for quick reply,
>> 
>> I made a change and tested it with your example, everything looks fine.
>> 
>> Pull request is open and available at [1]
>> 
>> [1] https://github.com/apache/ignite/pull/2016
>> 
>> On Fri, May 26, 2017 at 8:25 PM, Denis Magda <dm...@apache.org> wrote:
>> 
>>>> I would suggest on the first iteration to simply ignore persistence
>>>> configuration on client nodes.
>>>> If client node finds persistence configuration on startup it will
>>> printout
>>>> warning message to log and proceed without persistence.
>>> 
>>> +1 for this. Otherwise, it looks like a dirty hack when I need to add an
>>> empty MemoryConfiguration to a client config file. Plus, it requires us
>> to
>>> create different configuration files for servers and clients which has to
>>> be optional by default.
>>> 
>>> —
>>> Denis
>>> 
>>>> On May 26, 2017, at 9:50 AM, Sergey Chugunov <
>> sergey.chugunov@gmail.com>
>>> wrote:
>>>> 
>>>> Moreover, enabling persistence on client node is very risky and may
>> lead
>>> to
>>>> many tricky cases.
>>>> 
>>>> I would suggest on the first iteration to simply ignore persistence
>>>> configuration on client nodes.
>>>> If client node finds persistence configuration on startup it will
>>> printout
>>>> warning message to log and proceed without persistence.
>>>> 
>>>> Supporting persistence on client nodes definitely requires more
>>> thoughtful
>>>> discussion and may be added in the future.
>>>> 
>>>> Thanks,
>>>> Sergey.
>>>> 
>>>> On Fri, May 26, 2017 at 7:28 PM, Sergey Chugunov <
>>> sergey.chugunov@gmail.com>
>>>> wrote:
>>>> 
>>>>> Denis,
>>>>> 
>>>>> I see from example that you're trying to start a client node with
>>>>> persistence configuration specified and you're saying that Ignite must
>>>>> provide default MemoryConfiguration.
>>>>> 
>>>>> But that contradicts with decision we all agreed on in the
>>> discussion[1]:
>>>>> if user wants to do something unusual on client nodes like storing
>> cache
>>>>> partitions (or in this case persisting stuff) he/she *must *provide
>> all
>>>>> necessary configuration explicitly.
>>>>> 
>>>>> Server node with the same persistence configuration (and without
>>> explicit
>>>>> memory configuration) starts just fine.
>>>>> 
>>>>> [1] http://apache-ignite-developers.2346864.n4.nabble.
>>>>> com/Question-local-cache-on-client-nodes-tt15950.html
>>>>> 
>>>>> Thanks,
>>>>> Sergey.
>>>>> 
>>>>> On Fri, May 26, 2017 at 7:03 PM, Denis Magda <dm...@apache.org>
>> wrote:
>>>>> 
>>>>>> Sergey,
>>>>>> 
>>>>>> The issue vanishes as soon as I add the following to the
>> configuration:
>>>>>> 
>>>>>> <property name="memoryConfiguration">
>>>>>>   <bean class="org.apache.ignite.configuration.
>> MemoryConfiguration">
>>>>>>   </bean>
>>>>>> </property>
>>>>>> 
>>>>>> My point is that we just need to create a MemoryConfiguration
>>> implicitly
>>>>>> if it’s not defined (no any warnings or extra messages). It’s a
>>>>>> responsibility of our platform to generate a default configuration if
>>> it’s
>>>>>> not set explicitly.
>>>>>> 
>>>>>> —
>>>>>> Denis
>>>>>> 
>>>>>>> On May 26, 2017, at 8:46 AM, Sergey Chugunov <
>>> sergey.chugunov@gmail.com>
>>>>>> wrote:
>>>>>>> 
>>>>>>> Hi Denis,
>>>>>>> 
>>>>>>> What is the expected behavior in that case? Bug doesn't suggest any.
>>>>>>> 
>>>>>>> From my point of view it would be better to throw an exception on
>>>>>> startup
>>>>>>> with meaningful message than to silently create a default
>>>>>>> MemoryConfiguration under the cover.
>>>>>>> 
>>>>>>> Thanks,
>>>>>>> Sergey.
>>>>>>> 
>>>>>>> On Fri, May 26, 2017 at 4:00 AM, Denis Magda <dm...@apache.org>
>>> wrote:
>>>>>>> 
>>>>>>>> Igniters,
>>>>>>>> 
>>>>>>>> I’ve just added the first Persistent Store example to the branch
>> that
>>>>>>>> fosters the donation:
>>>>>>>> https://github.com/apache/ignite/tree/ignite-5267/
>>>>>>>> examples/src/main/java/org/apache/ignite/examples/persistentstore
>>>>>>>> 
>>>>>>>> However, the example fails with an NPE if a MemoryConfiguration is
>>> not
>>>>>>>> defined explicitly:
>>>>>>>> https://issues.apache.org/jira/browse/IGNITE-5295
>>>>>>>> 
>>>>>>>> Please those who are involved in the store development fix the
>> issue
>>> by
>>>>>>>> the end of tomorrow. I want to complete with the technical
>>>>>> documentation
>>>>>>>> referring to a workable example.
>>>>>>>> 
>>>>>>>> —
>>>>>>>> Denis
>>>>>> 
>>>>>> 
>>>>> 
>>> 
>>> 
>> 


Re: Persistent Store example fails with NPE

Posted by Dmitriy Setrakyan <ds...@apache.org>.
I don't like ignoring any configuration, but I do agree that enabling
persistence on the client side seems odd. Can we just fix the exception
message to clearly state that client mode requires all explicit
configuration for such and such functionality?

D.

On Fri, May 26, 2017 at 10:34 AM, Sergey Chugunov <sergey.chugunov@gmail.com
> wrote:

> Denis,
>
> Thanks for quick reply,
>
> I made a change and tested it with your example, everything looks fine.
>
> Pull request is open and available at [1]
>
> [1] https://github.com/apache/ignite/pull/2016
>
> On Fri, May 26, 2017 at 8:25 PM, Denis Magda <dm...@apache.org> wrote:
>
> > > I would suggest on the first iteration to simply ignore persistence
> > > configuration on client nodes.
> > > If client node finds persistence configuration on startup it will
> > printout
> > > warning message to log and proceed without persistence.
> >
> > +1 for this. Otherwise, it looks like a dirty hack when I need to add an
> > empty MemoryConfiguration to a client config file. Plus, it requires us
> to
> > create different configuration files for servers and clients which has to
> > be optional by default.
> >
> > —
> > Denis
> >
> > > On May 26, 2017, at 9:50 AM, Sergey Chugunov <
> sergey.chugunov@gmail.com>
> > wrote:
> > >
> > > Moreover, enabling persistence on client node is very risky and may
> lead
> > to
> > > many tricky cases.
> > >
> > > I would suggest on the first iteration to simply ignore persistence
> > > configuration on client nodes.
> > > If client node finds persistence configuration on startup it will
> > printout
> > > warning message to log and proceed without persistence.
> > >
> > > Supporting persistence on client nodes definitely requires more
> > thoughtful
> > > discussion and may be added in the future.
> > >
> > > Thanks,
> > > Sergey.
> > >
> > > On Fri, May 26, 2017 at 7:28 PM, Sergey Chugunov <
> > sergey.chugunov@gmail.com>
> > > wrote:
> > >
> > >> Denis,
> > >>
> > >> I see from example that you're trying to start a client node with
> > >> persistence configuration specified and you're saying that Ignite must
> > >> provide default MemoryConfiguration.
> > >>
> > >> But that contradicts with decision we all agreed on in the
> > discussion[1]:
> > >> if user wants to do something unusual on client nodes like storing
> cache
> > >> partitions (or in this case persisting stuff) he/she *must *provide
> all
> > >> necessary configuration explicitly.
> > >>
> > >> Server node with the same persistence configuration (and without
> > explicit
> > >> memory configuration) starts just fine.
> > >>
> > >> [1] http://apache-ignite-developers.2346864.n4.nabble.
> > >> com/Question-local-cache-on-client-nodes-tt15950.html
> > >>
> > >> Thanks,
> > >> Sergey.
> > >>
> > >> On Fri, May 26, 2017 at 7:03 PM, Denis Magda <dm...@apache.org>
> wrote:
> > >>
> > >>> Sergey,
> > >>>
> > >>> The issue vanishes as soon as I add the following to the
> configuration:
> > >>>
> > >>> <property name="memoryConfiguration">
> > >>>    <bean class="org.apache.ignite.configuration.
> MemoryConfiguration">
> > >>>    </bean>
> > >>> </property>
> > >>>
> > >>> My point is that we just need to create a MemoryConfiguration
> > implicitly
> > >>> if it’s not defined (no any warnings or extra messages). It’s a
> > >>> responsibility of our platform to generate a default configuration if
> > it’s
> > >>> not set explicitly.
> > >>>
> > >>> —
> > >>> Denis
> > >>>
> > >>>> On May 26, 2017, at 8:46 AM, Sergey Chugunov <
> > sergey.chugunov@gmail.com>
> > >>> wrote:
> > >>>>
> > >>>> Hi Denis,
> > >>>>
> > >>>> What is the expected behavior in that case? Bug doesn't suggest any.
> > >>>>
> > >>>> From my point of view it would be better to throw an exception on
> > >>> startup
> > >>>> with meaningful message than to silently create a default
> > >>>> MemoryConfiguration under the cover.
> > >>>>
> > >>>> Thanks,
> > >>>> Sergey.
> > >>>>
> > >>>> On Fri, May 26, 2017 at 4:00 AM, Denis Magda <dm...@apache.org>
> > wrote:
> > >>>>
> > >>>>> Igniters,
> > >>>>>
> > >>>>> I’ve just added the first Persistent Store example to the branch
> that
> > >>>>> fosters the donation:
> > >>>>> https://github.com/apache/ignite/tree/ignite-5267/
> > >>>>> examples/src/main/java/org/apache/ignite/examples/persistentstore
> > >>>>>
> > >>>>> However, the example fails with an NPE if a MemoryConfiguration is
> > not
> > >>>>> defined explicitly:
> > >>>>> https://issues.apache.org/jira/browse/IGNITE-5295
> > >>>>>
> > >>>>> Please those who are involved in the store development fix the
> issue
> > by
> > >>>>> the end of tomorrow. I want to complete with the technical
> > >>> documentation
> > >>>>> referring to a workable example.
> > >>>>>
> > >>>>> —
> > >>>>> Denis
> > >>>
> > >>>
> > >>
> >
> >
>

Re: Persistent Store example fails with NPE

Posted by Sergey Chugunov <se...@gmail.com>.
Denis,

Thanks for quick reply,

I made a change and tested it with your example, everything looks fine.

Pull request is open and available at [1]

[1] https://github.com/apache/ignite/pull/2016

On Fri, May 26, 2017 at 8:25 PM, Denis Magda <dm...@apache.org> wrote:

> > I would suggest on the first iteration to simply ignore persistence
> > configuration on client nodes.
> > If client node finds persistence configuration on startup it will
> printout
> > warning message to log and proceed without persistence.
>
> +1 for this. Otherwise, it looks like a dirty hack when I need to add an
> empty MemoryConfiguration to a client config file. Plus, it requires us to
> create different configuration files for servers and clients which has to
> be optional by default.
>
> —
> Denis
>
> > On May 26, 2017, at 9:50 AM, Sergey Chugunov <se...@gmail.com>
> wrote:
> >
> > Moreover, enabling persistence on client node is very risky and may lead
> to
> > many tricky cases.
> >
> > I would suggest on the first iteration to simply ignore persistence
> > configuration on client nodes.
> > If client node finds persistence configuration on startup it will
> printout
> > warning message to log and proceed without persistence.
> >
> > Supporting persistence on client nodes definitely requires more
> thoughtful
> > discussion and may be added in the future.
> >
> > Thanks,
> > Sergey.
> >
> > On Fri, May 26, 2017 at 7:28 PM, Sergey Chugunov <
> sergey.chugunov@gmail.com>
> > wrote:
> >
> >> Denis,
> >>
> >> I see from example that you're trying to start a client node with
> >> persistence configuration specified and you're saying that Ignite must
> >> provide default MemoryConfiguration.
> >>
> >> But that contradicts with decision we all agreed on in the
> discussion[1]:
> >> if user wants to do something unusual on client nodes like storing cache
> >> partitions (or in this case persisting stuff) he/she *must *provide all
> >> necessary configuration explicitly.
> >>
> >> Server node with the same persistence configuration (and without
> explicit
> >> memory configuration) starts just fine.
> >>
> >> [1] http://apache-ignite-developers.2346864.n4.nabble.
> >> com/Question-local-cache-on-client-nodes-tt15950.html
> >>
> >> Thanks,
> >> Sergey.
> >>
> >> On Fri, May 26, 2017 at 7:03 PM, Denis Magda <dm...@apache.org> wrote:
> >>
> >>> Sergey,
> >>>
> >>> The issue vanishes as soon as I add the following to the configuration:
> >>>
> >>> <property name="memoryConfiguration">
> >>>    <bean class="org.apache.ignite.configuration.MemoryConfiguration">
> >>>    </bean>
> >>> </property>
> >>>
> >>> My point is that we just need to create a MemoryConfiguration
> implicitly
> >>> if it’s not defined (no any warnings or extra messages). It’s a
> >>> responsibility of our platform to generate a default configuration if
> it’s
> >>> not set explicitly.
> >>>
> >>> —
> >>> Denis
> >>>
> >>>> On May 26, 2017, at 8:46 AM, Sergey Chugunov <
> sergey.chugunov@gmail.com>
> >>> wrote:
> >>>>
> >>>> Hi Denis,
> >>>>
> >>>> What is the expected behavior in that case? Bug doesn't suggest any.
> >>>>
> >>>> From my point of view it would be better to throw an exception on
> >>> startup
> >>>> with meaningful message than to silently create a default
> >>>> MemoryConfiguration under the cover.
> >>>>
> >>>> Thanks,
> >>>> Sergey.
> >>>>
> >>>> On Fri, May 26, 2017 at 4:00 AM, Denis Magda <dm...@apache.org>
> wrote:
> >>>>
> >>>>> Igniters,
> >>>>>
> >>>>> I’ve just added the first Persistent Store example to the branch that
> >>>>> fosters the donation:
> >>>>> https://github.com/apache/ignite/tree/ignite-5267/
> >>>>> examples/src/main/java/org/apache/ignite/examples/persistentstore
> >>>>>
> >>>>> However, the example fails with an NPE if a MemoryConfiguration is
> not
> >>>>> defined explicitly:
> >>>>> https://issues.apache.org/jira/browse/IGNITE-5295
> >>>>>
> >>>>> Please those who are involved in the store development fix the issue
> by
> >>>>> the end of tomorrow. I want to complete with the technical
> >>> documentation
> >>>>> referring to a workable example.
> >>>>>
> >>>>> —
> >>>>> Denis
> >>>
> >>>
> >>
>
>

Re: Persistent Store example fails with NPE

Posted by Denis Magda <dm...@apache.org>.
> I would suggest on the first iteration to simply ignore persistence
> configuration on client nodes.
> If client node finds persistence configuration on startup it will printout
> warning message to log and proceed without persistence.

+1 for this. Otherwise, it looks like a dirty hack when I need to add an empty MemoryConfiguration to a client config file. Plus, it requires us to create different configuration files for servers and clients which has to be optional by default.

—
Denis

> On May 26, 2017, at 9:50 AM, Sergey Chugunov <se...@gmail.com> wrote:
> 
> Moreover, enabling persistence on client node is very risky and may lead to
> many tricky cases.
> 
> I would suggest on the first iteration to simply ignore persistence
> configuration on client nodes.
> If client node finds persistence configuration on startup it will printout
> warning message to log and proceed without persistence.
> 
> Supporting persistence on client nodes definitely requires more thoughtful
> discussion and may be added in the future.
> 
> Thanks,
> Sergey.
> 
> On Fri, May 26, 2017 at 7:28 PM, Sergey Chugunov <se...@gmail.com>
> wrote:
> 
>> Denis,
>> 
>> I see from example that you're trying to start a client node with
>> persistence configuration specified and you're saying that Ignite must
>> provide default MemoryConfiguration.
>> 
>> But that contradicts with decision we all agreed on in the discussion[1]:
>> if user wants to do something unusual on client nodes like storing cache
>> partitions (or in this case persisting stuff) he/she *must *provide all
>> necessary configuration explicitly.
>> 
>> Server node with the same persistence configuration (and without explicit
>> memory configuration) starts just fine.
>> 
>> [1] http://apache-ignite-developers.2346864.n4.nabble.
>> com/Question-local-cache-on-client-nodes-tt15950.html
>> 
>> Thanks,
>> Sergey.
>> 
>> On Fri, May 26, 2017 at 7:03 PM, Denis Magda <dm...@apache.org> wrote:
>> 
>>> Sergey,
>>> 
>>> The issue vanishes as soon as I add the following to the configuration:
>>> 
>>> <property name="memoryConfiguration">
>>>    <bean class="org.apache.ignite.configuration.MemoryConfiguration">
>>>    </bean>
>>> </property>
>>> 
>>> My point is that we just need to create a MemoryConfiguration implicitly
>>> if it’s not defined (no any warnings or extra messages). It’s a
>>> responsibility of our platform to generate a default configuration if it’s
>>> not set explicitly.
>>> 
>>> —
>>> Denis
>>> 
>>>> On May 26, 2017, at 8:46 AM, Sergey Chugunov <se...@gmail.com>
>>> wrote:
>>>> 
>>>> Hi Denis,
>>>> 
>>>> What is the expected behavior in that case? Bug doesn't suggest any.
>>>> 
>>>> From my point of view it would be better to throw an exception on
>>> startup
>>>> with meaningful message than to silently create a default
>>>> MemoryConfiguration under the cover.
>>>> 
>>>> Thanks,
>>>> Sergey.
>>>> 
>>>> On Fri, May 26, 2017 at 4:00 AM, Denis Magda <dm...@apache.org> wrote:
>>>> 
>>>>> Igniters,
>>>>> 
>>>>> I’ve just added the first Persistent Store example to the branch that
>>>>> fosters the donation:
>>>>> https://github.com/apache/ignite/tree/ignite-5267/
>>>>> examples/src/main/java/org/apache/ignite/examples/persistentstore
>>>>> 
>>>>> However, the example fails with an NPE if a MemoryConfiguration is not
>>>>> defined explicitly:
>>>>> https://issues.apache.org/jira/browse/IGNITE-5295
>>>>> 
>>>>> Please those who are involved in the store development fix the issue by
>>>>> the end of tomorrow. I want to complete with the technical
>>> documentation
>>>>> referring to a workable example.
>>>>> 
>>>>> —
>>>>> Denis
>>> 
>>> 
>> 


Re: Persistent Store example fails with NPE

Posted by Sergey Chugunov <se...@gmail.com>.
Moreover, enabling persistence on client node is very risky and may lead to
many tricky cases.

I would suggest on the first iteration to simply ignore persistence
configuration on client nodes.
If client node finds persistence configuration on startup it will printout
warning message to log and proceed without persistence.

Supporting persistence on client nodes definitely requires more thoughtful
discussion and may be added in the future.

Thanks,
Sergey.

On Fri, May 26, 2017 at 7:28 PM, Sergey Chugunov <se...@gmail.com>
wrote:

> Denis,
>
> I see from example that you're trying to start a client node with
> persistence configuration specified and you're saying that Ignite must
> provide default MemoryConfiguration.
>
> But that contradicts with decision we all agreed on in the discussion[1]:
> if user wants to do something unusual on client nodes like storing cache
> partitions (or in this case persisting stuff) he/she *must *provide all
> necessary configuration explicitly.
>
> Server node with the same persistence configuration (and without explicit
> memory configuration) starts just fine.
>
> [1] http://apache-ignite-developers.2346864.n4.nabble.
> com/Question-local-cache-on-client-nodes-tt15950.html
>
> Thanks,
> Sergey.
>
> On Fri, May 26, 2017 at 7:03 PM, Denis Magda <dm...@apache.org> wrote:
>
>> Sergey,
>>
>> The issue vanishes as soon as I add the following to the configuration:
>>
>> <property name="memoryConfiguration">
>>     <bean class="org.apache.ignite.configuration.MemoryConfiguration">
>>     </bean>
>> </property>
>>
>> My point is that we just need to create a MemoryConfiguration implicitly
>> if it’s not defined (no any warnings or extra messages). It’s a
>> responsibility of our platform to generate a default configuration if it’s
>> not set explicitly.
>>
>> —
>> Denis
>>
>> > On May 26, 2017, at 8:46 AM, Sergey Chugunov <se...@gmail.com>
>> wrote:
>> >
>> > Hi Denis,
>> >
>> > What is the expected behavior in that case? Bug doesn't suggest any.
>> >
>> > From my point of view it would be better to throw an exception on
>> startup
>> > with meaningful message than to silently create a default
>> > MemoryConfiguration under the cover.
>> >
>> > Thanks,
>> > Sergey.
>> >
>> > On Fri, May 26, 2017 at 4:00 AM, Denis Magda <dm...@apache.org> wrote:
>> >
>> >> Igniters,
>> >>
>> >> I’ve just added the first Persistent Store example to the branch that
>> >> fosters the donation:
>> >> https://github.com/apache/ignite/tree/ignite-5267/
>> >> examples/src/main/java/org/apache/ignite/examples/persistentstore
>> >>
>> >> However, the example fails with an NPE if a MemoryConfiguration is not
>> >> defined explicitly:
>> >> https://issues.apache.org/jira/browse/IGNITE-5295
>> >>
>> >> Please those who are involved in the store development fix the issue by
>> >> the end of tomorrow. I want to complete with the technical
>> documentation
>> >> referring to a workable example.
>> >>
>> >> —
>> >> Denis
>>
>>
>

Re: Persistent Store example fails with NPE

Posted by Sergey Chugunov <se...@gmail.com>.
Denis,

I see from example that you're trying to start a client node with
persistence configuration specified and you're saying that Ignite must
provide default MemoryConfiguration.

But that contradicts with decision we all agreed on in the discussion[1]:
if user wants to do something unusual on client nodes like storing cache
partitions (or in this case persisting stuff) he/she *must *provide all
necessary configuration explicitly.

Server node with the same persistence configuration (and without explicit
memory configuration) starts just fine.

[1]
http://apache-ignite-developers.2346864.n4.nabble.com/Question-local-cache-on-client-nodes-tt15950.html

Thanks,
Sergey.

On Fri, May 26, 2017 at 7:03 PM, Denis Magda <dm...@apache.org> wrote:

> Sergey,
>
> The issue vanishes as soon as I add the following to the configuration:
>
> <property name="memoryConfiguration">
>     <bean class="org.apache.ignite.configuration.MemoryConfiguration">
>     </bean>
> </property>
>
> My point is that we just need to create a MemoryConfiguration implicitly
> if it’s not defined (no any warnings or extra messages). It’s a
> responsibility of our platform to generate a default configuration if it’s
> not set explicitly.
>
> —
> Denis
>
> > On May 26, 2017, at 8:46 AM, Sergey Chugunov <se...@gmail.com>
> wrote:
> >
> > Hi Denis,
> >
> > What is the expected behavior in that case? Bug doesn't suggest any.
> >
> > From my point of view it would be better to throw an exception on startup
> > with meaningful message than to silently create a default
> > MemoryConfiguration under the cover.
> >
> > Thanks,
> > Sergey.
> >
> > On Fri, May 26, 2017 at 4:00 AM, Denis Magda <dm...@apache.org> wrote:
> >
> >> Igniters,
> >>
> >> I’ve just added the first Persistent Store example to the branch that
> >> fosters the donation:
> >> https://github.com/apache/ignite/tree/ignite-5267/
> >> examples/src/main/java/org/apache/ignite/examples/persistentstore
> >>
> >> However, the example fails with an NPE if a MemoryConfiguration is not
> >> defined explicitly:
> >> https://issues.apache.org/jira/browse/IGNITE-5295
> >>
> >> Please those who are involved in the store development fix the issue by
> >> the end of tomorrow. I want to complete with the technical documentation
> >> referring to a workable example.
> >>
> >> —
> >> Denis
>
>

Re: Persistent Store example fails with NPE

Posted by Denis Magda <dm...@apache.org>.
Sergey,

The issue vanishes as soon as I add the following to the configuration:

<property name="memoryConfiguration">
    <bean class="org.apache.ignite.configuration.MemoryConfiguration">
    </bean>
</property>

My point is that we just need to create a MemoryConfiguration implicitly if it’s not defined (no any warnings or extra messages). It’s a responsibility of our platform to generate a default configuration if it’s not set explicitly.

—
Denis

> On May 26, 2017, at 8:46 AM, Sergey Chugunov <se...@gmail.com> wrote:
> 
> Hi Denis,
> 
> What is the expected behavior in that case? Bug doesn't suggest any.
> 
> From my point of view it would be better to throw an exception on startup
> with meaningful message than to silently create a default
> MemoryConfiguration under the cover.
> 
> Thanks,
> Sergey.
> 
> On Fri, May 26, 2017 at 4:00 AM, Denis Magda <dm...@apache.org> wrote:
> 
>> Igniters,
>> 
>> I’ve just added the first Persistent Store example to the branch that
>> fosters the donation:
>> https://github.com/apache/ignite/tree/ignite-5267/
>> examples/src/main/java/org/apache/ignite/examples/persistentstore
>> 
>> However, the example fails with an NPE if a MemoryConfiguration is not
>> defined explicitly:
>> https://issues.apache.org/jira/browse/IGNITE-5295
>> 
>> Please those who are involved in the store development fix the issue by
>> the end of tomorrow. I want to complete with the technical documentation
>> referring to a workable example.
>> 
>> —
>> Denis


Re: Persistent Store example fails with NPE

Posted by Sergey Chugunov <se...@gmail.com>.
Hi Denis,

What is the expected behavior in that case? Bug doesn't suggest any.

From my point of view it would be better to throw an exception on startup
with meaningful message than to silently create a default
MemoryConfiguration under the cover.

Thanks,
Sergey.

On Fri, May 26, 2017 at 4:00 AM, Denis Magda <dm...@apache.org> wrote:

> Igniters,
>
> I’ve just added the first Persistent Store example to the branch that
> fosters the donation:
> https://github.com/apache/ignite/tree/ignite-5267/
> examples/src/main/java/org/apache/ignite/examples/persistentstore
>
> However, the example fails with an NPE if a MemoryConfiguration is not
> defined explicitly:
> https://issues.apache.org/jira/browse/IGNITE-5295
>
> Please those who are involved in the store development fix the issue by
> the end of tomorrow. I want to complete with the technical documentation
> referring to a workable example.
>
> —
> Denis