Поздравляем с Новым Годом!
   
Телефон: 8-800-350-22-65
WhatsApp: 8-800-350-22-65
Telegram: sibac
Прием заявок круглосуточно
График работы офиса: с 9.00 до 18.00 Нск (5.00 - 14.00 Мск)

Статья опубликована в рамках: XLVI Международной научно-практической конференции «Научное сообщество студентов: МЕЖДИСЦИПЛИНАРНЫЕ ИССЛЕДОВАНИЯ» (Россия, г. Новосибирск, 07 июня 2018 г.)

Наука: Информационные технологии

Скачать книгу(-и): Сборник статей конференции

Библиографическое описание:
Пылев Н.В., Разина А.С. РЕАЛИЗАЦИЯ РАСПРЕДЕЛЕННОЙ ХЭШ-ТАБЛИЦЫ С ПОМОЩЬЮ ТЕХНОЛОГИИ REMOTE PROCEDURE CALL // Научное сообщество студентов: МЕЖДИСЦИПЛИНАРНЫЕ ИССЛЕДОВАНИЯ: сб. ст. по мат. XLVI междунар. студ. науч.-практ. конф. № 11(46). URL: https://sibac.info/archive/meghdis/11(46).pdf (дата обращения: 27.12.2024)
Проголосовать за статью
Конференция завершена
Эта статья набрала 0 голосов
Дипломы участников
У данной статьи нет
дипломов

РЕАЛИЗАЦИЯ РАСПРЕДЕЛЕННОЙ ХЭШ-ТАБЛИЦЫ С ПОМОЩЬЮ ТЕХНОЛОГИИ REMOTE PROCEDURE CALL

Пылев Никита Владимирович

студент, кафедра ГИиИБ СНИУ,

РФ, г. Самара

Разина Анастасия Сергеевна

студент, кафедра ГИиИБ СНИУ,

РФ, г. Самара

Додонов Михаил Витальевич

научный руководитель,

канд. пед. наук, доц. СНИУ,

РФ, г. Самара

Распределенная хэш-таблица (далее DHT) — это класс децентрализованных распределённых систем поисковой службы, работающей подобно хэш-таблице. Как структура данных, хэш-таблица может представлять собой ассоциативный массив, содержащий пары (ключ-значение). (из вики) Классические DHT должны реализовывать 3 основные функции работы с данными:

  • Get(key)
  • Delete(key)
  • Insert(key, value)

Рассмотрим каждую из них подробонее:

  • Get(key) – функция, которая возращает значение, которой соответствует заданный ключ (key).
  • Delete(key) – функция, удаляющая значение по соответствующему ключу
  • Insert(key, value) – функция, добавляющая в таблицу заданное значение по заданному ключу.

Так как DHT является распределенной системой, то требуется чтобы каждый узел системы мог реализовывать эти функции, а так же общаться с другими узлами системы. Для этих целей обычно используют самописные сетевые протоколы обмена информации, проблема заключается в том, что такие написание и отладка таких протоколов стоит много ресурсов и усложняет разработку в несколько раз. Как альтернативу таким протоколам можно использовать технологию Remote Call Procedure (RPC) — класс технологий, позволяющих компьютерным программам вызывать функции или процедуры в другом адресном пространстве (как правило, на удалённых компьютерах). Обычно реализация RPC-технологии включает в себя два компонента: сетевой протокол для обмена в режиме клиент-сервер и язык сериализации объектов (или структур, для необъектных RPC) (из вики).

Для реализации DHT был выбран gRPC – высокопроизводительная универсальная RPC-инфраструктура с открытым кодом от компании Google.

Для «общения» между узлами gRPC использует Protocol Buffers (Protobuf).

Protocol Buffers — протокол сериализации (передачи) структурированных данных, предложенный Google как эффективная бинарная альтернатива текстовому формату XML.

 

Рисунок 1. Схема работы gRPC

 

Реализуем протокол для общения узлов DHT на «языке» Protobuf:

Данное представление протокола общения имеет множество плюсов, относительно самописного:

  • Расширяемость - легко добавить или убрать одно из сообщений
  • Легкость сериализации сообщения для отправления\получения через сеть - gRPC автоматически сериализовывает сообщения protobuf в удобное для отправки по сети вид
  • Удобство – псевдоязык Protobuf  является самодокументированным

Далее реализуем процедуры «узла gRPC» :

Мы определили 3 функции, которые будут вызываться при получении определенного сообщения, формировать результат в «ответное» сообщение и отправляться обратно отправителю.

 

Рисунок 2. Протокол DHT

 

Таким образом мы определили протокол для «общения» узлов DHT.

Вывод: Технология RPC позволяет упростить разработку распределенных систем за счет встроенной сериализации и управлением подключений узлов, так же удобство реализации распределенной системы через RPC заключается в легкости расширения протокола и высокой производительности.

 

Список литературы:

  1.  Распределённая хеш-таблица // Википедия – свободная энциклопедия [Электронный ресурс]. -  URL: https://ru.wikipedia.org/wiki/%D0%A0%D0%B0%D1%81%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D1%91%D0%BD%D0%BD%D0%B0%D1%8F_%D1%85%D0%B5%D1%88-%D1%82%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D0%B0 (дата обращения: 31.05.2018)
  2. Protocol Buffers // Википедия – свободная энциклопедия [Электронный ресурс]. -  URL: https://ru.wikipedia.org/wiki/Protocol_Buffers (дата обращения: 31.05.2018)
  3. gRPC [Электронный ресурс]. -  URL: https://grpc.io/about/#osp (дата обращения: 31.05.2018)
Проголосовать за статью
Конференция завершена
Эта статья набрала 0 голосов
Дипломы участников
У данной статьи нет
дипломов

Оставить комментарий