...
draw.io Diagram | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
The logic behind individual commit is very straightforward. For sequential commit each topic partition will only point to one offset number, while under individual commit it is possible to have "gaps" in between. The "stable offset" is a borrowed concept from transaction semantic which is just for illustration purpose, and the idea is that stable offset marks the position where all the messages before it are already committed. "Max commit offset" is the furtherest position this topic has advanced. It is allowed to have some commit gaps in between the stable offset and max offsetThe `IC` blocks refer to the individual commits that are marking records that are processed.
In the individual commit mode, the offset metadata shall grow much quicker and harder to predict. To avoid messing up the stable offset, we propose to add another internal topic called `__individual_commit_offsets` which stores the gaps specifically individual commits specifically. This extra overhead is more controllable by doing this isolation. And each time
Public Interfaces
The
Compatibility, Deprecation, and Migration Plan
...