Avoid stale query gap when update happens on same clustered node

Description

Update timestamps is configured with asynchronous replication.

A side effect of this choice is that when an entity/collection is updated, for a very brief period of time stale queries might be returned.

It's important to note that due to how Infinispan deals with asynchronous replication, stale queries might be found even query is done right after an entity/collection update on same node. The reason why asynchronous replication works this way is because there's a single node that's owner for a given key, and that enables changes to be applied in the same order in all nodes. Without it, it could happen that an older value could replace a newer value in certain nodes.

This behaviour, which can be slightly misleading, could be changed by making sure the update happens locally first, but to able to do that, the CallInterceptor would need to be replaced to make sure timestamp updates are monotonically increasing.

Environment

None

Status

Assignee

Unassigned

Reporter

Galder Zamarreno

Fix versions

None

Labels

None

backPortable

None

Suitable for new contributors

None

Requires Release Note

None

Pull Request

None

backportDecision

None

Components

Priority

Major