Hi,

Thank you for your quick reply.

With regard to the issues highlighted in Jira, please could you confirm the
following:

1) Is there any anticipated impact to the atomicity of the operations?

2) As stated the operations are not compatible with invalidated entries in
a Region. Apart from a client specifically calling invalidate, are there
any reasons why Geode would internally invalidate an entry? i.e. assuming
invalidate is not called by a client and values are always non-null would
the ConcurrentMap operations be safe to use?

Thanks again for your help.

Kind regards,
Phil

On Tue, 3 Jul 2018, 17:33 Darrel Schneider, <[email protected]> wrote:

> You are right that in the current geode releases, the ConcurrentMap
> methods added since java 1.8 just use the default implementations provided
> on the interface.
> Some issues with this have been identified but so far no changes have been
> made. You can read more about this:
> https://issues.apache.org/jira/browse/GEODE-2727
>
> On Tue, Jul 3, 2018 at 6:46 AM <[email protected]> wrote:
>
>> Hi,
>>
>> I currently have a Geode client/server topology with a partitioned
>> region. I'm looking to make use of ConcurrentMap operations from inside the
>> client (PROXY region).
>>
>> The JavaDoc on the Region interface states:
>>
>> The semantics of the ConcurrentMap methods on a Partitioned Region are 
>> consistent with those
>>  * expected on a ConcurrentMap. In particular multiple writers in different 
>> JVMs of the same key in
>>  * the same Partitioned Region will be done atomically
>>
>>
>> This suggests that all ConcurrentMap operations are performed atomically 
>> when there are multiple writers in different JVMs (clients). I noticed in 
>> the Region interface that there is a specific declaration of the putIfAbsent 
>> method but no declaration of other ConcurrentMap methods such as compute and 
>> merge.
>>
>> Please can you confirm if all ConcurrentMap methods (specifically compute 
>> and merge) provide guarantees around atomicity as it looks like they simply 
>> use the default implementation defined in ConcurrentMap.
>>
>> Thanks in advance for your help.
>>
>> Kind regards,
>> Phil
>>
>>
>>
>>
>>

Reply via email to