Испытание производительности 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.2015

  • PHP как язык программирования. 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

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.