[−][src]Crate bastion_executor
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 |