Skip to content

Latest commit

 

History

History
28 lines (19 loc) · 1.44 KB

p2p-file-store.md

File metadata and controls

28 lines (19 loc) · 1.44 KB
  • 开始日期: 2017-12-10

概述

将目标文件切分成多个部分,然后通过 Psychokinesis 网络存储至多个节点上,最终实现文件备份于分散的多个节点上,网络中超过一定比例的节点在线即可获取到完整的文件。如下图所示:

目的

通过文件切分存储让数据回归客户端自身,去除数据中心化

实现细节

文件切分

将文件分成多份以便于传输与存储。需要考虑以下几个因素:

  1. 单个分片的大小,和网络带宽有关,太大的分片会造成网络被长时间占用而导致其他请求卡住;
  2. 分片的数目,太多的分片会造成索引数据太多进而加重系统负载。

文件备份

文件分片会被分散存储于多个节点上,同一个文件分片会被不同的 M 个节点存储(文件备份次数为 M),假设网络中共有 T 个节点,那么当网络中至少有 T - M + 1 个节点时文件就保证能够完整获取到。可以通过提升 M 值来加大文件成功获取的概率。 文件分片分散的算法通过一致性哈希实现,通过偏移产生多个一致性哈希环实现备份。

类似的设计

ipfs 去中心化的网络文件系统。

未解决的问题

元数据存储去中心化

目前文件与节点的对应元数据信息存储于普通的数据库中,未来需要考虑类似区块链的存储方法。