Dynamo (система хранения)

редактировать

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

Содержание

  • 1 Связь с DynamoDB
  • 2 Принципы
  • 3 Методы
  • 4 Реализации
  • 5 См. Также
  • 6 Ссылки
  • 7 Внешние ссылки

Связь с DynamoDB

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

Принципы

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

Методы

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

Реализации

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

См. Также

Ссылки

  1. ^ 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.
  2. ^ Amazon делает новый шаг в NoSQL с DynamoDB
  3. ^Amazon DynamoDB - быстрая и масштабируемая служба баз данных NoSQL, разработанная для приложений масштабирования Интернета
  4. ^Клеппманн, Мартин (2 апреля, 2017). Разработка приложений с интенсивным использованием данных (1-е изд.). O'Reilly Media. п. 177. ISBN 978-1449373320. Dynamo недоступен для пользователей за пределами Amazon. Как ни странно, AWS предлагает продукт размещенной базы данных под названием DynamoDB, который использует совершенно другую архитектуру: он основан на репликации с одним лидером.

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

Последняя правка сделана 2021-05-18 07:29:13
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте