一种磁盘调度方法、装置、设备及计算机可读存储介质制造方法及图纸

技术编号:26761584 阅读:18 留言:0更新日期:2020-12-18 23:00
本申请提供了一种磁盘调度方法、装置、设备及计算机可读存储介质;方法包括:获取应用程序的至少一个应用层写请求;确定所述至少一个应用层写请求中每一所述应用层写请求的物理地址空间;根据每一所述应用层写请求的物理地址空间,将每一所述应用层写请求拆分为至少一个调度层写请求;其中,每一所述调度层写请求的物理地址空间中的地址连续;为所述至少一个调度层写请求分配相同的请求组号;根据每一调度层写请求的请求组号,依次按组执行各调度层写请求。通过本申请,能够有效降低物理机器断电或者系统异常对用户写请求数据一致性的影响,提高用户写请求的数据安全性。

【技术实现步骤摘要】
一种磁盘调度方法、装置、设备及计算机可读存储介质
本申请涉及计算机
,尤其涉及一种磁盘调度方法、装置、设备及计算机可读存储介质。
技术介绍
磁盘的访问速度,一直是计算机系统中的瓶颈。在访问磁盘中的数据时,首先需要经过一个寻道的过程,即将盘片旋转到特定的扇区,然后由磁头来读取数据。一般来说,寻道时间会占磁盘访问时间中的很大比重。输入/输出(Input/Output,IO)调度器通过磁盘IO调度,将访问磁盘上相邻地址的请求放在一起处理,可以减少不必要的寻道时间,从而提高磁盘访问效率。相关技术中,在处理写请求时,IO调度器会在将待执行的写请求加入写请求队列后,基于特定的调度算法调度执行写请求队列中的各个写请求。当系统掉电或死机时,写请求队列中未处理完的写请求数据会丢失,从而会影响相应的写请求数据的一致性。
技术实现思路
本申请实施例提供一种磁盘调度方法、装置、设备及计算机可读存储介质,能够有效降低物理机器断电或者系统异常对用户写请求数据一致性的影响,提高用户写请求的数据安全性。本申请实施例的技术方案是这样实现的:本申请实施例提供一种磁盘调度方法,包括:获取应用程序的至少一个应用层写请求;确定所述至少一个应用层写请求中每一所述应用层写请求的物理地址空间;根据每一所述应用层写请求的物理地址空间,将每一所述应用层写请求拆分为至少一个调度层写请求;其中,每一所述调度层写请求的物理地址空间中的地址连续;为所述至少一个调度层写请求分配相同的请求组号;根据每一调度层写请求的请求组号,依次按组执行各调度层写请求。在一些实施例中,所述根据每一所述应用层写请求的物理地址空间,将每一所述应用层写请求拆分为至少一个调度层写请求,包括:在所述应用层写请求的物理地址空间中的地址不连续的情况下,确定所述物理地址空间中的每一连续地址空间;对所述应用层写请求进行解析,得到所述应用层写请求的待写入数据;对所述应用层写请求的待写入数据进行拆分,得到每一连续地址空间的待写入数据;将每一所述连续地址空间的待写入数据携带在一所述调度层写请求中。在一些实施例中,所述根据每一所述应用层写请求的物理地址空间,将每一所述应用层写请求拆分为至少一个调度层写请求,还包括:在所述应用层写请求的物理地址空间中的地址连续的情况下,将每一所述应用层写请求确定为一所述调度层写请求。在一些实施例中,所述根据每一调度层写请求的请求组号,依次按组执行各调度层写请求,包括:针对每一请求组号,对具有所述请求组号的每一调度层写请求进行排序,得到排序后的调度层写请求队列;对各请求组号进行排序,得到排序后的请求组号;基于所述排序后的请求组号,依次按组执行与每一请求组号对应的调度层写请求队列中的各调度层写请求。在一些实施例中,所述对具有所述请求组号的每一调度层写请求进行排序,得到与所述请求组号对应的排序后的调度层写请求队列,包括:确定具有所述请求组号的每一调度层写请求;确定每一所述调度层写请求的起始物理地址;根据每一所述调度层写请求的起始物理地址,对各调度层写请求进行排序;将排序后的每一所述调度层写请求,依次加入与所述请求组号对应的调度层写请求队列。在一些实施例中,所述对各请求组号进行排序,得到排序后的请求组号,包括:确定每一调度层写请求的起始物理地址;针对每一请求组号,将具有所述请求组号的各调度层写请求的起始物理地址的平均值,确定为所述请求组号的平均地址值;根据每一请求组号的平均地址值,对各请求组号进行排序,得到排序后的请求组号。在一些实施例中,所述根据每一调度层写请求的请求组号,依次按组执行各调度层写请求,包括:按照每一调度层写请求的请求组号,对各调度层写请求进行分组,得到至少一个调度层写请求组;获取所述至少一个调度层写请求组中的一调度层写请求组;执行所述调度层写请求组中的各调度层写请求;在所述至少一个调度层写请求组中存在待执行的调度层写请求组的情况下,从所述待执行的调度层写请求组中获取下一调度层写请求组;执行所述下一调度层写请求组中的各调度层写请求。本申请实施例提供一种磁盘调度装置,包括:获取模块,用于获取应用程序的至少一个应用层写请求;确定模块,用于确定所述至少一个应用层写请求中每一所述应用层写请求的物理地址空间;拆分模块,用于根据每一所述应用层写请求的物理地址空间,将每一所述应用层写请求拆分为至少一个调度层写请求;其中,每一所述调度层写请求的物理地址空间中的地址连续;分配模块,用于为每一所述调度层写请求分配请求组号,其中,同一所述应用层写请求拆分的至少一个调度层写请求具有相同的请求组号;执行模块,用于根据每一调度层写请求的请求组号,依次按组执行各调度层写请求。在一些实施例中,所述拆分模块还用于:在所述应用层写请求的物理地址空间中的地址不连续的情况下,确定所述物理地址空间中的每一连续地址空间;对所述应用层写请求进行解析,得到所述应用层写请求的待写入数据;对所述应用层写请求的待写入数据进行拆分,得到每一连续地址空间的待写入数据;将每一所述连续地址空间的待写入数据携带在一所述调度层写请求中。在一些实施例中,所述拆分模块还用于:在所述应用层写请求的物理地址空间中的地址连续的情况下,将每一所述应用层写请求确定为一所述调度层写请求。在一些实施例中,所述执行模块还用于:针对每一请求组号,对具有所述请求组号的每一调度层写请求进行排序,得到排序后的调度层写请求队列;对各请求组号进行排序,得到排序后的请求组号;基于所述排序后的请求组号,依次按组执行与每一请求组号对应的调度层写请求队列中的各调度层写请求。在一些实施例中,所述执行模块还用于:确定具有所述请求组号的每一调度层写请求;确定每一所述调度层写请求的起始物理地址;根据每一所述调度层写请求的起始物理地址,对各调度层写请求进行排序;将排序后的每一所述调度层写请求,依次加入与所述请求组号对应的调度层写请求队列。在一些实施例中,所述执行模块还用于:确定每一调度层写请求的起始物理地址;针对每一请求组号,将具有所述请求组号的各调度层写请求的起始物理地址的平均值,确定为所述请求组号的平均地址值;根据每一请求组号的平均地址值,对各请求组号进行排序,得到排序后的请求组号。在一些实施例中,所述执行模块还用于:按照每一调度层写请求的请求组号,对各调度层写请求进行分组,得到至少一个调度层写请求组;获取所述至少一个调度层写请求组中的一调度层写请求组;执行所述调度层写请求组中的各调度层写请求;在所述至少一个调度层写请求组中存在待执行的调度层写请求组的情况下,从所述待执行的调度层写请求组中获取下一调度层写请求组;执行所述下一调度层写请求组中的各调度层写请求。本申请实施例提供一种计算机设备,包括:存储器,用于存储可执行指令;处理器,用于执行所述存储器中存储的可执行指令时,实现本申请实施例提供的磁盘调度方法。本申请实施例提供一种计算机可读存储介质,存储有可执行指令,用于引起处理器执行时,实现本申请实施例提供的磁盘本文档来自技高网...

【技术保护点】
1.一种磁盘调度方法,其特征在于,包括:/n获取应用程序的至少一个应用层写请求;/n确定所述至少一个应用层写请求中每一所述应用层写请求的物理地址空间;/n根据每一所述应用层写请求的物理地址空间,将每一所述应用层写请求拆分为至少一个调度层写请求;其中,每一所述调度层写请求的物理地址空间中的地址连续;/n为所述至少一个调度层写请求分配相同的请求组号;根据每一调度层写请求的请求组号,依次按组执行各调度层写请求。/n

【技术特征摘要】
1.一种磁盘调度方法,其特征在于,包括:
获取应用程序的至少一个应用层写请求;
确定所述至少一个应用层写请求中每一所述应用层写请求的物理地址空间;
根据每一所述应用层写请求的物理地址空间,将每一所述应用层写请求拆分为至少一个调度层写请求;其中,每一所述调度层写请求的物理地址空间中的地址连续;
为所述至少一个调度层写请求分配相同的请求组号;根据每一调度层写请求的请求组号,依次按组执行各调度层写请求。


2.根据权利要求1所述的方法,其特征在于,所述根据每一所述应用层写请求的物理地址空间,将每一所述应用层写请求拆分为至少一个调度层写请求,包括:
在所述应用层写请求的物理地址空间中的地址不连续的情况下,确定所述物理地址空间中的每一连续地址空间;
对所述应用层写请求进行解析,得到所述应用层写请求的待写入数据;
对所述应用层写请求的待写入数据进行拆分,得到每一连续地址空间的待写入数据;
将每一所述连续地址空间的待写入数据携带在一所述调度层写请求中。


3.根据权利要求2所述的方法,其特征在于,所述根据每一所述应用层写请求的物理地址空间,将每一所述应用层写请求拆分为至少一个调度层写请求,还包括:
在所述应用层写请求的物理地址空间中的地址连续的情况下,将每一所述应用层写请求确定为一所述调度层写请求。


4.根据权利要求1至3中任一项所述的方法,其特征在于,所述根据每一调度层写请求的请求组号,依次按组执行各调度层写请求,包括:
针对每一请求组号,对具有所述请求组号的每一调度层写请求进行排序,得到排序后的调度层写请求队列;
对各请求组号进行排序,得到排序后的请求组号;
基于所述排序后的请求组号,依次按组执行与每一请求组号对应的调度层写请求队列中的各调度层写请求。


5.根据权利要求4所述的方法,其特征在于,所述对具有所述请求组号的每一调度层写请求进行排序,得到与所述请求组号对应的排序后的调度层写请求队列,包括:
确定具有所述请求组号的每一调度层写请求;
确定每一所述调度层写请求的起始物理地址;
根据每一所述调度层写请求的起始物理地址,对各...

【专利技术属性】
技术研发人员:金振成
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东;44

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

1