Skip to content

Add declarative loader batch plan - #115

Merged
AnaTofuZ merged 3 commits into
mainfrom
perf/declarative-loader-batch-plan
Aug 21, 2026
Merged

Add declarative loader batch plan#115
AnaTofuZ merged 3 commits into
mainfrom
perf/declarative-loader-batch-plan

Conversation

@AnaTofuZ

Copy link
Copy Markdown
Owner

Summary

  • add an opt-in executor-owned batch plan for cacheless declarative object loaders
  • bypass per-item DataLoader tickets, subscribers, and suspension frames for the supported single-root-list shape
  • preserve the existing ticket path as fallback for cache, routers, arguments, siblings, and unsupported projections

Performance

At width 25 with unique keys, three interleaved 5-second runs improved the median from 35,476 req/s to 94,210 req/s (2.66x).

Verification

  • 546 tests pass
  • XS ownership lint passes
  • macOS leaks reports 0 leaks
  • repeated/cache-enabled workload falls back without regression

@AnaTofuZ
AnaTofuZ marked this pull request as ready for review August 21, 2026 03:30
@AnaTofuZ
AnaTofuZ merged commit 6e161b0 into main Aug 21, 2026
34 checks passed
@AnaTofuZ
AnaTofuZ deleted the perf/declarative-loader-batch-plan branch August 21, 2026 03:30
AnaTofuZ added a commit that referenced this pull request Aug 21, 2026
Changelog diff is:

diff --git a/Changes b/Changes
index ca6bf38..e28fbf4 100644
--- a/Changes
+++ b/Changes
@@ -2,6 +2,14 @@ Revision history for Perl extension GraphQL-Houtou
 
 {{$NEXT}}
 
+0.06 2026-08-21T03:31:47Z
+
+    - Add declarative DataLoader fields with native executor integration (#111)
+    - Compile declarative loader metadata into the execution program (#112)
+    - Optimize declarative loader argument binding and settled object handling (#113)
+    - Cache projection plans for plain hash loader results (#114)
+    - Add an executor-owned batch plan for cacheless declarative loaders (#115)
+
 0.05 2026-07-26T22:07:03Z
 
     - Fix boolean literal crash under JSON::MaybeXS 1.003009 / JSON::PP fallback (#110)
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