On performance of the In-Memory Data Grids
The paper analyzes advantages of the modern In-Memory Data Grid systems. Major In-Memory Data Grids platforms are described with particular stress on their unique features. The sets of experiments based on real usage scenarios were conducted in order to clarify the performance of the platforms.
Збережено в:
Дата: | 2017 |
---|---|
Автори: | , |
Формат: | Стаття |
Мова: | rus |
Опубліковано: |
Інститут програмних систем НАН України
2017
|
Теми: | |
Онлайн доступ: | https://pp.isofts.kiev.ua/index.php/ojs1/article/view/146 |
Теги: |
Додати тег
Немає тегів, Будьте першим, хто поставить тег для цього запису!
|
Назва журналу: | Problems in programming |
Репозитарії
Problems in programmingid |
pp_isofts_kiev_ua-article-146 |
---|---|
record_format |
ojs |
resource_txt_mv |
ppisoftskievua/fd/b3a78ea9f1dceca2aab1b238fa4dbdfd.pdf |
spelling |
pp_isofts_kiev_ua-article-1462018-07-16T15:42:12Z On performance of the In-Memory Data Grids К вопросу о производительности распределенных хранилищ объектов данных в памяти ОЗУ До питання про продуктивність розподілених сховищ об’єктів даних у пам’яті ОЗУ Rukhlis, K.A. Doroshenko, А.Yu. UDC 004.424 УДК 004.424 УДК 004.424 The paper analyzes advantages of the modern In-Memory Data Grid systems. Major In-Memory Data Grids platforms are described with particular stress on their unique features. The sets of experiments based on real usage scenarios were conducted in order to clarify the performance of the platforms. Проанализированы основные преимущества современных распределенных хранилищ объектов данных в памяти ОЗУ. Представлены описания основных платформ таких систем, приведён анализ их характеристик. Проведены группы экспериментов по замеру производительности нескольких систем для типичных приложений. Проанализированы результаты экспериментов. Проаналізовано головні переваги сучасних розподілених сховищ об’єктів даних у пам’яті ОЗУ. Представлено описи основних платформ таких систем, наведено аналіз їх характеристик. Проведено групи експериментів щодо замірів продуктивності декількох систем для типових додатків. Проаналізовано результати експериментів. Інститут програмних систем НАН України 2017-06-15 Article Article application/pdf https://pp.isofts.kiev.ua/index.php/ojs1/article/view/146 PROBLEMS IN PROGRAMMING; No 3 (2015) ПРОБЛЕМЫ ПРОГРАММИРОВАНИЯ; No 3 (2015) ПРОБЛЕМИ ПРОГРАМУВАННЯ; No 3 (2015) 1727-4907 rus https://pp.isofts.kiev.ua/index.php/ojs1/article/view/146/139 Copyright (c) 2017 ПРОБЛЕМИ ПРОГРАМУВАННЯ |
institution |
Problems in programming |
baseUrl_str |
https://pp.isofts.kiev.ua/index.php/ojs1/oai |
datestamp_date |
2018-07-16T15:42:12Z |
collection |
OJS |
language |
rus |
topic |
UDC 004.424 |
spellingShingle |
UDC 004.424 Rukhlis, K.A. Doroshenko, А.Yu. On performance of the In-Memory Data Grids |
topic_facet |
UDC 004.424 УДК 004.424 УДК 004.424 |
format |
Article |
author |
Rukhlis, K.A. Doroshenko, А.Yu. |
author_facet |
Rukhlis, K.A. Doroshenko, А.Yu. |
author_sort |
Rukhlis, K.A. |
title |
On performance of the In-Memory Data Grids |
title_short |
On performance of the In-Memory Data Grids |
title_full |
On performance of the In-Memory Data Grids |
title_fullStr |
On performance of the In-Memory Data Grids |
title_full_unstemmed |
On performance of the In-Memory Data Grids |
title_sort |
on performance of the in-memory data grids |
title_alt |
К вопросу о производительности распределенных хранилищ объектов данных в памяти ОЗУ До питання про продуктивність розподілених сховищ об’єктів даних у пам’яті ОЗУ |
description |
The paper analyzes advantages of the modern In-Memory Data Grid systems. Major In-Memory Data Grids platforms are described with particular stress on their unique features. The sets of experiments based on real usage scenarios were conducted in order to clarify the performance of the platforms. |
publisher |
Інститут програмних систем НАН України |
publishDate |
2017 |
url |
https://pp.isofts.kiev.ua/index.php/ojs1/article/view/146 |
work_keys_str_mv |
AT rukhliska onperformanceoftheinmemorydatagrids AT doroshenkoayu onperformanceoftheinmemorydatagrids AT rukhliska kvoprosuoproizvoditelʹnostiraspredelennyhhraniliŝobʺektovdannyhvpamâtiozu AT doroshenkoayu kvoprosuoproizvoditelʹnostiraspredelennyhhraniliŝobʺektovdannyhvpamâtiozu AT rukhliska dopitannâproproduktivnístʹrozpodílenihshoviŝobêktívdanihupamâtíozu AT doroshenkoayu dopitannâproproduktivnístʹrozpodílenihshoviŝobêktívdanihupamâtíozu |
first_indexed |
2025-07-17T09:43:47Z |
last_indexed |
2025-07-17T09:43:47Z |
_version_ |
1838409233859608576 |
fulltext |
Моделі та засоби паралельних і розподілених програм
© К.А. Рухлис, А.Е. Дорошенко, 2015
ISSN 1727-4907. Проблеми програмування. 2015. № 3 33
УДК 004.424
К.А. Рухлис, А.Е. Дорошенко
К ВОПРОСУ О ПРОИЗВОДИТЕЛЬНОСТИ РАСПРЕДЕЛЕННЫХ
ХРАНИЛИЩ ОБЪЕКТОВ ДАННЫХ В ПАМЯТИ ОЗУ
Проанализированы основные преимущества современных распределенных хранилищ объектов данных
в памяти ОЗУ. Представлены описания основных платформ таких систем, приведён анализ их характе-
ристик. Проведены группы экспериментов по замеру производительности нескольких систем для ти-
пичных приложений. Проанализированы результаты экспериментов.
Введение
Одной из основных проблем при
обработке больших объёмов данных на
вычислительной технике всегда была про-
изводительность системы ввода-вывода
хранилищ данных. Исторически, для хра-
нения больших объёмов данных использо-
вались хранилища на основе магнитных
лент/жёстких дисков. Такие хранилища
обладают сравнительно низкой стоимо-
стью хранения данных. При этом произво-
дительность подсистемы ввода-вывода
остаётся бутылочным горлышком у этого
типа устройств.
С распространением 64-х битных
многоядерных систем стоимость опера-
тивной памяти значительно снизилась, а
объёмы многократно увеличились. Это
делает идею использования ОЗУ для хра-
нения операционных данных вместо
жёстких дисков очень привлекательной,
учитывая тот факт, что скорость доступа к
ОЗУ в 1000 раз превышает скорость до-
ступа к HDD [1]. Группировка узлов с
большими объёмами ОЗУ в единую вы-
числительную систему-кластер фактиче-
ски полностью исключает потребность
приложений в доступе к медленным
устройствам ввода-вывода. Все эти фак-
торы породили создание новых подходов
и новых решений кластеризации – рас-
пределённых хранилищ объектов данных
(In-Memory Compute Grid и In-Memory
Data Grid, IMDG) [2], ещё называемые
дата грид.
Ключевыми особенностями, спо-
собствующими распространению IMDG,
являются [3, 4]:
скорость доступа к данным для
чтения/записи – скорость доступа к ОЗУ в
1000 раз превосходит скорость доступа к
лучшим HDD;
масштабируемость – в большин-
стве случаев в лучших реализациях IMDG
масштабируемость фактически линейна;
простота внутреннего представ-
ления данных – подавляющее большин-
ство IMDG платформ хранят данные в ви-
де пары <ключ, значение>. Отсутствие
сложностей в хранении, комплексных
иерархических структур дают значитель-
ный прирост производительности и удоб-
ства разработки прикладных приложений,
позволяя программистам хранить данные
в наиболее удобном для прикладных за-
дач виде;
поддержка Transactional ACID
принципа – современные системы IMDG
используют оптимизированное 2-х фазное
подтверждение операций(2-phase-commit)
при изменении данных для гарантирова-
ния целостности и непротиворечивости
данных. В этом их ключевое отличие от
NoSQL баз данных, которые используют
принцип “Согласованность в конечном
счете (Eventual consistency)” при измене-
нии данных (что позволяет NoSQL иметь
в какой-то момент времени несогласован-
ные данные).
секционирование данных (Parti-
tioning) – у лучших реализаций IMDG си-
стем хранение пар <ключ,значение> опти-
мизировано для минимизации пересылки
данных между разными узлами кластера.
В свою очередь реализации IMDG,
в основном, различаются [4, 5]:
Моделі та засоби паралельних і розподілених програм
34
механизмами реализации
Transactional ACID;
средствами первичной загрузки
данных (прогрев кэша);
наличием и реализацией парал-
лельного секционирования;
политиками выгрузки данных
(eviction policies) – при переполнении ке-
ша, при отсутствии потребности в самих
данных на протяжении какого-то момента
и т. д.);
поддержкой SQL-like запросов.
Выбор той или иной реализации за-
висит в первую очередь от приложений,
которые будут оперировать хранящимися
в IMDG данными.
1. Описание задачи, для которой
потребовался выбор конкретной
платформы IMDG
Одним из основных применений
IMDG систем является класс приложений,
где основной операцией ввода-вывода яв-
ляется чтение, а не запись. Примерами та-
ких приложений являются поисковые си-
стемы, системы агрегации и вычислений
на множестве данных. Фактически, IMDG
в данном случае используется в качестве
кэша 2-го уровня. Схематически такие
приложения можно представить следую-
щим образом (рис. 1).
Для сравнения производительности
был использован набор данных из 20 мил-
лионов уникальных записей. Кластер
IMDG состоит из 4х узлов. В качестве по-
стоянного хранилища использован Oracle
11g. Каждый физический узел имеет сле-
дующие характеристики:
процессор: Intel Xeon 2.4GHz 2
Cores;
ОЗУ: 16GB;
операционная система: CentOS
x64;
Java: 8.x.
Интерфейс с клиентским приложе-
нием построен на базе REST запросов.
Общая схема кластера показана на рис. 2.
Тестирование проводилось в 2-х
режимах – с “прогретым кешем” и с “хо-
лодным стартом”. В случае с прогретым
Система
ввода
данных
Репозиторий
Система
запросов
данных
Внешний
источник
данных
IMDG
Постоянное
“Опорное”
хранилище
данныхСистема
преобразова
ния данных
Клиентское
приложение
Рис. 1. Общая структурная схема прило-
жения IMDG
кешем-записи предварительно во время
старта узлов в соответствии с разбивкой
вычитывались в кеш. Так, что во время за-
просов от клиентского приложения обра-
щения к БД сведены к минимуму. В случае
холодного старта – после старта узлов в их
кеше не содержатся данные. Данные в
этом случае попадают в кеш при первом
обращении к соответствующей записи.
Клиентское тестовое приложение
состоит из конфигурируемого количества
независимых клиентских потоков с запро-
сами к IMDG на загрузку 500 взаимосвя-
занных записей. В процессе тестирования
мы использовали два набора тестов – один,
когда количество клиентских потоков со-
ставляет 3 экземпляра; и второй, когда мы
замеряли обращения к IMDG от 5 до 20
клиентских потоков с 5000 запросов одно-
временно. Для сглаживания возможных
инфраструктурных накладок для каждой
из платформ тестирование запускалось 5
раз. Результаты – среднее арифметическое
из 5 запусков для каждого из тестовых
сценариев.
Моделі та засоби паралельних і розподілених програм
35
IMDG
Узел 1
IMDG
Узел 2
IMDG
Узел 3
IMDG
Узел 4
Oracle 11g
HTTP Load Balancer
Клиентское приложение
Рис. 2. Общая схема кластера
2. Описание выбранных
для тестирования платформ
В качестве целевых IMDG плат-
форм тестировались: RH Infinispan, Oracle
Coherence, Ehcache (Terracotta commercial
version) и HazelCast. Все эти реализации
IMDG полностью удовлетворяют постав-
ленной задаче, имеют достаточно дли-
тельную историю развития и популяр-
ность.
RH Infinispan [6, 7] представляет
собой распределённую систему хранения
пар <ключ, значение> с реализацией всех
вышеописанных принципов IMDG. Клю-
чевыми особенностями Infinispan являют-
ся:
максимальная масштабируемость;
гарантированная доступность его
сервисов;
максимальное использование мно-
гопоточности на современных CPU;
развитые неблокирующие (lock-
free) механизмы репликации данных.
Infinispan часто используется не
только в качестве IMDG платформы, но и
как обычный распределённый кеш, высо-
копроизводительное объектное хранили-
ще, NoSQL хранилище пар <ключ, значе-
ние>. Существует также и коммерческая
версия Red Hat JBoss Data Grid, которая
отличается наличием коммерческой тех-
нической поддержки Red Hat, возможно-
стью получать самые свежие и последние
версии, возможностью адаптации под
клиента.
Oracle Coherence [8] является ве-
дущей коммерческой IMDG платформой.
Кроме стандартного набора функций
IMDG эта реализация включает в себя раз-
витые средства мониторинга IMDG кла-
стера, возможности гибкой настройки
очищения/сброса кеша, гарантированную
доступность сервисов платформы не зави-
симо от нагрузки, богатые возможности
горячей замены узлов.
Ehcache [9, 10] – один из старей-
ших фреймворков для создания кеша под
Java. Первые версии этого кеша предна-
значались для использования в качестве
кеширующей надстройки над различными
Java ORM библиотеками для ускорения
операций с часто используемыми сущно-
стями без необходимости обращения к фи-
зической СУБД. С тех пор Ehcache был
значительно функционально расширен,
появились возможности использования
миллионов кешей в рамках Ehcache кла-
стера, добавились средства гарантирова-
ния доступности сервисов, несколько раз-
личных вариантов репликации данных,
динамическое конфигурирование/рекон-
фигурирование кешей, плюс, зеркалирова-
ние узлов, гибкая настройка непротиворе-
чивости данных и средств для достижения
этого. Кроме того, Ehcache – единственная
платформа, которая поддерживает пользо-
вательские надстройки/замещения для лю-
бого своего модуля.
Моделі та засоби паралельних і розподілених програм
36
HazelCast [11, 12] – предназначен
для создания высокопроизводительных
кластерных систем на Java. IMDG – всего
лишь часть этой платформы. Среди отли-
чительных черт HazelCast можно выде-
лить:
распределённую реализацию
java. util. concurrent. ExecutorService и ja-
va.util.concurrency.locks.Lock;
высокоэффективную реализа-
цию принципа publish/subscribe уведомле-
ний;
транзакционность и соответ-
ствующую интеграцию с JEE контейнера-
ми;
механизм распределённых слу-
шателей/событий;
возможность пользовательским
приложениям реагировать на изменение
состава узлов кластера;
динамическую кластеризацию
HTTP сессий;
динамическое масштабирова-
ние до сотен серверов;
динамическое секционирование
данных и их резервное хранение;
динамическое восстановление
работоспособности;
компактность и лёгкость инте-
грации в любую существующую инфра-
структуру;
полностью внутренне многопо-
точный;
оптимизирован для применения
на современных CPU х64 и для работы с
большими объёмами малых данных.
3. Описание результатов
тестирования
В процессе построения эксперимен-
тального кластера на каждой из вышепе-
речисленных платформ оценивались не-
сколько параметров не связанных с произ-
водительностью самой платформы в те-
стовой задаче. Среди них – удобство уста-
новки и развёртывания, нагрузка на CPU
во время работы, возможности динамиче-
ского конфигурирования параметров кла-
стеров и т. д. Во время тестирования все
платформы правильно секционировали
данные и нагрузка на узлы была равно-
мерной. Результаты сравнения по этим па-
раметрам приводятся в табл. 1.
Таблица 1. Сводная таблица характеристик
тестируемых IMDG платформ. 100 % –
максимальный показатель
Свойство\
Платф-ма
Infini
span
Coher
ence
Ehc
ache
Hazel
Cast
Инстал-
ляция
70% 85% 75% 90%
Конфигу-
рирование
50% 70% 65% 70%
Поддержка 60% 70% 60% 70%
Средства
реплика-
ции
70% 90% 70% 75%
Нагрузка
на CPU,
максимум
80% 85% 75% 80%
Было проведено 3 группы тестов:
1. Первым тестом стал запуск 3 кли-
ентских потоков с запросом со стороны
каждого клиента пятисот записей. Тесты
выполнялись на “холодном кеше”, т. е. без
предварительной загрузки данных из
СУБД. Результаты приведены в табл. 2.
Таблица 2. Сводная таблица результатов
первого теста
Как можно увидеть из этих резуль-
татов – лучшую производительность на
чтение в условиях холодного кеша проде-
IMDG
платформа
Запро-
сов в
секунду
Ошибок
чтения,
%
Попа-
дание в
кеш, %
Infinispan 289 1.5 57
Oracle
Coherence
400 8 99
Ehcache 280 5 80
HazelCast 292 1.3 95
Моделі та засоби паралельних і розподілених програм
37
монстрировала платформа Oracle
Coherence.
2. Для проверки на сколько изменит-
ся производительность платформ с пред-
варительно прогретым кешом при прочих
равных условиях проведём второй тест
(табл. 3).
Таблица 3. Сводная таблица результатов
второго теста
IMDG
платформа
Запросов в
секунду
Ошибок
чтения, %
Infinispan 488 0.02
Oracle
Coherence
643 0.015
Ehcache 402 0.15
HazelCast 503 0.02
Как можно увидеть, с “прогретым
кешем” производительность операций
случайного чтения всех датагрид плат-
форм выросла в среднем в 1.5 раза. Лучше
всего, как и в прошлый раз, показал себя
Oracle Coherence.
3. Для тестирования производи-
тельности операций чтения с переменным
количеством клиентских запросов мы про-
вели третий тест. Во время теста мы пере-
запускали клиентское приложение с раз-
личным количеством одновременных кли-
ентских потоков, начиная с 5, с шагом в 5.
Каждый поток делает запрос на загрузку
5000 записей. Кеш на всех датагрид плат-
формах был предварительно прогрет при
старте. Результаты можно увидеть на сле-
дующем графике (рис. 3).
Как можно увидеть из диаграммы,
все платформы справились с нагрузкой.
Производительность операций чтения сла-
бо изменялась в зависимости от количе-
ства одновременных клиентских потоков.
Лучше всего сбалансировать нагрузку
смогли Coherence (в районе 647–650 за-
просов в секунду) и HazelCast (в районе
517–520 запросов в секунду).
Рис. 3. Изменение производительности за-
просов на чтение кластеров IMDG в зави-
симости от количества клиентских потоков
Заключение
Современные платформы In-
Memory Data Grid – высокопроизводи-
тельные системы, успешно заменяющие
реляционные и NoSQL СУБД в задачах с
требованиями максимально быстрых за-
просов к данным. Эти системы нашли по-
всеместное использование в таких сферах,
как поисковые запросы данных в интернет,
анализ и агрегация научных данных, при-
ложениях электронной коммерции
(например, для хранения и быстрого до-
ступа к состоянию склада по товарам). Со-
временные IMDG платформы научились
автоматически балансировать нагрузку,
оптимально секционировать данные, га-
рантируют целостность данных, самовос-
становление отдельных узлов и т. д. Кон-
кретно под нашу задачу из протестирован-
ных датагрид систем лучше всего подхо-
дят Oracle Coherence и HazelCast. Эти си-
Моделі та засоби паралельних і розподілених програм
38
стемы демонстрируют наилучшую мас-
штабируемость, оптимальную автобалан-
сировку нагрузки, а также оказались
наиболее оптимальными при выполнении
запросов к данным, которые отсутствуют в
кеше.
1. Falling RAM Prices Drive In-Memory
Database Surge: http://blogs.sap.com/
innovation/big-data/ram-prices-drive-in-
memory-surge-020097.
2. Taxonomy, Definitions and Vendor
Landscape for In-Memory Computing
Technologies:
http://www.gartner.com/document/2608719.
3. What IT Leaders Need to Know About In-
Memory Data Grids: http://www.gartner.
com/document/code/231619.
4. Plattner H., Zeier A. In-Memory Data
Management: Technology and Applications.
2nd ed., Springer, 2012. – 267 p.
5. Di Stefano M. Distributed Data Management
for Grid Computing. Wiley, 2005. – 312 p.
6. RH Infinispan: http://infinispan.org/
7. Marchioni F. Infinispan Data Grid Platform.
Packt Publishing, 2012. – 150 p.
8. Oracle Coherence In-Memory Data Grid:
http://www.oracle.com/ru/products/middlewar
e/cloud-app-foundation/coherence/overview/
index.html.
9. Ehcache : http://ehcache.org/
10. Wind D. Instant Effective Caching with
Ehcache. Packt Publishing, 2013. – 86 p.
11. Hazelcast: http://hazelcast.com/
12. Johns M. Getting Started with Hazelcast.
Packt Publishing, 2013. – 136 p.
Получено: 12.05.2015
Об авторах:
Рухлис Константин Александрович,
младший научный сотрудник,
Дорошенко Анатолий Ефимович,
доктор физико-математических наук,
профессор, заведующий отделом теории
компьютерных вычислений.
Место работы авторов:
Институт программных систем
НАН Украины,
03680, Киев-187,
Проспект Академика Глушкова, 40.
Тел.: (044) 526 3559.
E-mail: ukkr@yandex.ru,
dor@isofts.kiev.ua
http://blogs.sap.com/%20innovation/big-data/ram-prices-drive-in-memory-surge-020097
http://blogs.sap.com/%20innovation/big-data/ram-prices-drive-in-memory-surge-020097
http://blogs.sap.com/%20innovation/big-data/ram-prices-drive-in-memory-surge-020097
http://www.gartner.com/document/2608719
http://infinispan.org/
http://www.oracle.com/ru/products/middleware/cloud-app-foundation/coherence/overview/index.html
http://www.oracle.com/ru/products/middleware/cloud-app-foundation/coherence/overview/index.html
http://www.oracle.com/ru/products/middleware/cloud-app-foundation/coherence/overview/index.html
http://ehcache.org/
http://hazelcast.com/
mailto:ukkr@yandex.ru
mailto:dor@isofts.kiev.ua
|