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

Bigtable

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

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

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

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

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

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

Архитектура

BigTable не является реляционной базой данных. Это не поддерживает соединения, и при этом это не поддерживает богатый подобный SQL-з¦прос¦м. Каждая таблица является многомерной редкой картой. Таблицы состоят из строк и столбцов, и каждая ячейка имеет метку времени. Может быть несколько версий ячейки с различными метками времени. Метка времени допускает операции, такие как "выбор 'n' версии этой Веб-страницы", или "удаляют ячейки, которые являются более старыми, чем определенная дата/время".

Для управления огромными таблицами Bigtable разделяет таблицы на границах строки и сохраняет их как планшеты. Планшет составляет приблизительно 200 МБ, и каждая машина сохраняет приблизительно 100 планшетов. Эта установка позволяет планшетам от единственной таблицы быть распространенными среди многих серверов. Это также допускает мелкомодульное выравнивание нагрузки. Если одна таблица получает много запросов, она может потерять другие планшеты или переместить занятую таблицу в другую машину, которая не так занята. Кроме того, если машина понижается, планшет может быть распространен через многие другие серверы так, чтобы влияние производительности на любую данную машину было минимально.

Таблицы хранятся как неизменный SSTables и хвост журналов (один журнал на машину). Когда машина разряжает системную память, она сжимает некоторый Google использования планшетов собственные методы сжатия (BMDiff и Быстрый). Незначительные уплотнения включают только несколько планшетов, в то время как основные уплотнения включают целую систему таблицы и восстанавливают место на жестком диске.

Местоположения планшетов Bigtable хранятся в ячейках. Поиск какого-то конкретного планшета обрабатывается трехмногоуровневой системой. Клиенты понимают мысль к таблице META0, которой существует только один. Таблица META0 отслеживает много планшетов META1, которые содержат местоположения искавших планшетов. И META0 и META1 делают интенсивное использование из упреждающей выборки и кэширования для уменьшения узких мест в системе.

Реализация

BigTable основан на Google File System (GFS), который используется в качестве запоминающего устройства для журнала и файлов данных. GFS обеспечивает надежное хранение для SSTables, собственный Google формат файла раньше сохранял данные таблицы.

Другой сервис, из которого BigTable делает интенсивное использование, Полон, высоконадежный, надежный распределенный сервис блокировки. Полный позволяет клиентам брать блокировку, возможно связывая его с некоторыми метаданными, которые это может возобновить путем отправки, поддерживают сообщения назад к Полному. Блокировки хранятся в подобной файловой системе иерархической структуре именования.

Существует три типа основного сервера интереса к системе Bigtable:

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

API

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

Ссылки

Связанные теги

  • коммерческая версия BigTable
  • реализация открытого исходного кода BigTable