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

前端 未结 8 1806
猫巷女王i
猫巷女王i 2021-02-02 10:00

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

My textbook has a section on conflict serializable but glosses

相关标签:
8条回答
  • 2021-02-02 10:05

    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).

    0 讨论(0)
  • 2021-02-02 10:06

    Conflict serializable means conflict equuivalent to any serial schedule.

    0 讨论(0)
  • 2021-02-02 10:12

    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.

    0 讨论(0)
  • 2021-02-02 10:15

    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).

    0 讨论(0)
  • 2021-02-02 10:17

    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.

    0 讨论(0)
  • 2021-02-02 10:20

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

    0 讨论(0)
提交回复
热议问题