-
Improvement
-
Resolution: Unresolved
-
None
-
None
-
Operating System: All
Platform: All
ClientRequestTracker is a remnant of ShardCommitCoordinator's interaction with the journal when transaction commits did not carry their identifier.
It is only used in the leader role to allow Shard-level components to discern what request is being continued. This information can easily be recovered from the payload itself, but requires a new API which will allow RaftActor to mark a payload as committed, where the payload can clear the identifier cache.
This way the leader can access the attached identifier with no penalty during applyState() callback and we do not have to retain it in memory once applyState() finishes.
In the follower case this is not a problem, too, as when a follower applies a payload, it will de-serialize both the contents and the identifier of the payload anyway.
- relates to
-
CONTROLLER-1927 Transaction can become stuck in COMMIT_PENDING when a node flaps leader -> follower -> leader
- Resolved