You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
After upgrading from Hot Chocolate v15.1.16 to v16.0.9, the same GraphQL request produces significantly different DataLoader batching behavior across runs.
A big sample question takes ~3-4s in version v15 and ~7-8s in v16. Using C# 10 and EF Core 10.
The issue appears as wave fragmentation: many small/single-key batches in some runs, and larger aggregated batches in others (faster).
This causes unstable SQL shape, unstable DB command counts, and unstable response time for identical request payloads.
But in general v15 all queries is always faster with larger aggregated batches.
Expected behavior
For identical query, data, and environment, batching should be reasonably stable and closer to prior v15 behavior, with consistent key aggregation and SQL count.
Actual behavior
Batching is inconsistent between runs.
Some runs generate many small DataLoader batches and many more DB calls.
Other runs aggregate better and run much faster.
Observed pattern
Scheduler timing sensitivity, where very small resolver timing shifts change dispatch waves and therefore batch size.
Impact
Unpredictable latency and throughput under production-like load.
Performance tuning is difficult because behavior changes without query/data changes.
Is this degree of run-to-run batching variance expected in v16 wave scheduling?
Are there recommended settings/patterns to make DataLoader dispatch more deterministic across runs?
Is there a supported way to emulate v15-like aggregation behavior in v16?
Are there known regressions or guidance for nested resolver chains that trigger wave fragmentation?
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
-
After upgrading from Hot Chocolate v15.1.16 to v16.0.9, the same GraphQL request produces significantly different DataLoader batching behavior across runs.
A big sample question takes ~3-4s in version v15 and ~7-8s in v16. Using C# 10 and EF Core 10.
The issue appears as wave fragmentation: many small/single-key batches in some runs, and larger aggregated batches in others (faster).
This causes unstable SQL shape, unstable DB command counts, and unstable response time for identical request payloads.
But in general v15 all queries is always faster with larger aggregated batches.
Expected behavior
For identical query, data, and environment, batching should be reasonably stable and closer to prior v15 behavior, with consistent key aggregation and SQL count.
Actual behavior
Batching is inconsistent between runs.
Some runs generate many small DataLoader batches and many more DB calls.
Other runs aggregate better and run much faster.
Observed pattern
Scheduler timing sensitivity, where very small resolver timing shifts change dispatch waves and therefore batch size.
Impact
Unpredictable latency and throughput under production-like load.
Performance tuning is difficult because behavior changes without query/data changes.
Beta Was this translation helpful? Give feedback.
All reactions