mirror of
https://github.com/clockworklabs/SpacetimeDB.git
synced 2026-05-09 09:10:03 -04:00
997b5a6e8f
In #4338, the read-only path was made resilient against empty segments at the end of the log, but corresponding logic was not applied to re-opening the commitlog for writing. This patch rectifies that by ignoring and removing segments from the tail of the log if they contain equal to or less than `segment::Header::LEN` bytes. Additionally, zero-sized segments are eliminated entirely by ensuring that the header is written before moving the segment into place atomically. The benefit of this is not huge, but could simplify commitlog-consuming code by not having to worry about empty (zero-sized) segments. Happy to revert if that is deemed too less of a benefit. # Expected complexity level and risk 2 # Testing Adds a test.