Испытание производительности Hyperledger Fabric в сравнении с MySQL и CouchDB
Описание особенностей эксперимента, проведенного с Hyperledger Fabric и решениями для хранения данных - MySQL и CouchDB. Установлено, что пропускная способность Hyperledger Fabric при отправке транзакций в 3-4 раза ниже, чем могут предложить MySQL и Couch
| Рубрика | Программирование, компьютеры и кибернетика |
| Вид | статья |
| Язык | русский |
| Дата добавления | 26.01.2021 |
| Размер файла | 60,3 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
ИСПЫТАНИЕ ПРОИЗВОДИТЕЛЬНОСТИ HYPERLEDGER FABRIC В СРАВНЕНИИ С MYSQL И COUCHDB
Чистяков М.А.,
аспирант 1 курс, Высшая школа экономики и менеджмента
ФГАОУВО «УрФУ имени первого Президента России Б.Н. Ельцина» Россия, г. Екатеринбург
Аннотация: данная статья описывает эксперимент, проведённый с Hyperledger Fabric и двумя конкурирующими решениями для хранения данных - MySQL и CouchDB. В результате эксперимента установлено, что пропускная способность Hyperledger Fabric при отправке транзакций в 3-4 раза ниже, чем могут предложить MySQL и CouchDB, однако скорость выборки оказалась такой же, как у CouchDB, и более высокой, чем у MySQL.
Ключевые слова: hyperledger fabric, база данных, блокчейн, MySQL, CouchDB, производительность
Annotation: this article describes an experiment with Hyperledger Fabric and two other technologies for structured data storage - MySQL and CouchDB. The results of experiment showed the throughput of Hyperledger Fabric being 3-4 time worse comparing to results of MySQL and CouchDB, but the performance of queueing appeared to be on par with CouchDB and faster than MySQL.
Keywords: hyperledger fabric, database, blockchain, consensus mechanism, smart-contracts.
ВВЕДЕНИЕ
Hyperledger Fabric является платформой для закрытого приватного блокчейна с возможностью распределения ролей между узлами и выполнения смарт-контрактов, называющихся Chaincode в терминологии Hyperledger Fabric и позволяющих самостоятельно указывать структуру данных в блокчейне и правила их добавления [1]. Платформа входит в открытый зонтичный проект Hyperledger, созданный некоммерческим консорциумом Linux Foundation в декабре 2015 года [2]. Блокчейн - вид базы данных, представляющей собой цепь связанных блоков данных. Механизм его действия основывается на фундаментальных свойствах - одном из видов консенсусов (примеры: Proof-of-Work и Proof-of-Stake) и открытой истории транзакции [3].
Одной из проблем, которые часто связывают с блокчейном, является производительность, а именно - пропускная способность, выражаемая в транзакциях в секунду. Таким образом, цель данной работы - провести эксперимент, который позволит сравнить различные аспекты производительности последней версии Hyperledger Fabric с несколькими конкурентными решениями для хранения данных.
МЕТОДОЛОГИЯ
Шесть физических компьютеров были объединены в локально - вычислительную сеть с использованием коммутатора и использовали одну и ту же подсеть. Основные характеристики пяти компьютеров, на которых планировалось провести:
- Процессор: Intel Celeron G3930;
- Оперативная память: 4 Гбайт;
- Операционная система: Ubuntu Minimal 18.04 x86-64;
- Пространство на диске: не менее 20 Гбайт, одинаковая производительность и состояние на всех ПК;
- Скорость сети: 1 Гбит/с.
Таким образом системные требования Hyperledger Fabric были выполнены, а следовательно, и проблем с работоспособностью системы не должно было возникнуть. Шестой компьютер использовался для контроля за остальными через ssh.
Для испытаний кроме Hyperledger Fabric версии 1.1 были также выбраны платформы MySQL версии 5.7 и CouchDB версии 2.3.0. Обе были испытаны в режиме репликации.
Для всех трёх систем была использована простая структура данных:
- id - число;
- name - строка;
- value - строка.
Для генерации значений, которые необходимо было добавлять в базы данных, а также для автоматизации их отправки был написан скрипт на Python. Скрипт генерировал 1000 значений, которые в последствии добавлялись в MySQL, CouchDB и Hyperledger Fabric. Общее время добавления выводилось после выполнения скрипта. Было выполнено в общей сложности 10 таких тестов, среди которых были выведены средние результаты.
Также был написан аналогичный скрипт с небольшими изменениями, который генерировал запросы выборки к базам данных на основании случайного выбора параметра name. Принцип аналогичен - 1000 запросов, вывод времени выполнения цикла, 10 тестов, выведение средних значений результатов.
РЕЗУЛЬТАТЫ
Подробнее с результатами можно ознакомиться на рисунке 1.
Рисунок 1 - Среднее время выполнения 1000 операций записи и выборки (пять компьютеров, репликация)
Подробное описание результатов испытаний на производительность записи:
- Hyperledger Fabric (Kafka + CouchDB): 12845 мс на 1000 операций записи, что равно 77 операциям в секунду;
- CouchDB: 1790 мс на 1000 операций записи, что равно 558 операциям в секунду;
- MySQL: 2264 мс на 1000 операций записи, что равно 442 операциям в секунду.
Таким образом, Hyperledger Fabric оказался самым медленным в скорости выполнения операций записи данных в блокчейн, что и неудивительно, т.к. если другие СУБД работают исключительно с репликацией, которая может быть отложенной, то в случае с Hyperledger Fabric используется хоть и простой, но алгоритм консенсуса.
Подробное описание результатов испытаний на производительность выборки:
- Hyperledger Fabric (Kafka + CouchDB): 3515 мс на 1000 операций выборки, что равно 284 операциям чтения в секунду;
- CouchDB: 3546 мс на 1000 операций выборки, что равно 282 операциям в секунду;
- MySQL: 4320 мс на 1000 операций выборки, что равно 231 операциям в секунду.
Интересным результатом данных испытаний стало то, что производительность при операциях выборки оказалась одинаковой между Hyperledger Fabric и CouchDB. Таким образом, можно сделать вывод, что архитектура платформы Hyperledger Fabric не влияет на скорость чтения данных из состояния блокчейна и упирается в возможности CouchDB. Оба программных продукта оказались несущественно, но быстрее MySQL.
Также было выполнено дополнительное испытание на зависимость скорости записи в базу данных от числа компьютеров в кластере. Результаты указаны на рисунке 2.
Рисунок 2 - Зависимость производительности от количества компьютеров в кластере при выполнении 1000 операций записи
Производительность MySQL и CouchDB не менялась при изменении количества компьютеров в кластере - следствие того, что в этих системах используется отложенное реплицирование. Производительность кластера Hyperledger Fabric снижалась при увеличении количества сервисных узлов (Orderers) в нём. Это можно объяснить тем, что чем больше используется сервисных узлов, тем сложнее им найти общий порядок добавления транзакций в блоки. Таким образом, можно сделать вывод о том, что для высокой производительности сети количество сервисных узлов не должно быть большим, в то время как количество обычных узлов может варьироваться в широких пределах.
mysql и couchdb данные хранение
ИСПОЛЬЗОВАННЫЕ ИСТОЧНИКИ
1. Architecture explained // hyperledger-fabric.readthedocs. URL: http://hyperledger- fabric.readthedocs.io/en/release/arch-deep-dive.html (дата обращения: 20.12.2018)
2. Хултквист Х. Что такое Hyperledger? Как Linux Foundation создает открытую платформу вокруг блокчейн проектов Intel и IBM. // Голос. Beta. 21.06.2017. URL: https://golos.io/m--blokcheijn/@hultqvist/chto-takoe-hyperledger-kak-linux-foundation-sozdaet-otkrytuyu-platformu-vokrug-blokchein-proektov-intel-i-ibm (дата обращения: 08.12.2018).
3. Бубель А.И. Возможности использования блокчейна и виртуальных токенов в таможенных операциях // Таможенная политика России на Дальнем Востоке. №3 (76). 2016. - с. 14-22.
Размещено на Allbest.ru
Подобные документы
Система управления базами данных (СУБД) MySQL. Установка, настройка и запуск MySQL. Окончательная настройка нового MySQL сервера. Основные утилиты и журнальные файлы. Работа с виртуальными хостами. Синтаксис для создания таблиц и управление данными.
реферат [3,5 M], добавлен 24.06.2019Основные технологии веб-программирования. Методы отправки данных на сервер с помощью HTML-формы. PHP - Препроцессор Гипертекста. Сохранение данных в базе данных MySQL. Клиент-Сервер и технология CGI. Примеры использования PHP совместно с MySQL.
лекция [2,9 M], добавлен 27.04.2009Функции, позволяющие работать с базой данных MySQL средствами РНР. Соединение с сервером и его разрыв. Создание и выбор базы данных. Доступ к отдельному полю записи. Комплексное использование информационных функций. Запросы, отправляемые серверу MySQL.
лекция [3,5 M], добавлен 27.04.2009Характеристика и технические возможности СУБД MySQL. Трехуровневая структура MySQL. Требования к аппаратному обеспечению. Создание таблицы, триггеров, генераторов, хранимых процедур в MySQL. Разработка приложения для базы данных с помощью Borland Delphi.
курсовая работа [940,7 K], добавлен 20.12.2011Общая характеристика системы управления базами данных MySQL, ее основные особенности и возможности, касающиеся обеспечения целостности данных. Реализация ограничений семантической и ссылочной целостности в СУБД MySQL на примере фрагмента ИС "Салон магии".
курсовая работа [981,0 K], добавлен 14.10.2012Общая характеристика СУБД MySQL. Отличительные черты физической организации хранения и обработки данных, имеющимся в СУБД MySQL. Характер связи между таблицами. Реализация ограничений семантической и ссылочной целостности на примере "Салон магии".
курсовая работа [965,5 K], добавлен 13.01.2013Программные средства, которые помогают манипулировать и управлять данными. Приемы создания и редактирования баз данных в СУБД MySQL. Способы и средства доступа и манипулирования данными. Создание, удаление, редактирование таблиц данных и их элементов.
практическая работа [1,2 M], добавлен 14.03.2013Этапы создания сайта с использованием СУБД – MySQL. Подключение блоков, наполнение текстовым содержанием путём ручного ввода данных в базу данных mysql. Создание администраторского раздела (админки), наполнение содержимым через администраторский раздел.
курсовая работа [4,5 M], добавлен 15.11.2012Синтаксис, типы данных, используемые в базе данных MySQL. Создание и удаление базы данных, создание таблицы и удаление таблицы, изменение ее свойств. Переименование, вставка и удаление столбцов, изменение их свойств. Обновление и поиск записей в таблице.
лабораторная работа [641,7 K], добавлен 04.03.2010Общая характеристика СУБД MySQL, клиент-серверная технология. Отличительные черты физической организации хранения и обработки данных, имеющимся в СУБД MySQL. Средства администрирования и спектр программных интерфейсов. Характер связи между таблицами.
презентация [73,2 K], добавлен 28.05.2019


