You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Added
LazyBatchRecords.to_list() — positional bulk conversion returning list[bins_dict | None] aligned 1:1 with the request key order, materialised in a single Rust pass (same cost shape as to_dict(), no per-record lazy BatchRecord.record conversion). Slots are identified purely by position, so batches that read the same user_key from multiple sets do not collide, and successful digest-only reads return their bins. On a 720-key batch the conversion cost drops from 2.86 ms (batch_records loop) to 0.51 ms. (#405)
Fixed
OTel client spans no longer detach into orphan root traces when the calling Python context carries a W3C Trace Context Level 2 traceparent (trace-flags 0x03 = SAMPLED | RANDOM, emitted by recent opentelemetry-python). The bundled opentelemetry-rust (≤ 0.31) propagator rejects version-00 flags > 0x02; the injected traceparent is now masked to the SAMPLED bit before extraction. (#406, #407)
Changed
Batch key conversion is now a two-pass pipeline: Python-object extraction runs once under the GIL with (namespace, set) pointer memoisation, and RIPEMD-160 digest computation for the whole batch runs with the GIL released (Python::detach). On a 720-key batch the key_parse stage drops ~70% (0.63 ms → 0.19 ms). Validation behaviour is unchanged. (#408)