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.

Indexes

Not Supported

No table has an associated index.

Compression

Dictionary Encoding

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

Query Interface

Custom API SQL HTTP / REST

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 Model

N-ary Storage Model (Row/Record)

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

Data Model

Relational

Storage Architecture

In-Memory

System Architecture

Shared-Nothing

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

Website

https://research.fb.com/publications/scuba-diving-into-data-at-facebook/

Developer

Facebook

Country of Origin

US

Start Year

2013

Project Type

Commercial

Licenses

Proprietary