Google's Bigtable

Learn how to design a distributed database that can use automatic sharding to scale horizontally for better performance and storage space utilization.


Google developed Bigtable in response to the limitations of traditional relational databases when dealing with hyperscale services and diverse data needs. Relational databases were optimized for static schemas and read-heavy workloads, struggling to handle growing data sizes, dynamic structures, and real-time processing required for applications like fraud detection, IoT data management, and financial transactions.

Traditional databases faced issues in both scalability and performance. They relied on vertical scalingVertical scaling, also known as scaling up, refers to scaling by providing additional capabilities (for example, additional CPUs or RAM) to an existing device., leading to the need for expensive hardware upgrades. Additionally, relational databases suffered from slower response times due to increased table quantities, data volume, and complex joins, making them less suitable for modern data-intensive applications. In response, Google created Bigtable, a wide-column storeWide-column databases, also known as column family databases, are a type of NoSQL database that provide faster writes and reads and also perform well for sparse tables. These stores feature characteristics of both regular relational databases and of key-value stores. Its design is based on a persistent, sparse matrix, multi-dimensional mapping (row-value, column-value, and timestamp) in a tabular format enabling huge scalability (petabytes of data). designed to efficiently handle massive amounts of data, varied column structures, and high-performance read-and-write operations. By addressing these deficiencies, Bigtable aimed to provide a highly scalable and performant solution tailored to the demands of Google’s diverse projects, such as web indexing, Google Earth, and Google Finance.

Level up your interview prep. Join Educative to access 70+ hands-on prep courses.