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 <dsetrak...@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 <dma...@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 <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 >> >>