[][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

allocator

NUMA-aware locality enabled allocator with optional fallback.

blocking

A thread pool for running blocking functions asynchronously.

distributor

Cache affine thread pool distributor

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