В чем разница между "сериализуемыми конфликтами" и "конфликтным эквивалентом"?
В теории базы данных в чем разница между "сериализацией конфликта" и "эквивалентом конфликта"?
В моем учебнике есть раздел, посвященный конфликту сериализуемым, но замалчивает конфликтную эквивалентность. Это, вероятно, обе концепции, с которыми я знаком, но я не знаком с терминологией, поэтому я ищу объяснения.
Ответы
Ответ 1
Только два термина, чтобы описать одну вещь по-разному.
Конфликтный эквивалент: вам нужно сказать, что расписание A является конфликтом, эквивалентным расписанию B. он должен включать два расписания
Конфликт последовательный: все еще используйте График A и B. Мы можем сказать, что Schedule A является сериализуемым конфликтом. Расписание В является конфликтным сериализуемым.
Мы не говорили, что расписание A/B является эквивалентом конфликта
Мы не сказали, что расписание А разрешено сериализовать в расписание B
Ответ 2
Конфликт в СУБД может быть определен как две или несколько разных транзакций, обращающихся к одной и той же переменной, и по крайней мере одна из них - операция записи.
Например:
T1: Read(X)
T2: Read (X)
В этом случае нет конфликта, поскольку обе транзакции выполняют только операции чтения.
Но в следующем случае:
T1: Read(X)
T2: Write(X)
есть конфликт.
Допустим, у нас есть расписание S
, и мы можем изменить порядок инструкций в них. и создайте еще 2 графика S1
и S2
.
Эквивалент конфликта. Относится к расписанию S1
и S2
, где они поддерживают упорядочение противоречивых инструкций в обоих расписаниях. Например, если T1
должен читать X
до T2
пишет X
в S1
, то он должен быть тем же самым в S2
. (Заказ должен поддерживаться только для конфликтующих операций).
Сериализуемость конфликтов: S
называется конфликтной сериализацией, если она конфликтует с последовательным расписанием (т.е. когда транзакции выполняются один за другим).
Ответ 3
От Wikipedia.
Конфликт-эквивалентность
Расписания S1
и S2
называются конфликтными, если выполняются следующие условия:
Конфликт сериализуемой
Расписание считается сериализованным по конфликту, когда расписание конфликтует с одним или несколькими последовательными расписаниями.
Другим определением сериализуемости конфликтов является то, что расписание сериализуется в контексте конфликта, если и только если граф графа/сериализуемости его приоритета, когда рассматриваются только совершенные транзакции, является ациклическим (если граф определен как включающий также незафиксированные транзакции, то циклы, связанные с незавершенными транзакциями, могут возникать без нарушения сериализуемости конфликта).
Ответ 4
Если расписание S может быть преобразовано в расписание S'на ряд свопов бесконфликтных инструкций, мы говорим, что S и S'являются конфликтными эквивалентами.
Мы говорим, что расписание S является сериализуемым конфликтом, если оно является конфликтом, эквивалентным серийному расписанию.
Ответ 5
Эквивалентные расписания конфликтов:, если расписание S может быть преобразовано в расписание S 'путем серии свопов не противоречащих друг другу инструкций, мы говорим, что расписание S и S' являются эквивалентными конфликтами.
Конфликт Сериализуемое расписание: Расписание S является сериализуемым конфликтом, если оно конфликтует с последовательным расписанием.
Ответ 6
Сериализуемый конфликт означает конфликт, эквивалентный любому серийному расписанию.
Ответ 7
Определения уже были объяснены отлично, но я считаю, что это будет очень полезно для некоторых.
Я разработал небольшую консольную программу (на github), которая может протестировать любое расписание сериализуемости конфликта и также нарисует граф приоритетов.
Ответ 8
Если для рассматриваемого графика транзакций имеется хотя бы один эквивалентный конфликт, это конфликт сериализуется.