Постановка задачи исследования сетевой производительности баз данных
Авторы: Л.И. Абросимов, С.М. Солдатов
(г. Москва, Московский энергетический институт (Технический Университет), Россия)
Авторы: Л.И. Абросимов, С.М. Солдатов
(г. Москва, Московский энергетический институт (Технический Университет), Россия)
Значение информации ее хранение и использование в современном мире трудно переоценить. В настоящее время компьютеры могут хранить все формы информации: записи, документы, образы, звуковые и видеозаписи, научные данные и много других форматов данных. Основная нагрузка по хранению, обработке данных, а также по обработке запросов к хранимой информации ложится на программное обеспечение системы управления базой данных (СУБД).
База данных (БД), создается для обеспечения конкретных нужд конечных пользователей и организации в целом. Реляционная модель БД [2], [3] хорошо пригодна к использованию в архитектуре клиент-сервер, параллельной обработке и графическим пользовательским интерфейсам. Современные СУБД предоставляют механизмы для реализации тех или иных алгоритмов хранения и обработки данных.
Производительность такой прикладной системы можно определить как совокупность характеристик производительности самого сервера БД с одной стороны и характеристик эффективности работы приложения, функционирующего на платформе данной СУБД, с другой. Также понятно, что промышленная база данных не используется локально и является частью локальной или распределенной вычислительной сети (ВС).
Следовательно, производительность прикладной системы будет зависеть и от производительности ВС, компонентой которой является прикладная система, функционирующая на платформе выбранной СУБД.
Таким образом, возникает необходимость выбора методологии и набора комплексных характеристик, позволяющих оценить производительность ВС, работающей с конкретным приложением на платформе конкретной СУБД.
Для получения количественных характеристик ВС обычно используются методы моделирования.
Практика показывает, что наиболее эффективными для решения этих задач являются аналитические модели, которые используют набор математических соотношений для вычисления количественных значений требуемых параметров системы по заданным параметрам системы и рабочей нагрузки.
Вероятностный характер аналитических моделей отражает реально наблюдаемую случайную картину возникновения запросов на ресурсы вычислительных сетей и их составляющих компонент, а также использование этих ресурсов.
Существенно расширяет возможности исследования вычислительных сетей применение аналитических моделей, использующих приближенные методы, среди которых наиболее распространенными являются методы аппроксимации и методы декомпозиции.[4, 5]
Использование в моделях метода декомпозиции предусматривает разбиение сети на подсети, которые исследуются реально, а затем заменяются приближенной моделью подсети.
Анализ литературы показывает, что в настоящее время нет единой методики получения единых временных характеристик работы вычислительной сети, имеющей в своем составе СУБД, обрабатывающей одновременно транзакции различных типов.
Для определения сетевой производительности БД, необходимо сначала ввести понятие производительности ВС и единицу обработки.
В процессе дистанционного обслуживания на абонентском компьютере формируется заявка с запросом на обработку. Коммуникационные устройства и каналы связи обеспечивают доставку сообщения с запросом на обработку. Далее обслуживающий компьютер обрабатывает полученную заявку и формирует сообщение с результатами обработки, которые по каналам доставляются в абонентский компьютер.
ВС выполняют функции передачи и обработки данных и осуществляют преобразование заявки в сообщение и наоборот. Для обозначения функционально связанных заявок и сообщений будем использовать термин транзакция, который определяется двумя параметрами: объемом данных и количеством вычислительных операций, необходимыми для обработки.
Следовательно, в качестве обслуживаемых единиц работы, определяющих производительность ВС, будем рассматривать транзакции различных типов.
Для обработки транзакции в канале связи и в коммутирующем устройстве требуется выделение ресурса пропускной способности на время, необходимое для передачи содержащегося в транзакции объема данных. Для обработки транзакции в компьютере требуется выделение вычислительного ресурса на время выполнения необходимого количества вычислительных операций.
Таким образом, обработку транзакции любой формы можно характеризовать инвариантной характеристикой - временем нахождения транзакции в обслуживающем узле.
Обслуживающий узел - это элемент модели ВС, свойства которого описываются параметрами и соотношениями, которые соответствуют моделям систем массового обслуживания транзакций с очередями.
В нашем случае обслуживающим узлом является сервер БД, который обрабатывает транзакции различных типов. Причем количество обрабатываемых за единицу времени транзакций будет различаться в зависимости от их типа.
В соответствии с концепцией теории производительности ВС[5] обслуживающий узел можно разбить на некоторое количество элементов, отображающих единицы обработки, которые временно сосредотачивают ресурсы узла для обработки транзакции рассматриваемого типа.
СУБД представляет собой некую логическую структуру. Эту структура можно условно разбить на три категории: процессы, области памяти и файлы БД.
Под процессом понимается программа или служба операционной системы, обеспечивающая непротиворечивость данных, восстановление данных после сбоя, сохранения данных на диск, запись информации в служебные файлы, обслуживающая входящие соединения пользователей и обрабатывающая их запросы.
Так же БД включает файлы данных, используемые для хранения метаданных и данных прикладной системы и служебные файлы, обеспечивающие хранение служебной информации и обеспечивающие восстановление данных в случае сбоя.
Все вышеперечисленные компоненты взаимодействуют между собой по определенным правилам. Следовательно, каждый из компонентов БД можно представить как некий элемент узла вычислительной сети. Каждый элемент в таком случае будет иметь свои вероятностно - временные характеристики при прохождении через него транзакций различных типов.
Наличие методологии, позволяющей определить производительность набора компонент СУБД, через которые проходит транзакция того или иного типа, позволит:
Разумеется, СУБД будет иметь различную структуру в зависимости от производителя и операционной системы, на которой она функционирует. Таким образом, на первом этапе необходимо определить конкретную операционную систему и производителя СУБД. Также необходимо выделить типовые категории транзакций, для чего необходимо выбрать типовую прикладную систему, функционирующую на платформе выбранной СУБД.
В зависимости от выбранного программного обеспечения, необходимо проанализировать логику прохождения транзакции через компоненты СУБД.
На основании этих данных, необходимо определить, какие компоненты СУБД будут участвовать в прохождении транзакции каждого конкретного типа, и определить, для каких из этих элементов и какими программными и аппаратными средствами можно замерить их характеристики.
Полученные данных позволяют построить контура и произвести численный расчет производительности узла ВС– сервера базы данных для выбранной прикладной системы на платформе выбранной СУБД, работающей на исследуемой операционной системе.
Таким образом, можно выделить следующие этапы исследования сетевой производительности СУБД: