К вопросу о производительности распределенных хранилищ объектов данных в памяти ОЗУ
Проанализированы основные преимущества современных распределенных хранилищ объектов данных в памяти ОЗУ. Представлены описания основных платформ таких систем, приведён анализ их характеристик. Проведены группы экспериментов по замеру производительности нескольких систем для типичных приложений. Проа...
Gespeichert in:
Datum: | 2015 |
---|---|
Hauptverfasser: | , |
Format: | Artikel |
Sprache: | Russian |
Veröffentlicht: |
Інститут програмних систем НАН України
2015
|
Schriftenreihe: | Проблеми програмування |
Schlagworte: | |
Online Zugang: | http://dspace.nbuv.gov.ua/handle/123456789/117094 |
Tags: |
Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
|
Назва журналу: | Digital Library of Periodicals of National Academy of Sciences of Ukraine |
Zitieren: | К вопросу о производительности распределенных хранилищ объектов данных в памяти ОЗУ / К.А. Рухлис, А.Е. Дорошенко // Проблеми програмування. — 2015. — № 3. — С. 33-38. — Бібліогр.: 12 назв. — рос. |
Institution
Digital Library of Periodicals of National Academy of Sciences of Ukraineid |
irk-123456789-117094 |
---|---|
record_format |
dspace |
spelling |
irk-123456789-1170942017-05-20T03:03:43Z К вопросу о производительности распределенных хранилищ объектов данных в памяти ОЗУ Рухлис, К.А. Дорошенко, А.Е. Моделі та засоби паралельних і розподілених програм Проанализированы основные преимущества современных распределенных хранилищ объектов данных в памяти ОЗУ. Представлены описания основных платформ таких систем, приведён анализ их характеристик. Проведены группы экспериментов по замеру производительности нескольких систем для типичных приложений. Проанализированы результаты экспериментов. 2015 Article К вопросу о производительности распределенных хранилищ объектов данных в памяти ОЗУ / К.А. Рухлис, А.Е. Дорошенко // Проблеми програмування. — 2015. — № 3. — С. 33-38. — Бібліогр.: 12 назв. — рос. 1727-4907 http://dspace.nbuv.gov.ua/handle/123456789/117094 004.424 ru Проблеми програмування Інститут програмних систем НАН України |
institution |
Digital Library of Periodicals of National Academy of Sciences of Ukraine |
collection |
DSpace DC |
language |
Russian |
topic |
Моделі та засоби паралельних і розподілених програм Моделі та засоби паралельних і розподілених програм |
spellingShingle |
Моделі та засоби паралельних і розподілених програм Моделі та засоби паралельних і розподілених програм Рухлис, К.А. Дорошенко, А.Е. К вопросу о производительности распределенных хранилищ объектов данных в памяти ОЗУ Проблеми програмування |
description |
Проанализированы основные преимущества современных распределенных хранилищ объектов данных в памяти ОЗУ. Представлены описания основных платформ таких систем, приведён анализ их характеристик. Проведены группы экспериментов по замеру производительности нескольких систем для типичных приложений. Проанализированы результаты экспериментов. |
format |
Article |
author |
Рухлис, К.А. Дорошенко, А.Е. |
author_facet |
Рухлис, К.А. Дорошенко, А.Е. |
author_sort |
Рухлис, К.А. |
title |
К вопросу о производительности распределенных хранилищ объектов данных в памяти ОЗУ |
title_short |
К вопросу о производительности распределенных хранилищ объектов данных в памяти ОЗУ |
title_full |
К вопросу о производительности распределенных хранилищ объектов данных в памяти ОЗУ |
title_fullStr |
К вопросу о производительности распределенных хранилищ объектов данных в памяти ОЗУ |
title_full_unstemmed |
К вопросу о производительности распределенных хранилищ объектов данных в памяти ОЗУ |
title_sort |
к вопросу о производительности распределенных хранилищ объектов данных в памяти озу |
publisher |
Інститут програмних систем НАН України |
publishDate |
2015 |
topic_facet |
Моделі та засоби паралельних і розподілених програм |
url |
http://dspace.nbuv.gov.ua/handle/123456789/117094 |
citation_txt |
К вопросу о производительности распределенных хранилищ объектов данных в памяти ОЗУ / К.А. Рухлис, А.Е. Дорошенко // Проблеми програмування. — 2015. — № 3. — С. 33-38. — Бібліогр.: 12 назв. — рос. |
series |
Проблеми програмування |
work_keys_str_mv |
AT ruhliska kvoprosuoproizvoditelʹnostiraspredelennyhhraniliŝobʺektovdannyhvpamâtiozu AT dorošenkoae kvoprosuoproizvoditelʹnostiraspredelennyhhraniliŝobʺektovdannyhvpamâtiozu |
first_indexed |
2025-07-08T11:38:23Z |
last_indexed |
2025-07-08T11:38:23Z |
_version_ |
1837078631078166528 |
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
|