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