Bigtable является распределенной системой хранения (созданный Google) для управления структурированными данными, которые разработаны для масштабирования к очень большому размеру: петабайты данных через тысячи товарных серверов.
Распределенная система хранения для структурированных данных
Bigtable является распределенной системой хранения (созданный Google) для управления структурированными данными, которые разработаны для масштабирования к очень большому размеру: петабайты данных через тысячи товарных серверов.
Много проектов в Google хранят данные в Bigtable, включая индексацию в поисковых системах, Google Earth и Google Finance. Эти приложения помещают совсем другие требования к Bigtable, обоим с точки зрения размера данных (от URL до веб-страниц к спутниковым снимкам) и требования задержки (от объема бэкенда, обрабатывающего к обслуживанию данных реального времени).
Несмотря на эти варьировался требования, Bigtable успешно предоставил гибкое, высокоэффективное решение для всех этих продуктов Google.
Некоторые функции
Архитектура
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:
API
Типичные операции к BigTable являются созданием и удалением таблиц и семейств столбцов, пишущий данные и удаляя столбцы из строки. BigTable обеспечивает, это функционирует разработчикам приложений в API. Транзакции поддерживаются на уровне строки, но не через несколько ключей строки.
Ссылки
Связанные теги