我发现人们在回答线性化和可分割性之间存在差异,但我发现人们都没有发现可序列化与序列一致性相同或与之不同。
此外,我在不同的文章,书籍和网页上对上述术语的不同定义进行了抨击,我对此感到困惑。 有人可以解释可串行性和顺序一致性之间的区别是否存在。
如果可能的话,我将赞赏上述术语的正式定义(无论是简单的英语还是程序或执行历史)。
答案 0 :(得分:2)
可串行性比顺序一致性更严格。
wiki中顺序一致性的定义: 任何执行的结果都与所有处理器的操作按某种顺序执行相同,并且每个处理器的操作按照其程序指定的顺序出现在此序列中。 / p>
并且,wiki中 Serializability 的定义: 如果交易计划的结果(例如,结果数据库状态)等于其连续执行的交易的结果,即没有及时重叠,则可以序列化。
因此,Sequential一致性的粒度是单个操作(例如,读或写),而Serializability的粒度是一个事务(即一系列操作)。
换句话说,如果程序满足可串行性,它也满足顺序一致性,反之则不然。