网站大量收购独家精品文档,联系QQ:2885784924

F-CAD:一种基于CAD的快速持久化协议.docx

F-CAD:一种基于CAD的快速持久化协议.docx

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
? ? F-CAD 一种基于CAD的快速持久化协议 ? ? 刘靖宇,李浩鹏,牛秋霞,武优西 (河北工业大学 人工智能与数据科学学院 天津 300401) 0 引言 在大型分布式系统中,通常使用复制的方式来提高容错,然而,在并发操作的情况下,跨不同集群或遥远地理位置的数据中心维护一致的副本是一项复杂的任务。因此提出一致性协议来保证各个节点数据的一致性,例如Paxos[1]、Raft[2]等。 近年来,一致性协议取得了大量研究成果,如线性一致性[3]、最终一致性、因果一致性[4]、存在一致性[5]、可扩展的因果一致性[6]等,但现有协议在应对跨客户端单调读问题时,均难以给出一个高效的解决方案[7],在跨客户端读取数据时容易暴露陈旧的数据和读取。 研究发现实现跨客户端单调读的一个主要前提条件是数据持久化:同步持久化[8]和异步持久化[9]。同步持久化的额外限制虽然可以满足跨客户端单调读,但速度很慢,而异步持久化虽然具备高性能,但无法满足严格的单调性。 Ganesan等[10]基于异步持久化提出的一致性感知持久性(consistency aware durability,CAD)协议在读时强制数据持久化。但由于CAD需要超过半数节点,持久化写入全量数据才能读取新写入的数据,并且只能从已经持久化的节点读取数据,导致对于迫切想要读取最新写入的数据时,每次均需要一个持久化等待时间,并且可读节点相对较少。 针对以上问题,本文提出了F-CAD(fast CAD),一种可以快速持久化的一致性协议。F-CAD将纠删码和CAD结合,使得集群中F+k个节点仅需持久化写入全量数据的1/k个片段即可实现跨客端单调读,并保证和CAD相同的Liveness。此时节点存储唯一数据,如果用户当前仅希望读取某一数据片段,便会频繁访问对应数据节点,从而导致单节点负载过高。后续会通过增设一张索引表来解决数据节点负载过高的问题。 F-CAD的工作主要总结为三点:1) 高效结合纠删码快速持久化;2) 增设索引表针对数据节点做负载均衡;3) 保证索引表中数据的实时性。 1 相关工作 一致性协议可以提供高度可靠和可用的分布式服务,其中的持久化模型是确保用户单调读的关键因素。虽然少有专门针对持久化模型的研究,但它是一致性协议研究的重要部分,在已经提出的很多协议中均包含对持久化问题的研究。 实现强一致性需要同步持久化,例如文献[1]提出的线性一致性是分布式系统可以提供的最强保证。这种很强的一致性在实际生产中有着诸多应用,如LogCabin系统会引导程序同步复制到多数节点,并且将对应节点数据落盘。不过其缺点也很明显,研究表明在大型分布式系统中,完全异步配置要比同步多数复制和持久化的Redis快10倍[10]。 同步持久化对于实现单调读是必要的,不过单纯的同步持久化并不足以实现严格的单调性,还需要额外的机制。如文献[2]为了实现单调性,将读取限制到Leader节点,但是这样的限制严重影响了读吞吐量,并且它还阻止客户端从最近的副本读取数据,增加了读取延迟。 通常系统无法忍受同步持久化的低性能,特别是在实际生产中,因而很多人选择了异步持久化[11]。而一些较弱的一致性协议虽然具备高性能但无法做到严格的单调性,特别是在故障发生的时候[12]。Zab协议是一个工业级的实现,通过异步的方式进行复制和持久化实现了高性能,但复制过程中可能会丢失数据,导致较差的一致性[13]。 CAD一致性协议是由Ganesan等提出同时兼顾高性能和单调性的解决方案。CAD选择用异步写的高性能,在读时强制数据持久化,写时按Raft异步思想写入,读时会判断该写请求要访问的数据是否可以被用户读取,也就是该写入是否至少被F+1[13]个节点持久化写入,并且通过租约机制[14]创造一个有效集来对读请求做限制,持久化写入该数据的节点才能加入有效集,用户仅能对有效集中的节点进行读操作。 CAD协议中数据可读的前提条件是该数据是否已经被持久化写入至少F+1个节点。如果用户恰好要读取新写入的数据,此时系统需要频繁等待大多数节点全量数据持久化写入。特别是近年来,Raft和Paxos被应用于etcd、TiKV和FSS等真正的大型系统中,已用于复制TB级的用户数据,数据量的庞大使得用户等待时间显著增加[15]。在较坏的情况下,如果用户恰好频繁读取新写入的数据,此时CAD应对热读时性能和同步持久化类似,容易导致系统阻塞,甚至瘫痪。 2 F-CAD快速实现持久化 CAD一致性协议每次写入均需要等待持久化完成,从而导致CAD应对热读时性能较差,根本原因在于:1) 节点性能不统一,物理跨度较大,网络延迟等因素;2) 单节点单次必须持久化写入全量数据,并且需要保证持久化写入到至少F+1个节点,当单次写入的数据量较大时,性能缺陷愈加明显。本文

您可能关注的文档

文档评论(0)

科技之佳文库 + 关注
官方认证
内容提供者

科技赋能未来,创新改变生活!

版权声明书
用户编号:8131073104000017
认证主体重庆有云时代科技有限公司
IP属地浙江
统一社会信用代码/组织机构代码
9150010832176858X3

1亿VIP精品文档

相关文档