Skip to content

Add Fusion executor and serialization micro benchmarks - #10242

Merged
michaelstaib merged 2 commits into
mainfrom
mst/fusion-executor-serialization-benchmarks
Aug 16, 2026
Merged

michaelstaib merged 2 commits into
mainfrom
mst/fusion-executor-serialization-benchmarks

Conversation

@michaelstaib

Copy link
Copy Markdown
Member

No description provided.

Copilot AI lite review requested due to automatic review settings August 16, 2026 09:49

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds new Fusion execution/serialization micro-benchmarks and updates existing Fusion benchmarks to match the updated OperationCompiler.Compile(id, hash, shortHash, operationDefinition) signature, keeping benchmark harnesses compiling and comparable.

Changes:

  • Added new micro-benchmarks targeting MetaDb sequential reader cursor navigation, null-leaf merge fast paths, and executor wakeup dispatch behavior.
  • Updated multiple benchmarks to pass id, hash, and shortHash into OperationCompiler.Compile.
  • Updated Fusion OperationRequest benchmark setup to pass UTF-8 query bytes (ReadOnlyMemory<byte>) instead of string.

Reviewed changes

Copilot reviewed 10 out of 10 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
src/HotChocolate/Fusion/benchmarks/Fusion.Execution.Benchmarks/VariableMergingBenchmark.cs Updates OperationCompiler.Compile call to include shortHash.
src/HotChocolate/Fusion/benchmarks/Fusion.Execution.Benchmarks/SequentialReaderPackedCursorBenchmark.cs Adds benchmark for sequential reader navigation, comparing packed-cursor vs product reader.
src/HotChocolate/Fusion/benchmarks/Fusion.Execution.Benchmarks/SelectionTypeShapeBenchmark.cs Updates OperationCompiler.Compile call to include shortHash.
src/HotChocolate/Fusion/benchmarks/Fusion.Execution.Benchmarks/SelectionChildMapBenchmark.cs Updates OperationCompiler.Compile call to include shortHash.
src/HotChocolate/Fusion/benchmarks/Fusion.Execution.Benchmarks/NullLeafFastPathBenchmark.cs Adds benchmark for null-valued property merge behavior and candidate fast path.
src/HotChocolate/Fusion/benchmarks/Fusion.Execution.Benchmarks/GraphQLQueryBenchmark.cs Switches Fusion OperationRequest query argument to UTF-8 bytes.
src/HotChocolate/Fusion/benchmarks/Fusion.Execution.Benchmarks/CompositeObjectCreateTemplateBenchmark.cs Updates OperationCompiler.Compile call to include shortHash.
src/HotChocolate/Fusion/benchmarks/Fusion.Execution.Benchmarks/CompositeContextFusedDecodeBenchmark.cs Updates OperationCompiler.Compile call to include shortHash.
src/HotChocolate/Fusion/benchmarks/Fusion.Execution.Benchmarks/AsyncAutoResetEventDispatchBenchmark.cs Adds benchmark comparing current vs unsafe-dispatch candidate for executor wakeups.
src/HotChocolate/Fusion/benchmarks/Fusion.Execution.Benchmarks/AbstractSelectionSetCacheBenchmark.cs Updates OperationCompiler.Compile call to include shortHash.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

continue;
}

states.Add($"{property.Name}:{resultField.ValueKind}");
Comment on lines +314 to +318
Consumed += MergeBaseline(element);
var baselineStates = CaptureSlotStates(element);

Consumed += MergeWithNullFastPath(element);
var fastPathStates = CaptureSlotStates(element);
The equivalence check merged both kernels into the same target object, so a
kernel that silently skipped a write could still observe the value written by
the other one. Each kernel now writes into its own pristine composite document
fed from its own source document, and the captured slot state includes the raw
JSON text of scalar slots, matching what the check claims to compare.
@michaelstaib
michaelstaib merged commit 2d1cba6 into main Aug 16, 2026
149 checks passed
@michaelstaib
michaelstaib deleted the mst/fusion-executor-serialization-benchmarks branch August 16, 2026 12:06
This was referenced Aug 29, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants