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 <dsetrak...@apache.org> wrote: > > On Fri, May 26, 2017 at 11:29 AM, Denis Magda <dma...@apache.org > <mailto:dma...@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 <dsetrak...@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.chugu...@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 <dma...@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.chugu...@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.chugu...@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 <dma...@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.chugu...@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 <dma...@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