IGNITE-27814 Introduce JobTarget.Partition to allow job execution on specific partitions#7989
IGNITE-27814 Introduce JobTarget.Partition to allow job execution on specific partitions#7989rezataroosheh wants to merge 11 commits intoapache:mainfrom
Conversation
|
@rezataroosheh please communicate with the community before starting the work on a ticket. You can leave a comment in JIRA if the ticket is already assigned to someone, or drop a message on dev@ignite.apache.org. Then assign the ticket to yourself and change status to In Progress. Thanks! |
|
Hi @ptupitsyn, Unfortunately, I’ve submitted two requests through the self-service sign-in page to get an ASF account for contributing to Apache Ignite, but I haven’t received any response so far. Similarly, I currently don’t have access to TeamCity. Could you please help me in this regard? |
There was a problem hiding this comment.
Pull request overview
Adds partition-targeted compute execution and table-partition broadcast targeting, enabling compute requests to be routed to a table partition’s primary replica for improved partition awareness and API completeness.
Changes:
- Introduces
JobTarget.Partition(...)and client-side handling for partition-targeted compute execution (ClientOp.ComputeExecutePartitioned). - Adds
BroadcastJobTarget.Table(...)support to execute a job across all partitions of a table. - Extends tests and fake server infrastructure to validate routing, error handling, and broadcast behaviors.
Reviewed changes
Copilot reviewed 12 out of 12 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/PlatformTestNodeRunner.java | Adds a Java test job that returns the executing partition id. |
| modules/platforms/dotnet/Apache.Ignite/Internal/Table/Table.cs | Adds preferred-node resolution based on a partition’s primary replica. |
| modules/platforms/dotnet/Apache.Ignite/Internal/Proto/ClientOpExtensions.cs | Maps new op code to public compute operation type. |
| modules/platforms/dotnet/Apache.Ignite/Internal/Proto/ClientOp.cs | Introduces ComputeExecutePartitioned op code. |
| modules/platforms/dotnet/Apache.Ignite/Internal/Compute/Compute.cs | Implements partition-targeted submit and table broadcast-by-partitions. |
| modules/platforms/dotnet/Apache.Ignite/Compute/JobTarget.cs | Adds JobTarget.Partition(...) API surface. |
| modules/platforms/dotnet/Apache.Ignite/Compute/BroadcastJobTarget.cs | Adds BroadcastJobTarget.Table(...) API surface. |
| modules/platforms/dotnet/Apache.Ignite.Tests/Table/PartitionDistributionTests.cs | Adds validation tests for partition-targeted job submission errors. |
| modules/platforms/dotnet/Apache.Ignite.Tests/PartitionAwarenessTests.cs | Adds routing tests for partition-targeted compute and updates op assertions. |
| modules/platforms/dotnet/Apache.Ignite.Tests/FakeServer.cs | Updates fake server to handle the new compute op. |
| modules/platforms/dotnet/Apache.Ignite.Tests/Compute/ComputeTests.cs | Adds tests for table broadcast target and cancellation/cleanup coverage. |
| modules/platforms/dotnet/Apache.Ignite.Tests.Common/Compute/JavaJobs.cs | Exposes the new Java job descriptor to .NET tests. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
Hi @ptupitsyn, just wanted to check in — all the feedback has been addressed, and the broadcast-related code has been removed. Could you take another look when you get a chance? Also, I noticed that IGNITE-23987 (.NET: Support broadcast partitioned) is the natural follow-up to this work, and since I'm already deep in this area of the codebase, I'd love to take it on if you're open to reassigning it to me once this PR lands. |
JobTarget.The Partition(QualifiedName tableName, int partitionId) method has been added, allowing users to route compute jobs directly to the primary replica of a specific partition.
Direct Partition Access: Allows advanced users to perform operations on a specific partition (e.g., maintenance, custom aggregations, or data cleanup) when the partition ID is already known.
API Completeness: Complements the existing BroadcastJobTarget.Table(), which targets all partitions by allowing a single targeted-partition execution.
https://issues.apache.org/jira/browse/IGNITE-27814