[CONTROLLER-1535] sal-akka-raft: Eliminate ClientRequestTracker Created: 03/Aug/16  Updated: 25/Jul/23

Status: In Review
Project: controller
Component/s: clustering
Affects Version/s: None
Fix Version/s: None

Type: Improvement
Reporter: Robert Varga Assignee: Tadey Bilan
Resolution: Unresolved Votes: 0
Labels: pt
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issue Links:
Relates
relates to CONTROLLER-1927 Transaction can become stuck in COMMI... Resolved

 Description   

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.


Generated at Wed Feb 07 19:55:47 UTC 2024 using Jira 8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d.