XXX分布式存储系统

这里,介绍一个底层存储引擎。它是一种基于DHT的key-value存储引擎,可实现海量大规模扩展,通过多份副本来实现数据高可靠性和高可用性。

 

在整个系统中的位置如下,

----------------------------------------------------------------------------------------------------------------

                                            Storage Application

----------------------------------------------------------------------------------------------------

                                              

                                           IB/Ethernet 网络连接层

 

----------------------------------------------------------------------------------------------------

                                            Storage Service

----------------------------------------------------------------------------------------------------

                                            Storage Engine

----------------------------------------------------------------------------------------------------

                                             HardWare

-----------------------------------------------------------------------------------------------------------------

 

其中,Storage Application是应用程序,IB/Ethernet提供应用到存储服务的接口。网络连接层之下统称为统一存储,包括存储服务层、存储引擎和存储硬件3层。

存储服务层提供通用的存储服务,像虚拟块存储、对象存储、简单队列服务、数据库服务等,向应用层程序提供通用的API,并可兼容S3等接口;存储引擎则实现了一个分布式的key-value存储系统,通过DHT路由算法将数据写到对应的底层硬件存储设备,并通过副本机制实现了数据可靠性。要注意的是,这是一个弱一致性的分布式存储系统,提供最终一致性服务,并不适合应用在强一致性的实时应用场合,通过用来做备份、对象存储等。

 

三、关键技术方案

先注意几个关键术语:分区、虚拟节点、物理节点。

为了实现负载均衡,一般会将一个物理节点虚拟成几个虚拟节点,在DHT环上,虚拟节点和分区是一一对应的,描述了该分区应该属于哪个虚拟节点,可进一步推导出应该位于哪一个物理节点。

 

1. DHT

对整个系统的哈希空间进行分区;每个分区对应一个虚拟节点;建立物理节点和分区之间的映射关系。

当集群节点数目变化后,只需要动态更新分区和物理节点的映射。对一个包含m个节点的集群,新增一节点,只需移动1/(m+1)节点的数据;而减少一节点,只需移动1/m节点数据。

 

2. 复制和路由策略

复制:复制因子(与应用有关)、副本放置策略

路由:3种策略(客户端路由、主节点路由和代理路由)

 

3. 一致性策略

最终一致性。涉及的技术如下:

1)NRW

是一种quorum机制。假定,复制因子为3,即系统中一份数据有n个副本;r次读成功才认为一次读成功,w次写成功才认为一次写成功。

当r+w>n时,读取r份数据,一定能够保证其中有一份数据是最新的。至于哪份数据最新,则必须借由其它技术来识别,如向量时钟或时间戳。

2)向量时钟/时间戳

3)读修复

在r次读过程中,发现某节点数据是“旧”数据,则可以通过将新数据拷贝到此节点覆盖旧数据,以保证一致性。这就是读修复,指读操作时触发对旧数据的更新。

4) Hinted Handoff提示切换

当某节点故障时,会先将属于此节点的数据保存到别的节点C(相邻的下一节点),当节点故障恢复后重新进入系统时,由C节点负责将数据拷贝到此节点。

5)Anti-entropy

多副本不一致的检查和修复,加速数据修复过程。节点独立生成校验信息(key, version),发生此节点对应的副本节点,通过比较进行更新。会周期性的进行,避免由于某节点没有被读到不能触发readrepair,而长时间的处于不一致状态。

6)Mark-delete

标记删除。在逆熵操作时删除,避免已删除数据被恢复。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值