6
Основной
собственно данные
Карта свободного
пространства
в страницах после
очистки
Карта видимости
отмечает страницы,
на которых все
версии строк
видны во всех снимках
Слои и файлы
сегмент
1 ГБ
страница
8 КБ
Обычно каждому объекту соответствует несколько слоев (forks).
Каждый слой — это набор сегментов (то есть один или несколько
файлов). Файлы-сегменты, из которых состоят слои, логически разбиты
на страницы, обычно по 8 Кбайт (этот размер можно установить для
всего кластера только при сборке сервера). Страницы файлов всех
слоев объектов считываются с диска совершенно однотипно через
общий механизм буферного кеша. Сами слои содержат разную
информацию и имеют разное внутреннее устройство страниц.
Основной слой — это собственно данные: версии строк таблиц или
строки индексов.
Слой vm (visibility map) — битовая карта видимости. В ней отмечены
страницы, содержащие только актуальные версии строк, видимые
во всех снимках данных. Иными словами, это страницы, которые давно
не изменялись и успели полностью очиститься от неактуальных версий.
Карта видимости применяется для оптимизации очистки (отмеченные
страницы не нуждаются в очистке) и для ускорения индексного доступа.
Информация о версионности строк хранится только для таблиц, но не
для индексов. Поэтому, получив из индекса ссылку на версию строки,
нужно проверить ее видимость, обратившись к табличной странице.
Но если в самом индексе уже есть все нужные столбцы, а страница
отмечена в карте видимости, то к таблице можно не обращаться.
Слой fsm (free space map) — карта свободного пространства. В ней
отмечено доступное место внутри страниц, образующееся, например,
при работе очистки. Эта карта используется при вставке новых версий
строк для того, чтобы быстро найти подходящую страницу.