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
Автори: Rukhlis, K.A., Doroshenko, А.Yu.
Формат: Стаття
Мова:rus
Опубліковано: Інститут програмних систем НАН України 2017
Теми:
Онлайн доступ:https://pp.isofts.kiev.ua/index.php/ojs1/article/view/146
Теги: Додати тег
Немає тегів, Будьте першим, хто поставить тег для цього запису!
Назва журналу:Problems in programming

Репозитарії

Problems in programming
id 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