Skip to content

chore(zero-cache): filter changes for non-syncable tables during advance#5636

Merged
darkgnotic merged 1 commit intomainfrom
darkgnotic/filter-backfilling-tables-in-advancements
Mar 4, 2026
Merged

chore(zero-cache): filter changes for non-syncable tables during advance#5636
darkgnotic merged 1 commit intomainfrom
darkgnotic/filter-backfilling-tables-in-advancements

Conversation

@darkgnotic
Copy link
Contributor

Detect and exclude change log entries for non-syncable tables, which includes both backfilling tables and those without a primary key.

@darkgnotic darkgnotic requested a review from grgbkr March 4, 2026 02:10
@vercel
Copy link

vercel bot commented Mar 4, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
replicache-docs Ready Ready Preview, Comment Mar 4, 2026 2:11am
zbugs Ready Ready Preview, Comment Mar 4, 2026 2:11am

Request Review

@github-actions
Copy link

github-actions bot commented Mar 4, 2026

🐰 Bencher Report

Branchdarkgnotic/filter-backfilling-tables-in-advancements
TestbedLinux
Click to view all benchmark results
BenchmarkFile SizeBenchmark Result
kilobytes (KB)
(Result Δ%)
Upper Boundary
kilobytes (KB)
(Limit %)
zero-package.tgz📈 view plot
🚷 view threshold
1,894.86 KB
(+0.06%)Baseline: 1,893.76 KB
1,931.64 KB
(98.10%)
zero.js📈 view plot
🚷 view threshold
246.87 KB
(+0.28%)Baseline: 246.17 KB
251.09 KB
(98.32%)
zero.js.br📈 view plot
🚷 view threshold
67.63 KB
(+0.26%)Baseline: 67.45 KB
68.80 KB
(98.30%)
🐰 View full continuous benchmarking report in Bencher

@github-actions
Copy link

github-actions bot commented Mar 4, 2026

🐰 Bencher Report

Branchdarkgnotic/filter-backfilling-tables-in-advancements
Testbedself-hosted
Click to view all benchmark results
BenchmarkThroughputBenchmark Result
operations / second (ops/s)
(Result Δ%)
Lower Boundary
operations / second (ops/s)
(Limit %)
1 exists: track.exists(album)📈 view plot
🚷 view threshold
13,138.05 ops/s
(+2.21%)Baseline: 12,854.04 ops/s
12,066.31 ops/s
(91.84%)
10 exists (AND)📈 view plot
🚷 view threshold
191,544.04 ops/s
(+1.96%)Baseline: 187,869.86 ops/s
172,656.45 ops/s
(90.14%)
10 exists (OR)📈 view plot
🚷 view threshold
3,780.84 ops/s
(+1.57%)Baseline: 3,722.40 ops/s
3,510.91 ops/s
(92.86%)
12 exists (AND)📈 view plot
🚷 view threshold
169,569.99 ops/s
(+1.98%)Baseline: 166,275.49 ops/s
153,091.76 ops/s
(90.28%)
12 exists (OR)📈 view plot
🚷 view threshold
3,193.56 ops/s
(+1.28%)Baseline: 3,153.29 ops/s
2,966.55 ops/s
(92.89%)
12 level nesting📈 view plot
🚷 view threshold
2,692.84 ops/s
(-1.78%)Baseline: 2,741.54 ops/s
2,568.68 ops/s
(95.39%)
2 exists (AND): track.exists(album).exists(genre)📈 view plot
🚷 view threshold
4,936.50 ops/s
(+1.65%)Baseline: 4,856.15 ops/s
4,579.41 ops/s
(92.77%)
3 exists (AND)📈 view plot
🚷 view threshold
1,922.66 ops/s
(+1.05%)Baseline: 1,902.63 ops/s
1,798.18 ops/s
(93.53%)
3 exists (OR)📈 view plot
🚷 view threshold
937.29 ops/s
(-0.98%)Baseline: 946.58 ops/s
884.48 ops/s
(94.37%)
5 exists (AND)📈 view plot
🚷 view threshold
295.97 ops/s
(-0.98%)Baseline: 298.89 ops/s
281.26 ops/s
(95.03%)
5 exists (OR)📈 view plot
🚷 view threshold
155.36 ops/s
(-1.27%)Baseline: 157.36 ops/s
148.19 ops/s
(95.38%)
Nested 2 levels: track > album > artist📈 view plot
🚷 view threshold
4,212.13 ops/s
(-0.61%)Baseline: 4,238.19 ops/s
3,991.46 ops/s
(94.76%)
Nested 4 levels: playlist > tracks > album > artist📈 view plot
🚷 view threshold
686.15 ops/s
(-0.82%)Baseline: 691.81 ops/s
651.72 ops/s
(94.98%)
Nested with filters: track > album > artist (filtered)📈 view plot
🚷 view threshold
3,580.08 ops/s
(+2.24%)Baseline: 3,501.72 ops/s
3,289.10 ops/s
(91.87%)
planned: playlist.exists(tracks)📈 view plot
🚷 view threshold
550.13 ops/s
(+59.56%)Baseline: 344.77 ops/s
-2.20 ops/s
(-0.40%)
planned: track.exists(album) OR exists(genre)📈 view plot
🚷 view threshold
146.98 ops/s
(+12.41%)Baseline: 130.75 ops/s
104.35 ops/s
(71.00%)
planned: track.exists(album) where title="Big Ones"📈 view plot
🚷 view threshold
6,835.35 ops/s
(+4.60%)Baseline: 6,534.60 ops/s
5,874.38 ops/s
(85.94%)
planned: track.exists(album).exists(genre)📈 view plot
🚷 view threshold
36.19 ops/s
(+123.82%)Baseline: 16.17 ops/s
-15.84 ops/s
(-43.76%)
planned: track.exists(album).exists(genre) with filters📈 view plot
🚷 view threshold
4,830.64 ops/s
(+70.58%)Baseline: 2,831.91 ops/s
-382.26 ops/s
(-7.91%)
planned: track.exists(playlists)📈 view plot
🚷 view threshold
3.60 ops/s
(+61.72%)Baseline: 2.23 ops/s
-0.11 ops/s
(-3.05%)
unplanned: playlist.exists(tracks)📈 view plot
🚷 view threshold
539.92 ops/s
(+60.62%)Baseline: 336.15 ops/s
-2.89 ops/s
(-0.54%)
unplanned: track.exists(album) OR exists(genre)📈 view plot
🚷 view threshold
41.14 ops/s
(+56.99%)Baseline: 26.21 ops/s
2.18 ops/s
(5.30%)
unplanned: track.exists(album) where title="Big Ones"📈 view plot
🚷 view threshold
48.99 ops/s
(-4.18%)Baseline: 51.12 ops/s
48.36 ops/s
(98.72%)
unplanned: track.exists(album).exists(genre)📈 view plot
🚷 view threshold
35.47 ops/s
(+120.29%)Baseline: 16.10 ops/s
-15.74 ops/s
(-44.38%)
unplanned: track.exists(album).exists(genre) with filters📈 view plot
🚷 view threshold
50.38 ops/s
(+1.15%)Baseline: 49.81 ops/s
47.48 ops/s
(94.23%)
unplanned: track.exists(playlists)📈 view plot
🚷 view threshold
3.56 ops/s
(+59.97%)Baseline: 2.23 ops/s
-0.10 ops/s
(-2.69%)
zpg: all playlists📈 view plot
🚷 view threshold
5.17 ops/s
(+26.53%)Baseline: 4.09 ops/s
0.53 ops/s
(10.30%)
zql: all playlists📈 view plot
🚷 view threshold
7.19 ops/s
(+14.23%)Baseline: 6.29 ops/s
5.02 ops/s
(69.80%)
zql: edit for limited query, inside the bound📈 view plot
🚷 view threshold
202,011.57 ops/s
(+4.77%)Baseline: 192,820.52 ops/s
181,171.87 ops/s
(89.68%)
zql: edit for limited query, outside the bound📈 view plot
🚷 view threshold
210,496.89 ops/s
(+3.89%)Baseline: 202,618.84 ops/s
186,129.20 ops/s
(88.42%)
zql: push into limited query, inside the bound📈 view plot
🚷 view threshold
100,553.60 ops/s
(-8.02%)Baseline: 109,320.16 ops/s
90,075.50 ops/s
(89.58%)
zql: push into limited query, outside the bound📈 view plot
🚷 view threshold
368,994.32 ops/s
(-1.58%)Baseline: 374,928.60 ops/s
333,348.60 ops/s
(90.34%)
zql: push into unlimited query📈 view plot
🚷 view threshold
305,244.91 ops/s
(-18.49%)Baseline: 374,487.43 ops/s
243,695.21 ops/s
(79.84%)
zqlite: all playlists📈 view plot
🚷 view threshold
1.68 ops/s
(+6.94%)Baseline: 1.57 ops/s
1.44 ops/s
(85.81%)
zqlite: edit for limited query, inside the bound📈 view plot
🚷 view threshold
69,415.38 ops/s
(+5.76%)Baseline: 65,633.80 ops/s
60,822.55 ops/s
(87.62%)
zqlite: edit for limited query, outside the bound📈 view plot
🚷 view threshold
69,245.08 ops/s
(+3.22%)Baseline: 67,084.88 ops/s
59,933.22 ops/s
(86.55%)
zqlite: push into limited query, inside the bound📈 view plot
🚷 view threshold
3,676.68 ops/s
(-1.46%)Baseline: 3,731.13 ops/s
3,561.10 ops/s
(96.86%)
zqlite: push into limited query, outside the bound📈 view plot
🚷 view threshold
83,949.75 ops/s
(+3.80%)Baseline: 80,873.72 ops/s
74,332.33 ops/s
(88.54%)
zqlite: push into unlimited query📈 view plot
🚷 view threshold
117,769.11 ops/s
(-3.17%)Baseline: 121,624.26 ops/s
104,390.75 ops/s
(88.64%)
🐰 View full continuous benchmarking report in Bencher

@github-actions
Copy link

github-actions bot commented Mar 4, 2026

🐰 Bencher Report

Branchdarkgnotic/filter-backfilling-tables-in-advancements
Testbedself-hosted
Click to view all benchmark results
BenchmarkThroughputBenchmark Result
operations / second (ops/s)
(Result Δ%)
Lower Boundary
operations / second (ops/s)
(Limit %)
src/client/custom.bench.ts > big schema📈 view plot
🚷 view threshold
125,648.00 ops/s
(-1.49%)Baseline: 127,550.53 ops/s
122,065.18 ops/s
(97.15%)
src/client/zero.bench.ts > basics > All 1000 rows x 10 columns (numbers)📈 view plot
🚷 view threshold
2,118.00 ops/s
(+31.20%)Baseline: 1,614.28 ops/s
561.14 ops/s
(26.49%)
src/client/zero.bench.ts > pk compare > pk = N📈 view plot
🚷 view threshold
59,480.32 ops/s
(+2.71%)Baseline: 57,913.62 ops/s
53,629.11 ops/s
(90.16%)
src/client/zero.bench.ts > with filter > Lower rows 500 x 10 columns (numbers)📈 view plot
🚷 view threshold
3,238.00 ops/s
(+12.47%)Baseline: 2,879.10 ops/s
1,947.86 ops/s
(60.16%)
🐰 View full continuous benchmarking report in Bencher

@darkgnotic darkgnotic added this pull request to the merge queue Mar 4, 2026
Merged via the queue into main with commit 0497b89 Mar 4, 2026
27 of 29 checks passed
@darkgnotic darkgnotic deleted the darkgnotic/filter-backfilling-tables-in-advancements branch March 4, 2026 02:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant