Database / DuckDB Interview questions
What does "in-process" mean for a database like DuckDB?
An in-process database runs as a library loaded directly inside the same operating system process as the application using it, rather than as a separate server process the application connects to over a socket or network. There's no client-server round-trip, no separate database process to start, stop, or manage, and no network serialization overhead for every query.
import duckdb con = duckdb.connect() result = con.execute("SELECT 42 AS answer").fetchall()
This is the same deployment model SQLite uses, and it's what makes DuckDB fast to start (no server to spin up) and simple to embed directly into a Python script, a data pipeline, or an application binary. The trade-off is that, in this mode, DuckDB is inherently single-process: multiple separate processes can't simultaneously read and write the same database file the way a traditional client-server database's many connected clients can, which is a meaningful difference from systems designed around that use case.
More Related questions...