过分布式操作系统和分布协同计算中关于一致性协议的介绍,通过日常用语描述什么是基于主备份的一致性协议。
比如,一项数据x在多个服务器上存在副本,其中一个服务器作为主副本存在,如果一个进程尝试在备份服务器上更新数据x的话,备份服务器首先会把这个写操作传递到x的主服务器上,主服务器首先更新本地的x,然后给所有备份服务器发送更新操作,每个备份服务器更新完成后给主服务器一个应答,告知自己已经更新,这个时候,主服务器就可以给发起写操作的备份服务器回复消息说更新已完成,然后备份服务器就会对更新x的进程进行返回操作;在这个过程中,发起写操作的进程一直是被阻塞的;这样看来,很明显的缺点就是系统对发起写操作的进程相应速度非常慢。一种解决办法就是一旦一个进程在副本服务器上发起写操作的话,则直接在副本服务器上写入,然后副本服务器直接给进程返回,然后副本服务器再通知其他的备份服务器进行更新操作,这样直接提升了对更新操作进程的响应时间。
当然,这些里边还涉及到容错等技术,我们后续再探讨。