Это Oracle или MySQL или что-то, что они создали сами?
Это Oracle или MySQL или что-то, что они создали сами?
Ответы:
Распределенная система хранения структурированных данных
Bigtable - это распределенная система хранения (созданная Google) для управления структурированными данными, которая рассчитана на масштабирование до очень большого размера: петабайты данных на тысячах обычных серверов.
Многие проекты в Google хранят данные в Bigtable, включая веб-индексацию, Google Earth и Google Finance. Эти приложения предъявляют к Bigtable очень разные требования, как с точки зрения размера данных (от URL-адресов к веб-страницам до спутниковых изображений), так и требований к задержке (от массовой обработки на сервере до обработки данных в реальном времени).
Несмотря на эти разнообразные требования, Bigtable успешно предоставил гибкое, высокопроизводительное решение для всех этих продуктов Google.
Некоторые особенности
Архитектура
BigTable не является реляционной базой данных. Он не поддерживает объединения и не поддерживает расширенные SQL-подобные запросы. Каждая таблица представляет собой многомерную разреженную карту. Таблицы состоят из строк и столбцов, и каждая ячейка имеет метку времени. Может быть несколько версий ячейки с разными отметками времени. Отметка времени позволяет выполнять такие операции, как «выбрать 'n' версии этой веб-страницы» или «удалить ячейки, которые старше определенной даты / времени».
Чтобы управлять огромными таблицами, Bigtable разделяет таблицы по границам строк и сохраняет их как планшеты. Планшет занимает около 200 МБ, а каждая машина экономит около 100 планшетов. Эта настройка позволяет распределять планшеты из одной таблицы между многими серверами. Это также учитывает мелкозернистую балансировку нагрузки. Если одна таблица получает много запросов, она может сбросить другие планшеты или перенести занятую таблицу на другой компьютер, который не так занят. Кроме того, если компьютер выходит из строя, планшет может быть распределен по многим другим серверам, так что влияние на производительность любого компьютера будет минимальным.
Таблицы хранятся как неизменяемые SSTables и хвост журналов (один журнал на машину). Когда машине не хватает системной памяти, она сжимает некоторые планшеты, используя собственные методы сжатия Google (BMDiff и Zippy). Незначительные уплотнения включают только несколько планшетов, в то время как крупные уплотнения включают всю систему таблиц и занимают место на жестком диске.
Расположение планшетов Bigtable хранится в клетках. Поиск любого конкретного планшета обрабатывается трехуровневой системой. Клиенты получают точку в таблице META0, из которых только одна. Таблица META0 отслеживает многие планшеты META1, которые содержат местоположения просматриваемых планшетов. В META0 и META1 интенсивно используются предварительная выборка и кэширование, чтобы минимизировать узкие места в системе.
Реализация
BigTable построен на файловой системе Google (GFS), которая используется в качестве резервного хранилища для файлов журналов и данных. GFS обеспечивает надежное хранилище для SSTables, проприетарного формата файлов Google, используемого для сохранения табличных данных.
Другим сервисом, который BigTable активно использует, является Chubby , высокодоступный, надежный сервис распределенных блокировок. Chubby позволяет клиентам захватить блокировку, возможно, связав ее с некоторыми метаданными, которые он может обновить, отправив сообщения о том, что они активны, обратно в Chubby. Блокировки хранятся в иерархической структуре именования в виде файловой системы.
В системе Bigtable интерес представляют три основных типа серверов :
Пример из исследовательской работы Google:
Часть примера таблицы, в которой хранятся веб-страницы. Имя строки - это обратный URL . Семейство столбцов содержимого содержит содержимое страницы , а семейство столбцов привязки содержит текст любых привязок, которые ссылаются на страницу. На домашнюю страницу CNN ссылаются как домашние страницы Sports Illustrated, так и домашние страницы MY-look, поэтому строка содержит столбцы с именами
anchor:cnnsi.com
иanchor:my.look.ca
. Каждая якорная ячейка имеет одну версию ; столбец содержание имеет три версии , на временные меткиt3
,t5
иt6
.
API
Типичными операциями для BigTable являются создание и удаление таблиц и семейств столбцов, запись данных и удаление столбцов из строки. BigTable предоставляет эти функции разработчикам приложений в API. Транзакции поддерживаются на уровне строк, но не для нескольких ключей строк.
Вот ссылка на PDF исследовательской работы .
И здесь вы можете найти видео, показывающее Джеффа Дина из Google на лекции в Университете Вашингтона , где обсуждается система хранения контента Bigtable, используемая в бэкэнде Google.
Это то, что они построили сами - это называется Bigtable.
http://en.wikipedia.org/wiki/BigTable
В базе данных есть статья Google:
Spanner - глобально распределенная система управления реляционными базами данных (RDBMS) от Google, преемник BigTable . Google утверждает, что это не чисто реляционная система, поскольку каждая таблица должна иметь первичный ключ.
Вот ссылка на статью.
Spanner - это масштабируемая, мульти-версия, глобально распределенная и синхронно реплицируемая база данных Google. Это первая система, которая распространяет данные в глобальном масштабе и поддерживает внешне согласованные распределенные транзакции. В этой статье описывается структура Spanner, его набор функций, обоснование, лежащее в основе различных проектных решений, и новый API времени, который раскрывает неопределенность часов. Этот API и его реализация имеют решающее значение для поддержки внешней согласованности и ряда мощных функций: неблокирующее чтение в прошлом, беспрепятственные транзакции только для чтения и изменения атомарной схемы во всем Spanner.
Еще одна база данных, изобретенная Google - Megastore . Вот тезисы:
Megastore - это система хранения, разработанная с учетом требований современных интерактивных онлайн-сервисов. Megastore по-новому сочетает масштабируемость хранилища данных NoSQL с удобством традиционной СУБД и обеспечивает как надежные гарантии согласованности, так и высокую доступность. Мы предоставляем полностью сериализуемую семантику ACID в пределах детализированных разделов данных. Такое разделение позволяет нам синхронно реплицировать каждую запись в глобальной сети с разумной задержкой и поддерживать плавное переключение между центрами обработки данных. Эта статья описывает семантику и алгоритм репликации Megastore. В нем также описывается наш опыт поддержки широкого спектра производственных сервисов Google, созданных с помощью Megastore.
Как уже упоминали другие, Google использует собственное решение под названием BigTable, и они выпустили несколько статей, описывающих его в реальном мире.
У людей Apache есть реализация идей, представленных в этих статьях, под названием HBase . HBase является частью более крупного проекта Hadoop, который, согласно их сайту, «является программной платформой, которая позволяет легко писать и запускать приложения, которые обрабатывают огромные объемы данных». Некоторые показатели довольно впечатляющие. Их сайт находится по адресу http://hadoop.apache.org .
Хотя Google использует BigTable для всех своих основных приложений, они также используют MySQL для других (возможно, второстепенных) приложений.
И, возможно, также полезно знать, что BigTable - это не реляционная база данных (например, MySQL), а огромная (распределенная) хеш-таблица, которая имеет очень разные характеристики. Вы можете поиграть с (ограниченной версией) BigTable самостоятельно на платформе Google AppEngine .
Помимо Hadoop, упомянутого выше, есть много других реализаций, которые пытаются решить те же проблемы, что и BigTable (масштабируемость, доступность). Вчера я видел хороший пост в блоге, в котором перечислил большинство из них здесь .
Google в основном использует Bigtable.
Bigtable - это распределенная система хранения для управления структурированными данными, которая разработана для масштабирования до очень большого размера.
Для получения дополнительной информации загрузите документ здесь .
Google также использует базы данных Oracle и MySQL для некоторых своих приложений.
Любая дополнительная информация, которую вы можете добавить, высоко ценится.
Google also use Oracle
- ссылка необходима.
Сервисы Google имеют постоянную архитектуру полиглота. BigTable используется большинством своих сервисов, таких как YouTube, Google Search, Google Analytics и т. Д. Поисковая служба первоначально использовала MapReduce для своей инфраструктуры индексирования, но позже перешла на BigTable во время выпуска Caffeine.
В хранилище данных Google Cloud работает более 100 приложений в Google, как для внутренних, так и для внешних пользователей. Такие приложения, как Gmail, Picasa, Календарь Google, Android Market и AppEngine, используют Cloud Datastore & Megastore.
Google Trends использует MillWheel для потоковой обработки. Google Ads изначально использовал MySQL, а затем перенесен в F1 DB - пользовательскую письменную распределенную реляционную базу данных. Youtube использует MySQL с Vitess. Google хранит эксабайты данных на обычных серверах с помощью файловой системы Google.
Источник: Google Базы данных: Как Службы Google хранят данные в масштабе петабайта-эксабайта?
База данных YouTube - Как в нем хранится так много видео без недостатка места на диске?