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