Crate bastion_executor[][src]

Expand description

Bastion Executor is NUMA-aware SMP based Fault-tolerant Executor

Bastion Executor is a highly-available, fault-tolerant, async communication oriented executor. Bastion’s main idea is supplying a fully async runtime with fault-tolerance to work on heavy loads.

Main differences between other executors are:

  • Uses SMP based execution scheme to exploit cache affinity on multiple cores and execution is equally distributed over the system resources, which means utilizing the all system.
  • Uses NUMA-aware allocation for scheduler’s queues and exploit locality on server workloads.
  • Tailored for creating middleware and working with actor model like concurrency and distributed communication.

NOTE: Bastion Executor is independent of it’s framework implementation. It uses lightproc to encapsulate and provide fault-tolerance to your future based workloads. You can use your futures with lightproc to run your workloads on Bastion Executor without the need to have framework.


Pool of threads to run heavy processes

Module for gathering statistics about the run queues of the runtime

Core placement configuration and management

Pool of threads to run lightweight processes

Prelude of Bastion Executor

Blocking run of the async processes

Concurrent work-stealing deques with proportional stealing enabled.

Where workers went to parking while no workload is in their worker queue.

SMP parallelism based cache affine worker implementation