История развития программного обеспечения

Введение

Введение

Современный мир информации находится в постоянном движении и развитии. Главными силами в этом процессе являются растущие потребности заказчиков информационных систем и расширившиеся технологические возможности аппаратных и программных средств. Однако, несмотря на множество течений и концепций в области промышленной обработки данных, объектно-ориентированные и многомерные модели данных, реляционная концепция продолжает занимать центральное положение.

Одним из основных факторов развития является смещение информационных услуг в сторону обслуживания все более сложных запросов в реальном времени. Потребителям все труднее мириться с ограничениями существующих технологий, требующих искусственно разделять задачи массового ввода и модификации данных (OLTP), задачи анализа (DSS) и пакетную обработку (batch processing). Пока попытки совместить эти задачи в рамках одной вычислительной системы требуют огромных усилий по сопровождению системы. Смешанная загрузка определяется как оперативная обработка сложных транзакций (OLCP) и становится неотъемлемым качеством современных информационных систем.

Быстрое продвижение наблюдается в области аппаратных решений. Все более мощные вычислительные платформы становятся доступны по первому требованию при одновременном снижении стоимости аппаратных компонентов. Увеличилась пропускная способность сетей, продолжает снижаться стоимость оперативной памяти, постоянно растет емкость дисковых накопителей и скорость доступа к дисковым массивам. Однако наиболее важным изменением в компьютерных архитектурах можно считать использование множества процессоров для кардинального увеличения вычислительной мощности. Фактически, определились три архитектурных направления (рис. 1):

Рис. 1. Архитектурные направления аппаратных решений

Рис. 1. Архитектурные направления аппаратных решений

Симметричные многопроцессорные системы (SMP). Наиболее часто используемая форма сильно связанных многопроцессорных систем, т.е. систем, разделяющих единую оперативную память и, наиболее часто, - дисковую подсистему;

Слабосвязанные многопроцессорные системы. Совокупность самостоятельных компьютеров, объединенных в единую систему быстродействующей сетью, и, возможно, имеющих общую дисковую подсистему, как, например, кластерные инсталляции;

Системы с массовым параллелизмом (MPP). Системы с сотнями и даже тысячами процессоров. Детали их реализации могут значительно различаться.

Несмотря на перспективность каждого из перечисленных подходов, наиболее оптимальными с точки зрения стоимости и прозрачности наращивания можно считать симметричные многопроцессорные платформы. Добавление процессоров в них обходится относительно дешево, и при использовании соответствующей операционной среды не требует изменения программного обеспечения или принципов администрирования, причем, начиная уже с однопроцессорных систем. Для более дорогостоящих и ответственных систем необходимый уровень резервирования может быть достигнут с помощью кластеров, в т.ч. состоящих из SMP-систем. И хотя сегодня, по данным аналитиков, даже самые загруженные системы не превосходят вычислительную мощность симметричных многопроцессорных платформ, возможно, в будущем будут доминировать системы с массовым параллелизмом или даже виртуальные машины (объединение независимых компьютеров, функционирующее как единое целое) на их основе.

Для серверов баз данных самой актуальной становится сегодня проблема соответствия современным запросам пользователей и нетривиальным параллельным архитектурам вычислительных платформ. Основной вопрос данной статьи - каким новым требованиям должны удовлетворять архитектура и функциональные возможности сервера баз данных в окружении параллельных аппаратных решений и ориентированных на параллелизм операционных систем. Для упрощения рассматривается реализация параллелизма на примере SMP-платформы - наиболее вероятной на сегодняшний день основы для построения крупного проекта. Автор намеренно не упоминает названия и точные возможности лидирующих на рынке продуктов - тема параллелизма настолько важна в производственной программе компаний Informix, Oracle и Sybase, что очень скоро возможности ведущих РСУБД в этой области будут отличаться лишь незначительными деталями в той же мере, насколько сейчас они имеют разные диалекты одного языка SQL.

Можно выделить четыре группы требований, определяющих с технической точки зрения потребительские качества современной СУБД:

  • масштабируемость;
  • производительность;
  • возможность смешанной загрузки разными типами задач;
  • обеспечение постоянной доступности данных.

В дальнейшем мы рассмотрим эти параметры подробнее.