一种基于分布式系统的文件读取方法及装置的制造方法_6

文档序号:9667432阅读:来源:国知局
文件包括至少一个数据分 条,各个所述数据分条包括至少一个数据块; 当所述至少一个目标数据块为所述目标数据分条中的部分数据时,向所述锁服务器发 送针对所述目标数据分条的数据分条版本号获取请求,并接收所述锁服务器响应所述数据 分条版本号获取请求所反馈的数据分条版本号; 向各个存储所述目标数据块的所述存储服务器发送数据块获取请求,并接收各个所 述存储服务器响应所述数据块获取请求所反馈的所述目标数据块及其对应的数据块版本 号; 当所述数据分条版本号和各个所述目标数据块对应的数据块版本号相同时,将各个所 述目标数据块发送给所述客户端。2. 如权利要求1所述的方法,其特征在于,所述根据所述偏移地址以及所述读取数据 量,确定所述客户端需要读取的至少一个目标数据块以及所述至少一个目标数据块所属的 目标数据分条之后,还包括: 当所述至少一个目标数据块为所述目标数据分条中的所有数据时,向各个存储所述目 标数据块的存储服务器发送所述数据块获取请求; 接收各个所述存储服务器响应所述数据块获取请求所反馈的所述目标数据块及其对 应的数据块版本号; 当各个所述目标数据块对应的数据块版本号相同时,将各个所述目标数据块发送给所 述客户端。3. 如权利要求1所述的方法,其特征在于,所述接收各个所述存储服务器响应所述数 据块获取请求所反馈的所述目标数据块及其对应的数据块版本号之后,还包括: 当所述数据分条版本号和各个所述目标数据块对应的数据块版本号不完全相同时,向 各个存储所述目标数据分条中数据块的存储服务器发送所述数据块获取请求; 接收各个所述存储服务器响应所述数据块获取请求所反馈的各个所述数据块及其对 应的数据块版本号; 当各个所述数据块对应的数据块版本号相同时,在所述接收得到的数据块中确定各个 所述目标数据块; 将各个所述目标数据块发送给所述客户端。4. 如权利要求1~3任一项所述的方法,其特征在于,所述方法还包括: 接收所述客户端发送的文件写请求,所述文件写请求携带文件句柄、偏移地址、写数据 以及写数据量; 通过版本号分配器获取所述文件句柄对应的文件的数据分条版本号; 根据所述偏移地址以及所述写数据量,确定所述写数据所属的数据块以及所述数据块 所属的数据分条; 将所述写数据发送给存储所述写数据所属数据块的存储服务器; 当所述写数据成功发送时,将所述数据分条版本号发送给所述锁服务器,以通知所述 锁服务器更新所述数据分条的数据分条版本号。5. 如权利要求2所述的方法,其特征在于,所述接收各个所述存储服务器响应所述数 据块获取请求所反馈的所述目标数据块及其对应的数据块版本号之后,还包括: 当各个所述目标数据块对应的数据块版本号相同时,将所述目标数据块对应的数据块 版本号作为所述目标数据分条的数据分条版本号; 将所述数据分条版本号发送给所述锁服务器,以通知所述锁服务器更新所述目标数据 分条的数据分条版本号。6. 如权利要求5所述的方法,其特征在于,所述将所述数据分条版本号发送给所述锁 服务器,包括: 向所述锁服务器发送锁释放请求,所述锁释放请求携带数据分条标识以及数据分条版 本号,以通知所述锁服务器更新所述数据分条标识对应的数据分条的数据分条版本号; 接收所述锁服务器响应所述锁释放请求所反馈的锁释放响应消息。7. 如权利要求5所述的方法,其特征在于,所述将所述数据分条版本号发送给所述锁 服务器,包括: 接收所述锁服务器发送的锁召回请求,所述锁召回请求携带数据分条标识; 响应所述锁召回请求向所述锁服务器发送锁召回响应消息,所述锁召回响应消息携带 所述数据分条标识对应的数据分条的数据分条版本号,以通知所述锁服务器更新所述数据 分条标识对应的数据分条的数据分条版本号。8. 如权利要求1~7任一项所述的方法,其特征在于,所述向锁服务器发送针对所述目 标数据分条的数据分条版本号获取请求,包括: 向所述锁服务器发送读锁获取请求,所述读锁获取请求携带所述目标数据分条的数据 分条标识; 接收所述锁服务器响应所述读锁获取请求所反馈的对所述数据分条标识对应的目标 数据分条的读授权响应消息,所述读授权响应消息携带所述目标数据分条的数据分条版本 号。9. 如权利要求2所述的方法,其特征在于,所述接收各个所述存储服务器响应所述数 据块获取请求所反馈的所述目标数据块及其对应的数据块版本号之后,还包括: 当各个所述目标数据块对应的数据块版本号不完全相同时,向各个存储所述目标数据 分条中校验数据块的存储服务器发送校验数据块获取请求; 接收各个所述存储服务器响应所述校验数据块获取请求所反馈的校验数据块及其对 应的数据块版本号; 当各个所述校验数据块对应的数据块版本号相同时,通过数据校验擦除码EC算法对 各个所述校验数据块进行处理,得到各个所述目标数据块; 将各个所述目标数据块发送给所述客户端。10. 如权利要求1~9任一项所述的方法,其特征在于,所述文件读请求还携带文件句 柄; 所述向各个存储所述目标数据块的所述存储服务器发送数据块获取请求,包括: 根据所述文件句柄在本地获取所述文件的文件属性,所述文件属性包括所述文件中各 个数据块的存储路径; 根据各个所述目标数据块的存储路径,确定各个存储所述目标数据块的存储服务器; 向各个确定的存储服务器发送所述数据块获取请求。11. 一种基于分布式系统的文件读取装置,其特征在于,包括: 请求接收单元,用于接收客户端发送的文件读请求,所述文件读请求携带偏移地址以 及读取数据量; 数据块确定单元,用于根据所述偏移地址以及所述读取数据量,确定所述客户端需要 读取的至少一个目标数据块以及所述至少一个目标数据块所属的目标数据分条,一个文件 包括至少一个数据分条,各个所述数据分条包括至少一个数据块; 请求发送单元,用于当所述至少一个目标数据块为所述目标数据分条中的部分数据 时,向锁服务器发送针对所述目标数据分条的数据分条版本号获取请求; 版本号获取单元,用于接收所述锁服务器响应所述数据分条版本号获取请求所反馈的 数据分条版本号; 所述请求发送单元,还用于向各个存储所述目标数据块的存储服务器发送数据块获取 请求; 数据块接收单元,用于接收各个所述存储服务器响应所述数据块获取请求所反馈的所 述目标数据块及其对应的数据块版本号; 数据块发送单元,用于当所述数据分条版本号和各个所述目标数据块对应的数据块版 本号相同时,将各个所述目标数据块发送给所述客户端。12. 如权利要求11所述的装置,其特征在于, 所述请求发送单元,还用于当所述至少一个目标数据块为所述目标数据分条中的所有 数据时,向各个存储所述目标数据块的存储服务器发送所述数据块获取请求; 所述数据块接收单元,还用于接收各个所述存储服务器响应所述数据块获取请求所反 馈的所述目标数据块及其对应的数据块版本号; 所述数据块发送单元,还用于当各个所述目标数据块对应的数据块版本号相同时,将 各个所述目标数据块发送给所述客户端。13. 如权利要求11所述的装置,其特征在于, 所述请求发送单元,还用于当所述数据分条版本号和各个所述目标数据块对应的数据 块版本号不完全相同时,向各个存储所述目标数据分条中数据块的存储服务器发送所述数 据块获取请求; 所述数据块接收单元,还用于接收各个所述存储服务器响应所述数据块获取请求所反 馈的各个所述数据块及其对应的数据块版本号; 所述数据块确定单元,还用于当各个所述数据块对应的数据块版本号相同时,在所述 接收得到的数据块中确定各个所述目标数据块; 所述数据块发送单元,还用于将各个所述目标数据块发送给所述客户端。14. 如权利要求11~13任一项所述的装置,其特征在于, 所述请求接收单元,还用于接收所述客户端发送的文件写请求,所述文件写请求携带 文件句柄、偏移地址、写数据以及写数据量; 所述版本号获取单元,还用于通过版本号分配器获取所述文件句柄对应的文件的数据 分条版本号; 所述数据块确定单元,还用于根据所述偏移地址以及所述写数据量,确定所述写数据 所属的数据块以及所述数据块所属的数据分条; 所述装置还包括: 数据发送单元,用于将所述写数据发送给存储所述写数据所属数据块的存储服务器; 版本号发送单元,用于当所述写数据成功发送时,将所述数据分条版本号发送给所述 锁服务器,以通知所述锁服务器更新所述数据分条的数据分条版本号。15. 如权利要求12所述的装置,其特征在于,所述装置还包括: 版本号发送单元,用于当各个所述目标数据块对应的数据块版本号相同时,将所述目 标数据块对应的数据块版本号作为所述目标数据分条的数据分条版本号,并将所述数据分 条版本号发送给所述锁服务器,以通知所述锁服务器更新所述目标数据分条的数据分条版 本号。16. 如权利要求15所述的装置,其特征在于,所述版本号发送单元,具体用于: 向所述锁服务器发送锁释放请求,所述锁释放请求携带数据分条标识以及数据分条版 本号,以通知所述锁服务器更新所述数据分条标识对应的数据分条的数据分条版本号; 接收所述锁服务器响应所述锁释放请求所反馈的锁释放响应消息。17. 如权利要求15所述的装置,其特征在于,所述版本号发送单元,具体用于: 接收所述锁服务器发送的锁召回请求,所述锁召回请求携带数据分条标识; 响应所述锁召回请求向所述锁服务器发送锁召回响应消息,所述锁召回响应消息携带 所述数据分条标识对应的数据分条的数据分条版本号,以通知所述锁服务器更新所述数据 分条标识对应的数据分条的数据分条版本号。18. 如权利要求11~17任一项所述的装置,其特征在于,所述请求发送单元向所述锁 服务器发送针对所述目标数据分条的数据分条版本号获取请求,具体用于: 向所述锁服务器发送读锁获取请求,所述读锁获取请求携带所述目标数据分条的数据 分条标识; 接收所述锁服务器响应所述读锁获取请求所反馈的对所述数据分条标识对应的目标 数据分条的读授权响应消息,所述读授权响应消息携带所述目标数据分条的数据分条版本 号。19. 如权利要求12所述的装置,其特征在于, 所述请求发送单元,还用于当各个所述目标数据块对应的数据块版本号不完全相同 时,向各个存储所述目标数据分条中校验数据块的存储服务器发送校验数据块获取请求; 所述数据块接收单元,还用于接收各个所述存储服务器响应所述校验数据块获取请求 所反馈的校验数据块及其对应的数据块版本号; 所述装置还包括: 数据块生成单元,用于当各个所述校验数据块对应的数据块版本号相同时,通过EC算 法对各个所述校验数据块进行处理,得到各个所述目标数据块; 所述数据块发送单元,还用于将各个所述目标数据块发送给所述客户端。20. 如权利要求11~19任一项所述的装置,其特征在于,所述文件读请求还携带文件 句柄; 所述请求发送单元向各个存储所述目标数据块的所述存储服务器发送所述数据块获 取请求,具体用于: 根据所述文件句柄在本地获取所述文件的文件属性,所述文件属性包括所述文件中各 个数据块的存储路径; 根据各个所述目标数据块的存储路径,确定各个存储所述目标数据块的存储服务器; 向各个确定的存储服务器发送所述数据块获取请求。
【专利摘要】本发明实施例公开了一种基于分布式系统的文件读取方法及装置,所述方法包括:根据客户端发送的文件读请求携带的偏移地址以及读取数据量,确定客户端需要读取的至少一个目标数据块以及目标数据块所属的目标数据分条;当至少一个目标数据块为目标数据分条中的部分数据时,向锁服务器发送针对目标数据分条的数据分条版本号获取请求;向各个存储目标数据块的存储服务器发送数据块获取请求;当锁服务器所反馈的数据分条版本号和各个存储服务器所反馈的目标数据块对应的数据块版本号相同时,将目标数据块发送给客户端。采用本发明实施例,当客户端需要读取的数据块是数据分条中的部分数据时,可避免文件系统内部读取整个数据分条,有效提升系统性能。
【IPC分类】G06F17/30
【公开号】CN105426483
【申请号】CN201510807517
【发明人】谢晓芹
【申请人】华为技术有限公司
【公开日】2016年3月23日
【申请日】2015年11月19日
当前第6页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1