MaximusDebois Ответов: 1

Реализация алгоритма управления параллелизмом в распределенной базе данных


Я пишу диссертацию по управлению параллелизмом в распределенной базе данных. Я смотрю, как справиться с проблемой потерянного обновления в распределенной базе данных. Я использую какой-то предложенный алгоритм для решения этой проблемы, но не знаю, как реализовать его с помощью триггера в sql server 2017.
Предлагаемый алгоритм объясняется в следующих шагах:
• Шаг первый (LU_TRANDETAILS): этот шаг обнаруживает сведения о последних запущенных транзакциях и сеансах и сохраняет эти сведения в таблице TRANDETAILS.
• ШАГ ВТОРОЙ (LU_VST): эта процедура выводит и сохраняет время начала активного сеанса распределенной транзакции. Выходное значение хранится в переменной VST, которая будет использоваться в триггере для проверки состояния.
• ШАГ ТРЕТИЙ (LU_MINVST): эта процедура выводит и сохраняет время начала самого старого запущенного сеанса распределенной транзакции. Выходные данные хранятся в переменной MINVST и будут переданы триггеру для проверки состояния.
• ШАГ ЧЕТВЕРТЫЙ (LU_MAXSCN): эта процедура дает максимальные значения номера изменения системы (ORA_ROWSCN) из таблицы и передает его через переменную MAXSCN для запуска проверки состояния.
• ШАГ ПЯТЫЙ (LU_LOCKSESSION (LC)): Эта процедура находит сведения о блокировке среди всех запущенных сеансов пользователя и сохраняет их в таблице LOCK_DETAILS. Процедура также сохраняет количество блокировок (количество блокировок, удерживаемых различными сеансами) в переменную LC и передает ее триггеру для проверки состояния.

Мне нужна помощь в реализации этого предложенного алгоритма с триггером в sql server, а затем использовать его в c#

Что я уже пробовал:

Я ничего не пробовал так как понятия не имею

Gerry Schmitz

Вы можете начать свою диссертацию с определения того, что такое "проблема потерянного обновления" и как ее идентифицировать. Тогда вы можете начать думать о том, чтобы исправить это.

1 Ответов

Рейтинг:
0

OriginalGriff

Мы более чем готовы помочь тем, кто застрял, но это не значит, что мы здесь, чтобы сделать все это для вас! Мы не можем сделать всю работу, вам либо платят за это, либо это часть ваших оценок, и было бы совсем несправедливо, если бы мы сделали все это за вас.

Поэтому нам нужно, чтобы вы сделали эту работу, и мы поможем вам, когда вы застрянете. Это не значит, что мы дадим вам пошаговое решение, которое вы можете сдать!
Начните с объяснения, где вы находитесь в данный момент и каков следующий шаг в этом процессе. Затем расскажите нам, что вы пытались сделать, чтобы этот следующий шаг сработал, и что произошло, когда вы это сделали.


MaximusDebois

Я создал 2 приложения, одно на центральной машине и одно на реплицированной машине. Центральная машина имеет основную базу данных, а реплицированная машина-реплицированную базу данных. Там, где я застрял, создается триггер для обработки вышеприведенного алгоритма, мне нужны идеи, чтобы справиться с реализацией вышеприведенного алгоритма в sql server.