【发布时间】:2016-01-22 15:48:05
【问题描述】:
我正在 google 中阅读有关冲突可序列化和可序列化的信息。
但我没有得到正确的定义以及可序列化和冲突可序列化之间的区别。
我只得到一件事。那就是冲突可序列化意味着可序列化。
在很多事情上,他们对可序列化和冲突可序列化说得最多的是相同的。
任何人都可以通过示例解释什么是冲突可序列化以及可序列化和可序列化之间的区别。
感谢您的提前!
【问题讨论】:
标签: database rdbms serializable
我正在 google 中阅读有关冲突可序列化和可序列化的信息。
但我没有得到正确的定义以及可序列化和冲突可序列化之间的区别。
我只得到一件事。那就是冲突可序列化意味着可序列化。
在很多事情上,他们对可序列化和冲突可序列化说得最多的是相同的。
任何人都可以通过示例解释什么是冲突可序列化以及可序列化和可序列化之间的区别。
感谢您的提前!
【问题讨论】:
标签: database rdbms serializable
我的问题找到了答案。
Serializable 表示事务以串行方式完成。这意味着如果调度完成,但事务没有使用相同的变量进行读写。
例子:-
T1 T2
Read(X)
Read(y)
Write(X)
Write(Y)
在这个例子中,两个事务都没有使用共享变量。 所以,这里没有冲突。
冲突可串行化意味着事务同时完成。两个交易使用同一个变量,交易的输出是冲突的。
例子:-
T1 T2
Read(X)
Read(X)
Write(X)
Write(X)
Read(Y)
Write(Y)
Read(Y)
Write(Y)
在本例中,两个事务 T1 和 T2 使用相同的变量。 因此,事务 T2 在 T1 写入之前写入 X。 T1 写入 X 之后。这里没有使用事务 T2 写入。这就是冲突可序列化。
【讨论】: