分布式系统中的一些名词解释

nosql: not sql 或者 not only sql

CAP理论基础:

一致性: 分为强一致性、弱一致性。
强一致性:所有的读操作总是能读取到上一次写的数据
弱一致性:有的读操作读到的不是上一次写的数据, 常见的有最终一致性,顾名思义,客户端最终能读到上一次写的数据,在互联网应用比较常见。

高可用:即使在有机器发生故障的情况下系统仍然能正常提供服务

分区可容忍:在分布式情况下,机房或网络故障仍然能够满足一致性和高可用

关系数据库的ACID:
A: 事务的原子性
C: 数据一致性
I: 独立性,其他事务不可见
D: 持续性,事务完成后更新持久化存储

tombstones: 直译为“墓碑”, 用来表示数据的生命周期(数据过期和删除操作)

hinted handoff: 临时转移的意思,当有节点临时挂掉,其上新写的数据会转移到其他节点,节点恢复后再转移回来,这个过程对用户是透明的。

commit log: 即redolog, 先写日志,后写磁盘,将随机写转化为顺序写,除了性能提升还能保证不丢数据 ,文件以APPEND模式打开的时候write系统调用是原子操作。

memtable:即内存表:将新数据或常用数据保存在内存表,可以减少磁盘IO访问

compaction: 压缩, 磁盘上或网络上数据都可以压缩,节省磁盘空间或网络带宽

gossip: 是一个算法,又称”反熵“,意思就是从杂乱无章的状态中寻求一致,每个节点都要跟其他所有的节点通信。在dynamo和cassandra等p2p分布式系统中使用。

monitor: 监控,任何分布式系统都必须有监控机制,对于运维很重要。

master:在Hadoop中称为namenode, 管理数据服务器。需要注意master的单点问题。

一致性hash算法:对传统hash算法的改进,当路由发生变化的时候数据迁移量较少。

replication: 复制,通过数据冗余保证数据不丢失,副本也可以提供读写服务, 这里会有数据一致性的问题。 replication也有很多种策略,比如机房、机架等

paxios: 选举算法,奇数个节点,保证系统的高度可用

w+r>n: 强一致性,w表示写成功的个数,r表示读到最新数据的次数,n表示副本个数

failover: 一个或多个节点发生故障,系统能自动恢复到正常状态

recovery: 节点重启后从磁盘上的文件恢复

gc: 垃圾回收

负载均衡: 所有节点上的数据或任务均匀

锁: 获取/释放锁的操作位于分布式系统的不同节点上

分布式事务:事务的参与者位于分布式系统的不同节点上

分布式消息队列: 一个队列会保存在分布式系统中不同的节点上

列存储: 关系数据库一般都是行存储,nosql 多采用列存储,free-schema,列特别多的时候性能会比较差

两阶段提交: 将事务的提交分成两个阶段,事务处理器向存储服务器先发送”准备提交“的请求,存储服务器收到请求后执行修改,但是处理完成后只是返回”可以提交“的应答,事务处理器收到后发送”提交完成“的请求,存储服务器修改将事务的状态由”可以提交“置为”提交完成“。如果事务处理器没有收到”可以 提交“的应答,则回滚该事务;如果存储服务器没有收到第二阶段的”提交完成“的请求,则回滚”可以提交“的事务。 这是分布式事务常用的一种处理方式。

数据迁移: 数据从一个节点迁移到其他节点,发生在负载均衡、节点变化等时候

数据分裂: 当数据量达到阈值,存储数据的单元一份为二

云: 个人觉得云是服务的总称,粗略分为存储和计算两块,存储细分的话有关系数据库/类nosql/类kv存储/其他(比如队列),或者持久化存储/临时存储/缓存,计算的话有m/r,实时处理等,编程模型更贴切一点。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/26524898aa0f147889ac2793856a9a1c.html