申请/专利权人:统信软件技术有限公司
申请日:2022-08-17
公开(公告)日:2022-12-02
公开(公告)号:CN115061986B
主分类号:G06F16/172
分类号:G06F16/172;G06F16/176;G06F16/174;G06F9/50;G06F9/52
优先权:
专利状态码:有效-授权
法律状态:2022.12.02#授权;2022.10.04#实质审查的生效;2022.09.16#公开
摘要:本发明涉及计算机技术领域,公开了一种数据写入方法、数据压缩方法及数据解压方法,数据写入方法包括:在线程写入目标文件前,获取目标文件的文件锁;如果线程获取文件锁失败,则申请第一缓存页,将第一数据写入第一缓存页中;将第一缓存页存储在目标文件对应的第一数据结构中,判断线程中待写入目标文件的全部数据是否均完成写入;如果未完成写入,则重复执行从申请第一缓存页至判断线程中待写入目标文件的全部数据是否均完成写入的步骤;如果已完成写入,将全部第一缓存页存储至目标文件对应的第二数据结构中。通过本发明的技术方案,可大幅度缩短数据写入文件的处理时间。
主权项:1.一种数据写入方法,所述方法包括:当对第一待处理数据进行压缩处理时,通过多个线程将所述第一待处理数据压缩为多个压缩数据包;所述多个线程中的每个线程通过执行下述步骤,将所述多个压缩数据包中的每个压缩数据包写入目标文件对应的第二数据结构中,生成第一待处理数据的压缩文件:在每个线程写入目标文件前,获取所述目标文件的文件锁;如果该线程获取所述文件锁失败,则:申请第一缓存页,将第一数据写入所述第一缓存页中;将所述第一缓存页存储在所述目标文件对应的第一数据结构中,并判断所述线程中所述多个压缩数据包中的每个压缩数据包是否均完成写入;如果未完成写入,则重复执行从所述申请第一缓存页至判断所述线程中所述多个压缩数据包中的每个压缩数据包是否均完成写入的步骤;如果已完成写入,则将全部所述第一缓存页存储至所述目标文件对应的第二数据结构中;如果所述线程获取所述文件锁成功,则获取可写入的缓存页,将所述第一数据写入所述可写入的缓存页中;如果获取可写入的缓存页失败,则申请第二缓存页,将所述第一数据写入所述第二缓存页中,并将所述第二缓存页存储至所述目标文件对应的第二数据结构中;如果所述目标文件对应的第二数据结构中已存在缓存页,则将已存在的缓存页与第一缓存页或第二缓存页进行合并,并去除重复的数据;判断所述线程中所述多个压缩数据包中的每个压缩数据包是否均完成写入;如果未完成写入,则重复执行所述获取可写入的缓存页的步骤;其中,所述第一数据结构包括链表,所述第二数据结构包括基数树。
全文数据:
权利要求:
百度查询: 统信软件技术有限公司 数据写入方法、数据压缩方法及数据解压方法
免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。