·
5 commits
to master
since this release
This release adds opt-in spill-to-disk support for the zero-copy network allocator, makes Bytes Sync (a soundness fix), and continues trimming compile-time monomorphization sprawl.
Breaking changes
Bytesis nowSync, and byte buffers must beSend.timely_bytes::arc::Bytesnow implementsSyncin addition toSend. To make both impls sound,BytesMut::fromnow requires its payload to beSend. This is a breaking change totimely_communication:BytesRefill::logicnow producesBox<dyn DerefMut<Target=[u8]> + Send>rather thanBox<dyn DerefMut<Target=[u8]>>. Custom refills whose buffer type wraps a raw pointer (e.g.NonNull) must assertunsafe impl Sendon that type. (#800)ToStreamBuilderexposes the item type via theItemassociated type instead of a trait-level generic, and the container builder moves to a method-level generic. This enables method-call syntax:(0..3).to_stream_with_builder::<_, CapacityContainerBuilder<_>>(scope)instead of the UFCS formToStreamBuilder::<CapacityContainerBuilder<_>>::to_stream_with_builder(0..3, scope). (#792)
Added
- Spill-to-disk for the zero-copy allocator (
timely_communication). A newallocator::zero_copy::spillmodule lets aMergeQueueshed resident bytes under memory pressure. It composes three pluggable traits:SpillPolicy(whether and how to reshape a queue on eachextend),BytesSpill(where spilled bytes go — file, object store, mock, …), andBytesFetch(reads them back). The shippedthreshold::Thresholdpolicy spills the middle of a queue once resident bytes exceed configurable threshold/reserve/budget knobs. It is opt-in via thespillhook on the communication configuration and defaults toNone, so existing deployments are unaffected. See thespill_stressandspill_compareexamples. (#789, #791) logging::Registry::namesiterates the names of the currently bound loggers. (#795)
Other
- Updated the
columnardependency to 0.13. - Hoisted the per-update rebuild check out of
MutableAntichain::update_iterinto arequires_rebuildhelper generic only over the timestamp, reducing monomorphization sprawl (~1600 fewer LLVM lines on theevent_drivenexample). (#797)