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

devnull:

线性化和可序列化(在Java中)有什么区别?您能否举例说明它们之间的区别或提供参考?

安德索伊:

两者之间的主要区别是可序列化是一个全局属性。整个操作/交易历史的属性。线性化是一个局部属性 ; 单个操作/交易的属性。另一个区别是线性化包含实时性的概念,而串行化性则不包括:操作的线性化点必须位于其调用和响应时间之间。(见蒂姆·哈里斯:事务内存,2ED看到从赫利希的幻灯片。多处理器编程,对线性化部分的艺术,这是可以在这里找到,对于一些例子和证据。

这两个属性的目标是相同的:顺序一致性。从Herlihy的论文中:

数据库和分布式系统上的许多工作都将可串行化性作为并发计算的基本正确性条件。在此模型中,事务是控制线程,它将有限的原始操作序列应用于与其他事务共享的一组对象。如果历史记录等同于其中事务似乎按顺序执行(即无交织)的历史记录,则可序列化。可以以显而易见的方式在非重叠事务对上定义(部分)优先顺序。如果事务在顺序历史记录中的顺序与其优先顺序兼容,则历史记录可以严格序列化...

...可线性化可以看作是严格可序列化的一种特殊情况,其中事务被限制为由应用于单个对象的单个操作组成。然而,这种单一操作的限制具有深远的实际和形式上的后果,使线性化计算与可序列化的计算方法具有不同的风格。一个直接的实际结果就是,适合串行化的并发控制机制通常不适合线性化,因为它们会引入不必要的开销并对并发施加不必要的限制。

参考文献:

更多细节:

如果您真的对此很在意,请阅读介绍这些定义的论文。对于线性化,这就是线性化:并发对象 Herlihy和Wing的正确性条件它很密集,但值得关注。请注意,在软件事务存储社区中,线性化是否是正确的目标/属性是一个悬而未决的问题。

可序列化性是关于操作集合的结果/“系统”可表示为所有操作的特定顺序(“好像执行是按特定顺序执行的...”)。线性化是系统中操作的单个子集的属性...如果一个操作/一组操作在其他操作中看起来像是相对于其他操作在(逻辑)时间的特定时刻出现,则它们是可线性化的。此处的经典论文是Papadimitriou,并行数据库更新的可序列化性

在考虑“线性化”时,请考虑“原子操作”。当一组(一组)操作(似乎)相对于系统的其他部分原子地发生时,它们是线性的。一个常见的表述是“给人一种错觉,即每个操作在调用和响应之间即刻生效。” 线性化的表述归功于Herlihy,它强调这是局部属性,而不是全局的其他类型的顺序一致性属性,例如“可序列化”。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

“多数”与“线性化”之间的区别

C ++定义和实例化之间有什么区别?

线性回归和逻辑回归之间有什么区别?

代码是否被视为可移植可执行格式的初始化数据,初始化数据和单元化数据之间到底有什么区别?

用=初始化和{}初始化之间有什么区别?

如何线性化AND和OR约束的组合

线性化深度

快速初始化和便捷实例之间的便利初始化与初始化之间有什么区别

{x}和'= {x}'初始化之间有什么区别(如果有)?

这些对象初始化之间有什么区别?

以下实例化实体的方式之间有什么区别?

Oracle中的视图和实例化视图之间有什么区别?

构造结构化数组时,元组和列表之间有什么区别?

类C,构造函数和统一初始化之间有什么区别?

使用ori和addi在MIPS中初始化值之间有什么区别?

直接声明和初始化返回码之间有什么区别吗?

初始化字符串时,“ ...”和“ ...”之间有什么区别?

Java中默认和生成的串行版本uid之间有什么区别?

GCD中的Dispatch_barrier_async和串行队列,它们之间有什么区别?

“ COM”,“ USB”,“串行端口”之间有什么区别?

缓存和记忆化有什么区别?

缓存和池化有什么区别?

序列化和编码有什么区别?

使XML缩进或线性化

Raft 是如何线性化的?

线性规划优化和梯度下降优化之间有什么区别?

使用带有和不带有return语句的函数初始化JavaScript对象之间有什么区别?

在超级账本结构中,安装和实例化链码的真正含义是什么?它们之间有什么区别?

串行算法和并行算法有什么区别?