anton-vinogradov opened a new pull request, #13419:
URL: https://github.com/apache/ignite/pull/13419

   ### Problem
   
   `GridDhtAtomicUpdateRequest#forceTransformBackups` is passed `false` from 
both places that create the message — `GridDhtAtomicUpdateFuture` and 
`GridDhtAtomicSingleUpdateFuture`. Every branch guarded by that flag is 
therefore unreachable:
   
   * entry processors are never collected, so the hand-written 
`marshal`/`unmarshal` has nothing to write;
   * three collection fields (`entryProcessorsBytes`, 
`nearEntryProcessorsBytes`, `invokeArgsBytes`) always travel `null`;
   * `GridDhtAtomicCache` builds a `HashMap` of entry processors for every 
TRANSFORM batch and drops it — the value is discarded in `addWriteValue`, which 
keeps the already computed value instead.
   
   ### Solution
   
   Removed the flag and the wire fields it guarded, the hand-written 
marshalling and deployment, the `MarshallableMessage` and `DeployableMessage` 
contracts, `@UseBinaryMarshaller`, the four abstract methods that degenerated 
into constants (`forceTransformBackups`, `entryProcessor`, 
`nearEntryProcessor`, `invokeArguments`), the `entryProc` parameter along the 
future-to-request chain, and the per-batch map of entry processors.
   
   One place needed care: `entryProc != null` in `updatePartialBatch` was 
**not** dead — it carried the "this write came from a transform" flag into 
`innerUpdate`. Since the operation is one per request (`GridCacheOperation op = 
req.operation()`), it is replaced by the exact equivalent `req.operation() == 
TRANSFORM`, and the per-key map becomes unnecessary.
   
   A DHT atomic update request now sends one boolean and three always-null 
collection fields less, and the class no longer needs a marshaller at all.
   
   Part of IGNITE-28935.
   
   ### Verification
   
   * `IgniteCacheAtomicProtocolTest` — 26/26
   * `GridCacheAtomicNearEnabledFullApiSelfTest` — 150/150
   * `IgniteCacheAtomicInvokeTest`, `IgniteCacheAtomicNearEnabledInvokeTest` — 
4/4 each
   * `GridCacheValueConsistencyAtomicNearEnabledSelfTest` — passed
   * full build with `-Pcheckstyle` — 0 violations
   
   🤖 Generated with [Claude Code](https://claude.com/claude-code)
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to