BitVault - BitVault

BitVault это распределенная система хранения с адресацией по содержанию, разработанная Microsoft Research в Китае. BitVault использует пиринговый технология распределения задач хранения и управления данными. Таким образом, нет центрального органа, ответственного за управление системой. Скорее, он самоуправляемый, обеспечивает высокую доступность, надежность и масштабируется самоорганизующимся образом с низкими административными накладными расходами, которые практически постоянны независимо от размера распределенного оверлейная сеть.

Система BitVault лучше всего подходит для справочных данных, то есть для больших объемов данных, которые меняются очень редко. К таким данным относятся архивы устаревших данных, а также мультимедийные данные, такие как музыка и видео, которые, хотя и могут использоваться часто, изменяются очень редко.

Технологии

Каждый участвующий одноранговый узел в архитектуре BitVault является Умный кирпич, представляющий собой урезанный ПК с большими дисками. Все смарт-блоки в системе BitVault соединены с помощью высокой пропускной способности и низкой задержки. сеть. Систему BitVault можно легко масштабировать - любой компьютер можно настроить для работы в качестве интеллектуального устройства, просто установив программное обеспечение BitVault и подключив его к сети без необходимости прерывания работы уже работающих узлов.

BitVault магазины неизменный объекты данных, то есть объекты, которые нельзя изменить. Физическое расположение объектов не фиксировано и может быть на любом из кирпичей. Его местоположение меняется в зависимости от частоты доступа; его даже можно воспроизвести на нескольких кирпичах. Чтобы обойти эту проблему изменения местоположения, BitVault делает его доступным с помощью 160-битного ключа, который уникален для каждого объекта. Система динамически ссылается на место, из которого объект может быть извлечен наиболее эффективно, с помощью ключа, и делает объект доступным. Уникальный ключ генерируется из хэша данных объекта, что делает систему адресуемой по содержанию, а не по местоположению. Хеши объектов (ключ) сопоставляются с физическими адресами с помощью хеш-таблиц, которые управляются системой внутри и не требуют вмешательства пользователя. Разные наборы узлов поддерживают разные наборы хеш-таблиц, которые касаются только данных в этом наборе узлов, тем самым создавая наложенную сеть, в которой местоположение данных отслеживается распределенная хеш-таблица (DHT) архитектура.

Архитектура

Архитектура BitVault

Архитектура BitVault состоит из нескольких блоков, которые составляют логическое 160-битное адресное пространство, каждый из которых связан с хешем некоторых данных. Связь поддерживается в распределенной хеш-таблице (DHT). DHT разделяет всю хеш-таблицу на более мелкие хеш-таблицы. Например, если имеется n одноранговых узлов, хеш-таблица будет разделена на n хэш-таблиц, каждая из которых будет начинаться со строки, следующей за тем местом, где заканчивался ее непосредственный предшественник. У каждого DHT есть связанный с ним блок, и размер логического адресного пространства, за которое отвечает блок, называется его зоной. Эти блоки обмениваются данными с использованием одноранговой технологии через уровень членства и маршрутизации (MRL). Поиск любого объекта данных может выполняться n блоками параллельно, в его собственной зоне, что дает эффективность O (log N).

Несколько копий одного объекта, называемого копия, хранятся в системе BitVault, чтобы дать достаточно избыточность. Если какой-либо индекс поврежден, ближайшую реплику можно уведомить о начале его восстановления. И если индекс замечает, что реплика повреждена, он может инициировать восстановление реплики. Этот метод исправления ошибок называется Объектный ремонт модель. Чтобы это работало, должна быть запущена служба членства, которая будет логически упорядочивать одноранговые узлы. Это достигается с помощью MRL. Служба членства гарантирует, что любое добавление или удаление кирпича в конечном итоге и надежно сообщается всем остальным живым кирпичам. MRL также отвечает за маршрутизацию сообщений к модулям и связанным с ними DHT.

MRL использует один прыжок DHT для выполнения маршрутизации, то есть никогда не требуется более одного перехода через одноранговый узел для маршрутизации сообщений, когда система BitVault стабильна, то есть не добавляются новые блоки, а также не выполняется балансировка нагрузки или восстановление. MRL реализован с использованием архитектуры XRing, которая поддерживает распределенную таблицу маршрутизации, которая упрощает маршрутизацию с одним переходом.

Однокирпичная архитектура

Архитектура кирпича

Блок регистрируется в MRL с 160-битным ключом, который формирует его идентификатор, а его зона в DHT находится от его идентификатора до идентификатора, который находится непосредственно перед идентификатором его следующего логического преемника. Архитектура кирпича разделена на две части - модуль индекса и модуль данных. Модуль индекса хранит список всех реплик, которые кэшируются диском, и сопоставлены с их хэшами. Кроме того, для каждого сохраненного объекта IM также хранит список местоположений всех других реплик объекта. IM слушает MRL и обновляется в соответствии с изменениями членства, а также в соответствии с данными, вводимыми в систему BitVault или получаемыми из нее. IM также отвечает за инициирование восстановления реплик после получения информации о повреждении реплик и за запрос на восстановление реплик в своем хранилище. IM подключен к небольшому модулю доступа, который служит шлюзом для внешних клиентов. Модуль данных хранит копии объектов на локальном диске. Наряду с объектом также сохраняются его метаданные, такие как хэш-ключ и степень его репликации в системе BitVault.

Работающий

Регистрироваться

Вставка данных в систему BitVault называется Check In. Для регистрации требуется объект, его ключ и начальная степень репликации. MRL направляет объект и все его параметры к какому-либо кирпичу. Затем кирпич сохраняет данные в своем модуле данных и начинает работу по репликации объекта, публикуя его в случайные блоки, для достижения указанной степени репликации. Когда объект достигает требуемой степени репликации, его индекс считается полным, в противном случае - частичным. Блок должен выполнить дальнейшую репликацию объекта с частичным индексом. Bricks также периодически проверяет, что индекс объекта по-прежнему завершен.

Проверить

Check Out - это процесс получения данных из системы BitVault. Приложение, использующее BitVault в качестве хранилища данных, предоставляет хеш-ключ извлекаемого объекта, который MRL отправляет любому кирпичу. Если у кирпича нет объекта, он параллельно передает запрос другим кирпичам. Если блок имеет объект, он извлекается из модуля данных и направляется запрашивающей стороне.

Отказоустойчивость

Сбои BitVault могут быть временными или постоянными. Временный сбой произойдет, когда в кирпичном устройстве возникнет временный сбой, такой как сбой программного обеспечения, вызвавший перезагрузку. Постоянный отказ указывает на такие ошибки, как отказ оборудования. Каждый раз, когда обнаруживается какая-либо ошибка, другие блоки, имеющие реплику затронутого объекта, обновляют запись объекта в индексе как частичную и, таким образом, запускают дальнейшую репликацию. Все остальные блоки, содержащие реплики, совместно отправляют разные части данных объекта параллельно новому блоку, который будет содержать реплику. Эта параллельная репликация ускоряет восстановление поврежденного индекса, чтобы вернуть его в полное состояние.

Изменения в членстве

Каждый раз, когда новый кирпич добавляется в систему BitVault, он принимает случайный идентификатор и связывается с другими кирпичиками. Затем кирпичи включат этот новый кирпич в свой список участников. Недавно добавленный кирпич также получает ответ от тех кирпичей, которые добавили его в свой список участников. Новый кирпич добавляет респондентов в свой список участников. Срабатывает балансировка фоновой нагрузки системы, чтобы заполнить новый блок действующими репликами.

Балансировка нагрузки

Блоки Bricks периодически опрашивают другие блоки о состоянии нагрузки в них. Затем кирпич переносит несколько копий на кирпичи с низкой нагрузкой, чтобы получить более или менее сбалансированную нагрузку на каждый кирпич. Он также отправляет сообщения другим модулям, чтобы обновить их индексы, чтобы отразить изменение.

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

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

  • Чжэн Чжан, Цяо Лянь, Шидинг Линь, Вэй Чен, Ю Чен, Чао Цзинь (декабрь 2005 г.). BitVault: высоконадежная платформа для хранения распределенных данных (PDF). Технический отчет MSR-TR-2005-179 (Отчет). Microsoft Research Asia. Дои:10.1145/1243418.1243423.CS1 maint: использует параметр авторов (ссылка на сайт)

внешняя ссылка