- Embedded database
- A database system that is a linked library running completely inside a host process, with no server process and no client protocol. SQLite is the canonical example, and DuckDB is positioned as its analytical counterpart.
- Vectorized interpreted execution
- An execution style, taken from MonetDB/X100, in which operators are interpreted but process a whole vector of values per call instead of one tuple. It was chosen over just-in-time compilation because JIT requires massive compiler libraries such as LLVM that break embeddability.
- Vector Volcano model
- DuckDB's execution model: a classical pull-based Volcano iterator pipeline in which each next call moves a chunk of vectors rather than a single tuple. Execution starts at the plan root and ends when the chunk arriving at the root is empty.
- Chunk
- The unit of data passed between operators, defined in the paper as a horizontal subset of a result set, a query intermediate or a base table. Chunks are produced by scan operators reading persistent tables and flow upward through the plan.
- Selection vector
- A list of offsets into a vector stating which indices of that vector are currently relevant. It lets operators such as filters mark surviving rows without physically shifting data inside the vector.
- String heap
- The separate memory region holding variable-length values, which a vector references through a native array of pointers. It keeps the vector itself fixed-width so vectorized operations stay uniform across types.
- Serializable MVCC (HyPer variant)
- The concurrency control scheme DuckDB implements, tailored for hybrid OLAP and OLTP systems: data is updated in place immediately and the previous states are kept in a separate undo buffer for concurrent transactions and for aborts. It was preferred over Optimistic Concurrency Control because parallel table modification was an often-requested feature.
- DataBlocks
- The read-optimized persistent storage layout DuckDB adopts, in which tables are horizontally partitioned into chunks of columns compressed into physical blocks by light-weight compression. Each block carries per-column min and max indexes for skipping plus a lightweight per-column index to restrict how many values are scanned.
- libpg_query
- The Postgres SQL parser extracted as a standalone C library and stripped down, used as DuckDB's front end. Its output parse tree of C structures is immediately converted into DuckDB's own C++ parse tree so the Postgres data structures do not leak into the rest of the system.