Skip to content

v0.13.0

Choose a tag to compare

@KimSoungRyoul KimSoungRyoul released this 10 Jun 17:06
fc52662

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)