分布式系统是不稳定系统,即事件的发生及产生的结果是不可确定的。出现不可确定有两个方面的因素:一是操作/事件发生需要感知和应答;二是系统部件存在发生故障的可能。对于分布式系统,构建者总是期望系统在预期中运行而不是充满各种不可预期的事件及结果,所以总要发明出一些东西来预防、规范分布式系统的行为和结果。
有序化是一种有效的使分布式系统具备“确定性”的手段。有序化使得系统可预期,这是逻辑上的可预期。
分布式系统的一致性问题本质上是“有序”问题,这包括两个方面:一是伴随并发操作/
事件的数据异常问题可通过排序来解决,而事务处理技术是使相关数据项具备原子性和隔离性(并发事务不受其他事务影响而保持结果满足特定隔离级别的期望)并以此来确定操作/事件间的“偏序”关系,进而在事务上累积起偏序或全序关系(事务具备全序关系则表示无异常);二是分布式一致性为从系统外部确认发生在系统内的操作/事件的“偏序”或“全序”关系。因此,本文采用数学知识进一步阐述分布式一致性和事务一致性的本质。简单表述为:分布式一致性是为操作/事件定序,事务一致性是以多个操作/事件组成的事务定序。
01 - 偏序与全序
在一个多进程或分布式架构的系统中,需要知晓事件和消息传递时的顺