云存储的思考之一

来源:互联网 发布:神州泰岳怎么样 知乎 编辑:程序博客网 时间:2024/05/01 06:47

DropBox提供一个可随处同步的文件夹,通过网络可以随时将相关目录下的文件同步至云存储。

但是由于目前基础网络的参差不齐,传输速度在某些地区成为影响体验的十分重要的原因之一,因此考虑使用本地移动存储作为cache,从而使得体验得到强化,另外通过这样一个存储体,将各类强化的功能集成进去,使得存储变得更加安全,商业模式更加清晰。

这些功能可能包括:

1、鉴权及加密

2、实时同步

3、不同的文件格式动态支持

4、开放的二次开发能力(API、协议),使之可以应用于各类设备及操作系统平台

5、基于对象序列化的传销式云计算(服务)

 

从这个角度而言,移动存储和云存储应该是互补的。

 

最近看到网上有人对svn的一些讨论,深有启发,讨论内容转载如下:

差异化的二进制文件处理
由于历史原因,CVS 主要是为早期的程序员设计的,CVS 能够有效处理文本文件(或ASCII文件,源代码文件),可以对文本文件进行差异化的存储、新旧版本的比较,文件合并等;但对于二进制文件,CVS 则明显力不从心。
与CVS 不同,Subversion 采用统一的二进制差异算法(binary differencing algorithm),即对文本文件和二进制文件采用相同的差异比较算法,并以相同的方式在版本库中进行存储:每次提交后版本库中只存储相对于先前版本的差异,从而可以节省大量的存储空间。
该二进制差异算法不仅应用在版本的存储上,更为重要的是,Subversion 对二进制文件与文本文件一视同仁,当客户端需要获取新的版本时(如执行svn update),在网络上只有版本的差异被传输,从而大大减少对网络带宽的消耗。更多细节参见“七、双向的差异化-压缩网络传输”。

双向的差异化-压缩网络传输
如上所述,CVS 对二进制文件不能进行有效的差异化处理。对于文本文件,CVS 仅仅支持单向的差异化传输:从CVS 服务器到客户端的传输是差异化的,即执行cvs update 时,只有差异的部分从服务器传输到客户端;而当执行cvs commit 时,无论代码变化多少,CVS 都需要从客户端向服务器完整传输被修改文件的全部内容,不能只传输差异。
4 |; N$ R0 ?# ^, r
相反,无论是文本文件还是二进制文件,Subversion 都进行双向的差异化传输,并且差异化内容还要进行压缩/解压缩的过程:在服务器端获取差异显而易见,与CVS 类似;Subversion 在客户端获取差异的秘密在于 — Subversion 在客户端的工作拷贝中隐含了每个文件的一个“只读的、干净的”副本(该副本隐藏在隐含目录.svn 里,通常不可见,该副本还有更多的妙用,参见“十二、更多的本地/离线操作”),通过比较用户在客户端的修改和该隐含的副本,Subversion 获取需要真正传送到服务器的差异,并对差异进行压缩后才进行网络传输。

 

这些对于云存储而言都是非常重要的,其对如何降低不必要的存储冗余,减少网络传输量有着很好的启发。此外还想到的是,假如以本地存储作为缓存的话,那么通过本地数据碎片与网络数据的拼接最后得到所希望的完整数据,同样可以提高存储及传输的效率。因此得到以下一些需求:

1、数据必须能够被追溯,这要求存储服务能够提供历史记录。

2、虽然对于用户是透明的,但是实际的数据能够被打乱并在云及端得任何部分被拼接。

3、数据必须具有一定的安全性,通过某种算法进行加密,这个必须体现在传输及存储上,这种算法是公开的。

4、数据具有智能,类似OO语言的对象概念,通过其自身所提供的方法,能够兼容结构化及非结构化两种数据要求

原创粉丝点击