Upgrade the DataScript demo to EACL v8 - #1
Conversation
EACL query benchmark: v7 baseline vs v8 upgradeMeasured in one Chromium process against fresh, independently seeded Explorer runtimes with 5 accounts, 20 teams, 10 VPCs, 10,000 servers, and 38 users. Each workload used 20 warm-ups and 30 measured samples; seeding and relationship writes/deletes were excluded. v8 used Times are microseconds per invocation. Factor is v8/v7, so values above 1 are regressions.
No measured read workload is faster on v8. The severe outlier is broad relationship pagination: DataScript v8 materializes and canonically sorts all 2,000 matches, then builds a cursor proof over the full ordered match set to return 20 rows. This makes each page O(matches), and a complete fixed-size traversal O(matches × page-count). The benchmark found an additional duplicate cost: EACL separately hashed the same complete match set for start and end cursors. Upstream EACL commit The reproducible harness and complete method are committed in |
|
Reran the Explorer browser benchmark after upgrading to EACL PR #95 at The default exact-current cache is a material improvement:
The matching Correctness/telemetry:
The remaining broad relationship-read cost is outside the cache. PR #95 removed the complete-result cursor digest, but DataScript still materializes and sorts all 2,000 matches before returning 20, leaving that workload about 104× slower than v7. Full results and method: Upstream caveat: EACL PR #95's top-level tests and formal-model jobs pass, but its isolated-module/parity jobs are currently red from root-relative fixture/tool-path setup failures. The dependency PR is not yet all-green. |
|
Upgraded the Explorer to EACL PR #96 ( Validation remains green:
I also repeated the query benchmark three times. Cached authorization and completed-count performance are effectively preserved, but paginated queries are consistently slower than the earlier PR #95 run:
The two additional PR #96 runs put the three paginated workloads at 4.46–4.82 ms, 18.40–18.93 ms, and 3.40–3.41 ms respectively. That makes the regression repeatable in this session, but the benchmark does not prove whether stricter secure-format/cursor validation is the cause. The full measurements and caveats are committed in |
Summary
73c5488ce35f949f471670f115b5fdccea4b1ec2:eacl/ididentity contractVerification
:appand:testbrowser builds: 0 warningsuser-1:adminPR #96 query-cost result
Times are p50 microseconds per invocation from fresh default-cache runtimes:
Two additional PR #96 runs measured 4.46–4.82 ms for lookup, 18.40–18.93 ms for the broad relationship page, and 3.40–3.41 ms for the known-user page. The paginated-query slowdown is repeatable in this browser session. PR #96's stricter secure-format and cursor validation is a plausible contributor, but these end-to-end measurements do not isolate causation.
The cache redesign remains effective: authorization and completed-count cache hits stay in the tens of microseconds and cache telemetry matches PR #95. Detailed method, historical baselines, and caveats are in
docs/eacl-v8-query-benchmark.md.