Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Set Difference

Inspired by the HotNets paper.

Setup

Parameterization

There are two parameters to be configured when generating a set difference workload: set size and operation chain length, which we describe below.

Set Size

The number of elements (unsigned integers) each generated set will contain. The reason why we want to parameterize over the size of the sets is that we want to see the "break-even" point between the legacy and nanotransaction-based variants, with the assumption being that traditional RPC-based approaches are not too bad when the size of the data being exchanged by value is small enough, but as the size of the operands in flight increases, so does the per-request latency.

Operation Chain Length

This represents the number of sequential operations that accept a previously computed result as an operand. For instance, in the workload

ACTION        ; HOST; OPERAND 1; OPERAND 2; OUTPUT
get_difference;    1;         4;       106;   4106
get_difference;    1;         4;       146;   4146
get_difference;    1;         4;       103;   4103

the chain length is 1, since none of the calls to get_difference rely on the result of a previous call to get_difference, while in the workload

ACTION        ; HOST; OPERAND 1; OPERAND 2; OUTPUT
get_difference;    1;         4;       106;   4106
get_difference;    1;      4106;       146;   4146
get_difference;    1;      4146;       103;   4103

the chain length is 3, since we are passing the outputs of operations as inputs to subsequent calls to get_difference.

The motivation behind introducing this parameter is to investigate if some access patterns are inherently better suited to the magpie approach.