Skip to content

Feat/json benches - #2

Closed
coderdan wants to merge 6 commits into
protect-benchesfrom
feat/json-benches
Closed

Feat/json benches#2
coderdan wants to merge 6 commits into
protect-benchesfrom
feat/json-benches

Conversation

@coderdan

Copy link
Copy Markdown
Contributor

No description provided.

coderdan and others added 6 commits January 19, 2026 20:18
- Add bench:ingest:json-ste-vec-small-gin task to benchmark ingest with
  pre-created GIN index
- Add parameterized record counts (default 500,1000,10000, override via arg)
- Update _run task to truncate table before each hyperfine iteration
- Fix setup-db to create postgres database if it doesn't exist
- Add .env sourcing to ingest tasks for DATABASE_URL

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@coderdan

Copy link
Copy Markdown
Contributor Author

Superseded by #11, which rebuilds the additive value of this PR on top of current main (post-#9 functional-indexes / AutoStrategy era) and modernises along the way. See #11's description for the breakdown of what carried forward and what was dropped.

@coderdan coderdan closed this May 13, 2026
@coderdan
coderdan deleted the feat/json-benches branch May 13, 2026 13:03
coderdan added a commit that referenced this pull request Jul 9, 2026
… + field_gt

Addresses PR #23 review (James's items #1 and #2):

- setup-db-v3 now installs the pinned eql-3.0.0-alpha.3 release bundle
  instead of building from a local eql_v3 checkout. alpha.3 moved the
  per-domain types eql_v3.* -> public.* and removed jsonb_query, so the
  whole v3 surface is migrated to public.<type> (schema_v3.sql, sql/indexes,
  *_v3 benches, encrypt binaries, src/v3.rs); eql_v3.* FUNCTIONS
  (eq_term/ord_term/match_term/ord_ope_term/ore_cllw/jsonb_*) are unchanged.
- Verified no bench/index/schema calls a moved eql_v3_internal extractor
  (hmac_256/bloom_filter/ore_block_256/ope_cllw) directly — item #2.

JSON bench now queries through the named EQL JSON functions rather than raw
jsonb @>/-> operators:
- contains/extractor: eql_v3.jsonb_contains(value, $1) on GIN(eql_v3.jsonb_array(value))
- field access: eql_v3.jsonb_path_query_first(value, sel) feeding eql_v3.eq_term / eql_v3.ore_cllw
- new scenario json/field_gt/functional: the encrypted `x->'y' > 10` range
  query -- `>` on public.jsonb_entry inlines to ore_cllw compare, reusing
  field_order_idx (no new index).

Re-ingested + re-ran the JSON tiers 10k-1M-10M against alpha.3 in an isolated
DB and regenerated report/V3_COMPARISON.md + report/BENCHMARK_REPORT.md.
contains/functional @10m improves 3.36ms -> 1.05ms (jsonb_array recipe).
Non-JSON v3 numbers remain the alpha.2-equivalent baseline pending a full
re-baseline (flagged by a "Re-baseline status" banner in the report).
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