脏页刷新方法和装置、电子设备和存储介质制造方法及图纸

技术编号:28557952 阅读:11 留言:0更新日期:2021-05-25 17:51
本申请提供了一种脏页刷新方法和装置、电子设备和存储介质,其中,该方法包括:确定脏页链表中待刷新的目标脏页,其中,所述目标脏页是与目标磁盘中的第一数据页对应的脏页;从所述目标脏页的目标位置区域内读取第一目标数据,其中,所述目标位置区域为所述目标脏页相对所述第一数据页被修改的数据在所述目标脏页中所处的位置区域;将所述目标脏页的待刷新数据刷新到所述目标磁盘,以将所述第一数据页更新为第二数据页,其中,所述待刷新数据包括所述第一目标数据。通过本申请,解决了相关技术中通过提高刷脏页数量和频率来提高刷新脏页能力的方式存在的易引起大量I/O占用资源的问题。

【技术实现步骤摘要】
脏页刷新方法和装置、电子设备和存储介质
本申请涉及数据处理领域,尤其涉及一种脏页刷新方法和装置、电子设备和存储介质。
技术介绍
如果磁盘数据库的数据页中的数据有修改时,则该数据页会被读取到内存中进行修改,内存中(bufferpool,缓冲池)未刷到磁盘的数据称为脏数据(dirtydata),即,脏页。脏页会被放到flushlist(脏页链表),以便进行刷盘。在进行脏页刷盘时,可以通过数据库引擎的I/O(Input/Output,输入/输出)能力控制对flushlist刷脏页数量。以InnoDB(MySQL的数据库引擎之一)为例,innodb_io_capacity参数的值越高,每次刷盘写入脏页的数量越多,数据刷脏页的I/O越高,其中,innodb_io_capacity定义了InnoDB后台任务每秒可用的I/O操作数(Input/OutputOperationsPerSecond,IOPS)。如果脏页数量过多,刷盘速度很慢,在I/O能力允许的情况下,可以通过提高I/O能力(比如,调高innodb_io_capacity参数的值)来提高刷脏页的数量和频率。然而,通过提高刷脏页数量和频率来提高刷新脏页能力的方式,易引起大量I/O占用资源。
技术实现思路
本申请提供了一种脏页刷新方法和装置、电子设备和存储介质,以至少解决相关技术中通过提高刷脏页数量和频率来提高刷新脏页能力的方式易引起大量I/O占用资源的问题。根据本申请实施例的一个方面,提供了一种脏页刷新方法,包括:确定脏页链表中待刷新的目标脏页,其中,目标脏页是与目标磁盘中的第一数据页对应的脏页;从所述目标脏页的目标位置区域内读取第一目标数据,其中,所述目标位置区域为所述目标脏页相对所述第一数据页被修改的数据在所述目标脏页中所处的位置区域;将所述目标脏页的待刷新数据刷新到所述目标磁盘,以将所述第一数据页更新为第二数据页,其中,所述待刷新数据包括所述第一目标数据。可选地,在从所述目标脏页的所述目标位置区域内读取所述第一目标数据之前,所述方法还包括:从所述目标脏页的页头内读取目标标识信息,其中,所述目标标识信息用于指示所述目标位置区域;根据所述目标标识信息,确定出所述目标位置区域。可选地,在从所述目标脏页的所述目标位置区域内读取所述第一目标数据之前,所述方法还包括:获取与所述目标脏页对应的目标修改标识,其中,所述目标脏页按照目标大小被划分为多个数据块,所述目标修改标识用于指示所述目标脏页相对所述第一数据页被修改的数据所在的目标数据块;将所述目标修改标识所指示的所述目标数据块所在的位置区域,确定为所述目标位置区域。可选地,在获取与目标脏页对应的所述目标修改标识之后,所述方法还包括:确定所述目标修改标识的多个标志位中值为目标值的目标标志位,其中,所述多个标志位与所述多个数据块一一对应,值为所述目标值的标志位用于指示对应的数据块有修改;将与所述目标标志位对应的数据块,确定为所述目标数据块。可选地,在确定所述脏页链表中待刷新的所述目标脏页之前,所述方法还包括:确定与目标修改数据对应的目标起始位置和目标结束位置,其中,所述目标修改数据为所述目标脏页中的修改数据,所述目标起始位置为所述目标修改数据在所述目标脏页中的起始位置,所述目标结束位置为所述目标修改数据在所述目标脏页中的结束位置;确定所述目标起始位置所在的第一数据块和所述目标结束位置所在的第二数据块;将所述第一数据块到所述第二数据块的各个数据块对应的标志位的值配置为所述目标值。可选地,在将所述目标脏页的所述待刷新数据刷新到所述目标磁盘之前,所述方法还包括:读取所述目标脏页的页头中的第二目标数据,其中,所述第二目标数据包含用于描述所述目标脏页的头信息;读取所述目标脏页的页尾中的第三目标数据,其中,所述第三目标数据包含用于对所述目标脏页进行校验的校验信息,所述待刷新数据还包括所述第二目标数据和所述第三目标数据。可选地,将所述目标脏页的所述待刷新数据刷新到所述目标磁盘包括:通过目标写入模式将所述待刷新数据刷新到所述目标磁盘,其中,所述目标写入模式为绕过操作系统的写缓存直接向磁盘写入数据的模式。根据本申请实施例的另一个方面,还提供了一种脏页刷新装置,包括:第一确定单元,用于确定脏页链表中待刷新的目标脏页,其中,所述目标脏页是与目标磁盘中的第一数据页对应的脏页;第一读取单元,用于从所述目标脏页的目标位置区域内读取第一目标数据,其中,所述目标位置区域为所述目标脏页相对所述第一数据页被修改的数据在所述目标脏页中所处的位置区域;刷新单元,用于将所述目标脏页的待刷新数据刷新到所述目标磁盘,以将所述第一数据页更新为第二数据页,其中,所述待刷新数据包括所述第一目标数据。可选地,所述装置还包括:第二读取单元,用于在从所述目标脏页的所述目标位置区域内读取所述第一目标数据之前,从所述目标脏页的页头内读取目标标识信息,其中,所述目标标识信息用于指示所述目标位置区域;根据所述目标标识信息,确定出所述目标位置区域。可选地,所述装置还包括:获取单元,用于在从所述目标脏页的所述目标位置区域内读取所述第一目标数据之前,获取与所述目标脏页对应的目标修改标识,其中,所述目标脏页按照目标大小被划分为多个数据块,所述目标修改标识用于指示所述目标脏页相对所述第一数据页被修改的数据所在的目标数据块;第二确定单元,用于将所述目标修改标识所指示的所述目标数据块所在的位置区域,确定为所述目标位置区域。可选地,所述装置还包括:第三确定单元,用于在获取与所述目标脏页对应的所述目标修改标识之后,确定所述目标修改标识的多个标志位中值为目标值的目标标志位,其中,所述多个标志位与所述多个数据块一一对应,值为所述目标值的标志位用于指示对应的数据块有修改;第四确定单元,用于将与所述目标标志位对应的数据块,确定为所述目标数据块。可选地,所述装置还包括:第五确定单元,用于在确定所述脏页链表中待刷新的所述目标脏页之前,确定与目标修改数据对应的目标起始位置和目标结束位置,其中,所述目标修改数据为所述目标脏页中的修改数据,所述目标起始位置为所述目标修改数据在所述目标脏页中的起始位置,所述目标结束位置为所述目标修改数据在所述目标脏页中的结束位置;第六确定单元,用于确定所述目标起始位置所在的第一数据块和所述目标结束位置所在的第二数据块;配置单元,用于将所述第一数据块到所述第二数据块的各个数据块对应的标志位的值配置为所述目标值。可选地,所述装置还包括:第三读取单元,用于在将所述目标脏页的所述待刷新数据刷新到所述目标磁盘之前,读取所述目标脏页的页头中的第二目标数据,其中,所述第二目标数据包含用于描述所述目标脏页的头信息;第四读取单元,用于读取所述目标脏页的页尾中的第三目标数据,其中,所述第三目标数据包含用于对所述目标脏页进行校验的校验信息,所述待刷新数据还包括所述第二目标数据和所述第三目标数据。可选地,所述刷新单元包括:刷新模块,用于通过目标写入模式将所述待刷新数据刷新到所述目标磁盘,其中,所述目标写入模式为本文档来自技高网...

【技术保护点】
1.一种脏页刷新方法,其特征在于,包括:/n确定脏页链表中待刷新的目标脏页,其中,所述目标脏页是与目标磁盘中的第一数据页对应的脏页;/n从所述目标脏页的目标位置区域内读取第一目标数据,其中,所述目标位置区域为所述目标脏页相对所述第一数据页被修改的数据在所述目标脏页中所处的位置区域;/n将所述目标脏页的待刷新数据刷新到所述目标磁盘,以将所述第一数据页更新为第二数据页,其中,所述待刷新数据包括所述第一目标数据。/n

【技术特征摘要】
1.一种脏页刷新方法,其特征在于,包括:
确定脏页链表中待刷新的目标脏页,其中,所述目标脏页是与目标磁盘中的第一数据页对应的脏页;
从所述目标脏页的目标位置区域内读取第一目标数据,其中,所述目标位置区域为所述目标脏页相对所述第一数据页被修改的数据在所述目标脏页中所处的位置区域;
将所述目标脏页的待刷新数据刷新到所述目标磁盘,以将所述第一数据页更新为第二数据页,其中,所述待刷新数据包括所述第一目标数据。


2.根据权利要求1所述的方法,其特征在于,在从所述目标脏页的所述目标位置区域内读取所述第一目标数据之前,所述方法还包括:
从所述目标脏页的页头内读取目标标识信息,其中,所述目标标识信息用于指示所述目标位置区域;
根据所述目标标识信息,确定出所述目标位置区域。


3.根据权利要求1所述的方法,其特征在于,在从所述目标脏页的所述目标位置区域内读取所述第一目标数据之前,所述方法还包括:
获取与所述目标脏页对应的目标修改标识,其中,所述目标脏页按照目标大小被划分为多个数据块,所述目标修改标识用于指示所述目标脏页相对所述第一数据页被修改的数据所在的目标数据块;
将所述目标修改标识所指示的所述目标数据块所在的位置区域,确定为所述目标位置区域。


4.根据权利要求3所述的方法,其特征在于,在获取与所述目标脏页对应的所述目标修改标识之后,所述方法还包括:
确定所述目标修改标识的多个标志位中值为目标值的目标标志位,其中,所述多个标志位与所述多个数据块一一对应,值为所述目标值的标志位用于指示对应的数据块有修改;
将与所述目标标志位对应的数据块,确定为所述目标数据块。


5.根据权利要求4所述的方法,其特征在于,在确定所述脏页链表中待刷新的所述目标脏页之前,所述方法还包括:
确定与目标修改数据对应的目标起始位置和目标结束位置,其中,所述目标修改数据为所述目标脏页中的修改数据,所述目标起始位置为所述目标修改数据在所述目标脏页中的起始位置,所述目标结束位置为所述目标修改数据在所述目标脏页中的结束...

【专利技术属性】
技术研发人员:邱海港
申请(专利权)人:北京金山云网络技术有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1