System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及计算机,尤其涉及一种数据写入方法、数据读取方法、装置、设备及介质。
技术介绍
1、随着数据存储量的增加和数据传输需求的提升,高效的文件压缩成为一项重要的技术。目前较为常见的文件压缩方式有以下两种:第一种是使用软件的方式通过cpu进行透明压缩,第二种是借助硬件进行文件压缩。其中,透明压缩是目前较为广泛使用的一种文件压缩方式。透明压缩则是将存储和压缩的功能结合在一起,在存储的路径上完成了压缩,用户对此是无感知的,相当于压缩操作对用户是透明的。
2、然而,现有文件压缩方式存在以下缺陷:由于软件压缩数据计算密集型任务,因而通过软件压缩的方式进行压缩会极大的消耗cpu的计算资源;借助硬件进行文件压缩的方式对用户不透明,操作相对繁琐,需要用户手动调用压缩硬件压缩引擎。
技术实现思路
1、本专利技术提供一种数据写入方法、数据读取方法、装置、设备及介质,用以解决现有技术中文件压缩消耗cpu资源或借助硬件压缩文件无法实现对用户透明的缺陷,通过在内核层设置中间件提高文件数据在cpu与fpga的异构系统框架下的透明压缩计算效率,极大的释放了cpu计算资源。
2、根据本专利技术的第一方面,本专利技术提供了一种数据写入方法,所述数据写入方法包括:
3、从用户层获取对存储设备的写入请求;
4、利用内核层中的堆叠式文件系统将所述写入请求对应的待写入数据从用户层传入内核层;
5、通过所述堆叠式文件系统将传入内核层的所述待写入数据写入内核层中
6、基于内存映射机制将所述待写入数据在内核层中间件预先申请的内存中的内存地址映射到用户层,得到用户层地址;
7、通过用户层中间件程序控制fpga加速卡以读dma方式对所述用户层地址对应的数据执行压缩运算得到压缩数据,以及控制fpga加速卡以写dma方式将所述压缩数据写入内核层中间件预先申请的内存中;
8、利用内核层中的堆叠式文件系统将内核层中间件预先申请的内存中的所述压缩数据写入存储设备。
9、在一些可能的实现方式中,所述堆叠式文件系统包括:与用户层交互的虚拟文件系统和与存储设备交互的底层文件系统,以及设置虚拟文件系统和透底层文件系统之间的透明文件系统;
10、所述利用内核层中的堆叠式文件系统将所述写入请求对应的待写入数据从用户层传入内核层,包括:
11、通过所述虚拟文件系统从用户层接收所述写入请求对应的待写入数据并发送给所述透明文件系统;
12、所述利用内核层中的堆叠式文件系统将内核层中间件预先申请的内存中的所述压缩数据写入存储设备,包括:
13、通过所述透明式文件系从内核层中间件预先申请的内存中获取压缩数据,并将所述压缩数据传给所述底层文件系统;
14、通过所述底层文件系统将所述压缩数据写入存储设备。
15、在一些可能的实现方式中,内核层中间件预先申请的内存通过以下步骤获得:
16、将预设容量的内存空间分配给内核层中间件;
17、按照预设大小将所述内存空间划分成多个内存块。
18、在一些可能的实现方式中,所述通过所述堆叠式文件系统将传入内核层的所述待写入数据写入内核层中间件预先申请的内存中,包括:
19、在所述透明文件系统执行以下操作:
20、将所述待写入数据按照所述预设大小拆分成数据块;
21、调用预设内存块申请函数以使内核层中间件为每个数据块申请对应的内存块;
22、并将拆分得到的数据块写入对应的内存块中。
23、在一些可能的实现方式中,所述内核层中间件中设置有第一队列和第二队列;
24、所述第一队列用于记录待执行压缩运算的各个内存块对应的运算请求信息,其中,所述运算请求信息包括内存块id、内存块大小以及压缩启动标识;
25、所述第二队列用于记录写入压缩数据的内存块id。
26、在一些可能的实现方式中,所述数据写入方法还包括:
27、响应于所述压缩数据写入存储设备,在所述透明文件系统调用预设内存块释放函数以使内核层中间件对写入压缩数据的内存块进行空间释放。
28、根据本专利技术的第二方面,本专利技术还提供了一种数据读取方法,所述数据读取方法包括:
29、从用户层获取对存储设备的读取请求;
30、利用内核层中的堆叠式文件系统将所述读取请求对应的待解压数据从存储设备传入内核层;
31、通过所述堆叠式文件系统将传入内核层的所述待解压数据写入内核层中间件预先申请的内存中;
32、基于内存映射机制将所述待解压数据在内核层中间件预先申请的内存中的内存地址映射到用户层,得到用户层地址;
33、通过用户层中间件程序控制fpga加速卡以读dma方式对所述用户层地址对应的数据执行解压运算得到解压数据,以及控制fpga加速卡以写dma方式将所述解压数据写入内核层中间件预先申请的内存中;
34、通过所述堆叠式文件系统将写入内核层中间件预先申请的内存中的所述解压数据返回到用户层。
35、在一些可能的实现方式中,所述堆叠式文件系统包括:与用户层交互的虚拟文件系统和与存储设备交互的底层文件系统,以及设置虚拟文件系统和透底层文件系统之间的透明文件系统;
36、所述利用内核层中的堆叠式文件系统将所述读取请求对应的待解压数据从存储设备传入内核层,包括:
37、通过所述虚拟文件系统从用户层接收所述读取请求,并发送给所述透明文件系统;
38、通过所述透明文件系统进入底层文件系统,以从存储设备获取与所述读取请求对应的待解压数据;
39、所述通过所述堆叠式文件系统将写入内核层中间件预先申请的内存中的所述解压数据返回到用户层,包括:
40、通过所述透明文件系统从内核层中间件预先申请的内存中获取所述解压数据并发送给所述虚拟文件系统;
41、通过所述虚拟文件系统将内核层的所述解压数据返回至用户层。
42、在一些可能的实现方式中,内核层中间件预先申请的内存通过以下步骤获得:
43、将预设容量的内存空间分配给内核层中间件;
44、按照预设大小将所述内存空间划分成多个内存块。
45、在一些可能的实现方式中,所述通过所述堆叠式文件系统将传入内核层的所述待解压数据写入内核层中间件预先申请的内存中,包括:
46、在所述透明文件系统执行以下操作:
47、将所述待解压数据按照所述预设大小拆分成数据块;
48、调用预设内存块申请函数以使内核层中间件为每个数据块申请对应的内存块;
49、并将拆分得到的数据块写入对应的内存块中。
50、在一些可能的实现方式中,所述内核层中间件中设置有第三队列和第四队列;
51、所述第三队列用于记录待执行解压运算的各个内存本文档来自技高网...
【技术保护点】
1.一种数据写入方法,其特征在于,所述数据写入方法包括:
2.根据权利要求1所述的数据写入方法,其特征在于,所述堆叠式文件系统包括:与用户层交互的虚拟文件系统和与存储设备交互的底层文件系统,以及设置虚拟文件系统和透底层文件系统之间的透明文件系统;
3.根据权利要求2所述的数据写入方法,其特征在于,内核层中间件预先申请的内存通过以下步骤获得:
4.根据权利要求3所述的数据写入方法,其特征在于,所述通过所述堆叠式文件系统将传入内核层的所述待写入数据写入内核层中间件预先申请的内存中,包括:
5.根据权利要求3所述的数据写入方法,其特征在于,所述内核层中间件中设置有第一队列和第二队列;
6.根据权利要求3所述的数据写入方法,其特征在于,所述数据写入方法还包括:
7.一种数据读取方法,其特征在于,所述数据读取方法包括:
8.根据权利要求7所述的数据读取方法,其特征在于,所述堆叠式文件系统包括:与用户层交互的虚拟文件系统和与存储设备交互的底层文件系统,以及设置虚拟文件系统和透底层文件系统之间的透明文件系统;<
...【技术特征摘要】
1.一种数据写入方法,其特征在于,所述数据写入方法包括:
2.根据权利要求1所述的数据写入方法,其特征在于,所述堆叠式文件系统包括:与用户层交互的虚拟文件系统和与存储设备交互的底层文件系统,以及设置虚拟文件系统和透底层文件系统之间的透明文件系统;
3.根据权利要求2所述的数据写入方法,其特征在于,内核层中间件预先申请的内存通过以下步骤获得:
4.根据权利要求3所述的数据写入方法,其特征在于,所述通过所述堆叠式文件系统将传入内核层的所述待写入数据写入内核层中间件预先申请的内存中,包括:
5.根据权利要求3所述的数据写入方法,其特征在于,所述内核层中间件中设置有第一队列和第二队列;
6.根据权利要求3所述的数据写入方法,其特征在于,所述数据写入方法还包括:
7.一种数据读取方法,其特征在于,所述数据读取方法包括:
8.根据权利要求7所述的数据读取方法,其特征在于,所述堆叠式文件系统包括:与用户层交互的虚拟文件系统和与存储设备交互的底层文件系统,以及设置虚拟文件系统和透底层文件系统之间的透明文件系统;
...
【专利技术属性】
技术研发人员:孙忠祥,张闯,刘科,
申请(专利权)人:苏州元脑智能科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。