[发明专利]一种在酒店内网环境下实现分布式存储的方法有效
| 申请号: | 202011517073.X | 申请日: | 2020-12-21 |
| 公开(公告)号: | CN112667568B | 公开(公告)日: | 2022-11-22 |
| 发明(设计)人: | 唐波;袁斌;王亮;王维晖 | 申请(专利权)人: | 广州携旅信息科技有限公司 |
| 主分类号: | G06F16/13 | 分类号: | G06F16/13;G06F16/176;G06F16/182;G06F16/23;G06F16/955 |
| 代理公司: | 广州容大知识产权代理事务所(普通合伙) 44326 | 代理人: | 潘素云 |
| 地址: | 510000 广东省广州市*** | 国省代码: | 广东;44 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 酒店 环境 实现 分布式 存储 方法 | ||
1.一种在酒店内网环境下实现分布式存储的方法,其特征在于,包括如下步骤:
S1、组织节点,构造哈希环:
按文件总大小、预计的TV终端可用空间大小,确定进行一次存储分配需要的终端个数n;
将参与分配的终端放入存储候选列表;为使节点在哈希环上尽可能均匀,设置节点复制因子k,为每个节点增加相应个数的虚拟节点,为虚拟节点创建唯一标识;
然后按一致性哈希算法对存储候选节点列表中节点建立Hash环;
按文件数循环,优先分配未分配的或分配次数少的文件,将文件均匀分配到存储候选节点列表中的节点;文件对象的已分配次数增加1;分配的过程是个重复的过程,直到所有存储候选节点都达到存储空间限制,结束分配过程;
从未参与分配的终端中选择n个终端,重复分配过程;如果剩余的终端个数 n时,则选择所有剩余的终端;
S2、设备上线时获取节点对象:
终端节点上线,发送获取节点对象请求,服务端将节点对象返回给终端节点;
S3、设备下载文件后更新节点对象:
节点对象推送到设备,设备下载文件列表中的文件到本地;下载成功,上传服务器更新服务端存储的节点对象;
S4、设备请求素材文件时获取文件存放位置:
设备请求的文件不在该设备中时,发送文件请求到服务端,服务端在所有可用哈希环中查找文件所在的上线节点,找到则返回节点对象,否则返回请求文件的Url。
2.根据权利要求1所述的在酒店内网环境下实现分布式存储的方法,其特征在于,组织节点,构造哈希环具体包括如下步骤:
S101、对设备在运行期间的平均可用空间,预先配置当下载文件后应该预留出的空间大小limit;
S102、计算出构成哈希环所需终端个数n:n=文件总的大小/终端节点的平均可用空间*ratio,其中ratio为一比例;
S103、对每个文件,创建出一个文件对象;文件对象的属性包括:文件标识、文件大小、OSS上的Url、已分配次数和是否已下载标志;
S104、将各文件对象放入到一个文件列表file_list中;
S105、为每个设备,创建一个节点对象并以Json格式存储到数据库;节点对象的属性包括:节点标识、节点IP、节点可用空间大小和文件对象列表;
S106、将所有节点对象放入到一个节点列表node_list中;
S107、可根据设备历史在线率,由高到低对节点node_list排序;对历史在线率高的设备,优先参与分配下载文件;
S108、对文件列表file_list,按已分配次数从少到多排序;对已分配次数少的文件,优先分配到哈希环上的节点;
S109、判断节点列表node_list中是否还有待分配节点,如果没有则所有哈希环构造完毕;如果还有则继续后续处理;
S110、从节点列表中移出n个节点,参考S102;如果不足n个,则移出所有节点;
S111、设置节点复制因子k,为每个节点增加k个虚拟节点并为它们创建节点对象;
S112、对这n+n*k个节点,按一致哈希算法,构造出一个哈希环,保存在TreeMap中;
S113、遍历文件列表file_list,每次取出一个文件对象,直到取完为止;如果遍历结束,则将TreeMap中保存的哈希环数据以Json格式存储到数据库中;
S114、保存的哈希环到数据库;
S115、取出一个文件对象;
S116、以取出的文件对象的文件标识为key,通过一致性哈希算法获取哈希值,在哈希环上找到顺时针方向上最近的一个虚拟节点或实际节点,得到对应的实际节点对象;
S117、节点可用空间大小和文件大小相减后,如果比预留空间大,则继续处理;否则跳转到S113;
S118、追加该文件对象到节点对象中的文件列表;
S119、节点的可用空间减去该文件大小;
S120、该文件对象的已分配次数增加1,跳转到S113。
3.根据权利要求1所述的在酒店内网环境下实现分布式存储的方法,其特征在于,设备上线时获取节点对象具体包括如下步骤:
S121、获取设备对应的节点对象请求;
S122、节点对象发送给设备。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广州携旅信息科技有限公司,未经广州携旅信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011517073.X/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种室内智能花墙
- 下一篇:一种带可升降工作平台的爬杆机器人





