World Library  
Flag as Inappropriate
Email this Article

BigTable

Article Id: WHEBN0005919973
Reproduction Date:

Title: BigTable  
Author: World Heritage Encyclopedia
Language: English
Subject: Comparison of structured storage software, NoSQL, Google, Jeff Dean (computer scientist), LevelDB
Collection: Bigtable Implementations, Database Management Systems, Distributed Data Stores, Google
Publisher: World Heritage Encyclopedia
Publication
Date:
 

BigTable

Google Bigtable
Developer(s) Google Inc.
Written in
Platform Google App Engine, Google Compute Engine, Google Cloud Storage, Google BigQuery
Type Cloud Storage
License Proprietary
Website //bigtable.com.googlecloud

Bigtable is a compressed, high performance, and proprietary data storage system built on Google File System, Chubby Lock Service, SSTable (log-structured storage like LevelDB) and a few other Google technologies. On May 6, 2015, a public version of Bigtable was launched as Google Cloud Bigtable.[1] Bigtable also underlies Google Datastore,[2] which is available as a part of the Google Cloud Platform.

Contents

  • History 1
  • Design 2
  • Other similar software 3
  • See also 4
  • References 5
  • Bibliography 6
  • External links 7

History

Bigtable development began in 2004[3] and is now used by a number of Google applications, such as web indexing,[4] MapReduce, which is often used for generating and modifying data stored in Bigtable,[5] Google Maps,[6] Google Book Search, "My Search History", Google Earth, Blogger.com, Google Code hosting, YouTube,[7] and Gmail.[8] Google's reasons for developing its own database include scalability and better control of performance characteristics.[9]

Google's Spanner RDBMS is layered on an implementation of Bigtable with a Paxos group for two-phase commits to each table. Google F1 was built using Spanner to replace an implementation based on MySQL.[10]

Design

Bigtable maps two arbitrary string values (row key and column key) and timestamp (hence three-dimensional mapping) into an associated arbitrary byte array. It is not a relational database and can be better defined as a sparse, distributed multi-dimensional sorted map.[11]:1 Bigtable is designed to scale into the petabyte range across "hundreds or thousands of machines, and to make it easy to add more machines [to] the system and automatically start taking advantage of those resources without any reconfiguration".[12]

Each table has multiple dimensions (one of which is a field for time, allowing for versioning and garbage collection). Tables are optimized for Google File System (GFS) by being split into multiple tablets – segments of the table are split along a row chosen such that the tablet will be ~200 megabytes in size. When sizes threaten to grow beyond a specified limit, the tablets are compressed using the algorithm BMDiff[13][14] and the Zippy compression algorithm[15] publicly known and open-sourced as Snappy,[16] which is a less space-optimal variation of LZ77 but more efficient in terms of computing time. The locations in the GFS of tablets are recorded as database entries in multiple special tablets, which are called "META1" tablets. META1 tablets are found by querying the single "META0" tablet, which typically resides on a server of its own since it is often queried by clients as to the location of the "META1" tablet which itself has the answer to the question of where the actual data is located. Like GFS's master server, the META0 server is not generally a bottleneck since the processor time and bandwidth necessary to discover and transmit META1 locations is minimal and clients aggressively cache locations to minimize queries.

Other similar software

  • Apache Accumulo — built on top of Hadoop, ZooKeeper, and Thrift. Has cell-level access labels and a server-side programming mechanism. Written in Java.
  • Apache Cassandra — brings together Dynamo's fully distributed design and Bigtable's data model. Written in Java.
  • Apache HBase — Provides Bigtable-like support on the Hadoop Core.[17] Has cell-level access labels and a server-side programming mechanism too. Written in Java.
  • Hypertable — Hypertable is designed to manage the storage and processing of information on a large cluster of commodity servers.[18] Written in C++.
  • "KDI", Bluefish, GitHub Kosmix attempt to make a Bigtable clone. Written in C++.
  • LevelDB — Google's embedded key/value store that uses similar design concepts as the Bigtable tablet.[19]

See also

References

  1. ^ http://googlecloudplatform.blogspot.com/2015/05/introducing-Google-Cloud-Bigtable.html
  2. ^ http://googledevelopers.blogspot.com/2013/05/get-started-with-google-cloud-datastore.html
  3. ^ Kumar, Aswini, Whitchcock, Andrew, ed., Google's BigTable, First an overview. BigTable has been in development since early 2004 and has been in active use for about eight months (about February 2005). .
  4. ^ Chang, Fay; Dean, Jeffrey; Ghemawat, Sanjay; Hsieh, Wilson C; Wallach, Deborah A; Burrows, Michael ‘Mike’; Chandra, Tushar; Fikes, Andrew; Gruber, Robert E (2006), "Bigtable: A Distributed Storage System for Structured Data", Research (PDF), Google .
  5. ^ Chang et al. 2006, p. 3: ‘Bigtable can be used with MapReduce, a framework for running large-scale parallel computations developed at Google. We have written a set of wrappers that allow a Bigtable to be used both as an input source and as an output target for MapReduce jobs’
  6. ^ Whitchcock, Andrew, Google's BigTable, There are currently around 100 cells for services such as Print, Search History, Maps, and Orkut .
  7. ^ Cordes, Kyle (2007-07-12), YouTube Scalability (talk), Their new solution for thumbnails is to use Google’s BigTable, which provides high performance for a large number of rows, fault tolerance, caching, etc. This is a nice (and rare?) example of actual synergy in an acquisition. .
  8. ^ "How Entities and Indexes are Stored", Google App Engine, Google Code .
  9. ^ Chang et al. 2006, Conclusion: ‘We have described Bigtable, a distributed system for storing structured data at Google... Our users like the performance and high availability provided by the Bigtable implementation, and that they can scale the capacity of their clusters by simply adding more machines to the system as their resource demands change over time... Finally, we have found that there are significant advantages to building our own storage solution at Google. We have gotten a substantial amount of flexibility from designing our own data model for Bigtable.’
  10. ^ Shute, Jeffrey ‘Jeff’; Oancea, Mircea; Ellner, Stephan; Handy, Benjamin ‘Ben’; Rollins, Eric; Samwel, Bart; Vingralek, Radek; Whipkey, Chad; Chen, Xin; Jegerlehner, Beat; Littlefield, Kyle; Tong, Phoenix (2012), "Summary; F1 — the Fault-Tolerant Distributed RDBMS Supporting Google's Ad Business", Research (presentation),  .
  11. ^ Chang et al. 2006.
  12. ^ "Google File System and BigTable", Radar ( .
  13. ^ "Google Bigtable, Compression, Zippy and BMDiff". 2008-10-12. Archived from the original on 1 May 2013. Retrieved 14 April 2015. .
  14. ^ McIlroy, Bentley. Data compression using long common strings. DCC '99. IEEE. .
  15. ^ "Google's Bigtable", Outer court (Weblog), 2005-10-23 .
  16. ^ "Snappy", Code (project), Google .
  17. ^ "Background; HBase", Hadoop Core (wiki), Apache .
  18. ^ "About", Hyper table .
  19. ^ "Leveldb file layout and compactions", Code, Google .

Bibliography

  • Chang, Fay; Dean, Jeffrey; Ghemawat, Sanjay; Hsieh, Wilson C; Wallach, Deborah A; Burrows, Michael ‘Mike’; Chandra, Tushar; Fikes, Andrew; Gruber, Robert E (2006), "Bigtable: A Distributed Storage System for Structured Data", Research (PDF), Google .

External links

  • BigTable: A Distributed Structured Storage System, Washington . Video, Google .
    • UWTV (video) .
    • Witchcock, Andrew, Google's BigTable (notes on the official presentation) .
  • Carr, David F (2006-07-06), "How Google Works", Baseline .
  • "Is the Relational Database Doomed?", Read-write web .
This article was sourced from Creative Commons Attribution-ShareAlike License; additional terms may apply. World Heritage Encyclopedia content is assembled from numerous content providers, Open Access Publishing, and in compliance with The Fair Access to Science and Technology Research Act (FASTR), Wikimedia Foundation, Inc., Public Library of Science, The Encyclopedia of Life, Open Book Publishers (OBP), PubMed, U.S. National Library of Medicine, National Center for Biotechnology Information, U.S. National Library of Medicine, National Institutes of Health (NIH), U.S. Department of Health & Human Services, and USA.gov, which sources content from all federal, state, local, tribal, and territorial government publication portals (.gov, .mil, .edu). Funding for USA.gov and content contributors is made possible from the U.S. Congress, E-Government Act of 2002.
 
Crowd sourced content that is contributed to World Heritage Encyclopedia is peer reviewed and edited by our editorial staff to ensure quality scholarly research articles.
 
By using this site, you agree to the Terms of Use and Privacy Policy. World Heritage Encyclopedia™ is a registered trademark of the World Public Library Association, a non-profit organization.
 



Copyright © World Library Foundation. All rights reserved. eBooks from iCloud eBook Library are sponsored by the World Library Foundation,
a 501c(4) Member's Support Non-Profit Organization, and is NOT affiliated with any governmental agency or department.