“21天好习惯”第一期-15

1.什么是CAP原理?CAP原理是否适用于单机环境?

CAP 理论是针对分布式数据库而言的,它是指在一个分布式系统中,一致性(Consistency, C)、可用性(Availability, A)、分区容错性(Partition Tolerance, P)三者不可兼得。

CAP理论的主要场景是在分布式环境下,在单机环境下,基本可不考虑CAP问题,所以适用单机环境。

2.Paxos算法或类似机制是否可以用来监控分布式环境下各个节点的运行状态?如果可以,请简单描述该机制。

Paxos是一种基于异步消息的一致性算法,用来解决分布式系统中多个节点之间一致性通信协议,因此可以监控各节点之间的运行状态。

机制:

1.二阶段提交协议:

  • 请求阶段
    在请求阶段,协调者将通知事务参与者准备提交或取消事务,然后进入表决过程。
    在表决过程中,参与者将告知协调者自己的决策:同意(事务参与者本地作业执行成功)或取消(本地作业执行故障)。
  • 提交阶段
    在该阶段,协调者将基于第一个阶段的投票结果进行决策:提交或取消。
    当且仅当所有的参与者同意提交事务协调者才通知所有的参与者提交事务,否则协调者将通知所有的参与者取消事务。参与者在接收到协调者发来的消息后将执行响应的操作。

2.三阶段提交协议:

Three Phase分别为CanCommit、PreCommit、DoCommit。

三阶段提交针对两阶段提交做了改进:

  • 引入超时机制。在2PC中,只有协调者拥有超时机制,3PC同时在协调者和参与者中都引入超时机制。
  • 在第一阶段和第二阶段中插入一个准备阶段。保证了在最后提交阶段之前各参与节点的状态是一致的。

3.布隆过滤器的优缺点是什么?如果需要降低布隆过滤器的误报率,则需要付出何种代价?

布隆过滤器的优点 : 空间占用低、检索速度快。 当一个节点上有多个数据文件时,布隆过滤器可以快速排 除一些数据文件,大大提高单节点上的扫描速度。
布隆过滤器的缺点:误算率是其中之一。随着存入的元素数量增加,误算率随之增加。但是如果元素数量太少,则使用散列表足矣。(误判补救方法是:再建立一个小的白名单,存储那些可能被误判的信息。)

布隆过滤器的长度会直接影响误报率,布隆过滤器越长其误报率越小。

降低布隆过滤器的错误率的方式:

1:加大bit数组的长度
2:增多hash方法的个数

代价是多占用存储空间

但是上面的俩个方案都是在适度的范围内增加,加多了,反而适得其反。


版权声明:本文为weixin_45654619原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。