Bigtable

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
Google Bigtable
Тип Хмарне сховище
Розробник Google Inc.
Перший випуск 24 лютого 2005; 4960 днів тому
Платформа 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[en] є реалізацією Bigtable разом з групою протоколів Paxos[en] для двофазної фіксації[en] для кожної таблиці. Google F1[en] є надбудовою над Spanner для заміни реалізації заснованої на MySQL.[10]

Будова[ред. | ред. код]

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

Кожна таблиця має багато розмірностей (одна з яких є полем для відміток часу, що дозволяє використовувати системи керування версіями та збирання сміття). Таблиці оптимізовані для файлової системи Google (GFS) шляхом розбиття на кілька таблиць або таблетів (англ. tablet) — сегменти таблиці діляться по рядкам, таким чином, щоб їх розмір складав ~200 мегабайт. Коли розміри загрожують вийти за встановлену межу, таблиці стискуються за допомогою алгоритмів BMDiff[12][13] та Zippy[14] — останній алгоритм широко відомий за відкритою бібліотекою Snappy[en],[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. May 6, 2015. Процитовано September 21, 2016. 
  2. http://googledevelopers.blogspot.com/2013/05/get-started-with-google-cloud-datastore.html
  3. Kumar, Aswini. У Whitchcock, Andrew. 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 та ін., 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. «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 та ін., 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 (presentation). Research. Sigmod: Google. с. 19. «We've moved a large and critical application suite from MySQL to F1» .
  11. Google File System and Bigtable (World Wide Web log). Radar. Database War Stories (7). O’Reilly. May 2006. .
  12. Google Bigtable, Compression, Zippy and BMDiff. 2008-10-12. Архів оригіналу за 1 May 2013. Процитовано 14 April 2015. .
  13. McIlroy, Bentley. Data compression using long common strings DCC '99. IEEE. .
  14. Google's Bigtable (Weblog). Outer court. 2005-10-23. .
  15. Snappy (project). Code. Google. .

Бібліографія[ред. | ред. код]

Посилання[ред. | ред. код]