DBDB.io The Encyclopedia of Database Systems · Est. 2017
Database of Databases

Database Entry

SereneDB


SereneDB is a search analytics database designed for real-time online analytical processing workloads. It supports aggregations, search functionalities like fuzzy matching and relevancy scoring, and data ingestion with real-time updates.

Source Code
https://github.com/serenedb/serenedb[02]
Developer
Country of Origin
DE
Start Year
2024
Coding Agents
Project Types
Commercial, Open Source
Written in
C++
Embeds / Uses
RocksDB, Velox
Inspired By
DuckDB
Compatible With
Elasticsearch, PostgreSQL
Operating Systems
Linux, macOS
License
Apache v2
Twitter
@serenedata[05]

SereneDB's core is its "Hybrid Storage Engine," which combines a custom columnar storage manager with its "IResearch" search engine to support real-time updates and search indexing. SereneDB uses a query execution engine, inspired by DuckDB, for vectorized query processing, with native support for vector search and similarity ranking alongside full-text and structured queries. It supports the PostgreSQL SQL dialect and logical replication.

Database Entry

SereneDB


SereneDB is a search analytics database designed for real-time online analytical processing workloads. It supports aggregations, search functionalities like fuzzy matching and relevancy scoring, and data ingestion with real-time updates.

SereneDB's core is its "Hybrid Storage Engine," which combines a custom columnar storage manager with its "IResearch" search engine to support real-time updates and search indexing. SereneDB uses a query execution engine, inspired by DuckDB, for vectorized query processing, with native support for vector search and similarity ranking alongside full-text and structured queries. It supports the PostgreSQL SQL dialect and logical replication.

History


The development of SereneDB began in 2024, led by SereneDB GmbH in Germany.

Checkpoints


SereneDB ensures data persistence through consistent checkpoints and a write-ahead log (WAL).

Compression


Concurrency Control


SereneDB uses optimistic concurrency control transactional model. Search indexes over tables are eventually consistent.

Data Model


The system uses a relational data model and aims for high compatibility with PostgreSQL.

Indexes


The default index structures are SereneDB's own columnar storage layer for primary data organization and inverted indexes from IResearch for full-text search. SereneDB also supports dedicated vector indexes for approximate nearest-neighbor (ANN) search, alongside geospatial indexes for location-based queries. SerebeDB also supports secondary ART indexes.

Isolation Levels


The system supports Snapshot Isolation, which is the default level.

Joins


SereneDB leverages the join algorithms provided by its in-house query execution engine, inspired by DuckDB.

Logging


Query Execution


The system uses a query execution engine adapted from DuckDB, modified to read SereneDB's own indexes and tables and to integrate with IResearch throughout. It employs a vectorized execution model, in which operations are processed in batches of values (vectors) on a column-by-column basis.

Query Interface


SQL

SereneDB uses SQL as its primary query interface, specifically supporting the PostgreSQL dialect. Its support for the PostgreSQL wire protocol allows it to be used with standard PostgreSQL clients and tools. SereneDB also provides an Elasticsearch REST API — bulk and single-document ingestion, Query DSL search with aggregations, scrolling, and kNN/vector search, counts, and mapping endpoints — so existing Elasticsearch clients and tools work with it directly.

Storage Architecture


SereneDB is a disk-oriented database that supports larger-than-memory datasets. It utilizes a Hybrid Storage Engine that combines disk-based components (its in-house columnar storage layer, search index segment files) with in-memory data structures.

Storage Model


In-house columnar layout, tightly coupled with IResearch, for incremental updates and persistent storage. Columns are split into a set of compressed data blocks for aggregations, filtration, and parallelization.

Storage Organization


The storage is a blend of SereneDB's in-house columnar storage engine, inverted indexes, and a columnar data store, both tightly integrated with IResearch. Included columns are stored using the DuckDB file format. SereneDB also supports remote storage across a range of data sources and communication protocols.

System Architecture


SereneDB runs as a single server process that hosts the entire engine: query processing, columnar table storage, and search indexing, with durability provided by write-ahead logging. The planned distributed architecture follows the separation-of-compute-and-storage model: stateless compute nodes execute queries over a shared storage layer, so compute capacity can be scaled independently of the data, and both table data and search index segments — being immutable, append-only files — map naturally onto shared object storage.

Views


SereneDB supports standard SQL views and Search views to union query to multiple search indexes.

Citations

7 sources
  1. SereneDB - Real-Time Search Analytics Database serenedb.com
  2. GitHub - serenedb/serenedb: The First Real-Time Search Analytics Database · GitHub github.com
  3. https://docs.serenedb.com/ serenedb.com
  4. SereneDB serenedb.com
  5. https://twitter.com/serenedata twitter.com
  6. https://github.com/serenedb/serenedb/commit/67c0c10215f8954307a77bbcf9a4988aeca1781b github.com
  7. https://github.com/serenedb/serenedb/commit/a12cd5f5927fb04b0b9ac0bf13d4cc3ad908cff5 github.com
Revision #7