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

veeso / wasm-dbms / 37635627253
95%

Build:
DEFAULT BRANCH: main
Ran 07 Oct 2026 02:31PM UTC
Jobs 1
Files 124
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 Oct 2026 02:18PM UTC coverage: 94.336% (+0.2%) from 94.171%
37635627253

push

github

web-flow
perf(memory): speed up table scans and single-row operations (#175)

* perf(memory): read table rows without copying the rest of the page

Reading a variable-size record went through MemoryAccess::read_at, which
allocates and zero-fills a buffer as large as the remainder of the page
(up to 64 KiB) for every row, copies the page into it and decodes only
the few bytes of the record.

TableReader already holds the whole page, so decode each record straight
from that buffer. TableRegistry::read_at now reads the length header and
then exactly the record body.

The filtered query benchmark over 10,000 rows drops from 7.85 ms to
1.35 ms and the join benchmark improves by about 36%.

Closes #173

* perf(memory): look up index keys without decoding whole B-tree nodes

IndexTree::search deserialized every node on the path, decoding each key
into a heap-allocated value, then read the found leaf a second time and
always read the previous leaf as well.

Add NodeView, a read-only view over a node page that records where each
entry starts and decodes keys on demand, so routing and leaf lookups
binary search a node while decoding only O(log n) keys. Search reuses a
single page buffer, reads each leaf once and only walks to previous
leaves when the found leaf does not start strictly below the key.

Measured with the comparison benchmarks against main: read by primary
key drops from 99 us to 14 us, update by 48%, delete by 41%, single
insert by 41% and bulk insert of 1000 rows by 42%.

* perf(memory): load table metadata without copying whole pages

TableRegistry::load runs before every CRUD operation and read four
metadata pages in full through MemoryAccess::read_at, which copies from
the offset to the end of the 64 KiB page. The ledgers usually hold a few
hundred bytes and the schema snapshot is only used by migrations.

Add read_sized, which reads a short prefix, works out the encoded length
from the entry counts and then copies exactly those bytes. The page,
free-s... (continued)

569 of 580 new or added lines in 11 files covered. (98.1%)

25951 of 27509 relevant lines covered (94.34%)

1108914.97 hits per line

Uncovered Changes

Lines Coverage ∆ File
5
98.2
crates/wasm-dbms/wasm-dbms-memory/src/table_registry/index_ledger/index_tree/node_view.rs
3
96.05
crates/wasm-dbms/wasm-dbms-memory/src/table_registry/sized_read.rs
2
94.44
1.8% crates/wasm-dbms/wasm-dbms-memory/src/table_registry/index_ledger/index_tree.rs
1
89.56
0.84% crates/wasm-dbms/wasm-dbms-memory/src/table_registry.rs
Jobs
ID Job ID Ran Files Coverage
1 37635627253.1 07 Oct 2026 02:31PM UTC 124
94.34
GitHub Action Run
Source Files on build 37635627253
  • Tree
  • List 124
  • Changed 9
  • Source Changed 9
  • Coverage Changed 8
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #37635627253
  • 47f1a64a on github
  • Prev Build on main (#37605177562)
  • Next Build on main (#37932730777)
  • Delete
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