Какую базу данных использует Google?

Это Oracle или MySQL или что-то, что они сами построили?

Ответ 1

Bigtable

Распределенная система хранения для структурированных данных

Bigtable - это распределенное хранилище система (построена компанией Google) для управления структурированными данными который предназначен для большой размер: петабайты данных через тысячи товарных серверов.

Многие проекты в Google хранят данные в Bigtable, включая веб-индексирование, Google Планета Земля и Google Finance. Эти приложения очень различные требования к Bigtable, как в условия размера данных (от URL-адресов до веб-страниц) страниц к спутниковым снимкам) и требования к задержке (из бэкэнд массовая обработка данных в режиме реального времени выступающий).

Несмотря на эти разнообразные требования, Bigtable успешно обеспечил гибкий, высокопроизводительный решение для всех этих Google продукты.

Некоторые функции

  • быстрая и чрезвычайно масштабная СУБД
  • разреженная, распределенная многомерная сортированная карта, общая характеристика как ориентированных на строку, так и столбцов баз данных.
  • предназначен для масштабирования в диапазоне петабайт
  • он работает через сотни или тысячи компьютеров.
  • легко добавить в систему больше машин и автоматически начать использовать эти ресурсы без какой-либо реконфигурации.
  • каждая таблица имеет несколько измерений (один из которых является полем времени, позволяющим управлять версиями) Таблицы
  • оптимизированы для GFS (Файловая система Google) путем разбиения на несколько таблиц - сегменты таблицы разделены по строке, выбранной так, чтобы размер планшета составлял ~ 200 мегабайт.

Архитектура

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 присутствуют три основных типа типов серверов:

  • Мастер-серверы: назначьте планшеты серверам планшета, отслеживайте, где расположены планшеты, и при необходимости перераспределяет задачи.
  • Серверы планшета: обрабатывать запросы чтения/записи для планшетов и разделять таблетки, когда они превышают ограничения по размеру (обычно 100 МБ - 200 МБ). Если сервер планшета терпит неудачу, то на 100 серверах планшетов каждый набирает 1 новый планшет и система восстанавливается.
  • Блокировка серверов: экземпляры службы Chubby распределенной блокировки. Множество действий в BigTable требует приобретения блокировок, включая открытие таблиц для записи, гарантируя, что одновременно не более одного активного мастера и проверка контроля доступа.

Пример из исследовательского документа Google:

alt text

Кусок примерной таблицы, который хранит веб-страницы. Имя строки является обратный URL. Столбец содержимого семья содержит содержимое страницы и семейство якорных столбцов содержит текст любых якорей, ссылающихся на стр. На главную страницу CNN ссылаются как Sports Illustrated, так и Домашние страницы MY-look, поэтому строка содержит столбцы с именем anchor:cnnsi.com и anchor:my.look.ca. Каждая якорная ячейка имеет одну версию; колонка содержимого имеет три версии, на отметках времени t3, t5 и t6.

API

Типичными операциями с BigTable являются создание и удаление семейств таблиц и столбцов, запись данных и удаление столбцов из строки. BigTable предоставляет эти функции разработчикам приложений в API. Транзакции поддерживаются на уровне строк, но не через несколько строк.


Вот ссылка в PDF-документ исследовательской статьи.

И здесь вы можете найти видеоролик

Ответ 3

Spanner - глобальная распределенная система управления реляционными базами данных (РСУБД), преемница BigTable. Google утверждает, что это не чистая реляционная система, потому что каждая таблица должна иметь первичный ключ.

Здесь - ссылка на бумагу.

Spanner - это масштабируемый, многостраничный, глобально распределенный Google, и синхронно реплицированная база данных. Это первая система распространять данные в глобальном масштабе и поддерживать внешне согласованные распределенные транзакции. В этом документе описывается, как структурированный, его функциональный набор, обоснование, лежащее в основе различного дизайна решения и новый API времени, который демонстрирует неопределенность часов. Эта API и его реализация имеют решающее значение для поддержки внешних согласованность и множество мощных функций: неблокирующие чтения в прошлые, незаблокированные транзакции только для чтения и изменения атомной схемы, через весь гаечный ключ.

Другая база данных, созданная Google, Megastore. Вот тезис:

Megastore - это система хранения, разработанная для удовлетворения требований сегодня интерактивные онлайн-сервисы. Megastore сочетает масштабируемость хранилища данных NoSQL с удобством традиционной СУБД в новый способ и обеспечивает как сильные гарантии последовательности, так и высокие доступность. Мы предоставляем полностью сериализуемую семантику ACID в пределах мелкозернистые разделы данных. Это разбиение позволяет нам синхронно копировать каждую запись по глобальной сети с помощью разумная латентность и поддержка бесперебойного переключения между центрами обработки данных. В этом документе описывается семантика и алгоритм репликации Megastore. Он также описывает наш опыт поддержки широкого спектра Google производственные услуги, построенные с помощью Megastore.

Ответ 4

Как уже упоминалось, Google использует домашнее решение под названием BigTable, и они выпустили несколько статей, описывающих его в реальном мире.

У людей Apache есть реализация идей, представленных в этих документах под названием HBase. HBase является частью более крупного проекта Hadoop, который в соответствии с их сайтом "представляет собой программную платформу, которая позволяет легко писать и запускать приложения, которые обрабатывают огромное количество данных". Некоторые из тестов довольно впечатляющие. Их сайт находится в http://hadoop.apache.org.

Ответ 5

Хотя Google использует BigTable для всех своих основных приложений, они также используют MySQL для других (возможно, небольших) приложений.

Ответ 6

И, может быть, также полезно знать, что BigTable не является реляционной базой данных (например, MySQL), а огромной (распределенной) хэш-таблицей, которая имеет очень разные характеристики. Вы можете играть с (ограниченной версией) BigTable самостоятельно на платформе Google AppEngine.

Рядом с Hadoop, упомянутым выше, существует множество других реализаций, которые пытаются решить те же проблемы, что и BigTable (масштабируемость, доступность). Вчера я увидел хороший блог, в котором перечислены большинство из них здесь.

Ответ 7

В основном Google использует Bigtable.

Bigtable - это распределенная система хранения для управления структурированными данными, предназначенная для масштабирования до очень большого размера.

Для получения дополнительной информации загрузите документ из здесь.

Google также использует базы данных Oracle и MySQL для некоторых своих приложений.

Любая дополнительная информация, которую вы можете добавить, высоко ценится.