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


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

7 329

7 ответов:

Bigtable

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

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

многие проекты в Google store data in С BigTable, в том числе веб-индексирования, Google Earth и 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 обеспечивает надежное хранение для SSTables, проприетарного формата файлов Google, используемого для сохранения табличных данных.

еще один сервис, который BigTable делает интенсивное использование is Чабби, высок-доступное, надежное распределенное обслуживание замка. Chubby позволяет клиентам принимать блокировку, возможно, связывая ее с некоторыми метаданными, которые он может обновить, отправив сообщения keep alive обратно в Chubby. Блокировки хранятся в иерархической структуре именования, подобной файловой системе.

есть три основных типы серверов интерес к системе Bigtable:

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

пример из исследовательской работы Google:

alt text

фрагмент примера таблицы, которая хранит веб-страницы. Название строки-это обратный URL. Столбец содержание семья содержит содержание страницы, и семейство анкерных столбцов содержит текст якоря ссылки страница. На домашнюю страницу CNN ссылается как Sports Illustrated, так и the Мой-посмотрите домашние страницы, так что строка содержит столбцы с именем 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:

http://research.google.com/archive/bigtable.html

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

здесь ссылка на документ.

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

еще одна база данных, изобретенная Google является Megastore. Вот аннотация:

Megastore система хранения начатая для того чтобы соотвествовать современные интерактивные онлайн-сервисы. МегаМаркет сочетает в себе масштабируемость хранилища данных NoSQL с удобством традиционной СУБД в a романный путь, и обеспечивает и сильные гарантии последовательности и максимум доступность. Мы предоставляем полностью сериализуемую кислотную семантику в течение мелкозернистые разделы данных. Это разделение позволяет нам синхронно реплицируйте каждую запись в глобальной сети с помощью разумная задержка и поддержка плавного перехода на другой ресурс между центрами обработки данных. В данной статье описывается семантика и алгоритм репликации 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 для некоторых своих приложений.

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