文件名称:Doss:去分布式对象存储
文件大小:86KB
文件格式:ZIP
更新时间:2024-03-31 06:20:18
Go
多斯 该软件实现了一个分布式对象存储系统的扩展引擎,为上层客户端应用提供了伸缩存储能力。整体架构由apiServer和dataServer组成,apiServer之间,dataServer之间完全对等,可以无限扩展,避免单点故障。apiServer对外提供Restful HTTP接口接收客户端请求,并与dataServer之间进行交互完成数据访问(可以部署多台apiServer,上层使用nginx做负载均衡)。 数据定位 根据标准的一致性哈希算法实现了hashRing,并加入数据服务器存储空间大小不同等权重来平衡各节点的虚拟多维数据集复制因子,对象读取请求均根据对象名进行哈希运算映射到虚拟多维数据集上,再由虚拟多维数据集映射到真实物理例程上;哈希环结构的生成是由每个dataServer程序启动时重定向自己监听的ip地址注册到mongodb的node表中,apiServer通过MongoDB
【文件预览】:
Doss-master
----stream()
--------rsGetEcoder.go(3KB)
--------get.go(971B)
--------put_test.go(789B)
--------rsGet.go(2KB)
--------rsPut.go(1KB)
--------get_test.go(667B)
--------rsPutEncoder.go(2KB)
--------rsRecoverableGet.go(864B)
--------temp.go(2KB)
--------rsRecoverablePut.go(5KB)
--------put.go(2KB)
----meta()
--------meta_test.go(14KB)
--------node.go(3KB)
--------node_test.go(5KB)
--------meta.go(20KB)
--------funcParams()
--------types.go(6KB)
----dataServer()
--------dataServer.go(846B)
--------temp()
--------objects()
--------locate()
--------check()
--------heartbeat()
----hashRing()
--------hashRing.go(9KB)
--------hashRing_test.go(8KB)
----utils()
--------utils.go(3KB)
--------util_test.go(6KB)
--------nullWriter.go(1KB)
--------parseHeader.go(859B)
--------watchFilePath.go(2KB)
--------addr.go(2KB)
----README.md(18KB)
----config()
--------config.json(2KB)
--------config.go(2KB)
----rbmq()
--------rbmq.go(2KB)
--------rbmq_test.go(2KB)
--------funcParams()
--------types.go(1KB)
----common()
--------Errors.go(3KB)
--------apiFlag()
--------dataFlag()
--------constants.go(85B)
----apiServer()
--------temp()
--------objects()
--------apiServer.go(686B)
--------locate()
--------heartbeat()
--------versions()
----TODO list.md(593B)