[发明专利]一种多线程并行编/解码方法、编/解码器、用户端在审
申请号: | 202110796828.2 | 申请日: | 2021-07-14 |
公开(公告)号: | CN113590376A | 公开(公告)日: | 2021-11-02 |
发明(设计)人: | 曹强;孙磊 | 申请(专利权)人: | 华中科技大学 |
主分类号: | G06F11/10 | 分类号: | G06F11/10;G06F3/06 |
代理公司: | 华中科技大学专利中心 42201 | 代理人: | 徐美琳 |
地址: | 430074 湖北*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 多线程 并行 解码 方法 解码器 用户端 | ||
本发明公开了一种多线程并行编/解码方法、编/解码器、用户端,属于计算机存储技术领域。包括:根据指定的编码规则对文件进行编码得到编码文件;对于容错范围内的多个数据块失效,可以根据现存的有效数据块恢复出原始数据;根据设置,使用不同线程数量并行完成数据编解码和文件读取过程,实现具有纠错能力的高速文件并发读写过程。
技术领域
本发明属于计算机存储技术领域,更具体地,涉及一种多线程并行编/解码方法、编/解码器、用户端。
背景技术
存储系统中为了保证数据可靠性,通常使用多副本、可擦除编码的方式存储数据。通常使用的副本存储会导致磁盘使用空间的升高,以及随之而来的存储成本的增加。为了降低磁盘空间的使用,文件编码在数据可靠性方面的应用逐渐广泛。
使用文件编码保证数据可靠性的存储系统性能受限于编码过程的吞吐率。用户需要持久化保存的数据需要通过编码得到一定长度的校验数据,将校验数据和用户数据都保存在磁盘上,当一部分数据出现错误,使用剩余的无错数据,通过解码过程恢复出用户数据。可见,编解码过程出现在数据读写的关键路径上,编解码的速度决定了系统性能,低速的编解码性能将成为系统瓶颈。
发明内容
针对现有技术的缺陷和改进需求,本发明提供了一种多线程并行编/解码方法、编/解码器、用户端,其目的在于通过多线程编解码提高编解码速度,缩短文件读写关键路径,同时保证用户数据的可靠性。
为实现上述目的,按照本发明的第一方面,提供了一种多线程并行编码方法,包括以下步骤:
使用多个I/O线程从存储设备读取源文件;
将所述源文件分割为n*z个用户数据块,其中包含z个数量为n的用户数据条带,使用T个编码线程,第t个编码线程按照每n个用户数据块得到k个校验数据块的编码规则对ti个数据条带进行编码,其中,1≤t≤T,当t≤z%T时,当t>z%T时,
使用多个I/O线程,将编码文件进行布局写入存储设备。
优选地,分割的规则为:
若用户数据块的大小是m,对于长度为x的源文件:
(a)若x能被n*m整除,那么用户数据块的总量为x/m,分为n*z个用户数据块;
(b)若x不能被n*m整除,那么用户数据块的总量为通过补零或者补充预设数据的方法补全为n*z个用户数据块。
优选地,布局方法包括:
用户数据块与校验数据块的垂直布局方法:n*z个用户数据块,编码得到k*z个校验数据块,将用户数据块连续存放在编码文件的前部,然后在编码文件尾部对应地连续存放校验数据块;
或者用户数据块与校验数据块的水平布局方法:用户数据块与校验数据块按照条带次序放置,每个条带中的数据块连续存放,同时,用户数据块连续存放在条带前部,校验数据块连续存放在条带后部。
或者用户数据块与校验数据块的水平交叉布局方法:用户数据块与校验数据块按照条带次序放置,但条带内部用户数据块与校验数据块间隔分布,用户数据块与校验数据块按照约定间隔存放。
本发明第二方面提供了一种多线程并行解码方法,编码文件包括z个条带,每个条带包括n个用户数据块和k个校验数据块;解码包括以下步骤:
使用多个I/O线程从存储设备读取编码文件到内存中;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华中科技大学,未经华中科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110796828.2/2.html,转载请声明来源钻瓜专利网。