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

Reply via email to