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

Database Entry

Scuba


Scuba is a distributed in-memory database built at Facebook. It is, in essence, a time-series data analysis database aimed towards serving real-time analytical queries approximately. Scuba aims to keep data ingestion latency low and handles huge data inflow by expelling old data from the memory.

Database Entry

Scuba


Scuba is a distributed in-memory database built at Facebook. It is, in essence, a time-series data analysis database aimed towards serving real-time analytical queries approximately. Scuba aims to keep data ingestion latency low and handles huge data inflow by expelling old data from the memory.

Compression[02]


Scuba uses dictionary compression for strings and variable length encoding for integers.

Data Model[02]


Scuba follows a relational model with some key differences. It does not support a CREATE TABLE statement; the table's schema is inferred from the ingested data. Since the data is partitioned, the schema for the same table can differ across nodes. This difference is reconciled during aggregation.

Indexes[02]


No table has an associated index.

Joins[02]


Query Interface[02]


Scuba supports a web-based interface, a SQL interface through the command line, and a custom Thrift-based API for running queries from application code. All the queries originating from the SQL interface and the web interface ultimately rely on the Thrift interface to query the database backend.

Storage Architecture[02]


Storage Model[02]


As their primary workload is analytical, Scuba in future is considering shifting to the columnar layout.

System Architecture[02]


Scuba partitions data across nodes and upon receiving a query aggregates results from all nodes containing the requested data.

Revision #6 Last Updated: