Bigtable — Вікіпедія

Google Bigtable
ТипХмарне сховище
РозробникGoogle Inc.
Перший випусклютий 2005; 19 років тому (2005-02)
ПлатформаGoogle Cloud Platform
Мова програмування
C++ (головне ядро), Java, Python, Go, Ruby
ЛіцензіяПропрієтарне
Вебсайтcloud.google.com/bigtable/

Bigtable — це система зі стисненням, високою продуктивністю та власницькою системою збереження даних, побудована на файловій системі Google, розподіленому менеджері блокувань Chubby, SSTable (лог-структуроване сховище, подібне до LevelDB[en]) та кілька інших технологій Google. 6 травня 2015 року загальнодоступна версія Bigtable почала працювати як сервіс. Bigtable також використовується в Google Cloud Datastore, який доступний як частина Google Cloud Platform.[1][2]

Історія

[ред. | ред. код]

Розробка Bigtable розпочалась у 2004 році[3] й зараз використовується рядом додатків Google, таких як вебіндексація,[4] MapReduce, яка часто використовується для створення та модифікації даних, що зберігаються в Bigtable,[5] Google Maps,[6] пошуку у Google Книги, «Моя історія пошуку» (англ. My Search History), Google Earth, Blogger.com, хостинг Google Code, YouTube[7] та Gmail[8]. Причини, які спонукали Google для розробки власної бази включають масштабованість та кращий контроль за характеристиками продуктивності.[9]

Реляційна база даних Google Spanner є реалізацією Bigtable разом з групою протоколів Paxos для двофазної транзакції для кожної таблиці. Google F1 є надбудовою над Spanner для заміни реалізації заснованої на MySQL.[10]

Будова

[ред. | ред. код]

Bigtable є одним із прототипів сховищ з широким стовпчиком. Він відображає два довільних текстових значення (ключ рядка і ключ стовпця) та відмітку часу (отже, тривимірне відображення) у пов'язаний довільний масив байтів.[4]:1 Це не реляційна база даних і її краще визначити як розріджену, розподілену багатовимірну відсортовану карту. Bigtable призначений для масштабування в діапазоні петабайту через «сотні або тисячі машин, а також для спрощення додавання нових машин до системи і автоматичного використання цих ресурсів без будь-якої переконфігурації».[11]

Кожна таблиця має багато розмірностей (одна з яких є полем для відміток часу, що дозволяє використовувати системи керування версіями та збирання сміття). Таблиці оптимізовані для файлової системи Google (GFS) шляхом розбиття на кілька таблиць або таблетів (англ. tablet) — сегменти таблиці діляться по рядкам, таким чином, щоб їх розмір складав ~200 мегабайт. Коли розміри загрожують вийти за встановлену межу, таблиці стискуються за допомогою алгоритмів BMDiff[12][13] та Zippy[14] — останній алгоритм широко відомий за відкритою бібліотекою Snappy,[15] яка є варіацією LZ77 не дуже ефективною за об'ємом стиснення, але більш ефективною за часом обчислень. Розташування складових таблиці (таблети) в GFS вносяться як записи бази даних у кількох спеціальних таблетах, які називаються «META1»-таблетами. META1 таблети знаходяться за запитом єдиного таблета «META0», який звичайно розміщується на власному сервері, оскільки до нього часто йдуть запити від клієнтів щодо розташування таблета «META1», який сам містить відповідь на питання про те, де знаходяться фактичні дані. Як і головний сервер GFS, сервер META0 взагалі не є вузьким місцем[en], оскільки час і пропускна спроможність процесора, необхідні для пошуку та передачі адреси META1, є мінімальними, а клієнти активно кешують координати для мінімізації запитів.

Див. також

[ред. | ред. код]

Примітки

[ред. | ред. код]
  1. Announcing Google Cloud Bigtable: The same database that powers Google Search, Gmail and Analytics is now available on Google Cloud Platform. Google Blog. 6 травня 2015. Архів оригіналу за 8 березня 2016. Процитовано 21 вересня 2016.
  2. Архівована копія. Архів оригіналу за 4 березня 2016. Процитовано 10 липня 2018.{{cite web}}: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання)
  3. Kumar, Aswini, Whitchcock, Andrew (ред.), Google's Bigtable, архів оригіналу за 16 червень 2006, процитовано 10 липень 2018, 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 та ін., 2006.
  5. Chang та ін., 2006, с. 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, архів оригіналу за 16 червень 2006, процитовано 10 липень 2018, There are currently around 100 cells for services such as Print, Search History, Maps, and Orkut.
  7. Cordes, Kyle (12 липня 2007), YouTube Scalability, архів оригіналу (talk) за 10 квітня 2010, процитовано 10 липня 2018, 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, архів оригіналу за 7 січня 2012, процитовано 10 липня 2018.
  9. Chang та ін., 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, Sigmod: Google, с. 19, архів оригіналу (presentation) за 9 червня 2017, процитовано 10 липня 2018, We've moved a large and critical application suite from MySQL to F1.
  11. Google File System and Bigtable, Radar, Database War Stories, № 7, O’Reilly, May 2006, архів оригіналу (World Wide Web log) за 11 липня 2018, процитовано 10 липня 2018.
  12. Google Bigtable, Compression, Zippy and BMDiff. 12 жовтня 2008. Архів оригіналу за 1 May 2013. Процитовано 14 April 2015..
  13. McIlroy, Bentley. Data compression using long common strings. DCC '99. IEEE. Архів оригіналу за 6 жовтня 2014. Процитовано 10 липня 2018..
  14. Google's Bigtable, Outer court, 23 жовтня 2005, архів оригіналу (Weblog) за 14 червня 2007, процитовано 10 липня 2018.
  15. Snappy, Code, Google, архів оригіналу (project) за 2 січня 2022, процитовано 2 січня 2022

Бібліографія

[ред. | ред. код]

Посилання

[ред. | ред. код]