为什么Swift设置一个object最大为5GB?

如果你使用Swift 你会发现上传的文件最大不能超过5GB,其实如果你使用一些类似网盘的云存储服务,你就会发现它们的限制会更加的严格,你或许只会被允许上传100M的文件,这是因为你不可能满足“用户所有的需求”,当然Swift这样限制一定不会是因为这个原因,下面是Swift其中的以为编写着,对这个特性的解释:

每一个对象的上传是一个文件(加上许多副本)在一个文件系统在某一时刻。大于5G(甚至5G跟小的集群)能引起存储分布的不平衡。想象一下你有三个副本在拥有10个驱动器的集群中,所有都处在最佳平衡下,然后你上传了一个100G的对象。现在你将有3个驱动器有比其他驱动器多100G.这是2T的5%。

现在,如果你使用的所有文件都是100G,那么这不再有什么麻烦,随着时间的过去,所有的都会平衡,但是通常大对象没有小对象普遍,因此会导致在分布存储的时候“块化”。

当然有方法来解决这个,一种方式是自动的分割对象为一个合适的大小,但是你增加了复杂性,这增加的复杂性跟踪所有的那些分割块确保覆写清除旧的分割块。

当起初编写Swift,我们尽我们所能来保证代码的简单来保持“核心技术”尽可能的无缺陷和可靠。

在这种特殊情况下,在客户端分割大对象文件应该是非常简单的。此外,这样的分割方式允许你并行的上传一些片段,通过在你的集群中一次使用更多的驱动器来增强了速度。

系统的特性总是由具体的需求而得来,只有不断的熟悉系统,熟悉需求,才能完善系统,达到最佳的性能要求。

转载于:https://my.oschina.net/zhouxingxing/blog/79748

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值