码迷,mamicode.com
首页 > 其他好文 > 详细

分布式存储bfs

时间:2018-08-31 01:23:10      阅读:200      评论:0      收藏:0      [点我收藏+]

标签:映射   没有   应用   相同   VID   定制   之一   分层   数据库   

 

来自bilibili的bfs,很喜欢它的分层结构,我认为,把它改造成类似hadoop的平台,也是可以的。

 

如何实现分布式存储?

其实就是同步元信息和调度的问题,同步元信息可以使用zk,调度具体看应用。bfs的调度是随机的,根据硬盘容量来决定。bfs的调度和存储是分开的,因此可以定制,这也是它的优点之一(不过这方面没有做到插件化)。

 

存储和调度隔离的方法?

存储是根据整数id作为key,写入到一大块文件上,这个文件也具有一个vid。偏移保存在存储机器上。

vid和所属服务器,存在zk上。

文件名和路径和vid、key的对应关系,存储在hbase等数据库。

这样,通过映射,分离了调度和存储。

 

实现多备份?

多个备份就会涉及到调度,这里bfs用zk创建多个group实现,相同的资源id可以同时存在不同的group下(利用了zk的树结构),这样就允许了多镜像,即多备份。当然,资源id太多了,是不会直接存在zk上的。

 

资源id的分配?

通过类似snowflake算法,可以分布式生成唯一id,偶尔down机也没问题。

 

分布式存储bfs

标签:映射   没有   应用   相同   VID   定制   之一   分层   数据库   

原文地址:https://www.cnblogs.com/dearplain/p/9563414.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!