К вопросу о производительности распределенных хранилищ объектов данных в памяти ОЗУ

Проанализированы основные преимущества современных распределенных хранилищ объектов данных в памяти ОЗУ. Представлены описания основных платформ таких систем, приведён анализ их характеристик. Проведены группы экспериментов по замеру производительности нескольких систем для типичных приложений. Проа...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
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 Ukraine
id 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