Table of Contents

PMI Operation Types

Developers implement custom PMI logic by implementing an invocation handler, which is a class that derives from one of four base classes available in the Scaleout.Client library.

The type of handler to implement will depend on the following two questions:

  • Does the operation need to return an aggregated result to the client that invoked the PMI operation?
  • Is there a parameter value that needs to be deployed to all servers involved in the operation?
Base class Returns result Accepts parameter
ForEach No No
ForEachWithParam No Yes
Reduce Yes No
ReduceWithParam Yes Yes

All invocation handlers must implement an Evaluate method, which the compute engine calls once for every object evaluated in the PMI operation. Handlers that return an aggregated result must also override abstract methods that handle the initialization, merging, and serialization of an operation's result value.