fix(server): correct batch materialization logic in BatchAccumulator #1555
+35
−37
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This commit refactors the
BatchAccumulator
by removing thecapacity
field and simplifying the logic for materializingbatches. The
materialize_batch_and_maybe_update_state
methodis renamed to
materialize_batch_and_update_state
, and thelogic for handling message offsets and timestamps is streamlined.
The changes improve the clarity and efficiency of the batch processing
logic, addressing issues with the previous handling of
has_remainder
.Additionally, the logic in
writing_messages.rs
is updated to reflectthese changes, ensuring that unsaved messages are correctly managed
based on batch size.
Now, instead of having hard-limit of
messages_required_to_save
wewill trigger it once when capacity if exceeded and save all messages
on disk, instead of handling remainder.