分布式系统关键点
分布式系统(distributed system)是建立在网络之上的软件系统。正是因为软件的特性,所以分布式系统具有高度的内聚性和透明性。因此,网络和分布式系统之间的区别更多的在于高层软件(特别是操作系统),而不是硬件。内聚性是指每一个数据库分布节点高度自治,有本地的数据库管理系统。透明性是指每一个数据库分布节点对用户的应用来说都是透明的,看不出是本地还是远程。在分布式数据库系统中,用户感觉不到数据是分布的,即用户不须知道关系是否分割、有无副本、数据存于哪个站点以及事务在哪个站点上执行等
一、分布式系统计算节点分布和计算节点一致性算法
1、 现分布式15个节点,计算任务分布如下:
计算任务ID |
2i-1 |
(+节点编号)任务分配节点 |
1 |
1 |
2 |
2 |
2 |
3 |
3 |
4 |
5 |
4 |
8 |
9 |
即在计算节点1上的任务为2、3、5、9,以此类推出个计算节点负责的计算任务编号。
2、 当分布式节点中并未存在计算节点,或分配任务的计算节点挂了,寻找最近计算节点,如当20计算任务分配到18结算节点
3、 当分布式计算节点中加入新的节点后,各节点计算任务重分配问题
当加28计算节点后,2和20计算点首先进行重新计算、当进入新的计算节点后,通过1网相邻节点传播,寻找计算节点
二、分布式系统中各类一致性问题
1、 顺序一致性
当P1写入x值后,各计算节点,应该在读到x值后应该不可回溯
2、 因果一致性
当p1计算节点连续写入x后,p2计算节点同样对x进行操作,其他计算节点对x当读可以存在不一致,但不一致应该是顺序的一致性。
3、 客户一致性
保持计算节点的一致性最终目标是实现系统的客户一致性,上海客户到西安出差,读取西安节点邮件列表,可以只展现最新邮件,但最新邮件必须和上海计算节点一致,对历史数据加载通过异步实现
4、 接口一致性
IOS和android在使用微信上的用户体验差距并没有太大差别,接口的一致性。
5、 面向数据一致性
三、数据一致性
1、 单调读
2、 单调写
3、 读写一致
4、 顺序读写