预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共24页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

(19)中华人民共和国国家知识产权局(12)发明专利申请(10)申请公布号CN114328396A(43)申请公布日2022.04.12(21)申请号202111641132.9(22)申请日2021.12.29(71)申请人上海英方软件股份有限公司地址201112上海市黄浦区制造局路787号二幢151A室(72)发明人徐嘉高志会陈勇铨(74)专利代理机构北京品源专利代理有限公司11332代理人康欢欢(51)Int.Cl.G06F16/14(2019.01)G06F16/172(2019.01)G06F16/18(2019.01)权利要求书3页说明书15页附图5页(54)发明名称一种文件读取方法、装置、设备及存储介质(57)摘要本发明实施例公开了一种文件读取方法、装置、设备及存储介质、该方法包括:接收文件读取指令;根据文件读取指令调用至少一次查询函数,以根据查询函数对应的读取偏移与获取的已读偏移确定至少一个读取任务;将各读取任务的任务号提交至任务队列,以通过工作线程对待读取文件中与任务队列对应的各文件块进行预读取,并将预读取后的数据存储至对应的预读取缓冲区;根据文件读取指令调用至少一次读取函数,对与读取函数对应的目标读取任务进行安全检查,由检查结果为读取成功的目标读取任务对应的预读取缓冲区中进行数据读取。本发明实施例的技术方案,在保证读取完整性的基础上,提升了数据库中事物日志文件的读取速度和读取效率。CN114328396ACN114328396A权利要求书1/3页1.一种文件读取方法,其特征在于,包括:接收文件读取指令;根据所述文件读取指令调用至少一次查询函数,以根据所述查询函数对应的读取偏移与获取的已读偏移确定至少一个读取任务;将各所述读取任务的任务号提交至任务队列,以通过工作线程对待读取文件中与所述任务队列对应的各文件块进行预读取,并将预读取后的数据存储至对应的预读取缓冲区;根据所述文件读取指令调用至少一次读取函数,对与所述读取函数对应的目标读取任务进行安全检查,由检查结果为读取成功的目标读取任务对应的预读取缓冲区中进行数据读取;其中,所述待读取文件为采用自动存储管理方式存储的事务日志文件,所述待读取文件包括至少一个预设长度的文件块。2.根据权利要求1所述的方法,其特征在于,所述根据所述查询函数对应的读取偏移与获取的已读偏移确定至少一个读取任务,包括:根据所述查询函数对应的读取偏移与获取的已读偏移确定起始任务号与预读任务数;将读取任务数组中以所述起始任务号为首,依次提取的所述预读任务数个读取任务确定为预读取任务,并将所述起始任务号对应的读取任务确定为起始读取任务;根据所述已读偏移和所述预设长度更新各所述预读取任务的任务参数;其中,所述预读任务数为不小于一的整数。3.根据权利要求2所述的方法,其特征在于,所述根据所述查询函数对应的读取偏移与获取的已读偏移确定起始任务号与预读任务数,包括:若所述读取偏移与所述已读偏移不同,则将所述已读偏移更新为所述读取偏移,并将上一预读任务数与二的整除值确定为预读任务数;将更新后的已读偏移对所述预设长度整除,将整除结果确定为起始文件块号;将所述起始文件块号对所述读取任务数组中读取任务的个数取余数,并将所述余数确定为起始任务号。4.根据权利要求2所述的方法,其特征在于,所述根据所述查询函数对应的读取偏移与获取的已读偏移确定起始任务号与预读任务数,包括:若所述读取偏移与所述已读偏移相同,则将上一预读任务数的二倍确定为预读任务数;将所述已读偏移对所述预设长度整除,将整除结果确定为起始文件块号;将所述起始文件块号对所述读取任务数组中读取任务的个数取余数,并将所述余数确定为起始任务号。5.根据权利要求2所述的方法,其特征在于,所述任务参数包括文件块偏移、块内偏移、块内读取长度与任务状态,所述根据所述已读偏移和所述预设长度更新各所述预读取任务的任务参数,包括:将各所述预读取任务的任务状态更新为已发未完成状态;将各所述预读取任务的文件块偏移确定为对应文件块的文件块号与所述预设长度的乘积;将所述起始读取任务的块内偏移确定为所述已读偏移与所述预设长度的余值,并将块2CN114328396A权利要求书2/3页内读取长度确定为所述预设长度与所述块内偏移的差值;将除所述起始读取任务之外的各所述预读取任务的块内偏移确定为零,并将块内读取长度确定为所述预设长度。6.根据权利要求5所述的方法,其特征在于,所述通过工作线程对待读取文件中与所述任务队列对应的各文件块进行预读取,并将预读取后的数据存储至对应的预读取缓冲区,包括:由所述任务队列中获取一个读取任务的任务号,并根据所述任务号由所述读取任务数组中确定目标预读取任务;根据所述目标预读取任务的任务参数由所述待读取文件中读取数据,并将所述数据存储至与所述任务号对应的预读取缓