Well, merged the fix to the branch with the donation and closed the ticket:
https://issues.apache.org/jira/browse/IGNITE-5295 
<https://issues.apache.org/jira/browse/IGNITE-5295>

—
Denis

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

Reply via email to