Tags: dragonflydb/dragonfly
Tags
fix(tiering): Fix tiered serialization race that could corrupt stream (… …#6807) Delayed tiered entries could be serialized at unsafe times, interleaving with snapshot generation and corrupting the stream. Fix by moving delayed tiered value serialization out of PushSerialized() and executing it only at controlled points during bucket serialization. Cherry-picked #6824 that added python test. Closes #6816 #6687 Signed-off-by: mkaruza <mario@dragonflydb.io> Co-authored-by: Roman Gershman <roman@dragonflydb.io>
fix(bitops): Fetch only single byte for SETBIT operation (#6745) Optimizes the SETBIT command to avoid reading and writing the entire string value when setting a single bit. Instead, it reads and writes only the affected byte when possible. Signed-off-by: mkaruza <mario@dragonflydb.io>
fix(server): flush replies on encountering blocking command in pipeli… …ne (#6743) * facade: Add public API to flush the reply builder on connection * server: Flush replies if the current command is blocking #6738 If the current command is blocking, and we are in an async dispatch, flush the reply buffer. This allows commands such as BLPOP to not remain blocked while the entire pipeline is processed, instead being able to send a response if the target has new data. * tests: Add test to ensure blocking command in pipeline flushes Signed-off-by: Abhijat Malviya <abhijat@dragonflydb.io>
chore: add more invariant checks for streams (#6459) (#6488) 1. Check rax validity in more places in stream_family.cc 2. Cover streamTrim function and check lp validity following the assert-fail in the tests. 3. Move raxStop to bottop of StreamAppendItem function though it's not clear that raxStop can actually cause the bug as ri.key is always 16 bytes and is never allocated on heap. Addresses #6409 though not necessary fixes it. Signed-off-by: Roman Gershman <roman@dragonflydb.io>
PreviousNext