Базы данных Oracle - статьи


Поддержка параллельных систем.


Одно из общепризнанных достоинств сервера Oracle - его высокая степень масштабируемости: как горизонтальной, так и вертикальной. Возможности работы сервера Oracle в распределенных системах я не предполагаю обсуждать в данной статье *, а вот обсудить особенности поддержки параллелизма в Oracle мне кажется полезным (тем более, что по не совсем понятным причинам по этому вопросе в массовой компьютерной прессе об Oracle порой дают - скажем так - не вполне правильную информацию, а из встреч со многими специалистами я вынес впечатление, что они часто имеют об этом и вовсе легендарное представление). Я впрочем не намерен вдаваться в фундаментальные аспекты параллелизма в СУБД вообще*, а попытаюсь объяснить (и в какой-то мере обосновать) подход разработчиков Oracle к данному вопросу.

Начну с констатации общеизвестного факта, что без использования параллелизма достижение высоких показателей производительности СУБД невозможно. Разработчики сервера Oracle приложили немало усилий для реализации этой истины на практике, и не случайно Oracle владеет в настоящий момент абсолютными рекордами производительности как в OLTP-тестах TPC-C (причем этот рекорд держится с апреля 1996 года), так и в DSS-тестах TPC-D (в варианте с объемом данных 300 ГБ).*

Начнем с краткой классификации параллельных систем. Наиболее широко распространены симметрично-параллельные (SMP) системы, т.е. такие, где процессоры равноправно используют все остальные системные ресурсы (прежде всего оперативную память и диски), являющиеся общими для них *. Количество процессоров в таких системах, предлагаемых на рынке, может доходить до 64. Для SMP-систем часто еще употребляют определение “система с полным разделением ресурсов” (shared-everything system). Следующий тип параллельной архитектуры - кластер: в нем узлы, имеющие свою собственную оперативную память (а возможно и собственные диски), через специальный контроллер имеют доступ к общим дискам (“система с разделяемыми дисками” - shared-disks system). Как правило каждый из узлов кластера представляет собой SMP-систему, а количество узлов в кластерах, предлагаемых на рынке, доходит до 8. Наконец, третий тип архитектуры - массивно-параллельный (MPP). В ней узлы живут практически независимой жизнью, но между ними каким-то образом реализуется очень быстрая связь. Количество узлов в такой системе вполне может достигать ста и больше. Безусловно, чтобы называться массивно-параллельной система должна в той или иной степени обеспечивать взаимодействие и совместное пользование ресурсами для своих узлов, тем не менее к системам с данной архитектурой часто применяют определение “система без разделения ресурсов” (shared-nothing system).




Начало  Назад  Вперед