СОВРЕМЕННЫЕ БАЗЫ ДАННЫХ И ИХ ЭКОНОМИЧЕСКАЯ ЦЕЛЕСООБРАЗНОСТЬ В ТЕЛЕКОММУНИКАЦИОННЫХ СЕТЯХ
Божко К.А., аспирант Научно-исследовательского центра информатики при МИД России
В статье моделируется информационная система, регистрирующая звонки абонентов сотовой связи, рассматриваются показатели производительности этой системы в двух случаях - с использованием класса баз данных, адаптированного для моментальной обработки запросов, называемый базами данных в оперативной памяти (in-memory databases), а также на примере стандартной СУБД. Основная особенность архитектуры баз данных в оперативной памяти состоит в том, что они целиком размещаются в оперативной памяти сервера, что позволяет отказаться от достаточно сложных алгоритмов обслуживания кэш-буферов традиционных СУБД. В проведённых экспериментах показано, что использование встроенных в памяти баз данных в системах регистрации звонков мобильной связи более эффективно по сравнению со стандартными - они позволяют значительно, до десяти раз, увеличить производительность системы.
Ключевые слова: резидентные в оперативной памяти базы данных, система управления базами данных, производительность, мобильная связь, генератор случайных чисел.
MODERN KINDS OF DATABASES AND ITS ECONOMIC EFFICIENCY IN THE TELECOMMUNICATIONS
Bozhko K., the post-graduate student, NICI at the Ministry for Foreign Affairs of Russia
Application recording information about calls of mobile communication’s users is designed in the article. Performance of the application is estimated in two cases: based on a new kind of databases, called in-memory databases, and on standard RDBMS. New kind of databases enjoys popularity last years. The special feature of the database is all data is situated in memory of database’s server. This peculiarity allows to avoid any complex algorithm management of buffer caches, typical to standard DBMS. Taken experiment shows, that in-memory databases was significantly effective in comparison with standard databases - them allowed increase performance of a system up to 10 times!
Keywords: in-memory databases, database management system, performance, mobile service, random number generator.
Для удовлетворения быстро растущих требований бизнеса к информационным технологиям необходимо рассматривать альтернативные методы построения элементов информационных систем. В последние годы приобрёл популярность новый класс баз данных
- резидентные в оперативной памяти базы данных (in-memory databases). Основная особенность архитектуры таких систем управления базами данных (СУБД) состоит в том, что база данных целиком размещается в оперативной памяти сервера, что позволяет отказаться от достаточно сложных алгоритмов обслуживания кэш-буферов традиционных СУБД, а это, в свою очередь, даёт существенный выигрыш в производительности приложений баз данных.
Разработчики этих СУБД позиционируют их как СУБД реального времени, поэтому резидентные в оперативной памяти базы данных используются только в специальных областях применения, требующих чрезвычайно малого времени отклика на запросы к базе данных, таких как обслуживание оборудования для мобильной связи, биржевых торгов и в некоторых других областях применения. Заявляется, что производительность резидентных в оперативной памяти баз данных в десятки раз превосходит производительность традиционных реляционных баз данных.
В данной статье представлены опытные показатели сравнения производительности традиционной реляционной СУБД - сервера Oracle и СУБД Oracle TimesTen, работающей с резидентными в оперативной памяти базами данных.
Для современной мобильной связи актуально использование высокопроизводительных систем регистрации длительности звонков, а также использования абонентами дополнительных услуг связи, например, роуминг, GPRS (General Packet Radio Service - пакетная радиосвязь общего пользования), переадресация вызова.
Стандартная система такова: вся информация сохраняется напрямую в одной таблице в центральной, «дисковой» реляционной базе данных, где потом обрабатывается и используется приложениями. Однако с ростом количества абонентов увеличивается число обращений к таблице. Как следствие, растёт конкуренция между обращениями. При достижении максимальной производительности увеличивается время ожидания в очереди за доступом к таблице.
Использование резидентных в памяти баз данных предлагает альтернативное решение для описанной системы - задействовать набор таких баз в качестве посредников между приложением, обслуживающим звонки, и центральной «дисковой» СУБД. Иначе говоря, предлагается децентрализовать процесс сбора информации по звонкам, распределив несколько экземпляров регистрирующего приложения и резидентных оперативной в памяти баз данных на отдельных узлах по всей зоне обслуживания абонентов[1].
На каждом отдельном узле приложение соединяется локально с резидентной в оперативной памяти базой для регистрации начала и/или окончания вызова в своей географической зоне. Причём принципиальным моментов в этой схеме является нахождение базы и приложения в пределах одного физического сервера. В противном случае значительную лепту в ухудшение производительности вносят накладные расходы, связанные с передачей информации по сети. Заявляется, что такая схема позволит увеличить пропускную способность, а время отклика уменьшить примерно в 20 раз [1]. Другими словами, система сможет обслужить за единицу времени в 20 раз больше абонентов.
Для каждого вызова приложение регистрирует отдельно время начала и время окончания звонка. Это необходимо для тех случаев, когда начало вызова регистрируется одним узлом, а окончание другим.
Для передачи данных в центральную СУБД на каждом узле должен быть поднят фоновый процесс, который соединяется локально с экземпляром базы данных «в памяти» и удалённо с центральной.
Целью проведённых экспериментов было оценить количественно преимущество использования резидентных в оперативной памяти баз данных перед стандартной СУБД. Основным показателем являлось максимальная производительность приложения - то есть такое максимальное количество сгенерированных вызовов, которое приложение способно обработать без потерь на данном сервере. Для этого сначала генерировалось небольшое количество вызовов в секунду, после чего эта величина увеличивалась до тех пор, пока будет достигнута верхняя граница производительности приложения.
Также обе схемы (с использованием стандартной СУБД и резидентной в оперативной памяти базой данных) тестировались в двух режимах записи журнальной информации на диск - синхронном и асинхронном. Это делалось потому, что использование резидентных в оперативной памяти баз данных в своей основе предполагает асинхронную, фоновую запись на диск журнальной информации, в то время как такое использование нехарактерно для стандартной СУБД.
В качестве альтернативы двум указанным режимам проводился опыт с использованием репликации встроенной в оперативную память базы данных на аналогичный сервер. В такой схеме обеспечивалась согласованность данных в случае остановки основного экземпляра встроенной в оперативную память базы данных. Такую схему можно сравнивать с синхронным режимом записи журнальной информации на диск с использованием стандартной СУБД.
После получения показателей было необходимо провести их сравнение для трёх различных случаев, так как сами по себе они характеризуют не столько систему, сколько сервер, на котором проводился эксперимент. А отношения этих показателей уже дают количественные характеристики, позволяющие оценить выигрыш в производительности при использовании баз данных «в памяти» не зависимо от сервера.
Хотелось максимально приблизить эксперимент к процессам, происходящим в реальной жизни. С этой целью для реализации вызовов абонентов был создан виртуальный генератор. Эксперимент представляет собою макет, генерирующий звонок абонента по мобильной связи и обрабатывающий этот вызов.
Схема эксперимента состояла из трёх частей: генератор, приложение и база данных.
Генератор в авторской схеме заменял датчики реального оборудования. Он с заданным математическим ожиданием количества звонков в секунду создаёт вызовы. Для связи с реальной жизнью звонки создавались на основе применения генератора случайных чисел, выполненном с использованием функции гап^).
Если задать сгенерированное в секунду количество случайных чисел как п, а вероятность того, что отдельное число будет соответствовать возникновению события, принять за р, то математическое ожидание количества звонков в секунду равно
М=рп,
а отклонение от него описывается распределением Пуассона
Генератор и приложение взаимодействовали посредством сегментов разделяемой памяти. Такой способ называется механизм взаимодействия 1РС [2]. Он обеспечивает наиболее быстрый обмен данными между различными процессами в системе. При возникновении события генератор делает запись в ячейке разделяемого сегмента памяти и переводит курсор на следующую ячейку. Таким образом, в разделяемой памяти создаётся очередь вызовов, которая потом обрабатывается приложением.
Приложение подключается к базе данных и начинает читать очередь вызовов в разделяемом сегменте памяти. Если в системе генерируется звонок, приложение вставляет запись в таблицу в базе данных, после чего переходит к следующей ячейке разделяемого сегмента. Принципиальным моментом является необходимость проверки того факта, что без вставки в таблицу количество обработанных звонков значительно выше, чтобы показатели производительности характеризовали именно базу данных, а не определённый сервер или операционную систему.
Для случая с использованием стандартной СУБД (СУБД Oraclellg) приложение обращалось к ней с использованием интерфейса OCI (Oracle Call Interface - специализированный интерфейс доступа к базам данных Oracle) [3], а в случае с резидентной в оперативной памяти базы данных (TimesTen 11.2.2) - интерфейса ODBC (Open Database Connectivity - программный интерфейс доступа к базам данных) [4]. Это делалось для того, чтобы сравнивать указанные базы в равных условиях - использованные интерфейсы являются для них наиболее производительными соответственно.
Ниже приведены графики сравнения производительности для трёх схем (см. рис. 1-3).
Из графика на рис. 1 видно, что TimesTen увеличивает производительность системы почти в 6 раза в случае согласованной записи журнальной информации на диск.
Синхронный случай в данном эксперименте означает, что приложение не может продолжать работу, пока не завершится запись информации в журнальные файлы, асинхронный - наоборот.
Во втором случае (рис. 2) использование TimesTen увеличивает производительность до 10 раз. Но в этом случае при аварийной остановке базы данных (обоих классов) существует вероятность потери части информации, которая не записана на диск. В случае репликации такая вероятность отсутствует.
В третьем случае использование TimesTen увеличивает производительность до 5 раз.
Из проведённых экспериментов можно сделать вывод о том, что, во-первых, использование резидентных в оперативной памяти в памяти баз данных в системах регистрации звонков мобильной связи более эффективно по сравнению со стандартными, «дисковыми» СУБД - они позволяют значительно, до двадцати раз, увеличить производительность системы. Это означает, что за единицу
Рис. l. Сравнение производительности в синхронном случае
20000 -10000 60000 80000 100000 120000 1/10000 160000 180000 Рис. 2. Сравнение производительности в асинхронном случае
Рис. 3. Сравнение производительности для случая репликации.
времени большее количество абонентов смогут воспользоваться услугами оператора сотовой сети, во-вторых, оно даёт значительное уменьшение времени отклика системы. Хотя на данный момент большая часть времени соединения тратится на работу оборудования, обеспечивающего сервис мобильной связи, а не регистрацию звонка, этот показатель не будет являться узким местом при соединении абонента ещё долгое время.
Однако нужно отметить, что резидентные в оперативной памяти базы данных имеют и «обратную» сторону медали. Во-первых, на их производительность значительно влияет обращение к диску
- характерно для синхронного случая. В проведённом эксперименте завершение транзакции (commit) выполнялся после 100 вставок в таблицу. Если же выполнять завершение транзакции после каждой вставки, то показатели резидентной в памяти базы оказываются значительно ниже, чем при использовании стандартной СУБД, т.е. в таком случае преимущество проявляется только в асинхронном эксперименте.
Во-вторых, производители резидентных в оперативной памяти баз данных рекомендуют использовать для обеспечения надёжности технологию репликации - повторения всей или части информа-
ции на другом сервере. Однако сразу настораживает тот факт, что накладные расходы сети серьёзно ухудшают показатели производительности.
С экономической точки зрения использование этого метода является крайне эффективным, так как позволяет увеличить производительность системы до 10 раз, сократить время доступа к информации и обеспечить необходимую надёжность за счёт дублирования информации.
Литература:
1) Документация Oracle. «Oracle TimesTen In-Memory Database Introduction Release 7.0». http://download.oracle.com/otn_hosted_doc/ timesten/701/TimesTen-Documentation/intro.pdf
2) Alex Otwagin. «Введение в ОС Linux. Разделяемые сегменты памяти». http://skif.bas-net.by/bsuir/base/node233.html
3) Документация Oracle. «Oracle® Call Interface Programmer’s Guide». http://docs.oracle.com/cd/E11882_01/appdev.112/e10646.pdf
4) Документация Oracle. «Oracle TimesTen In-Memory Database C Developer’s Guide llg Release 2 (11.2.2)». http://docs.oracle.com/ cd/E21901_01/doc/timesten.1122/e21637.pdf
ЭКОНОМИЧЕСКИЕ АСПЕКТЫ РАЗВИТИЯ СОЛНЕЧНОЙ ЭНЕРГЕТИКИ В МОНГОЛИИ
Энхболор Д., аспирантка, кафедра «Экономика промышленности и организация предприятий», НИУ Московский Энергетический
институт
В статье рассматриваются вопросы экономической целесообразности развития солнечной энергетики в условиях Монголии. Для этого был проведен сравнительный анализ технико-экономических показателей угольной ТЭЦ и солнечной фотоэлектрической станции. Анализ показал, что в ближайшие 5 лет использование солнечной энергетики потребует государственного субсидирования генерирующим компаниям. Для ее развития экономически целесообразно использовать экспортный потенциал угольной промышленности.
Ключевые слова: возобновляемые источники энергии, солнечная энергия, солнечная фотоэлектрическая станция, теплоэлектроцентраль, себестоимость электроэнергии.
ECONOMIC ASPECTS OF SOLAR ENERGY DEVELOPMENT IN MONGOLIA
Enkhbolor D., the post-graduate student, Industrial economics and organization of enterprises chair National Research University, the
Moscow Power Engineering Institute
The article seeks to examine the economic feasibility of solar energy development in Mongolia. For this was held a comparative analysis of technical and economic indicators of the coal thermoelectric plant and a solar photovoltaic plant. The analysis showed that in the next 5 years solar energy would require government subsidies to generating companies, and economically feasible, provided that the state uses the export potential of the coal industry for its development.
Keywords: Renewable energy; Solar energy; Solar photovoltaic plant; Thermoelectric plant; the cost of electricity.
Анализ современного состояния и перспектив развития миро- быстро совершенствуются, следовательно, снижается себестои-
вой энергетики показывает, что в течение последнего десятилетия мость произведенной с их помощью электроэнергии, во-вторых,
потребление энергоресурсов растет быстрыми темпами на фоне ВИЭ экологичные, и в случае необходимости могут работать автосокращения и удорожания традиционных энергоресурсов в мире. номно и снабжать энергией потребителей, не подсоединенных к
Связи с этим для энергетики 21 века характерно повышение роли распределительным сетям централизованных источников энергии.
Возобновляемых Источников Энергии (ВИЭ). Преимуществами Резкий взлет цен на нефть и другие традиционные энергоноси-
ВИЭ являются: во-первых, технологии, задействованные в ВИЭ, тели в 2007 г, и в первой половине 2008 гг. придал значительное