Испытание производительности 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Серверна мова програмування PHP. База даних MySQL. Мова та стандарти XML. Рівні та способи взаємодії засобів розробки. Засоби трансформації XML. Розробка інтернет-додатку з використанням PHP, MYSQL, XML. Розрахунок трудомісткості створення системи.
дипломная работа [1,8 M], добавлен 19.08.2012Отличительные особенности языков программирования PHP и CSS. Возможности компактного многопоточного сервера баз данных MySQL. Системный анализ предметной области, проектирование ее инфологической модели. Создание базы данных и web-страниц сайта магазина.
курсовая работа [1,0 M], добавлен 15.01.2013Общие сведения об операционной системе Linux. Анализ информации о серверах. Основные прикладные клиент-серверные технологии Windows. Сведения о SQL-сервере. Общая информация о MySQL–сервере. Установка и специфика конфигурирования MYSQL-сервера на LINUX.
курсовая работа [1,3 M], добавлен 16.12.2015PHP как язык программирования. MySQL – компактный многопоточный сервер баз данных. Серверное программное обеспечение. Разработка агоритма, программы, блок-схемы и их использование. Автоматизированная система централизованной обработки журналов событий.
отчет по практике [25,2 K], добавлен 12.07.2010Создание HTML-форм. Ввод многострочного текста. Тег FORM - контейнер форм. Трансляция переменных окружения. Передача данных с помощью формы. Приложения, хранящие данные о регистрации пользователей в базе данных MySQL. Порядок трансляции переменных.
лекция [5,6 M], добавлен 27.04.2009Виды серверов баз данных. MySQL как наиболее приспособленная для применения в среде СУБД. Хранимые и присоединенные процедуры. Операционная среда серверов. Согласованность чтения и тупиковые ситуации. Установка и настройка MySQL Server 5.6 на Windows 7.
курсовая работа [3,0 M], добавлен 28.12.2015Система управления базами данных MySQL. Управление БД MySQL при помощи инструмента phpmyadmin. Принципы учета товарно-материальных ценностей. Спецификация оборудования, необходимого для нормального функционирования базы данных учета. Создание скрипта.
дипломная работа [1,4 M], добавлен 16.08.2015Классификация компьютерных сетей. Схема подключения к Интернету, каналы передачи и приема информации. Разработка сайта с использованием скриптового языка программирования PHP и базы данных MySQL (база данных о квартирах, предназначенных для продажи).
контрольная работа [3,6 M], добавлен 09.05.2012Архітектура Web-баз даних. Загальні відомості про мову SQL. Створення таблиць баз даних. Використання бібліотеки для пошуку інформації. Аутентифікація за допомогою РНР й MySQL. Зберігання паролів в окремому файлі на сервері, використання бази даних.
курсовая работа [913,8 K], добавлен 12.01.2010Статические и динамические веб-сайты, их характеристика. Анализ возможностей применения языка PHP, системы управления базами данных (СУБД) MySQL, фреймворка CodeIgniter для разработки динамических веб-сайтов. Разработка шаблонов и главной страницы.
курсовая работа [2,8 M], добавлен 19.09.2012