Как уже говорилось, одним из основных проектных решений, имеющих отношение к организации памяти в СУБД Sedna , является использование прямых указателей для представления связей между узлами. Хотя использование обычных указателей языков программирования, поддерживаемых механизмом управления виртуальной памяти операционной системы, идеально с точки зрения эффективности и простоты программирования, в данном случае это решение не является удовлетворительным. Во-первых, оно накладывает ограничение на размер адресного пространства, свойственное стандартным 32-битовым архитектурам, которые превалируют в настоящее время. Во-вторых, при обработке запросов над большими объемами данных СУБД не может полагаться на механизм виртуальной памяти, обеспечиваемый ОС, потому что требуется собственное управление процедурой замещения страниц для выталкивания страниц на диск в соответствии логикой выполнения запроса [].
Для решения этой проблемы в проекте Sedna был разработан собственный механизм управления памятью, поддерживающий 64-битовое адресное пространство ( Sedna Address Space , SAS ) и тесно взаимодействующий с менеджером буферов. Каждой базе данных, управляемой СУБД Sedna , соответствует свое SAS , полностью отображаемое на внешнюю память, где реально хранится база данных, и частично отображаемое на виртуальное адресное пространство каждого процесса, в котором выполняется транзакция с соответствующей базой данных ( Process Virtual Address Space , PVAS ). В отображенной части SAS можно использовать обычные указатели.
SAS разбивается на уровни одинакового размера. Размер уровня выбирается таким, чтобы диапазон адресов уровня умещался в PVAS . Уровень стоит из страниц (они соответствуют блокам внешней памяти, в которых хранятся узлы XML -документа). Все страницы имеют один и тот же размер, что облегчает работу менеджера буферов. В заголовке каждой страницы сохраняется номер уровня, которому принадлежит данная страница. Адрес объекта в SAS (длиной 64 бита) состоит из номера уровня (первые 32 бита) и адреса внутри уровня (последние 32 бита). Адрес внутри уровня отображается в точно такой же адрес PVAS . Диапазон адресов PVAS , на который отображаются уровни SAS , в свою очередь, отображается менеджером буферов Sedna в адреса основной памяти с использованием средств управления памятью, обеспечиваемых ОС.