Введение
Метод доступа к виртуальному хранилищу (VSAM) — это метод доступа к хранилищу файлов устройства хранения с прямым доступом (DASD) IBM, впервые использованный в операционных системах OS/VS1, OS/VS2 Release 1 (SVS) и Release 2 (MVS), впоследствии применявшийся во всей архитектуре Multiple Virtual Storage (MVS) и теперь в z/OS. Изначально представлявший собой файловую систему, ориентированную на записи, VSAM включает в себя четыре типа организации: KSDS, RRDS и ESDS, которые содержат записи, а организация LDS (добавленная позже к VSAM) содержит лишь последовательность страниц без внутренней структуры записей и предназначена для использования в качестве файла, отображаемого в память.
Обзор
IBM Redbook под названием "VSAM PRIMER" (особенно при использовании с руководством "Virtual Storage Access Method (VSAM) Options for Advanced Applications") объясняет концепции, необходимые для работы с VSAM. В официальной документации IBM использует термин "набор данных" как синоним файла и "устройство хранения с прямым доступом" (DASD), поскольку он поддерживал и другие устройства, аналогичные дисковым накопителям. Записи VSAM могут быть фиксированной или переменной длины. Они организованы в блоки фиксированного размера, называемые контрольными интервалами (CIs), а затем в более крупные разделы, называемые зонами контроля (CA). Размеры контрольных интервалов измеряются в байтах, например, 4 килобайта, а размеры зон контроля – в дисковых дорожках или цилиндрах. Контрольные интервалы являются единицами передачи данных между диском и компьютером, поэтому запрос на чтение считывает один полный контрольный интервал. Зоны контроля – это единицы выделения, поэтому при определении набора данных VSAM выделяется целое число зон контроля. Утилита IDCAMS из пакета Access Method Services обычно используется для управления наборами данных VSAM ("удаления и определения"). Пользовательские программы могут получать доступ к наборам данных VSAM через операторы определения данных (DD) в языке управления заданиями (JCL), посредством динамического выделения или в онлайн-средах, таких как система управления информацией о клиентах (CICS). И IMS/DB, и Db2 реализованы на основе VSAM и используют его базовые структуры данных.
Файлы VSAM
Физическая организация наборов данных VSAM существенно отличается от организации, используемой другими методами доступа, а именно: файл VSAM определяется как кластер компонентов VSAM, например, для KSDS – компонент DATA и компонент INDEX.
Контрольные интервалы и зоны контроля
Компоненты VSAM состоят из физических блоков фиксированной длины, сгруппированных в контрольные интервалы фиксированной длины. Записи загружаются вне зависимости от их содержимого, и их байтовые адреса не могут быть изменены.
Индексованная организация VSAM
KSDS состоит из двух частей: индексной компоненты и компоненты данных. Эти компоненты могут храниться на разных дисковых томах. В базовом KSDS предусмотрен только один ключ (первичный), однако могут быть определены альтернативные индексы, позволяющие использовать дополнительные поля в качестве вторичных ключей. Альтернативный индекс (AIX) сам является KSDS. Структура данных, используемая в KSDS, в настоящее время известна как B+-дерево.
Относительная организация VSAM
Для RRDS может быть определен индекс для доступа по ключам путем определения альтернативного индекса.
Линейная организация VSAM
LDS — это неструктурированный набор данных VSAM с размером контрольного интервала, кратным 4K. Он используется определенными системными службами.