Динамо (система хранения)
Эта статья нуждается в дополнительных цитатах для проверки . ( февраль 2017 г. ) |
Dynamo — это набор методов, которые вместе могут сформировать высокодоступную хранения «ключ-значение» . структурированную систему [1] или распределенное хранилище данных . [1] Он имеет свойства как баз данных , так и распределенных хеш-таблиц (DHT). Он был создан, чтобы помочь решить некоторые проблемы масштабируемости, с которыми Amazon столкнулся во время курортного сезона 2004 года. [2] К 2007 году он использовался в веб-сервисах Amazon , таких как Simple Storage Service (S3). [1]
Связь с DynamoDB
[ редактировать ]Amazon DynamoDB «построен на принципах Dynamo». [3] и представляет собой размещенный сервис в инфраструктуре AWS. Однако, хотя Dynamo основано на репликации без лидера, DynamoDB использует репликацию с одним лидером. [4]
Принципы
[ редактировать ]- Поэтапная масштабируемость: Dynamo должна иметь возможность масштабировать один хост хранения (или «узел») за раз с минимальным воздействием как на операторов системы, так и на саму систему.
- Симметрия: каждый узел в Dynamo должен иметь тот же набор обязанностей, что и его коллеги; не должно быть выделенного узла или узлов, выполняющих особые роли или дополнительный набор обязанностей.
- Децентрализация: расширение симметрии, дизайн должен отдавать предпочтение децентрализованным одноранговым методам над централизованным контролем.
- Гетерогенность: система должна иметь возможность использовать неоднородность инфраструктуры, в которой она работает. Например, распределение работы должно быть пропорционально возможностям отдельных серверов. Это важно для добавления новых узлов с большей емкостью без необходимости обновления всех хостов одновременно.
Техники
[ редактировать ]Проблема | Техника | Преимущество |
---|---|---|
Разделение набора данных | Согласованное хеширование | Инкрементная, возможно, линейная масштабируемость пропорционально количеству взаимодействующих узлов. |
Высокая доступность записи | Vector Clock или Dotted-Version-Vector Sets , сверка во время чтения | Размер версии не зависит от частоты обновления. |
Обработка временных сбоев | Небрежный кворум и намек на передачу | Обеспечивает высокую доступность и гарантию долговечности, когда некоторые реплики недоступны. |
Восстановление после постоянных сбоев | Антиэнтропия с использованием дерева Меркла | Может использоваться для выявления различий между владельцами реплик и упреждающей синхронизации расходящихся реплик. |
Членство и обнаружение сбоев | Протокол членства на основе сплетен и обнаружение сбоев | Позволяет избежать централизованного реестра для хранения информации о членстве и работоспособности узлов, сохраняя симметрию. |
Реализации
[ редактировать ]Amazon опубликовал статью о Dynamo, но так и не опубликовал ее реализацию. Индексный уровень Amazon S3 реализует и расширяет многие основные функции Dynamo. С тех пор на основе этой статьи было создано несколько реализаций. Этот документ также послужил вдохновением для многих других реализаций баз данных NoSQL , таких как Apache Cassandra , Project Voldemort и Riak . [2]
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Jump up to: а б с Декандия, Г.; Хасторун, Д.; Джампани, М.; Какулапати, Г.; Лакшман, А.; Пильчин А.; Сивасубраманиан, С.; Восшалл, П.; Фогельс, В. (2007). «Динамо: высокодоступный магазин ключей и значений Amazon». Материалы двадцать первого симпозиума ACM SIGOPS по принципам операционных систем - SOSP '07 . п. 205. дои : 10.1145/1294261.1294281 . ISBN 9781595935915 . S2CID 221033483 .
- ^ Jump up to: а б Amazon делает еще один шаг в NoSQL с DynamoDB
- ^ Amazon DynamoDB — быстрая и масштабируемая служба баз данных NoSQL, разработанная для приложений масштабирования Интернета.
- ^ Клеппманн, Мартин (2 апреля 2017 г.). Проектирование приложений с интенсивным использованием данных (1-е изд.). О'Рейли Медиа. п. 177. ИСБН 978-1449373320 .
Dynamo недоступно для пользователей за пределами Amazon. Как ни странно, AWS предлагает размещенный продукт базы данных под названием DynamoDB, который использует совершенно другую архитектуру: он основан на репликации с одним лидером.
Внешние ссылки
[ редактировать ]- Динамо Amazon (2007)
- Amazon раскрывает свое распределенное хранилище: Dynamo (2007 г.)