老师,麻烦问一下。我看野猪书(Design Data Intensive Applications)和网上一些资料说在phase1阶段,参与者就已经开始在各自的机器上开始刷磁盘,做了transaction中能在自己本地上做的所有事情了,并且记录自己的undo和redo的信息。那么到了phase2的时候,如果有的参与者(没做任何事情在收到C的回执之前)就发生了永久掉线,那么野猪书上说Coordinator的信息会持续不断的向掉现的participants上写。那您看这样就会出现部分的P被commit 或者abort,而永久掉线的P就啥也做不了。从概念上说在这种情况下分布式事务永远没有完成,但这种情况算数据不一致么?
类似的还有,所有P在phase1中把yes 回复给C,但是C在回复commit或者abort的时候,发送了一部分的时候突然挂了。这也会出现部分P执行了C给的命令,而其他的没有。那么就算指派来新的C,并且可以拿到老的C所有日志,在这种情况下,这个是不是也算数据发生了不一致呢。