Roman Khachatryan created FLINK-26019:
-----------------------------------------
Summary: Changelogged PriorityQueue elements recovered out-of-order
Key: FLINK-26019
URL: https://issues.apache.org/jira/browse/FLINK-26019
Project: Flink
Issue Type: Bug
Components: Runtime / State Backends
Affects Versions: 1.15.0
Reporter: Roman Khachatryan
Assignee: Roman Khachatryan
Fix For: 1.15.0
StateChangeFormat is the class responsible for writing out changelog data.
Each chunk of data is sorted by: logId -> sequenceNumber -> keyGroup.
Sorting by sequenceNumber preserves temporal order.
Sorting by keyGroup a) puts metadata (group -1) at the beginning and b) allows
to write KG only once.
However, the assumption that the order of changes across groups currently
doesn't hold: poll operation of InternalPriorityQueue may affect any group (the
smaller item across groups so far will be polled).
This results in wrong processing time timers being removed on recovery in
ProcessingTimeWindowCheckpointingITCase#testAggregatingSlidingProcessingTimeWindow
One way to solve this probelm is to simply disable KG-sorting and grouping
(only output metadata at the beginning).
The other one is to associate polled element with the correct key group while
logging changes.
Both ways should work with re-scaling.
cc: [~masteryhx], [~ym], [~yunta]
--
This message was sent by Atlassian Jira
(v8.20.1#820001)