Signature for the partial function CommandRunner that actually handles each command.
Shortcut for creating Aggregate actors.
The actual operation that will be performed given the AGGREGATE arg in the original Command.
Value of the AGGREGATE arg in the original Command.
Position of the AGGREGATE arg in the original Command.
Shortcut to the args of the current command.
Starts the aggregation process by sending a Command containing the Aggregate subclass instance's command, for each key in the originating Command.
Utility for handling boundary args that wrap around ends of sequences and count backwards when negative.
The current command - normally will be set when a Command arrives via the actor's receive method.
Timeout for a single command.
Sequence of Command instances that are initially sent when aggregation begins.
Reduces results based on the AGGREGATE/WEIGHT args in the original Command, storing the reduced results in the appropriate Node, and aborting sending a response which will be handled by the final Node being written to.
Flag that enables detailed command debugging.
Retrieves a duration config setting as milliseconds, and handles the value not being a duration value, so we can do something like set it to "off", in which case we default to 0.
Ordered set of keys dealt with by the initial Command, used to construct the list of commands being sent.
Utility for dropping extraneous zeros from floats when converting to strings, for consistency with Redis' INCRBYFLOAT/HINCRBYFLOAT commands and sorted set scores.
Returns responses ordered by their original Command order.
Utility for glob-style filtering.
Utility for selecting a random item.
Starts the aggregation process when the original Command is first received, and receives each Node response afterwards, until all responses have arrived, at which point the final response for the ClientNode is constructed and sent back, and the Aggregate actor is shut down.
Sends a Response (usually the result of a command) back to the command's destination (usually a ClientNode sending a Command).
Responses received mapped to Command IDs.
Shortcut route method for sending command input without a constructed Command instance, using the state of the current command (eg: db, clientID).
Sends an unrouted Command to one or more KeyNode actors, either by routing by key, or broadcasting to all.
Utility for scan-style commands, namely SCAN/SSCAN/HSCAN/ZSCAN.
Utility for slicing sequences, for commands such as SLICE, GETRANGE, LRANGE, etc.
Stops the actor - we define this shortcut to give subclassing traits the chance to override it and inject extra shutdown behavior that concrete actors need not know about.
Weight value to use, defaults to 1 if WEIGHT arg not defined.
Postition of the WEIGHT arg in the original Command.