RSS    

   Реферат: Объектно-ориентированная СУБД (прототип)

4.   SAME, копия ROOT – объект, позволяющий создавать копии. Он означает, что для взаимодействующего с ним объекта создается копия.

5.   ATOMIC – предок всех атомарных объектов. Задает для них основные методы поведения.

6.   INT – целое.

7.   STR – строка.

8.   DATIME – дата и время

9.   BIO – условный объект

10. AGG – агрегат

11. SET – множество

12. SEQ – последовательность

 

4.2 Строение объекта

Каждому объекту выделяется персональное виртуальное пространство. Объект предваряется заголовком. За заголовком следуют виртуальные пространства данных и журнала. Каждый объект имеет уникальный идентификатор в пределах системы.

Таблица 5: Заголовок объекта (все поля 32-битные)

Поле Семантика
OID Идентификатор объекта (уникальный в пределах системы)
OBJBHR Идентификатор объекта-поведения (методы)
OBJKH Идентификатор объекта-действия
TRCOOBJ Идентификатор транзакционного сообъекта
VALUE Адрес заголовка вложенного канала, хранящего значение
HISTORY Адрес заголовка вложенного канала, хранящего историю изменений

Блок данных объекта

Атомарный объект хранит внутри блока данных свое значение.

Объект-условие хранит внутри блока данных три идентификатора в следующем порядке: идентификатор метода условия, идентификатор метода, выполняемого, если  условие выполнено («истина») и идентификатор метода, выполняемого, если условие не выполнено ( «ложь»).

У объектов агрегат, список и множество первое слово блока данных – размер элемента. Для списка и множества он равен 4. Для агрегата – 12.

Элементом списка и множества является идентификатор объекта. Элементом агрегата является кортеж:

·     идентификатор объекта-значения (он обязательно является потомком объекта-образца)

·     идентификатор поля (FID)

·     идентификатор объекта-образца

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


Таблица 6: Строение данных для DATIME

Длина в байтах Значение
2 Год
1 Месяц
1 День
1 Час
1 Минуты
1 Секунды
2 Доли секунд

Такая структура журнала позво­ляет фиксировать изменения не только данных, но и поведений, knowhow…

Таблица 7: Структура записи изменений во внутреннем журнале объекта

Число байт Значение
4 Номер транзакции
2 Адрес размещения в заголовке
4 Замененное значение
2 Год
1 Месяц
1 День
1 Час
1 Минуты
1 Секунды
2 Доли секунд

Информация о транзакциях в системе

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

Таблица 8: Структура транзакционного сообъекта (агрегата)

Имя поля Значение
DSL Множество локальных зависимостей
DSI Множество унаследованных зависимостей
DSR Множество приобретенных зависимостей
DS Множество зависимостей

Множество зависимостей получается объединением множеств локальных, уна­сле­дованных и приобретенных зависимостей. Каждый элемент какого-либо из этих мно­жеств зависимостей – пара номеров транзакций (Ti,Tj). Если трактовать это мно­жест­во как множество ребер графа, в кото­ром вершины – номера транзакций, а реб­ра – зави­симости между транзакциями, то наличие цикла в графе означает некор­рект­ное выпол­нение транзакций.

В целях упрощения решено отказаться от таблицы конфликтов. Таблица кон­флик­тов описывает какие операции конфликтуют между собой, т.е. может ли выпол­нять­ся операция A, если в данных момент выполняется операция B. Ячейка таблицы может принимать одно из трех значений: «Конфликтует», «Не конфликтует», «Неизвестно». Значение «Неизвестно» вводится по причине наличия механизма позднего связывания, при котором заранее не известно, конфликтуют ли операции.

Транзакции и объекты-поведения

Объекты поведения представляют собой множество объектов, поле OBJKH кото­рых хранит идентификатор выполняемого действия. Это множество имеет ширину эле­мента не 4, как обычное множество, хранящее данные, а 8. В следующих четырех бай­тах может храниться идентификатор списка – строки таблицы чередований в точках разрыва (части подсистемы транзакций). Таблица чередований образуется из точек раз­рыва и группировки спецификаций для объекта. Она позволяет определить: в каких точ­ках разрыва каких операций можно переключиться на выполнение операции, соответ­ствующей этой строке таблицы чередований. Это статическая информация, ко­торая может быть сформирована перед началом работы системы. Элемент строки та­блицы чередований состоит из 2 значений: идентификатора операции и иденти­фикатора мно­жества, хранящего номера точек разрыва.

4.3 Контекст транзакции

В системе есть объект DBIO (Database User-Intarface Object), которому известны состояния всех транзакций. Этот объект представляет собой множество, элементами которого являются объекты-агрегаты, описывающие контекст транзакции.

Таблица 9: Контекст транзакции

Имя поля Размер в байтах Значение
TR_MESS 4 OID сообщения
TR_KH 4 OID knowhow
TR_PARAM 4 OID агрегата с параметрами
TR_TARGET 4 OID целевого объекта сообщения
TR_RES 4 OID результата
TR_STACK 4 OID стека
TR_N 4 Номер транзакции
TR_HOSTN 4 Номер вызвавшей транзакции
TR_STATUS 1 Состояние транзакции
TR_POINT 2 Точка разрыва, в которой находимся

Для каждой транзакции выделяется свой стек. Механизм сохранения и вос­ста­нов­ления стеков описан в [7]. Стеки сохраняются в атомарных объектах.

Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14


Новости


Быстрый поиск

Группа вКонтакте: новости

Пока нет

Новости в Twitter и Facebook

                   

Новости

© 2010.