Expand description
Vectorized query execution engine.
Grafeo uses vectorized processing - instead of one row at a time, we process batches of ~1024 rows. This unlocks SIMD and keeps the CPU busy.
| Module | Purpose |
|---|---|
chunk | Batched rows (DataChunk = multiple columns) |
vector | Single column of values |
selection | Bitmap for filtering without copying |
operators | Physical operators (scan, filter, join, etc.) |
pipeline | Push-based execution (data flows through operators) |
parallel | Morsel-driven parallelism |
spill | Disk spilling when memory is tight |
adaptive | Adaptive execution with runtime cardinality feedback |
The execution model is push-based: sources push data through a pipeline of operators until it reaches a sink.
Re-exports§
pub use adaptive::AdaptiveCheckpoint;pub use adaptive::AdaptiveContext;pub use adaptive::AdaptiveEvent;pub use adaptive::AdaptiveExecutionConfig;pub use adaptive::AdaptiveExecutionResult;pub use adaptive::AdaptivePipelineBuilder;pub use adaptive::AdaptivePipelineConfig;pub use adaptive::AdaptivePipelineExecutor;pub use adaptive::AdaptiveSummary;pub use adaptive::CardinalityCheckpoint;pub use adaptive::CardinalityFeedback;pub use adaptive::CardinalityTrackingOperator;pub use adaptive::CardinalityTrackingSink;pub use adaptive::CardinalityTrackingWrapper;pub use adaptive::ReoptimizationDecision;pub use adaptive::evaluate_reoptimization;pub use adaptive::execute_adaptive;pub use chunk::DataChunk;pub use memory::ExecutionMemoryContext;pub use memory::ExecutionMemoryContextBuilder;pub use parallel::CloneableOperatorFactory;pub use parallel::MorselScheduler;pub use parallel::ParallelPipeline;pub use parallel::ParallelPipelineConfig;pub use parallel::ParallelSource;pub use parallel::RangeSource;pub use pipeline::ChunkCollector;pub use pipeline::ChunkSizeHint;pub use pipeline::Pipeline;pub use pipeline::PushOperator;pub use pipeline::Sink;pub use pipeline::Source;pub use selection::SelectionVector;pub use sink::CollectorSink;pub use sink::CountingSink;pub use sink::LimitingSink;pub use sink::MaterializingSink;pub use sink::NullSink;pub use source::ChunkSource;pub use source::EmptySource;pub use source::GeneratorSource;pub use source::OperatorSource;pub use source::VectorSource;pub use spill::SpillFile;pub use spill::SpillFileReader;pub use spill::SpillManager;pub use vector::ValueVector;
Modules§
- adaptive
- Adaptive query execution with runtime cardinality feedback.
- chunk
- DataChunk - the fundamental unit of vectorized execution.
- memory
- Execution memory context for memory-aware query execution.
- operators
- Physical operators that actually execute queries.
- parallel
- Morsel-driven parallel execution engine.
- pipeline
- Push-based execution pipeline.
- selection
- SelectionVector for filtering.
- sink
- Common sink implementations for push-based execution.
- source
- Source implementations for push-based execution.
- spill
- Disk spilling for queries that exceed available memory.
- vector
- ValueVector for columnar data storage.