Динамо (система хранения) - Dynamo (storage system)
Эта статья нужны дополнительные цитаты для проверка.Февраль 2017 г.) (Узнайте, как и когда удалить этот шаблон сообщения) ( |
Динамо это набор методов, которые вместе могут сформировать очень доступный ключ-значение структурированное хранилище система[1] или распределенное хранилище данных.[1] Обладает свойствами обоих базы данных и распределенные хеш-таблицы (DHT). Он был создан, чтобы помочь решить некоторые проблемы с масштабируемостью, с которыми сайт Amazon.com столкнулся во время курортного сезона 2004 года.[2] К 2007 году он использовался в Amazon Web Services, например Простая служба хранения (S3).[1]
Отношение к DynamoDB
Amazon DynamoDB «построен на принципах Динамо»[3] и является размещенным сервисом в инфраструктуре AWS. Однако в то время как Dynamo основан на репликации без лидера, DynamoDB использует репликацию с одним лидером.[4]
Принципы
- Добавочная масштабируемость: Dynamo должен иметь возможность масштабировать один хост (или «узел») хранения за раз, с минимальным влиянием как на операторов системы, так и на саму систему.
- Симметрия: каждый узел в Dynamo должен иметь тот же набор обязанностей, что и его коллеги; не должно быть выделенного узла или узлов, которые берут на себя особые роли или дополнительный набор обязанностей.
- Децентрализация: расширение симметрии, дизайн должен отдавать предпочтение децентрализованным одноранговым методам, а не централизованному управлению.
- Неоднородность: система должна иметь возможность использовать неоднородность инфраструктуры, на которой она работает. Например, распределение работы должно быть пропорционально возможностям отдельных серверов. Это важно для добавления новых узлов с большей емкостью без одновременного обновления всех узлов.
Методы
Проблема | Техника | Преимущество |
---|---|---|
Разделение набора данных | Последовательное хеширование | Пошаговая, возможно линейная масштабируемость пропорциональна количеству взаимодействующих узлов. |
Высокая доступность записи | Векторные часы или же Наборы векторных версий с точками, сверка во время чтения | Размер версии не связан с частотой обновления. |
Обработка временных сбоев | Небрежный кворум и Намеченная передача | Обеспечивает высокую доступность и надежность, когда некоторые реплики недоступны. |
Восстановление после необратимых сбоев | Антиэнтропия с использованием Дерево Меркла | Может использоваться для выявления различий между владельцами реплик и активной синхронизации расходящихся реплик. |
Членство и обнаружение сбоев | Протокол членства на основе сплетен и обнаружение сбоев | Избегает наличия централизованного реестра для хранения информации о членстве и жизнеспособности узлов, сохраняя симметрию. |
Реализации
Amazon опубликовал статью о Dynamo, но так и не выпустил ее реализацию. Индексный слой Amazon S3 реализует и расширяет многие основные функции Dynamo. С тех пор на основе бумаги было создано несколько реализаций. Работа также вдохновила многих других NoSQL реализации базы данных, такие как Apache Cassandra, Проект Волан-де-Морт и Риак.[2]
Смотрите также
Рекомендации
- ^ а б c Decandia, G .; Hastorun, D .; Jampani, M .; Какулапати, G .; Лакшман, А .; Пильчин, А .; Sivasubramanian, S .; Vosshall, P .; Фогельс, В. (2007). «Dynamo: высокодоступный магазин ключей и значений Amazon». Материалы двадцать первого симпозиума ACM SIGOPS по принципам операционных систем - SOSP '07. п. 205. Дои:10.1145/1294261.1294281. ISBN 9781595935915.
- ^ а б Amazon делает новый шаг в NoSQL с DynamoDB
- ^ Amazon DynamoDB - быстрая и масштабируемая служба баз данных NoSQL, разработанная для масштабируемых Интернет-приложений
- ^ Клеппманн, Мартин (2 апреля 2017 г.). Разработка приложений, интенсивно использующих данные (1-е изд.). O'Reilly Media. п. 177. ISBN 978-1449373320.
Dynamo недоступен для пользователей за пределами Amazon. Как ни странно, AWS предлагает продукт размещенной базы данных под названием DynamoDB, в котором используется совершенно другая архитектура: она основана на репликации с одним лидером.