我想知道是否有人可以用外行的话来解释分布式系统中事件的部分排序?另外,什么是总排序?
我真的很感激。我在网上看到了所有我能找到的是定义部分和总排序的数学方程式,但不是在分布式系统的上下文中。
非常感谢
答案 0 :(得分:36)
总排序是一种排序,用于定义系列中每个元素的确切顺序。
系列中元素的部分排序是一种排序,它没有指定每个项目的确切顺序,而只是定义了彼此依赖的某些关键项之间的顺序。
这些词的含义在分布式计算的上下文中完全相同。分布式计算对这些术语的唯一意义是事件的部分排序比总排序更常见。在本地的单线程应用程序中,事件发生的顺序是完全有序的,因为CPU一次只能做一件事。在分布式系统中,通常只协调那些彼此依赖的事件的部分排序,并让其他事件以它们发生的顺序发生。
示例,取自评论:如果您有三个事件{A, B, C}
,那么如果它们总是必须按照A > B > C
的顺序发生,则它们是完全有序的。但是,如果A
必须在C
之前发生,但您在发生B
时并不在意,那么它们会被部分排序。在这种情况下,我们会说序列A > B > C
,A > C > B
和B > A > C
都满足偏序