FinalizeFailed 通用性解决方案
-
只要FinalizeSector的扇区存在“不在永久存储”的 type就去调用 FinalizeSector 和对应类型的数据的下载。
也就是默认的 miner 下载数据的方式成为了一个瓶颈,这个问题的解决思路大致有如下两种:
第一是单独的存储 worker: 1 到 n 台存储 worker 接入密封 miner,miner 调度存储 worker 去下载数据存储到 worker 本地磁盘,然后通过 nfs 挂载到时空证明 miner 或者直接使用存储 worker 进行时空证明计算,这是很多大矿工的架构。第二是单独的下载 worker: 1 到 n 台下载 worker 接入密封 miner,miner 调度下载 worker 去下载数据存储到存储机器或者类似于 ceph 的分布式存储系统中,然后 miner 通过 nfs 挂载存储机器或者使用 POSIX 协议挂载分布式存储来读取扇区。
原语云用的是单独下载worker的解决方案,我们引入一个叫做网关机器的角色专门用于下载数据到存储机器或者分布式存储系统。 数量从 1 台到 N 台不等,我们都是建议使用至少两台,因为如果有一台坏了,另外一台可以自动切换继续下载数据不至于让密封计算机器上面的缓冲磁盘(SSD)堆满而导致一大堆问题。
具体思路如下:查找扇区的 unsealed,sealed 和 cache 的存储信息,如果任何一种已经存在,并且不在最终数据落盘的存储上面,就标记该扇区需要进行 FinalizeSector 调用。
凡是不在最终存储的扇区类型,都需标记该扇区需要被下载到最终存储设备。
西南地区IT社群(QQ)
- 云南
- 【昆明网页设计交流吧】243627302
- 【昆明nodejs交流吧】 243626749
- 【VUE】838405306
- 【云南程序员总群】343606807
- 【昆明UI设计】104031254
- 【云南软件外包】15547313
- 贵州
- 【PHP/java源码/站长交流群】55692114
- 四川
- 【成都Java/JavaWeb交流】86669225
- 【vaScript+PHP+MySql】116270060
- 【UI设计/设计交流学习群】135794928
- 重庆
- 【诺基亚 JAVA游戏博物馆】 559479780
- 【PHP,Java,Python,C++接单】 442103442
- 西藏