УПРАВЛЕНИЕ БЛОКИРОВКАМИ ОБЪЕКТОВ ПРОИЗВОЛЬНОЙ ИЕРАРХИЧЕСКОЙ СТУКТУРЫ
С. И. Бобренок, А. В. Ильин
Учебно-исследовательская лаборатория НГУ-Parallels
Новосибирский государственный университет
Менеджеры блокировок активно используются в СУБД для обеспечения целостности структур баз данных, и для них широко известны алгоритмы управления гранулярностью блокировок. Однако, для применения к произвольной иерархии объектов, алгоритмы требуют дополнительных изменений.
Объекты в иерархии могут быть представлены своим полным путевым именем, составленным из идентификаторов всех своих предков. На практике, объекты одного уровня иерархии могут разбиваться на группы, поэтому идентификатор объекта включает информацию о типе объекта. При захвате блокировки известно только полное путевое имя объекта.
Менеджеры блокировок реляционных баз данных оперируют тремя уровнями иерархии. Условно это: база данных, таблица, запись. Для объектов каждого уровня доступны два типа блокировок: монопольная блокировка и разделяемая блокировка. Для обеспечения целостности всей структуры и использования блокировок большей гранулярности используются иерархические блокировки, или блокировки намерений. При блокировке некоторой записи, на базу и таблицу, которым принадлежит данная запись, предварительно устанавливаются соответствующие блокировки намерения.
Используя полное путевое имя объекта можно получить имена вспомогательных объектов, которые обозначают подуровень иерархии на котором находится данный объект и все элементы которого имеют с ним общего предка. Установка иерархических блокировок на эти объекты позволяет защищать пути к блокируемому объекту. Также это даёт возможность применять монопольные и разделяемые блокировки на целые группы объектов, таких как уровень иерархии или подуровень с общим предком. Имена вспомогательных объектов можно получить из полного путевого имени заменой идентификаторов предков на некоторый метасимвол. Аналогичным образом получаются вспомогательные объекты, которые позволят захватывать подуровни из объектов одного типа. Следует отметить, что оба этих режима могут использоваться одновременно.
Научный руководитель – канд. физ.-мат. наук С. Ф. Кренделев.