deprecate RecordsPopper and serialize channel records during push (#3667)

chore: deprecate RecordsPopper and serialize channel records during push

Records channel is redundant for DFS/replication because we have single producer/consumer
scenario and both running on the same thread. Unfortunately we need it for RDB snapshotting.

For non-rdb cases we could just pass a io sink to the snapshot producer,
so that it would use it directly instead of StringFile inside FlushChannelRecord.

This would reduce memory usage, eliminate yet another memory copy and generally would make everything simpler.
For that to work, we must serialize the order of FlushChannelRecord, and that's implemented by
this PR. Also fixes #3658.

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
This commit is contained in:
Roman Gershman 2024-09-09 09:19:04 +03:00 committed by GitHub
parent 1306a91bda
commit b7b96424e4
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 55 additions and 114 deletions

View file

@ -78,6 +78,7 @@ jobs:
--ignore test/test_geo_commands.py \
--ignore test/test_bitmap_commands.py \
--ignore test/test_json/ \
--ignore test/test_mixins/test_bitmap_commands.py \
--junit-xml=results-tests.xml --html=report-tests.html -v
continue-on-error: true # For now to mark the flow as successful