ignite-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dmitriy Setrakyan <dsetrak...@apache.org>
Subject Re: Persistent Store example fails with NPE
Date Fri, 26 May 2017 19:14:01 GMT
On Fri, May 26, 2017 at 11:59 AM, Denis Magda <dmagda@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 <dsetrakyan@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 <dmagda@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 <dsetrakyan@apache.org
> >
> >> wrote:
> >>>
> >>> On Fri, May 26, 2017 at 11:29 AM, Denis Magda <dmagda@apache.org
> >> <mailto:dmagda@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 <
> dsetrakyan@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.chugunov@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 <dmagda@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.chugunov@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.chugunov@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 <dmagda@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.chugunov@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
<
> dmagda@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
> >>
> >>
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message