非结构化超大文件存诸远端通过网络传输一定是相对慢,大家实际生产环境对应以场昌的技术架构如何实践,一处上传,读场景多级缓存?
收起超大文件的一处上传多处更新问题,不妨考虑借鉴下CDN技术。最早视频网站像PPTV爱奇艺啥的早期用得多,解决的就是节目上新,各地IDC都能低延迟提供视频点播服务。有的技术能力强点,基本上是考虑P2P技术基础上自己写模块,有的就直接找专业CDN厂商了,省力多了。
这种问题的解决方案和数据特征相关,例如数据总量,文件重复率,可压缩程度等。非结构化数据量一般都不小,通常情况大都是视频图片,压缩图片可能还有点效果,视频一般都压缩过了,没啥大作用。在存储系统内部机制去解决其实不是个好思路,太复杂,效果也不一定好,还容易引入新问题,还是在文件层和应用层解决比较好。
如果自身技术能力强,可以考虑在上层搭建一套数据同步应用软件,可以判断文件重复度,如果用备份软件的远程同步功能改造,还能提供增量数据处理机制,减少传输量。
如果数据量实在太大,同城数据中心或者不是太远的两地三中心,网络带宽又真的不给力,不妨考虑参考下AWS的Snowball思路:移动硬盘发快递!! 毕竟能真正解决问题就是好方案:)