How to handle CacheLocalStore on clients node?

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

How to handle CacheLocalStore on clients node?

daradurvs
Hi, Igniters!

I’m working on an implementation of 3rd party persistence solution.

The solution is annotated by CacheLocalStore annotation.

As far as I know, CacheLocalStore annotation means that server node
persists its own primary and backup partitions (please correct me if
I’m wrong).

How about client nodes? It’s possible to define CacheStoreFactory in
CacheConfiguration which creates CacheStoreStore even on clients node.

But as far as I can see ‘read-through’ and ‘write-through’ methods
aren’t called on clients nodes in case of using CacheLocalStore. It
may be a problem because of CacheLocalStore which may require the
creation of some temporary resources which are not needed on clients
nodes.

How must this situation be handled?
I see some ways:
1) Ignite should validate this situation at cache creation on client node
2) CacheStoreFactory should throw some exception in case of creation
CacheLocalStore on client nodes
3) CacheStoreFactory should create some stub of CacheLocalStore to do nothing

Any thoughts?


--
Best Regards, Vyacheslav D.
Reply | Threaded
Open this post in threaded view
|

Re: How to handle CacheLocalStore on clients node?

voipp
CacheLocalStore annotation means CacheStore is not "global" database, but
each node has its independent db. If CacheStore isn't annotated with
CacheLocalStore, then you can observe situation when data is persisted by
node, which is neither primary, nor backup for the key.(i.e. we have
transactional cache with near disabled).

ср, 27 дек. 2017 г. в 13:02, Vyacheslav Daradur <[hidden email]>:

> Hi, Igniters!
>
> I’m working on an implementation of 3rd party persistence solution.
>
> The solution is annotated by CacheLocalStore annotation.
>
> As far as I know, CacheLocalStore annotation means that server node
> persists its own primary and backup partitions (please correct me if
> I’m wrong).
>
> How about client nodes? It’s possible to define CacheStoreFactory in
> CacheConfiguration which creates CacheStoreStore even on clients node.
>
> But as far as I can see ‘read-through’ and ‘write-through’ methods
> aren’t called on clients nodes in case of using CacheLocalStore. It
> may be a problem because of CacheLocalStore which may require the
> creation of some temporary resources which are not needed on clients
> nodes.
>
> How must this situation be handled?
> I see some ways:
> 1) Ignite should validate this situation at cache creation on client node
> 2) CacheStoreFactory should throw some exception in case of creation
> CacheLocalStore on client nodes
> 3) CacheStoreFactory should create some stub of CacheLocalStore to do
> nothing
>
> Any thoughts?
>
>
> --
> Best Regards, Vyacheslav D.
>
--

*Best Regards,*

*Kuznetsov Aleksey*
Reply | Threaded
Open this post in threaded view
|

Re: How to handle CacheLocalStore on clients node?

daradurvs
Hi, Igniters!

I still need your advice about the situation in the first post in this thread.

>> How to handle CacheLocalStore on clients node?
>> I see some ways:
>> 1) Ignite should validate this situation at cache creation on client node
>> 2) CacheStoreFactory should throw some exception in case of creation CacheLocalStore on client nodes
>> 3) CacheStoreFactory should create some stub of CacheLocalStore to do nothing

On Thu, Dec 28, 2017 at 3:12 PM, ALEKSEY KUZNETSOV
<[hidden email]> wrote:

> CacheLocalStore annotation means CacheStore is not "global" database, but
> each node has its independent db. If CacheStore isn't annotated with
> CacheLocalStore, then you can observe situation when data is persisted by
> node, which is neither primary, nor backup for the key.(i.e. we have
> transactional cache with near disabled).
>
> ср, 27 дек. 2017 г. в 13:02, Vyacheslav Daradur <[hidden email]>:
>
>> Hi, Igniters!
>>
>> I’m working on an implementation of 3rd party persistence solution.
>>
>> The solution is annotated by CacheLocalStore annotation.
>>
>> As far as I know, CacheLocalStore annotation means that server node
>> persists its own primary and backup partitions (please correct me if
>> I’m wrong).
>>
>> How about client nodes? It’s possible to define CacheStoreFactory in
>> CacheConfiguration which creates CacheStoreStore even on clients node.
>>
>> But as far as I can see ‘read-through’ and ‘write-through’ methods
>> aren’t called on clients nodes in case of using CacheLocalStore. It
>> may be a problem because of CacheLocalStore which may require the
>> creation of some temporary resources which are not needed on clients
>> nodes.
>>
>> How must this situation be handled?
>> I see some ways:
>> 1) Ignite should validate this situation at cache creation on client node
>> 2) CacheStoreFactory should throw some exception in case of creation
>> CacheLocalStore on client nodes
>> 3) CacheStoreFactory should create some stub of CacheLocalStore to do
>> nothing
>>
>> Any thoughts?
>>
>>
>> --
>> Best Regards, Vyacheslav D.
>>
> --
>
> *Best Regards,*
>
> *Kuznetsov Aleksey*



--
Best Regards, Vyacheslav D.
Reply | Threaded
Open this post in threaded view
|

Re: How to handle CacheLocalStore on clients node?

Valentin Kulichenko
Vyacheslav,

I'm not aware of any successful CacheStore implementations like this, there
are multiple non-trivial challenges that you're going to face. If you want
to have a decentralized persistent storage, you should use native Ignite
persistence feature.

CacheLocalStore annotation should be deprecated and removed in my view.

-Val

On Fri, Jan 5, 2018 at 10:57 AM, Vyacheslav Daradur <[hidden email]>
wrote:

> Hi, Igniters!
>
> I still need your advice about the situation in the first post in this
> thread.
>
> >> How to handle CacheLocalStore on clients node?
> >> I see some ways:
> >> 1) Ignite should validate this situation at cache creation on client
> node
> >> 2) CacheStoreFactory should throw some exception in case of creation
> CacheLocalStore on client nodes
> >> 3) CacheStoreFactory should create some stub of CacheLocalStore to do
> nothing
>
> On Thu, Dec 28, 2017 at 3:12 PM, ALEKSEY KUZNETSOV
> <[hidden email]> wrote:
> > CacheLocalStore annotation means CacheStore is not "global" database, but
> > each node has its independent db. If CacheStore isn't annotated with
> > CacheLocalStore, then you can observe situation when data is persisted by
> > node, which is neither primary, nor backup for the key.(i.e. we have
> > transactional cache with near disabled).
> >
> > ср, 27 дек. 2017 г. в 13:02, Vyacheslav Daradur <[hidden email]>:
> >
> >> Hi, Igniters!
> >>
> >> I’m working on an implementation of 3rd party persistence solution.
> >>
> >> The solution is annotated by CacheLocalStore annotation.
> >>
> >> As far as I know, CacheLocalStore annotation means that server node
> >> persists its own primary and backup partitions (please correct me if
> >> I’m wrong).
> >>
> >> How about client nodes? It’s possible to define CacheStoreFactory in
> >> CacheConfiguration which creates CacheStoreStore even on clients node.
> >>
> >> But as far as I can see ‘read-through’ and ‘write-through’ methods
> >> aren’t called on clients nodes in case of using CacheLocalStore. It
> >> may be a problem because of CacheLocalStore which may require the
> >> creation of some temporary resources which are not needed on clients
> >> nodes.
> >>
> >> How must this situation be handled?
> >> I see some ways:
> >> 1) Ignite should validate this situation at cache creation on client
> node
> >> 2) CacheStoreFactory should throw some exception in case of creation
> >> CacheLocalStore on client nodes
> >> 3) CacheStoreFactory should create some stub of CacheLocalStore to do
> >> nothing
> >>
> >> Any thoughts?
> >>
> >>
> >> --
> >> Best Regards, Vyacheslav D.
> >>
> > --
> >
> > *Best Regards,*
> >
> > *Kuznetsov Aleksey*
>
>
>
> --
> Best Regards, Vyacheslav D.
>
Reply | Threaded
Open this post in threaded view
|

Re: How to handle CacheLocalStore on clients node?

daradurvs
Valentin,

This is for research task in heavy-write pattern's area.

I’ve implemented CacheLocalStore clients stub, seems that it works
fine on tests and benchmarks.

Thanks!


On Sat, Jan 6, 2018 at 2:19 AM, Valentin Kulichenko
<[hidden email]> wrote:

> Vyacheslav,
>
> I'm not aware of any successful CacheStore implementations like this, there
> are multiple non-trivial challenges that you're going to face. If you want
> to have a decentralized persistent storage, you should use native Ignite
> persistence feature.
>
> CacheLocalStore annotation should be deprecated and removed in my view.
>
> -Val
>
> On Fri, Jan 5, 2018 at 10:57 AM, Vyacheslav Daradur <[hidden email]>
> wrote:
>
>> Hi, Igniters!
>>
>> I still need your advice about the situation in the first post in this
>> thread.
>>
>> >> How to handle CacheLocalStore on clients node?
>> >> I see some ways:
>> >> 1) Ignite should validate this situation at cache creation on client
>> node
>> >> 2) CacheStoreFactory should throw some exception in case of creation
>> CacheLocalStore on client nodes
>> >> 3) CacheStoreFactory should create some stub of CacheLocalStore to do
>> nothing
>>
>> On Thu, Dec 28, 2017 at 3:12 PM, ALEKSEY KUZNETSOV
>> <[hidden email]> wrote:
>> > CacheLocalStore annotation means CacheStore is not "global" database, but
>> > each node has its independent db. If CacheStore isn't annotated with
>> > CacheLocalStore, then you can observe situation when data is persisted by
>> > node, which is neither primary, nor backup for the key.(i.e. we have
>> > transactional cache with near disabled).
>> >
>> > ср, 27 дек. 2017 г. в 13:02, Vyacheslav Daradur <[hidden email]>:
>> >
>> >> Hi, Igniters!
>> >>
>> >> I’m working on an implementation of 3rd party persistence solution.
>> >>
>> >> The solution is annotated by CacheLocalStore annotation.
>> >>
>> >> As far as I know, CacheLocalStore annotation means that server node
>> >> persists its own primary and backup partitions (please correct me if
>> >> I’m wrong).
>> >>
>> >> How about client nodes? It’s possible to define CacheStoreFactory in
>> >> CacheConfiguration which creates CacheStoreStore even on clients node.
>> >>
>> >> But as far as I can see ‘read-through’ and ‘write-through’ methods
>> >> aren’t called on clients nodes in case of using CacheLocalStore. It
>> >> may be a problem because of CacheLocalStore which may require the
>> >> creation of some temporary resources which are not needed on clients
>> >> nodes.
>> >>
>> >> How must this situation be handled?
>> >> I see some ways:
>> >> 1) Ignite should validate this situation at cache creation on client
>> node
>> >> 2) CacheStoreFactory should throw some exception in case of creation
>> >> CacheLocalStore on client nodes
>> >> 3) CacheStoreFactory should create some stub of CacheLocalStore to do
>> >> nothing
>> >>
>> >> Any thoughts?
>> >>
>> >>
>> >> --
>> >> Best Regards, Vyacheslav D.
>> >>
>> > --
>> >
>> > *Best Regards,*
>> >
>> > *Kuznetsov Aleksey*
>>
>>
>>
>> --
>> Best Regards, Vyacheslav D.
>>



--
Best Regards, Vyacheslav D.