BC/NW 2012; №1 (20): 6.4
РЕШЕНИЕ
ПРОБЛЕМ ПАРАЛЛЕЛИЗМА ДАННЫХ В РАСПРЕДЕЛЕННЫХ ИНФОРМАЦИОННЫХ СИСТЕМАХ С ПОМОЩЬЮ
ADO.NET
ЛвинМаунг Со,
М.М.Маран
Параллелизм означает возможность одновременной обработки в СУБД многих
транзакций с доступом к одним и тем же данным, причем в одно и то же время[1,
2]. Основные проблемы, возникающие при параллельной обработке транзакций
следующие: потеря результатов обновления; незафиксированная зависимость;
несовместимый анализ.Для того чтобы решить проблемы, возникающие при
параллельной обработке кортежей, используют следующие три распространенных
метода: пессимистичный, оптимистичный и «последний выигрывает»
(Last-inwins).ADO.NET и VisualStudio используют оптимистическую блокировку,
потому что архитектура данных основана на автономных данных. В отличие от
этого, пользователи, применяющие оптимистичный параллелизм, не блокируют строку
при ее чтении. Когда пользователю требуется обновить строку, приложение должно
определить, не изменялась ли эта строка другим пользователем после того, как
она была открыта для чтения.
Для реализации оптимистичного параллелизма данных можно использовать
следующие методы:
1) UsingWhereClause: этот метод состоит в проверке того, что все
первоначальные значения полей в строке все еще соответствуют находящимся в базе
данных (БД). Обновление выполняется при условии, что первоначальные значения
равны значениям в БД. Если же значение было изменено, то при обновлении
изменение строки не происходит, поскольку в предложении WHERE не обнаруживается
совпадение.
2) включение столбца временной
отметки в таблицу: При использовании этого метода в определение таблицы
включается столбец временной отметки. После каждого обновления записи
обновляется также временная отметка, отражающая текущую дату и время. При
попытке обновления это значение временной отметки из базы данных сравнивается с
первоначальным значением временной отметки, содержащимся в измененной строке.
Если эти значения совпадают, операция обновления выполняется и столбец
временной отметки обновляется с указанием текущего времени, чтобы отразить факт
обновления. Если эти значения не совпадают, то возникает конфликт
оптимистичного параллелизма.
Литература
1.
П.В. Бураков,
В.Ю. Петров. Ведение в системы баз
данных. СПб.: СПбГУ ИТМО, 2010.- 128 с.
2.
Э.Таненбаум, М. ванСтеен. Распределенные системы. Принципы и парадигмы. СПб.:
Питер, 2003.