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
* perf(datastore): binary-search RangeCursor start and latestAt
ARCHITECTURE.md documents both as binary searches, but findFirstValid()
and latestAt() linear-scanned the chunk deque and the rows within a chunk
(O(C*R)). Committed chunks are never empty and are time-ordered
(each chunk's t_min >= the previous chunk's t_max), so t_min/t_max are
monotonic across the deque and timestamps are monotonic within a chunk --
enabling std::lower_bound / std::upper_bound for an O(log C + log R) start.
Behaviour-preserving: lower_bound keeps the first-duplicate range start,
and upper_bound keeps the last-duplicate / later-chunk-at-shared-boundary
semantics of the previous reverse scans. Adds regression tests for
duplicate timestamps, shared chunk boundaries, and single-point ranges.
Makes the ARCHITECTURE.md "binary-searches" claim accurate. Internal
optimization; no API/ABI change.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* chore: add missing SPDX headers; drop stale `development` CI trigger
number_parse.{hpp,cpp} (pj_base, Apache-2.0) lacked their
SPDX-License-Identifier headers -- the dual-license boundary relies on
per-file headers, so add them. All four branch-triggered workflows still
keyed on the deleted `development` branch; restrict them to `main`.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
0 commit comments