终端存储文件系统是一个边缘计算对等网络节点系统,每一个节点从逻辑上 都含有一个ShardChain(WorkChain2)的账本和数据库系统的运行时系统。 数据库节点之间按照一定规则组成小网络集群,集群的种子路由信息存在链 上,路由表本身在存在P2P系统之上。客户端在使用系统的时候,通过区块 链系统完成缴费,并获得数据库系统的访问权限。由此,整个MainChain 链本身是一个低频交易系统,WorkChain1是一个持续计费的高TPS系统, 数据库是一个兼顾高频和低频的数据访问系统,数据库本身通过 WorkChain2对数据的响应进行统计,并在检查点的时候对请求和响应信息 进行对账。从思路来说,链提供的是类似于公有云的计费系统,并提供了跨 越多个物理IDC的信息连接能力。
在使用场景下,终端存储文件系统Client端都有Agent部署,在Agent中内 置实现了Facebook的高性能时序数据存储引擎Beringei,10分钟的数据 默认存放在本地,提供急速访问能力。Beringei将数据放置于内存中,与基 于HBase的传统数据库存储时间序列数据方式相比,查询延时缩短了73倍, 吞吐量提高了14倍。
10分钟后的数据通过RPC传输到终端存储文件系统数据库集群进行存储。
在终端存储文件系统中没有中心化的管理节点,只有数据存储节点。所 有的存储节点都有着完全相同的职责,会对外界提供同样的服务,所以 在整个系统中永远不会出现单点故障的问题
WORLDDATABASE DB DECENTRALIZED ARCHITECTURE
去中心化的架构使得系统的水平扩展非常 容易,节点可以在任何时候直接加入到整 个终端存储文件系统的集群中,并且只会 造成集群中少量数据的迁移。
虚拟节点、分片和复制
终端存储文件系统的核心理念中有增量扩展(Incremental Scalability) 的原则,这就需要一种能够在一组节点中动态分片的机制,这种机制又称为 DHT(distributed hash table),通过DHT这种策略,终端存储文件系统 能够将负载合理的分配到不同的存储节点上。终端存储文件系统的分片策略 依赖于一致性哈希(Consistent hashing),并且针对于节点的异构性做了 进一步的调整,我们使用的算法称为CCHDP算法,其主要步骤为:
首先采用聚类算法对设备集合进行分类,使得每个类中设备的权重差异在预 设的范围内;
聚类完成后,类间的布局机制按照类的权重将[0,1]区间划分为多个子区间,为 每个类分配一个子区间,将落入某个子区间的数据分配给相应的类
每个类的内部布局机制使用一致hash方法进行数据的再次分配,将数据布 局到具体的设备上。
可以将上述算法简单理解为,所有的键(Key)在存储之前都会通过哈希函数 得到