可串行化和线性化之间有什么区别?

Bru*_*uce 7 distributed-computing

我对这两种一致性模型感到很困惑.请提供一些时间表示例和说明. http://en.wikipedia.org/wiki/Consistency_model

Qqw*_*qwy 16

很难找到关于这个主题的信息.但是,在某些时候,我发现了一个明确解释它的声明:

  • 线性化在操作层面提供隔离,而Serializability在事务层面提供隔离.

(摘自此处的深入描述)

举个例子:

在此输入图像描述

这里,A,B和C是同时运行的三个不同的事务.r(varname)表示当前事务正在访问varname中的值,而w(varname)表示当前事务正在varname中写入某个值.

现在,要创建这些事件的线性化历史记录,我们必须确保不会同时发生两个操作.在另一个操作已经启动时启动的操作应该出现在第一个操作之后.

在这种情况下:

Log1: A.r(x), B.r(X), B.r(Y), A.w(X), C.r(Y)
Run Code Online (Sandbox Code Playgroud)

要创建这些事件的序列化历史记录,必须分离事务A,B和C的所有操作,以便不存在来自其他事务的交叉操作.

从我们的示例中可能会导致:

Log2: A.r(x), A.w(x), B.r(X), B.r(Y), C.r(Y)
Run Code Online (Sandbox Code Playgroud)