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.
NUMA-aware locality enabled allocator with optional fallback.
A thread pool for running blocking functions asynchronously.
Cache affine thread pool distributor
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