Динамо (система хранения) - Dynamo (storage system)

Dynamo - это набор методов, которые вместе могут сформировать высокодоступную структурированную систему хранения « ключ-значение» или распределенное хранилище данных . Он имеет свойства как баз данных, так и распределенных хеш-таблиц (DHT). Он был создан, чтобы помочь решить некоторые проблемы масштабируемости, с которыми веб-сайт Amazon.com столкнулся во время праздничного сезона 2004 года. К 2007 году он использовался в веб-сервисах Amazon, таких как Simple Storage Service (S3).

Отношение к DynamoDB

Amazon DynamoDB «построен на принципах Dynamo» и представляет собой размещенный сервис в инфраструктуре AWS. Однако в то время как Dynamo основан на репликации без лидера, DynamoDB использует репликацию с одним лидером.

Принципы

  • Дополнительная масштабируемость: Dynamo должен иметь возможность масштабировать один хост (или «узел») хранения за раз, с минимальным влиянием как на операторов системы, так и на саму систему.
  • Симметрия: каждый узел в Dynamo должен иметь тот же набор обязанностей, что и его коллеги; не должно быть выделенного узла или узлов, которые берут на себя особые роли или дополнительный набор обязанностей.
  • Децентрализация: расширение симметрии, дизайн должен отдавать предпочтение децентрализованным одноранговым методам, а не централизованному контролю.
  • Неоднородность: система должна иметь возможность использовать неоднородность инфраструктуры, на которой она работает. Например, распределение работы должно быть пропорционально возможностям отдельных серверов. Это важно при добавлении новых узлов с большей емкостью без одновременного обновления всех узлов.

Методы

Проблема Техника Преимущество
Разделение набора данных Последовательное хеширование Постепенная, возможно, линейная масштабируемость пропорциональна количеству взаимодействующих узлов.
Высокая доступность записи Наборы векторных часов или пунктирных векторных версий , согласование во время считывания Размер версии не связан с частотой обновления.
Обработка временных сбоев Небрежный кворум и намеки на передачу обслуживания Обеспечивает высокую доступность и надежность, когда некоторые реплики недоступны.
Восстановление после необратимых сбоев Антиэнтропия с использованием дерева Меркла Может использоваться для выявления различий между владельцами реплик и активной синхронизации расходящихся реплик.
Членство и обнаружение сбоев Протокол членства на основе сплетен и обнаружение сбоев Избегает наличия централизованного реестра для хранения информации о членстве и жизнеспособности узлов, сохраняя симметрию.

Реализации

Amazon опубликовал статью о Dynamo, но так и не выпустил ее реализацию. Индексный уровень Amazon S3 реализует и расширяет многие основные функции Dynamo. С тех пор на основе бумаги было создано несколько реализаций. Этот документ также вдохновил на создание многих других реализаций баз данных NoSQL , таких как Apache Cassandra , Project Voldemort и Riak .

Смотрите также

Рекомендации

  1. ^ a b c Decandia, G .; Hastorun, D .; Jampani, M .; Какулапати, G .; Лакшман, А .; Пильчин, А .; Sivasubramanian, S .; Vosshall, P .; Фогельс, В. (2007). «Dynamo: высокодоступный магазин ключей и значений Amazon». Материалы двадцать первого симпозиума ACM SIGOPS по принципам операционных систем - SOSP '07 . п. 205. DOI : 10,1145 / 1294261,1294281 . ISBN 9781595935915. S2CID  221033483 .
  2. ^ a b Amazon делает новый шаг в NoSQL с DynamoDB
  3. ^ Amazon DynamoDB - быстрая и масштабируемая служба баз данных NoSQL, разработанная для масштабируемых Интернет-приложений.
  4. ^ Kleppmann, Мартин (2 апреля 2017). Разработка приложений, интенсивно использующих данные (1-е изд.). O'Reilly Media. п. 177. ISBN. 978-1449373320. Dynamo недоступен для пользователей за пределами Amazon. Как ни странно, AWS предлагает продукт размещенной базы данных под названием DynamoDB, в котором используется совершенно другая архитектура: она основана на репликации с одним лидером.

Внешние ссылки