Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Facebook’s documented user-database (UDB) tier is SQL at its durable core: it uses sharded MySQL, with MyRocks increasingly used as MySQL’s storage engine. TAO provides a graph-shaped interface and distributed caching, while systems such as RocksDB, Cassandra and HBase serve particular workloads. The best short description is a MySQL-centered, polyglot architecture—not a single SQL or NoSQL database.

What “SQL or NoSQL” means for Facebook’s user database

The answer depends on which layer you mean. MySQL is a relational SQL database used for persistent UDB storage. TAO, the interface through which applications access social-graph data, presents objects and associations in a graph-shaped model and uses distributed caches. Those are different parts of the system, so calling the entire architecture simply “SQL” or “NoSQL” obscures how it works.

Layer or system Role in the documented architecture What it means for the SQL/NoSQL question
MySQL Persistent storage for the UDB, organized across shards The documented durable UDB tier is SQL and relational.
MyRocks A MySQL storage engine that uses RocksDB It changes how MySQL stores data on disk, not the SQL layer above it.
TAO Graph-shaped object-and-association API with distributed caching It gives applications a graph-oriented view; that does not make the underlying UDB persistence non-SQL.
Other stores and engines Support particular services, query patterns or workloads Facebook uses multiple technologies, but that does not replace MySQL as the documented UDB core.

Why MySQL is still the answer for the durable UDB tier

In its 2013 TAO engineering article, Meta said: “We continue to use MySQL to manage persistent storage for TAO objects and associations.” In 2016, its MyRocks article described using MySQL to manage many petabytes of data and explained the migration of the user-database tier from InnoDB to MyRocks. Together, those descriptions establish the key distinction: MySQL remains the database layer, while the storage engine beneath it can change.

MyRocks does not remove SQL

MyRocks integrates RocksDB as a MySQL storage engine. MySQL continues to provide the SQL execution layer and features such as replication and transactional semantics; MyRocks changes the on-disk storage engine. So “Facebook uses RocksDB” can be true of a component without making the documented UDB tier a standalone NoSQL database.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Why TAO can look like a NoSQL database

TAO models social data as typed objects (nodes) and associations (edges), then routes reads and writes through distributed caching clusters. Product engineers can work with that graph-shaped model without dealing directly with all the details of sharding and persistence. From an application developer’s viewpoint, that can look unlike a conventional relational database. But the interface and data model are not the same thing as the durable storage engine: Meta’s published TAO description says MySQL stores the persistent objects and associations.

Where RocksDB, Cassandra and HBase fit

Facebook’s systems are specialized by workload. Their presence is evidence of a polyglot architecture, not evidence that every Facebook dataset lives in one NoSQL store.

  • RocksDB and Dragon: Meta’s 2016 Dragon article describes a distributed graph query engine that falls back to TAO and stores selected data in RocksDB. In that workload, a typical photo upload produced about 20 edges written to MySQL and cached through TAO. The same article reported that Dragon’s partial indexing made the system roughly 150 times larger while serving 90 percent of queries from cache. Those figures describe Dragon’s specific workload, not Facebook’s entire database or all photos and queries.
  • HBase and Messenger: Meta’s 2018 Messenger migration article describes moving the service from HBase to MyRocks. That is an example of a service backend changing independently of the overall UDB architecture.
  • Cassandra: Facebook originally built Cassandra for message reverse indexes. Its use for that specialized purpose does not mean Cassandra is the UDB’s primary persistent database.

Meta’s 2023 MySQL Raft article also describes a large MySQL deployment powering the social graph as well as messaging, ads and Feed. That supports the picture of MySQL as a central platform alongside other systems chosen for particular jobs.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

How to give the most accurate short answer

  • If you mean the documented persistent UDB tier: SQL—sharded MySQL.
  • If you mean the application-facing social-graph layer: TAO exposes graph-shaped objects and associations, with distributed caching.
  • If you mean Facebook’s databases as a whole: multiple systems serve different workloads.

Meta’s public engineering descriptions establish this architecture and several historical migrations, but they do not provide a complete inventory of every internal store or every change through 2026. For precision about present-day internals, describe this as Facebook’s documented UDB architecture rather than claiming that one database engine handles every dataset.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.