Какую базу данных использует Google?
Это Oracle или MySQL или что-то, что они построили сами?
7 ответов
С BigTable
распределенная система хранения структурированных данных
Bigtable-распределенное хранилище система (построенная Google) для управления структурированными данными это очень предназначен для масштабирования большой размер: петабайты данных через тысячи обычных серверов.
многие проекты в Google store данных в Bigtable, включая веб-индексацию, Google Планета Земля и Google финансы. Эти приложения очень различные требования к Bigtable, оба в условия размера данных (от url до web страницы для спутниковых снимков) и требования к задержке (из бэкэнда основная обработка данных в реальном времени сервировочный.)
несмотря на эти разнообразные требования, 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:
- мастер-сервера: назначение таблетки на планшетных серверах, отслеживает, где таблетки расположены и перераспределяет задачи по мере необходимости.
- планшетные серверы: обрабатывать запросы на чтение / запись для планшетов и сплит - планшетов, когда они превышают пределы размера (обычно 100MB-200MB). Если сервер планшета терпит неудачу, то 100 серверов планшета каждый приемистость 1 новый планшет и система берет.
- серверы блокировки: экземпляры службы распределенной блокировки Chubby. Множество действий в BigTable требуют приобретения блокировок включая открытие планшетов для записи, обеспечение того, чтобы не было более одного активного мастера за раз, и проверку контроля доступа.
пример из исследовательской работы Google:
фрагмент таблицы примеров, которая хранит веб-страницы. Имя строки-a отменено URL-адресом. Столбец содержание семья содержит содержание страницы, и семейство столбцов привязки содержит текст якоря ссылки страница. На домашнюю страницу CNN ссылается и The Sports Illustrated, и the MY-look home pages, так что строка содержит столбцы с именем
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:
гаечный ключ является глобально распределенной системой управления реляционными базами данных Google (СУБД), преемником BigTable. Google утверждает, что это не чистая реляционная система, потому что каждая таблица должна иметь первичный ключ.
здесь ссылка на документ.
гаечный ключ-это масштабируемая, мульти-версия Google, глобально распределенная и синхронно-реплицированная база данных. Это первая система распространять данные по глобальный масштаб и внешняя поддержка распределенные транзакции. В этой статье описывается, как гаечный ключ структурированный набор функций, обоснование различных дизайн решения и новый API времени, который подвергает неопределенности часов. Этот API и его реализация имеют решающее значение для поддержки внешних последовательность и разнообразие мощные характеристики: non-преграждать читает внутри прошлое, транзакции без блокировки только для чтения и атомарные изменения схемы, по всей Гаечный ключ.
другая база данных, изобретенная Google является Megastore. Вот аннотация:
Megastore система хранения развитая для того чтобы соотвествовать сегодняшние интерактивные онлайн-сервисы. МегаМаркет сочетает в себе масштабируемость хранилища данных NoSQL с удобством традиционной СУБД в романный путь, и обеспечивает и сильные гарантии последовательности и максимум доступность. Мы предоставляем полностью сериализуемую кислотную семантику в течение мелкозернистые разделы данных. Это разделение позволяет нам синхронно реплицировать каждую запись по широкой сети с помощью разумная задержка и поддержка плавной отработки отказа между центрами обработки данных. В данной статье описывается семантика и алгоритм репликации 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 для некоторых из своих приложений.
больше информации, вы можете добавить высоко ценится.