|
Программирование >> Хронологические базы данных
СУБД DB2, но не в системе System R. (В определении предполагается, что U-блокировки совместимы с S-блокировками, но не с другими U-блокировками и, конечно, не с Х-блокировками. Более подробные сведения приводятся в [4.20].) Уровень изоляции ПС (повторяемости считывания) более эффективен и безопасен, чем уровень СК (стабильности курсора). 15.9. Gray J.N., Lorie R.A., Putzolu G.R. Granularity of Locks in a Large Shared Data Base Proc. 1st Intern. Conf. on Very Large Data Bases. - Framingham, Mass., September, 1975. В статье впервые описана концепция блокировки намерения. Как объясняется в разделе 15.8, понятие уровень детализации блокировок относится к размеру блокируемых объектов. Поскольку разные транзакции, очевидно, имеют разные характеристики и требования, желательно, чтобы в системе существовал целый набор различных уровней детализации (что, в принципе, реализовано во многих системах). В этой статье представлена методика воплощения нескольких уровней детализации блокировок на основе механизма блокировки намерения. Поскольку в данной главе было дано весьма упрощенное описание протокола блокировки намерения, ниже он будет рассмотрен несколько подробнее. Во-первых, стоит отметить, что блокируемыми объектами могут быть не только переменные-отнощения и кортежи, как предполагалось прежде. Во-вторых, типы блокируемых объектов могут в общем случае не обладать строгой иерархической структурой. Присутствие индексов или других структур доступа будет лишь означать, что систему объектов следует рассматривать как ориентированный ациклический граф. Например, база данных поставщиков и товаров может содержать как хранимую переменную-отношение товаров Р, так и индекс, например ХР, построенный для атрибута #Р этой переменной-отношением. Для выборки кортежей переменной-отношения Р следует открыть всю базу данных, а затем либо перейти непосредственно к этому отношению и выполнить последовательный поиск, либо использовать индекс ХР для прямого перехода к искомым кортежам переменной-отношения Р. Таким образом, кортежи переменной-отношения Р в этом графе имеют два родительских объекта, Р и ХР, для каждого из которых родительским объектом является база данных. Теперь формулировку этого протокола можно представить в более обобщенной форме. При установке Х-блокировки для данного объекта для всех его дочерних объектов неявным образом устанавливается Х-блокировка. При установке S- или SIX-блокировки для данного объекта для всех его дочерних объектов неявным образом устанавливается S-блокировка. Прежде чем транзакция сможет потребовать установить S- или lS-блокировку для заданного объекта, она должна установить lS-блокировку (или более сильную) по крайней мере для одного из его родительских объектов. Прежде чем транзакция сможет потребовать установить Х-, IX- или SIX-блокировку для заданного объекта, она должна установить 1Х-блокировку (или более сильную) для всех родительских объектов этого объекта. Прежде чем транзакция получит право отменить блокировку данного объекта, она должна отменить все блокировки, установленные ею для дочерних объектов данного объекта. На практике использование этого протокола не сопровождается слишком большими накладными расходами, как это может показаться на первый взгляд, поскольку в любой заданный момент транзакция, весьма вероятно, уже будет обладать почти всеми необходимыми ей блокировками. Например, 1Х-блокировка для всей базы данных, вероятно, будет установлена непосредственно во время инициализации программы и эта блокировка будет сохраняться для всех транзакций, выполняемых на протяжении всей работы данной программы. IS.lO.Gray J.N., Lorie R.A., Putzolu G.R., Traiger LL. Granularity of Locics and Degrees of Consistency in a Shared Data Base Proc. IFIP TC-2 Woricing Conf. on Modeling in Data Base Management Systems (ed. G. M. Nijssen). - Amsterdam, Netherlands: North-Holland; New York, N.Y.: Elsevier Science, 1976. В статье впервые введено понятие уровня изоляции (под названием степень непротиворечивости). 15.11.Harder Т., Rothermel К. Concurrency Control Issues in Nested Transactions The VLDB Journal. - January, 1993. -2, Xo 1. Как уже объяснялось в главе 14, несколькими различными авторами была предложена идея вложенных транзакций. В этой статье предлагается соответствующий набор протоколов блокировки для подобных транзакций. 15.12.Jordan J.R., Banerjee J., Batman R.B. Precision Locks Proc. 1981 ACM SIGMOD int. Conf. on Management of Data. - Ann Arbor, Mich., April-May, 1981. Точная блокировка является схемой блокировки на уровне кортежей, которая гарантирует блокировку только нужных кортежей (для достижения упорядочиваемости), включая фантомы. На самом деле эта форма блокировки называется блокировкой предикатов [15.5]. Она основана на следующих действиях. Во-первых, на проверке запросов на обновление с целью выяснения, удовлетворяет ли вставляемый или удаляемый кортеж предыдущему запросу на выборку в некоторой параллельной транзакции. Во-вторых, на проверке запросов на выборку с целью выяснения, удовлетворяет ли вставляемый или удаляемый в некоторой параллельной транзакции кортеж данному запросу на выборку. Эта схема не только элегантна, но и, как заявляют ее авторы, обладает более высокой производительностью, чем обычные методы (в которых блокируется чрезмерно много объектов). 15.13. Korth H.F., Speegle G. Formal Aspects of Concurrency Control in Long-Duration Transaction Systems Using the NT/PV Model ACM TODS. - September, 1994. - 19, № 3. Как уже отмечалось в литературе (см., например, [14.3], [14.9], [14.15] и [14.16]), упорядочиваемость часто рассматривается как чрезмерно строгое требование, которое накладывается на некоторые виды систем обработки транзакций, особенно в новых прикладных областях, включающих взаимодействие с людьми, а значит, и транзакции большой длительности. В данной статье представлена новая модель обработки транзакций NT/PV (nested transactions with predicates and views), позволяющая решить эти проблемы. В статье также показано, что стандартная модель обработки транзакций с упорядочиванием является лишь частным случаем; после дается определение новых и более полезных классов корректности . Здесь утверждается, что новая модель обеспечивает необходимую основу для решения проблем, связанных с долговременными транзакциями . 15.14.Kung H.T., Robinson J.T. On Optimistic Methods for Concurrency Control ACM TODS. - June, 1981. - 6, № 2. Схемы блокировки рассматриваются как пессимистические в случае, когда делается предположение (худшее из возможных) о том, что все данные, необходимые для заданной транзакции, могут также потребоваться для параллельно выполняемой транзакции, а поэтому их следует заблокировать. В оптимистических схемах (или схемах сертификации или подтверждения) делается противоположное допушение о том, что такие конфликтные ситуации весьма маловероятны. Поэтому в рассматриваемых схемах допускается беспрепятственное выполнение всех транзакций. И только во время фиксации проверяется наличие конфликтных ситуаций. Если такие конфликты имели место, то вызвавшие их транзакции перезапускаются. Никакие обновления не записываются в базу данных до успешного завершения процедуры фиксации, поэтому при повторном запуске транзакций не требуется отменять какие-либо операции обновления. Позднее в [15.6] было показано, что при некоторых разумных предположениях оптимистические методы демонстрируют некоторые присущие им преимущества по сравнению с традиционными методами блокировки для некоторого уровня параллельности (т.е. некоторого числа одновременно выполняемых транзакций), который они способны поддерживать. Предполагается, что оптимистические методы могут быть наиболее полезны в системах с большим количеством параллельных процессоров. (В [14.12], наоборот, утверждается, что оптимистические методы в общем случае на самом деле хуже методов блокировки в некоторых горячих ситуациях, т.е. в ситуациях, когда объект данных обновляется очень часто и несколькими различными транзакциями. Более подробную информацию о методах, эффективных при работе в подобных ситуациях, можно найти в [15.15].) IS.lS.ONeil Р.Е. The Escrow Transactional Method ACM TODS. - December, 1986.- 11, №4. Рассмотрим следующий весьма простой пример. Предположим, что в базе данных содержится объект данных ТС, представляющий имеющуюся на руках наличность , и допустим, что почти каждая транзакция в системе обновляет данные в объекте ТС с некоторым уменьшением их значения (соответствующим некоторому текущему платежу). Объект ТС представляет собой пример горячей точки , т.е. элемента базы данных, который используется большинством транзакций в системе. Образно говоря, при традиционной блокировке горячая точка может очень скоро превратиться в узкое место всей системы, а потому было бы весьма неразумно использовать традиционную блокировку в таких ситуациях. Если начальное значение ТС равно 10 миллионам долларов, а каждая отдельная транзакция приводит к ее уменьшению в среднем на 10 долларов, то в целом может быть выполнено около миллиона таких транзакций. Причем для этого потребовалось бы выполнить в произвольном порядке около миллиона операций вычитания. В таком случае действительно вовсе нет необходимости в использовании традиционной блокировки для ТС. Вместо этого достаточно убедиться, что текущее значение достаточно велико для успешного выполнения данной операции вычитания, а затем выполнить обновление значения. (Если выполнение такой транзакции не будет успешно завершено, то последнюю операцию вычитания следует отменить.)
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |