What is the difference between “conflict serializable” and “conflict equivalent”?

﹥>﹥吖頭↗ 提交于 2021-02-17 14:39:14

问题


In database theory, what is the difference between "conflict serializable" and "conflict equivalent"?

My textbook has a section on conflict serializable but glosses over conflict equivalence. These are probably both concepts I am familiar with, but I am not familiar with the terminology, so I am looking for an explanation.


回答1:


Just two terms to describe one thing in different ways.

Conflict equivalent: you need to say Schedule A is conflict equivalent to Schedule B. it must involve two schedules

Conflict serializable: Still use Schedule A and B. we can say Schedule A is conflict serializable. Schedule B is conflict serializable.

We didn't say Schedule A/B is conflict equivalent

We didn't say Schedule A is conflict serializable to Schedule B




回答2:


Conflict in DBMS can be defined as two or more different transactions accessing the same variable and atleast one of them is a write operation.

For example:

T1: Read(X)   
T2: Read (X)

In this case there's no conflict because both transactions are performing just read operations.

But in the following case:

T1: Read(X)   
T2: Write(X)

there's a conflict.

Lets say we have a schedule S, and we can reorder the instructions in them. and create 2 more schedules S1 and S2.

Conflict equivalent: Refers to the schedules S1 and S2 where they maintain the ordering of the conflicting instructions in both of the schedules. For example, if T1 has to read X before T2 writes X in S1, then it should be the same in S2 also. (Ordering should be maintained only for the conflicting operations).

Conflict Serializability: S is said to be conflict serializable if it is conflict equivalent to a serial schedule (i.e., where the transactions are executed one after the other).




回答3:


From Wikipedia.

Conflict-equivalence

The schedules S1 and S2 are said to be conflict-equivalent if the following conditions are satisfied:

  1. Both schedules S1 and S2 involve the same set of transactions (including ordering of actions within each transaction).

  2. The order of each pair of conflicting actions in S1 and S2 are the same.

Conflict-serializable

A schedule is said to be conflict-serializable when the schedule is conflict-equivalent to one or more serial schedules.

Another definition for conflict-serializability is that a schedule is conflict-serializable if and only if its precedence graph/serializability graph, when only committed transactions are considered, is acyclic (if the graph is defined to include also uncommitted transactions, then cycles involving uncommitted transactions may occur without conflict serializability violation).




回答4:


If a schedule S can be transformed into a schedule S´ by a series of swaps of non-conflicting instructions, we say that S and S´ are conflict equivalent.

We say that a schedule S is conflict serializable if it is conflict equivalent to a serial schedule.




回答5:


Conflict serializable means conflict equuivalent to any serial schedule.




回答6:


Conflict Equivalent Schedules: if a Schedule S can be transformed into a schedule S' by a series of swaps of non conflicting instructions, we say that schedule S & S' are conflict equivalent.

Conflict Serializable Schedule: Schedule S is conflict serializable if it is conflict equivalent to a serial schedule.




回答7:


Definitions have already been explained perfectly, but I feel this will be very useful to some.

I've developed a small console program (on github) which can test any schedule for conflict serializability and will also draw a precedence graph.




回答8:


If there is at least one conflict equivalent schedule for considered transaction schedule, it is conflict serializable.



来源:https://stackoverflow.com/questions/13823030/what-is-the-difference-between-conflict-serializable-and-conflict-equivalent

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!