跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 请教一个关于分块存储文件同步的问题
未分類
1 10 月 2020

请教一个关于分块存储文件同步的问题

请教一个关于分块存储文件同步的问题

資深大佬 : zxCoder 3

根据 rsync 算法,客户端将文件分块,计算两种 hash 值,然后发送给服务端,然后服务端会返回一个列表,表示新的文件的分块情况,有可能是直接引用原文件的某一块,也有可能是新的数据。

那么如果是引用原文件的某一块,原文件在分块的时候要把每一块内容先缓存起来比较好,还是等到需要用到的时候再从某某字节开始读取一块比较好?

大佬有話說 (4)

  • 資深大佬 : wakzz

    这里就是缓存的方案了,缓存肯定是要缓存的,现在主流两种缓存策略:
    1. 软件本身不管理缓存,缓存由操作系统的文件系统管理,典型案例是 Elasticsearch,优点是减少了很多工作量,缺点也很明显,自己不管理缓存,热点数据的缓存容易被冷数据的缓存覆盖
    2. 软件管理缓存,典型案例是 mysql 的 innodb 引擎,所有缓存加载在软件的堆内存内,优点是缓存管理由自己处理,通过各种策略防止热点数据缓存被冷数据缓存覆盖,缺点是有很多额外工作量,还需要预防 OOM

  • 資深大佬 : wakzz

    另一个问题就是版本控制的细节了,可以去了解一下 git 的实现,简单来说就是提交时间+版本号,版本新旧比较很简单了,真正麻烦的是版本冲突后的处理。

  • 主 資深大佬 : zxCoder

    @wakzz 想请教一个问题,如果保证服务端的文件是最新的,那客户端想把这个最新的文件拉下来,要怎么判断应该是完全覆盖的更新,还是要解决冲突呢?这点一直想不太明白

  • 主 資深大佬 : zxCoder

    @wakzz 我目前的简单理解是,如果本地的文件修改时间**早于**服务端的文件修改时间,那文件直接拉下来然后覆盖,如果**晚于**服务端,说明本地的文件在更新到最新版本之前就进行了修改,所以这时候再拉下来就会冲突,就需要解决冲突了。不知道这种理解对不对

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具