That’s correct Aashish!
Class --> DataLoadEvent { String current; //getters + setters }
Region<UUID,DataLoadEvent> --> /Event
CQ : select e.current from /Event e
As soon as you consume it in CQHandler, remove it from /Event region.
Thanks,
Dharam
From: aashish choudhary [mailto:[email protected]]
Sent: Thursday, September 27, 2018 1:24 PM
To: [email protected]
Subject: Re: Get geode region insert completion event
Thanks Mike, Anthony, Anil, Dharam for your inputs.Must say we have great
community support for geode.
Dharam,.
I am trying to understand the part where in you said that "Now as soon as data
load on position2 is completed you publish a 'DataLoadCompleted' event into new
/event region with attribute as current=position2". So with this event we
basically mean that we will put and entry in the /event region. And then from
there on CQ will take care of notifying it to client to make the switch as you
suggested.
Ashish
On Wed 26 Sep, 2018, 11:32 PM Dharam Thacker,
<[email protected]<mailto:[email protected]>> wrote:
If my understanding is correct, let me try to explain how I have done for my
use case.
Let's say you have position1 and position2 regions on server.
- Client is accessing data from position1.
- On end of day you receive a trigger and data will be loaded in position2
region.
- Meanwhile data load is running, client is still accessing data from position1.
Now as soon as data load on position2 is completed you publish a
'DataLoadCompleted' event into new /event region with attribute as
current=position2.
Let your client register cqlistsner and on this match event you switch to
position2 region in cqlistsner handler.
I am assuming that in your client you already have reference to both client
proxy region or gemfire template.
Example:
GemfireTemplate position1Template
GemfireTemplate position2Template
GemfireTemplate currentTemplate
On cqlistsner event you switch current template to position1 or position2
depending on "current" property explained above.
Thanks,
Dharam
On Wed, Sep 26, 2018, 23:17 Michael Stolz
<[email protected]<mailto:[email protected]>> wrote:
Then you would have to check that the pointer record is pointing to the region
you fetched it from. If not, redo the operation on the region it IS pointing to.
--
Mike Stolz
Principal Engineer, GemFire Product Lead
Mobile: +1-631-835-4771
On Wed, Sep 26, 2018 at 1:47 PM Michael Stolz
<[email protected]<mailto:[email protected]>> wrote:
You could store the pointer record in both regions and make sure to replace the
stale region first then the live region. Then you could use getAll( ) including
the key of the pointer record as well as the record you want.
--
Mike Stolz
Principal Engineer, GemFire Product Lead
Mobile: +1-631-835-4771
On Wed, Sep 26, 2018 at 1:43 PM Anilkumar Gingade
<[email protected]<mailto:[email protected]>> wrote:
Currently, there is no option to specify multiple region in a single API.
Application has to handle this.
E.g.: One way by doing get() on position2 first, if not found then on position1
(it can use functions).
There could be a window where the position2 is getting updated but its not yet
reflected in the region. Depending on use-case requirement (if its fine to get
old data when its getting updated), application has to handle it.
-Anil.
On Tue, Sep 25, 2018 at 10:40 PM aashish choudhary
<[email protected]<mailto:[email protected]>> wrote:
Use case description:-
We have requirement where in we will have two geode regions let's say position1
and position2 now position1 will have positions as of 25 september after end of
the day a data load operation will run which will put data to position2 region.
At this point while data load is running any get request will be served from
position1 region because there is a possibility of getting stale data. Now the
client will have to make a switch to position2 region to serve get request with
latest data after the load gets completed. So is there any way by which a
client application could make a switch to different region once the data load
gets completed .
With best regards,
Ashish
This message is confidential and subject to terms at:
http://www.jpmorgan.com/emaildisclaimer including on confidentiality, legal
privilege, viruses and monitoring of electronic messages. If you are not the
intended recipient, please delete this message and notify the sender
immediately. Any unauthorized use is strictly prohibited.