Inspirel banner

Programming Distributed Systems with YAMI4

11.2.1 Predictability

The private memory allocator was designed to ensure that if the sequence of requests from the user code has cycles, then after each cycle the internal state of the allocator is the same as at the beginning of the cycle.

Request cycles in the communication system are naturally achieved with typical messaging patterns. If the application can be expressed in terms of the following loop:

then the sequence of all requests to the memory allocator is repeatable and each such messaging cycle generates the same allocation and deallocation requests.

Obviously, request cycles can be also obtained in more elaborated scenarios, even with multiple overlapping messaging patterns, and it can be actually expected that critical systems favor such repeatable and predictable actions.

The allocator guarantees that in the presence of request cycles, the internal state is repeatable as well - that is, if a single cycle was successfully completed, then subsequent cycles will be also processed successfully.

The guarantee for repeated success can be of utmost importance for system testing as well as for regular operation and allows to position the whole architecture closer to the fully static allocation and finite state automata approaches.