数据分布_分布式存储--数据分布

5f59f9744dc7796244f20b67288def04.png

1. 写在前面

随着数据量增大,单机的最大容量已经不能满足庞大的数据存储需求,因此寻求分布式存储作为解决方案,分布式存储通过组合很多服务器,形成一个系统对外提供服务。由于引入大量的服务器,那么分布式系统出现故障的概率就大大增加了,GFS论文中提到,在分布式系统中机器宕机故障已经不是一种少见的行为,而是一种必须要考虑进去的常见错误。我们希望分布式系统能够通过在软件层面处理这种硬件故障带来的系统错误,也就是常说的容错能力。我们希望通过系统的高容错能力给我们带来数据的高可靠和服务的高可用。
高可靠通俗的来说就是我们写下去的数据不会丢。
高可用通俗的来说就是我们可以一直进行读写服务,而不受某个节点宕机的影响。
那么既然单机故障在庞大的分布式系统中是一种常见的故障,那么我们需要将数据进行一定策略的分布,来防止单机故障引入的数据丢失风险。
高可用要求我们在即使有节点出现故障的时候也能提供服务,那么如果数据只是单纯放在一个节点,节点挂了也就无法提供服务了,同时如果数据分布不够好,也会对造成系统访问热点,影响可用性。因此数据分布的重要性不言而喻。

2. 数据分布方法

数据分布影响到系统的读写时延、负载均衡、可靠性、可用性、并发性能、可扩展性以及数据恢复等方面。通常数据分布有两种方式,partition和replication。

  • partition
    Splitting a big database into smaller subsets called partitions so that different partitions can be assigned to different nodes (also known as sharding).[4]
    partition就是将一大块数据切片分配到不同的机器上。
    partition好处在于可以提高处理的并发性,减少系统热点,同时能够提高系统横向扩展能力。
  • replication
    Keeping a copy of the same data on several different nodes, potentially in different locations. Replication provides redundancy: if some nodes are unavailable, the data can still be served from the remaining nodes.[4]
    replication就是将同一份数据复制相同的一份到其他机器上。
    replication好处在于能够提高数据可靠性和可用性,数据恢复可以分布式并发恢复等。缺点就是因为引入多个副本,需要一定策略保证多副本间的一致性,同时因为提供冗余也增加了系统成本。
  • partition and replication
    通常在系统设计实现中是将partition和replication两种方法结合在一起,充分利用两者的优势。由于引入了partition和replication,也为系统引入了新的问题。

3. partition带来的问题

3.1 partition将存储目标切分到不同节点,如何切分,怎么保证数据均衡?

partition本之目的是为了提高扩展性,系统的能力可以随着系统的规模近线性增加,partition目的也就是为了充分利用一台机器上的多个核,或者说一套系统的多个物理机资源, 使其能力能够通过增加核数或者物理机个数得到近线性提升。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值