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.
Modules§
- blocking
- Pool of threads to run heavy processes
- load_
balancer - Module for gathering statistics about the run queues of the runtime
- placement
- Core placement configuration and management
- pool
- Pool of threads to run lightweight processes
- prelude
- Prelude of Bastion Executor
- run
- Blocking run of the async processes
- run_
queue - Concurrent work-stealing deques with proportional stealing enabled.
- sleepers
- Where workers went to parking while no workload is in their worker queue.
- worker
- SMP parallelism based cache affine worker implementation