目前用的文件存储是nfs。一个文件夹里面有千万级的pdf文件,检索某一个文件大概耗时2-5秒,如果在不改变查找算法的前提下使用ceph,能否加快文件的检索速度呢?
1.背景说明
用户需要从一个文件从检索出一行数据, 并且对延迟和性能要求比较高。
1.1 现在做法
普通的做法是A用户上传2G的文件到Ceph集群, B用户拉取该2G的文件到本地,然后根据offset检索这行数据。
这其中的做法是用户检索量比较大的时候,都需要拉取不同文件的2G数据,延迟比较高,严重影响用户的体验。
缺点:
用户端检索延迟大,影响用户体验
客户端端集群网卡带宽有限
量大对Ceph集群负载影响严重
1.2 优化方案
能不能只拉取我需要的信息,不用全量拉取到本地,答案是肯定的。
思路:
根据文件信息查找所有的object信息
根据offset找到需要检索的object信息
找到对应的object 检索一行的数据(一行数据可能会拆分多个object)
优点:
提升用户体验
客户端网络网卡带宽可用率得到提升
减少对ceph集群的冲击影响
方案详见: https://www.jianshu.com/p/4d8576173f84
收起