• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

jzombie / rust-triplets / 34156362728
96%

Build:
DEFAULT BRANCH: main
Ran 07 Sep 2026 07:46PM UTC
Jobs 1
Files 50
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

07 Sep 2026 07:38PM UTC coverage: 96.071% (+0.3%) from 95.789%
34156362728

push

github

web-flow
feat(perf): Optimize sampler sync with incremental delta syncs (#161)

* feat(perf): Optimize sampler sync with incremental delta syncs

Changed

- Bumped `simd-r-drive` from 0.16.3-alpha to 0.17.1-alpha

Fixed

- **Sampler ingestion sync is now incremental.** Steady-state cache
  advances use
  an O(Δ) delta sync (`IngestionManager::sync_delta` over a unified
  global
  version timeline) instead of cloning, sorting, and diffing the full
  record
  pool on every batch. This was ~41% of `sampler-prefetch` CPU in
  profiles.
- **Split-label lookups are cached persistently** (`split_labels` on the
  sampler
  with a `get_or_insert_split_label` helper), so per-record
  `DataStore::read()`
  calls drop to near-zero after the first sync instead of running 2–3×
  per
  record per sync.
- **Token counts are precomputed on `RecordSection`**
  (`#[serde(default)]`, so
  existing serialized data still loads) instead of tokenizing record
  text inside
  the sync hot path.
- **`RecordCache` stores `Arc<DataRecord>`**, eliminating deep-clone
  allocations
  on snapshot/sync.
- **`source_record_indices` is keyed by `RecordId`** instead of
  positional
  `usize` offsets into the record map, so evictions can no longer
  corrupt or
  shift the index.
- **Per-source index maintenance is incremental (strict O(Δ)).**
  Evictions do
  ordered removal and additions binary-search by `stable_hash_str` order
  instead
  of rebuilding + re-sorting the full index every batch; `chunk_index`
  is
  maintained incrementally and long-section eligibility uses per-source
  refcounts instead of a full-pool rescan. Force-refresh cycles (which
  replace
  cache contents wholesale) fall back to full-resync semantics.
- **Negative-backend `on_sync_start` now fires on every sync boundary**,
  fixing
  stale BM25 cursor state persisting across snapshot syncs.
- **`RecordCache::clear()` now logs evictions** (bounded,
  version-stamped) so
  delta syncs report pool replacements and cross-batch... (continued)

763 of 773 new or added lines in 15 files covered. (98.71%)

21956 of 22854 relevant lines covered (96.07%)

4010.59 hits per line

Uncovered Changes

Lines Coverage ∆ File
9
98.1
0.14% crates/triplets-core/src/sampler/mod.rs
1
97.67
0.56% crates/triplets-offline-embedder/src/split_state.rs
Jobs
ID Job ID Ran Files Coverage
1 34156362728.1 07 Sep 2026 07:46PM UTC 50
96.07
GitHub Action Run
Source Files on build 34156362728
  • Tree
  • List 50
  • Changed 16
  • Source Changed 15
  • Coverage Changed 16
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #34156362728
  • a8f2f269 on github
  • Prev Build on main (#33908786216)
  • Next Build on main (#34379170524)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc