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 > >>>> > >>>> > >> > >> > >