Redesign in cache consumer and circular message cache to get rid from busy loop #941
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.
Add
wait_for_data()
method to the message cache interface which willblock current thread and wait on condition variable until
notify_data_ready()
will be called from producer thread.Now logic will be more transparent in cache consumer IMO. i.e.
Also with this PR I think we will finally fix an issue related to the high probability to drop messages during the bag split.
Now there are no chance to drop messages unless there are no space in the cache any more. i.e. We can safely put new messages in primary buffer, while at the same time flushing messages to the storage from the secondary buffer.
snapshot
mode. #940