CN112799606B - Io请求的调度方法及装置 - Google Patents

Io请求的调度方法及装置 Download PDF

Info

Publication number
CN112799606B
CN112799606B CN202110375903.8A CN202110375903A CN112799606B CN 112799606 B CN112799606 B CN 112799606B CN 202110375903 A CN202110375903 A CN 202110375903A CN 112799606 B CN112799606 B CN 112799606B
Authority
CN
China
Prior art keywords
request
current
time
target
scheduling
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110375903.8A
Other languages
English (en)
Other versions
CN112799606A (zh
Inventor
孙坚运
赵裕众
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Oceanbase Technology Co Ltd
Original Assignee
ANT Financial Hang Zhou Network Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ANT Financial Hang Zhou Network Technology Co Ltd filed Critical ANT Financial Hang Zhou Network Technology Co Ltd
Priority to CN202110375903.8A priority Critical patent/CN112799606B/zh
Publication of CN112799606A publication Critical patent/CN112799606A/zh
Application granted granted Critical
Publication of CN112799606B publication Critical patent/CN112799606B/zh
Priority to PCT/CN2022/085281 priority patent/WO2022213973A1/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • G06F3/0676Magnetic disk device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本说明书实施例中提供了一种IO请求的调度方法及装置。该方法包括:获取待调度的目标IO请求,并确定目标IO请求是否属于被限流的IO请求;目标IO请求属于未被限流的第一类IO请求时,将当前时刻确定为目标IO请求的调度时刻;目标IO请求属于被限流的第二类IO请求时,根据当前限流资源比例确定目标IO请求的调度时刻,当前限流资源比例是当前时刻所属的当前时间周期中用于处理第二类IO请求的资源比例,当前限流资源比例根据前一时间周期的前一限流资源比例和前一时间周期内调度的第一类IO请求的负载信息计算得到,调度时刻不小于当前时刻;将目标IO请求加入IO请求集合,IO请求集合中的若干IO请求按照调度时刻从小到大的顺序依次被发送到磁盘进行处理。

Description

IO请求的调度方法及装置
技术领域
本说明书一个或多个实施例涉及计算机领域,尤其涉及IO请求的调度方法及装置。
背景技术
对于部分数据存储系统,例如基于日志结构合并树(Log-Structured MergeTree,LSM)结构的数据库,来自应用程序的数据查询请求(也可称为前台任务)发起的IO请求需要占用磁盘的IO资源外,还可能存在不定时的后台任务(例如转储任务或者合并任务)所发起的IO请求需要占用磁盘的IO资源。后台任务发起的IO请求占用过多的IO资源时,将会增加前台任务发起的IO请求的响应时间,造成系统卡顿而影响用户体验。
通常的,为了确保系统的高效运行以提高用户体验,部分IO请求可能需要能够尽快被处理。然而,在确保用户具有较好的用户体验的情况下,无论是前台任务发起的IO请求还是后台任务发起的IO请求均应当尽快被处理。
因此希望有一种新的技术方案,以期能够更好的完成对IO请求进行调度。
发明内容
本说明书一个或多个实施例中提供了一种IO请求的调度方法及装置,能够更好的完成对IO请求进行调度。
第一方面,提供了一种IO请求的调度方法。该方法包括:获取待调度的目标IO请求,并确定所述IO目标请求是否属于被限流的IO请求。当所述目标IO请求属于未被限流的第一类IO请求时,将当前时刻确定为所述目标IO请求的调度时刻;当所述目标IO请求属于被限流的第二类IO请求时,根据当前限流资源比例确定所述目标IO请求的调度时刻,所述当前限流资源比例是当前时刻所属的当前时间周期中用于处理第二类IO请求的资源比例,所述当前限流资源比例根据前一时间周期的前一限流资源比例和前一负载信息计算得到,所述前一负载信息是前一时间周期内调度的第一类IO请求的负载信息,所述调度时刻不小于当前时刻。然后将所述目标IO请求加入IO请求集合,所述IO请求集合中的若干IO请求按照调度时刻从小到大的顺序依次被发送到磁盘进行处理。
在一种可能的实施方式中,第一类IO请求包括前台IO请求,第二类IO请求包括后台IO请求。
在一种可能的实施方式中,将所述目标IO请求加入IO请求集合具体包括:将所述目标IO请求加入通过最小堆来管理的IO请求集合。
在一种可能的实施方式中,根据当前限流资源比例确定所述目标IO请求的调度时刻,包括:根据当前限流资源比例以及获取的上一个第二类IO请求的调度时刻,计算所述目标IO请求的期望调度时刻,所述期望调度时刻与当前限流资源比例负相关;将当前时刻和所述期望调度时刻的较大值确定为所述目标IO请求的调度时刻。
在一种可能的实施方式中,根据当前限流资源比例确定所述目标IO请求的调度时刻,还包括:根据磁盘的性能确定所述目标IO请求的请求带宽所对应的期望读写频次。相应的,根据当前限流资源比例以及获取的上一个第二类IO请求的调度时刻,计算所述目标IO请求的期望调度时刻,具体包括:根据所述期望读写频次、当前限流资源比例,以及获取的上一个第二类IO请求的调度时刻,计算所述目标IO请求的期望调度时刻;其中,所述期望调度时刻与所述期望读写频次负相关。
在一种可能的实施方式中,所述目标IO请求属于未被限流的第一类IO请求时,所述方法还包括:确定获取所述目标IO请求的第一时刻;在第二时刻,从所述IO请求集合中选择所述目标IO请求,并将所述目标IO请求发送到磁盘,其中在所述第二时刻,所述目标IO请求的调度时刻是所述IO请求集合包含的所有IO请求中的最小值;接收磁盘返回的请求结果;向所述目标IO请求对应的应用程序发送所述请求结果,并确定发送所述请求结果的第三时刻;根据所述第三时刻和所述第一时刻确定所述目标IO请求的响应时间。
在一种可能的实施方式中,还包括:在达到当前时间周期的结束时刻时,根据当前时间周期内调度的第一类IO请求的当前负载信息,确定下一时间周期的下一限流资源比例;其中,当前负载信息具体包括,当前时间周期内调度的第一类IO请求的平均响应时间,以及当前时间周期内调度的第一类IO请求的平均请求带宽。
在一种可能的实施方式中,根据当前时间周期内调度的第一类IO请求的当前负载信息,确定下一时间周期的下一限流资源比例,包括:根据磁盘的性能确定所述平均请求带宽对应的期望响应时间;当所述平均响应时间不小于所述期望响应时间时,按照预设步长减小所述当前限流资源比例,获得下一时间周期的下一限流资源比例;或者,当所述平均响应时间小于所述期望响应时间时,按照预设步长增大所述当前限流资源比例,获得下一时间周期的下一限流资源比例。
在一种可能的实施方式中,下一时间周期的下一限流资源比例不大于第一预设阈值且不小于第二预设阈值。
第二方面,提供了一种IO请求的调度方法,包括:获取IO请求集合,所述IO请求集合通过第一方面中任一项所述的方法得到,所述IO请求集合中包括若干IO请求,每个IO请求具有对应的调度时刻;从所述IO请求集合中选择调度时刻最小的IO请求作为当前IO请求;将所述当前IO请求发送到磁盘,使磁盘处理所述当前IO请求并返回请求结果。
在一种可能的实施方式中,将所述当前IO请求发送到磁盘,具体包括:在所述当前IO请求对应的调度时刻小于当前时刻时,将所述当前IO请求发送到磁盘。
第三方面,提供了一种IO请求的调度装置,包括:请求获取单元,配置为获取待调度的目标IO请求;分类确定单元,配置为确定所述目标IO请求是否属于被限流的IO请求;调度时刻确定单元,配置为当所述目标IO请求属于未被限流的第一类IO请求时,将当前时刻确定为所述目标IO请求的调度时刻;当所述目标IO请求属于被限流的第二类IO请求时,根据当前限流资源比例确定所述目标IO请求的调度时刻,所述当前限流资源比例是当前时刻所属的当前时间周期中用于处理第二类IO请求的资源比例,所述当前限流资源比例根据前一时间周期的前一限流资源比例和前一负载信息计算得到,所述前一负载信息是前一时间周期内调度的第一类IO请求的负载信息,所述调度时刻不小于当前时刻;请求调度单元,配置为将所述目标IO请求加入IO请求集合,所述IO请求集合中的若干IO请求按照调度时刻从小到大的顺序依次被发送到磁盘进行处理。
在一种可能的实施方式中,第一类IO请求包括前台IO请求,第二类IO请求包括后台IO请求。
在一种可能的实施方式中,所述请求调度单元,具体配置为将所述目标IO请求加入通过最小堆来管理的IO请求集合。
在一种可能的实施方式中,所述调度时刻确定单元,包括:计算子单元,配置为根据当前限流资源比例以及获取的上一个第二类IO请求的调度时刻,计算所述目标IO请求的期望调度时刻,所述期望调度时刻与当前限流资源比例负相关;第一确定子单元,配置为将当前时刻和所述期望调度时刻的较大值确定为所述目标IO请求的调度时刻。
在一种可能的实施方式中,所述调度时刻确定单元还包括第二确定子单元,配置为根据磁盘的性能确定所述目标IO请求的请求带宽所对应的期望读写频次;所述计算子单元,具体配置为根据所述期望读写频次、当前限流资源比例,以及获取的上一个第二类IO请求的调度时刻,计算所述目标IO请求的期望调度时刻;其中,所述期望调度时刻与所述期望读写频次负相关。
在一种可能的实施方式中,所述装置还包括请求处理单元,配置为所述目标IO请求属于未被限流的第一类IO请求时,确定获取所述目标IO请求的第一时刻;在第二时刻,从所述IO请求集合中选择所述目标IO请求,并将所述目标IO请求发送到磁盘,其中在所述第二时刻,所述目标IO请求的调度时刻是所述IO请求集合包含的所有IO请求中的最小值;接收磁盘返回的请求结果;向所述目标IO请求对应的应用程序发送所述请求结果,并确定发送所述请求结果的第三时刻;根据所述第三时刻和所述第一时刻确定所述目标IO请求的响应时间。
在一种可能的实施方式中,还包括计算单元,配置为在达到当前时间周期的结束时刻时,根据当前时间周期内调度的第一类IO请求的当前负载信息,确定下一时间周期的下一限流资源比例;其中,当前负载信息具体包括,当前时间周期内调度的第一类IO请求的平均响应时间,以及当前时间周期内调度的第一类IO请求的平均请求带宽。
在一种可能的实施方式中,所述计算单元具体配置为根据磁盘的性能确定所述平均请求带宽对应的期望响应时间;当所述平均响应时间不小于所述期望响应时间时,按照预设步长减小所述当前限流资源比例,获得下一时间周期的下一限流资源比例;或者,当所述平均响应时间小于所述期望响应时间时,按照预设步长增大所述当前限流资源比例,获得下一时间周期的下一限流资源比例。
在一种可能的实施方式中,下一时间周期的下一限流资源比例不大于第一预设阈值且不小于第二预设阈值。
第四方面,提供了一种IO请求的调度装置,包括:获取单元,配置为获取IO请求集合,所述IO请求集合通过第三方面中任一项所述的装置得到,所述IO请求集合中包括若干IO请求,每个IO请求具有对应的调度时刻;选择单元,配置为从所述IO请求集合中选择调度时刻最小的IO请求作为当前IO请求;发送单元,配置为将所述当前IO请求发送到磁盘,使磁盘处理所述当前IO请求并返回请求结果。
在一种可能的实施方式中,所述发送单元配置为在所述当前IO请求对应的调度时刻小于当前时刻时,将所述当前IO请求发送到磁盘。
第五方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算设备中执行时,计算设备实现第一方面或第二方面中任一项所述的方法。
第六方面,提供了一种计算设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时,实现第一方面或第二方面中任一项所述的方法。
通过本说明书一个或多个实施例中提供的方法及装置,通过将IO请求划分为未被限流的第一类IO和被限流IO的第二类IO请求,根据前一时间周期内调度的第一类IO请求的负载信息,动态调整当前时间周期内第二类IO请求的限流情况,实现根据磁盘的负载自适应的分配IO资源。如此,既可在磁盘高负载时降低第二类IO请求对IO资源的占用,确保未被限流的第一类IO请求能够尽快被执行,即确保系统的高效运行以提高用户体验,还可在磁盘低负载时增加第二类IO对IO资源的占用,加速第二类IO请求的执行,从而实现更好的完成对IO请求进行调度。
附图说明
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本说明书实施例中提供的一种IO请求的调度方法的流程图;
图2为本说明书实施例中确定第二类IO请求的调度时刻的过程示意图;
图3为本说明书实施例中通过最小堆管理IO请求集合的示意图;
图4为本说明书实施例中提供的另一种IO请求的调度方法的流程图;
图5为本说明书实施例中获取下一时间周期的资源比例的过程示意图;
图6为本说明书实施例中提供的又一种IO请求的调度方法的流程图;
图7为本说明书实施例中提供的一种IO请求的调度装置的结构示意图;
图8为本说明书实施例中提供的另一种IO请求的调度装置的结构示意图。
具体实施方式
下面结合附图,对本说明书所提供的各个非限制性实施例进行详细描述。
包含基于LSM结构的数据库在内的部分数据存储系统,在单位时间内调度的IO请求通常包括前台IO请求和后台IO请求等两种类型的IO请求。
以基于LSM结构的数据库为例。写入新数据的过程包括:首先,活跃Memtable作为LSM的内存数据结构,将负责应用程序对新数据的写入;活跃Memtable中写入相应大小的新数据后将会停止写入,并且被冻结为冻结Memtable,此外还会创建新的活跃Memtable来负责新数据的写入。接着,系统后台可以调度转储任务,通过转储任务将冻结Memtable转换格式转储(Dump)到磁盘中生成SSTable结构文件,此后该冻结Memtable占用的内存可以被释放以供后续的活跃Memtable使用,其中SSTable结构文件也被表述为转储SSTable。此外,还可以在转储SSTable积累到相应数量后,由系统后台调度合并任务将相应数量的转储SSTable合并成基线SSTable并写入磁盘。其中需要说明的是,转储任务或者合并任务将会通过向磁盘发起若干IO请求来实现向磁盘写入转储SSTable或者基线SSTable,其中由转储任务和/或合并任务等后台任务发起的IO请求均属于后台IO请求。
以基于LSM结构的数据库为例。应用程序读取数据时需要发起数据查询请求(数据查询请求属于前台任务),首先会基于数据查询请求查询内存中的Memtable。如果内存中的Memtable并不包含数据查询请求期望查询的目标数据,则需要向磁盘发起若干IO请求来实现从磁盘中的SSTable读取目标数据,数据查询请求发起的IO请求属于前台IO请求。
后台任务发起的IO请求和前台任务发起的IO请求将会对磁盘的IO资源形成竞争。例如在转储任务和合并任务执行期间,往往需要通过大量的后台IO请求实现向磁盘写入大规模数据;如果此时前台任务较多,由于后台IO请求占用过多的磁盘带宽/IO资源,将会导致前台任务所对应的前台IO请求的响应时间增加,进而造成整个前台任务的响应时间增加甚至超时失败。
需要说明的是,数据查询请求查询多个数据源,或者说需要通过超过预设数量的IO请求来实现从磁盘中的SSTable读取某个数据查询请求期望读取的目标数据时,该数据查询请求可以被称为大查询请求。大查询请求会影响其它前台任务所发起的IO请求的响应时间,造成其它前台任务的响应时间增加甚至超时失败。
通常需要对部分IO请求进行直接限流,例如对后台IO请求和/或大查询请求对应的IO请求进行直接限流,使其它IO请求能够尽快被处理,确保系统的高效运行以提高用户体验。然而,如果对部分IO请求进行直接限流,可能会造成被限流的IO请求始终无法被快速执行而带来其它问题,例如对后台IO请求进行直接限流则可能导致转储任务和合并任何执行较慢,甚至造成内存空间不足而无法提供更多的活跃Memtable来写入新数据。
考虑到以上问题,本说明书实施例中至少提供了一种IO请求的调度方法和装置。通过将IO请求划分为未被限流的第一类IO和被限流IO的第二类IO请求,根据前一时间周期内调度的第一类IO请求的负载信息,动态调整当前时间周期内第二类IO请求的限流情况,实现根据磁盘的负载自适应的分配IO资源。如此,既可在磁盘高负载时降低第二类IO请求对IO资源的占用,确保未被限流的第一类IO请求能够尽快被执行,即确保系统的高效运行以提高用户体验,还可在磁盘低负载时增加第二类IO对IO资源的占用,加速第二类IO请求的执行,从而实现更好的完成对IO请求进行调度。
图1为本说明书实施例中提供的一种IO请求的调度方法的流程图。该方法可以由计算设备执行,该方法至少可以包括如下步骤:
步骤101,获取待调度的目标IO请求。
该目标IO请求可以包括前台IO请求或者后台IO请求。
步骤102,确定目标IO请求是否属于被限流的IO请求。
可以将IO请求划分为两个分类,即划分为未被限流的第一类IO请求和被限流的第二类IO请求;具体如何划分第一类IO请求和第二类IO请求,可以结合实际业务需求进行灵活配置。例如,可以将全部的前台IO请求划分到未被限流的第一类IO请求,将全部的后台IO请求划分到被限流的第二类IO请求;或者,将前台IO请求中除大查询请求对应的IO请求以外的其它前台IO请求划分到第一类IO请求,将大查询请求对应的IO请求以及全部的后台IO请求划分到第二类IO请求。
当目标IO请求属于未被限流的第一类IO请求时,执行步骤103,将当前时刻确定为IO请求的调度时刻,并接着执行步骤105。
当目标IO请求属于被限流的第二类IO请求时,执行步骤104,根据当前限流资源比例确定目标IO请求的调度时刻,并接着执行步骤105。
当前限流资源比例是当前时刻所属的当前时间周期中用于处理第二类IO请求的资源比例,该比例越大,则允许更多的IO资源被用于处理第二类IO请求。在一个示例中,当前限流资源比例根据前一时间周期的前一限流资源比例和前一负载信息计算得到,前一负载信息是前一时间周期内调度的第一类IO请求的负载信息,并且该目标IO请求的调度时刻不小于当前时刻。
在一个较为具体的示例中,如图2所示,步骤104可以包括:
步骤1041,根据磁盘的性能确定目标IO请求的请求带宽对应的期望读写频次。
可以通过io_benchmark或者其它磁盘性能测量工具,在初始化计算设备的数据存储系统时对磁盘的性能进行测量,以获得磁盘的性能。
举例来说,可以测量磁盘处理样本请求带宽(后续利用io_size表征单个IO请求的请求带宽)的前台IO请求时,样本io_size对应的样本响应时间(后续利用io_rt表征单个IO请求的响应时间)和样本IOPS(IO request count per second,每秒IO请求计数)。接着对该组样本io_size、样本io_rt和样本IOPS进行存储,例如存储至配置文件io_resource.conf中。测量并存储多组样本io_size、样本io_rt和样本IOPS之后,通常来说不同组中的样本io_size和样本IOPS的乘积相等或者近似于相等,并且样本io_size和样本IOPS的乘积能够用于表征磁盘提供的IO资源/带宽。因此,可以通过对多个组中的样本io_size和样本IOPS进行线性拟合,例如进行对数线性拟合,得到样本io_size和样本IOPS之间的第一线性关系,即得到变量io_size和变量IOPS之间的第一线性关系;以及,通过对多个组中的样本io_size和样本io_rt进行线性拟合,例如进行简单线性拟合,得到样本io_size和样本io_rt之间的第二线性关系,即得到变量io_size和变量io_rt之间的第二线性关系。最后,对第一线性关系和第二线性关系进行存储,以便后续对第一线性关系和第二关系进行使用,其中第一线性关系和第二线性关系可以用于描述磁盘的性能。
相应的,步骤1041中具体可以将目标IO请求的io_size代入第一线性关系中的变量io_size,计算得到第一线性关系中变量IOPS的取值,变量IOPS的取值即为目标IO请求的io_size对应的期望读写频次。
步骤1042,根据期望读写频次、当前限流资源比例,以及获取的上一个第二类IO请求的调度时刻,计算目标IO请求的期望调度时刻。
目标IO请求的期望调度时刻可以是在上一个第二类IO请求的调度时刻上加上期望时间差,该期望时间差与期望读写频次负相关,也与当前限流资源比例负相关。换而言之,期望读写频次越大,当前限流资源比例越大,则预期会在处理上一个第二类IO请求后更短的时间内,处理本次获取的目标IO请求,因此期望时间差越小。
例如,可以通过如下公式1计算目标IO请求的期望调度时刻:
Expect_deadline=last_deadline + 1/ (a*Expect_IOPS) (1)
其中,Expect_deadline表征目标IO请求的期望调度时刻,last_deadline表征在先获取的上一个第二类IO请求的调度时刻,a表征当前限流资源比例,Expect_IOPS表征期望读写频次。
需要说明的是,步骤1041是可选地。与此相应的,在步骤1042中可以根据当前限流资源比例以及上一个第二类IO请求的调度时刻,计算本次获取的目标IO请求的期望调度时刻,例如前述公式1中的Expect_IOPS可以作为非必要的参数而被删除。
在步骤1043,将当前时刻和期望调度时刻中的较大值确定为目标IO请求的调度时刻。
当前时刻是较大值时,说明磁盘负载可能相对较小,当前时刻作为目标IO请求的调度时刻能够使IO请求尽快被处理。
期望调度时刻是较大值时,说明获取的上一个第二类IO请求可能还未被发送到磁盘进行处理,磁盘负载可能相对较大,将期望调度时刻作为目标IO请求的调度时刻能够对第二类IO请求进行限流,单位时间内能够有更多的IO资源被用于处理第一类IO请求,同时还能确保获取的前一个第二类IO请求相比于目标IO请求能够更早的被处理。
回到图1,在步骤105,将目标IO请求加入IO请求集合。
IO请求集合中的若干IO请求按照调度时刻从小到大的顺序依次被发送到磁盘进行处理。在一个较为具体的示例中,为了方便后续过程中快速的实现从IO请求集合中选择调度时刻最小的IO请求,IO请求集合中可以按照调度时刻由小到大的顺序,对IO请求集合中的若干IO请求进行排序以形成IO请求序列;或者,通过堆结构中的最小堆来管理IO请求集合,最小堆是已经按照调度时刻的大小进行排序的完全二叉树,其中作为根节点的IO请求的调度时刻是若干IO请求中的最小值。
举例来说, IO请求集合中包括IO请求A1、A2、A3、A4以及本次加入IO请求集合中的目标IO请求A5,假设按照调度时刻由小到大的顺序排列时可以形成序列A1、A5、A2、A3、A4,通过最小堆来管理IO请求集合时,则可能形成如图3中所示根节点为A1的完全二叉树。其中需要说明的是,该完全二叉树仅仅是示例性,即除了根节点为A1外,其它节点的所在位置可能不同于如图3中所示的完全二叉树。
在一些实施例中,在图1中获取的目标IO请求属于未被限流的第一类IO请求时,还可以进一步根据该目标IO请求从IO请求集合中被读出处理的情况,确定其响应时间,该响应时间用于确定第一类IO请求的负载信息,从而更新前述的限流资源比例。下面参考图4,描述属于第一类IO请求的目标IO请求的处理过程。如图4所示,该处理过程在图1基础上,还可以包括进一步的处理步骤,下面详细描述。
在通过前述步骤102确定目标IO请求为第一类IO请求的情况下,还执行步骤401,确定获取目标IO请求的当前时刻,记为第一时刻。
此外,如前所述,在步骤105将前述目标IO请求加入到IO请求集合中,并且该IO请求集合按照调度时刻从小到大的顺序依次读出IO请求。也就是说,每次从IO请求集合读取IO请求进行处理时,IO请求集合将会“弹出”当前调度时刻最小的IO请求。如此,随着调度时刻更小的IO请求依次被读出,在某些时刻,该目标IO请求成为IO请求集合中调度时刻最小的IO请求。此时,从IO请求集合中读取IO请求时,将读出上述目标IO请求。将该时刻记为第二时刻。
于是,在步骤402,在第二时刻,从IO请求集合中选择上述目标IO请求,并将其发送到磁盘。其中,在第二时刻,上述目标IO请求的调度时刻是IO请求集合包含的所有IO请求中的最小值。
步骤403,接收磁盘返回的请求结果。
步骤404,向目标IO请求对应的应用程序发送请求结果,并确定发送请求结果的第三时刻。
步骤405,根据第三时刻和第一时刻确定目标IO请求的响应时间。
即将第三时刻和第二时刻的时间差确定为目标IO请求的响应时间。
在一些实施例中,为了方便后续对下一时间周期的下一限流资源比例进行更新,在步骤405之后还可以执行步骤406,根据目标IO请求的响应时间和请求带宽,更新已调度的所有第一类IO请求的累计请求带宽和累计响应时间,以及更新已调度的所有第一类IO请求的累计数量。
举例来说,可以定义用于存储累计请求带宽的参数cumulative_size,定义用于存储累计响应时间的参数cumulative_rt,以及定义用于存储累计数量的参数cumulative_count,其中前述三个参数的初始值均可以为0。步骤406中具体根据目标IO请求的请求带宽和响应时间,对cumulative_size以及cumulative_rt的值进行更新,并将cumulative_count的值加1。
在一些实施例中,还可以对当前处理的目标IO请求的响应时间和请求带宽进行独立存储,对当前时间周期内已调度的第一类IO请求的数量进行独立更新,以便根据这些数据确定当前时间周期内调度的第一类IO请求的当前负载信息,并基于当前负载信息获取下一时间周期的下一限流资源比例。
与之相应的,当达到当前时间周期的结束时刻时,还可以执行步骤407,确定当前时间周期内调度的第一类IO请求的当前负载信息。以及执行步骤408,根据当前负载信息获取下一时间周期的下一限流资源比例。
单个时间周期的时长可以灵活配置,例如配置为100ms或者其它数值。
当前负载信息包括当前时间周期内调度的第一类IO请求的平均响应时间,以及当前时间周期内调度的第一类IO请求的平均请求带宽。
举例来说,达到前一时间周期的结束时刻时,cumulative_count的取值为last_count、cumulative_size的值为last_size、cumulative_rt的值为last_rt。达到当前时间周期的结束时刻时,cumulative_count的值为current_count、cumulative_size的值为current_size、cumulative_rt的值为current_rt。则,
可以通过如下公式2计算平均请求带宽:
avg_size=(current_size-last_size)/(current_count-last_count ) (2)
其中,avg_size表征平均请求带宽。
可以通过如下公式3计算平均响应时间:
avg_rt=(current_rt-last_rt)/(current_count-last_count ) (3)
其中,avg_rt表征平均响应时间。
在一个较为具体的示例中,请参考图5,步骤408可以包括:
步骤4081,根据磁盘的性能确定平均请求带宽对应的期望响应时间。
如前所述,磁盘的性能可通过第一线性关系和第二线性关系来描述。这里可以将平均请求带宽代入第二线性关系中的变量io_size,计算出第二线性关系中变量io_rt的取值,变量io_rt的取值即为平均请求带宽所对应的期望响应时间。
步骤4082,确定平均响应时间是否小于期望响应时间。
如果是,则执行步骤4083,按照预设步长增大当前限流资源比例,获得下一时间周期的限流资源比例。
如果否,则执行步骤4084,按照预设步长减小当前限流资源比例,获得下一时间周期的限流资源比例。
如果平均响应时间小于期望响应时间,说明磁盘负载相对较低,增大限流资源比例,减小对第二类IO请求的限流力度,下一时间周期内能够有更多的IO资源被用于处理第二类IO请求。如果平均响应时间不小于期望响应时间,说明磁盘负载相对较高,减小限流资源比例,增大对第二类IO请求的限流力度,下一时间周期内能够有更多的IO资源被用于处理第一类IO请求。
在一些实施例中,可以预先设置限流资源比例的取值范围,即预先设置限流资源比例的取值范围不大于第一预设阈值且不小于第二预设阈值。相应的,如果当前时间周期的当前限流资源比例为第一预设阈值或第二预设阈值,则将当前限流资源比例继续作为下一时间周期的限流资源比例,不再通过步骤4083或步骤4084重新获得下一时间周期的限流资源比例。
第一预设阈值、第二预设阈值以及预设步长可以灵活配置,例如将第一预设阈值配置为50%,将第二预设阈值配置为10%,将预设步长配置为1%。
与前述方法实施例对应的,本说明书实施例中还提供了另一种IO请求的调度方法,该方法由计算设备执行。如图6所示,该方法包括:
步骤601,获取IO请求集合。
该IO请求集合中包括若干IO请求,每个IO请求均是通过如图1或图4所示实施例中的方式加入到IO请求集合的。
步骤602,从所述IO请求集合中选择调度时刻最小的IO请求作为当前IO请求。其中,当前IO请求可能属于未被限流的第一类IO请求,也可能属于被限流的第二类IO请求。
步骤603,将当前IO请求发送到磁盘。
在一种可能的实施方式中,选择当前IO请求之后,如果存在能够用于将当前IO请求发送到磁盘的IO资源,则立即执行步骤603。
在一种可能的实施方式中,选择当前IO请求之后,还可以确定当前IO请求的调度时刻是否小于当前时刻。如果当前IO请求的调度时刻小于当前时刻,并且存在能够用于将当前IO请求发送到磁盘的IO资源,则执行步骤602。如果当前IO请求的调度时刻不小于当前时刻,即使存在能够用于将当前IO请求发送到磁盘的IO资源,也将再次通过步骤602从IO请求集合中重新选择调度时刻最小的IO请求作为新的当前IO请求;对于已经选择的并且未能被发送到磁盘的IO请求,可以在当前时刻大于该IO请求的调度时刻时,通过步骤603将该IO请求发送到磁盘。
当前IO请求属于第一类IO请求时,从IO请求集合中选择当前IO请求的第二时刻大于当前IO请求的调度时刻,当前时刻必然大于当前IO请求的调度时刻。前述的两种实施方式均可确保当前IO请求能够尽快被发送到磁盘进行处理。
当前IO请求属于第二类IO请求时,从IO请求集合中选择当前IO请求之后的当前时刻可能小于当前IO请求的调度时刻。当前时刻小于当前IO请求的调度时刻,说明磁盘在当前时刻的负载可能相对较小。如果将当前IO请求直接发送到磁盘进行处理,能够增加第二类IO请求在单位时间内占用的IO资源,加速第二类IO请求的处理;如果直到当前时刻小于当前IO请求的调度时刻时,才将当前IO请求发送到磁盘进行处理,能够确保第二类IO请求不会过多的占用IO资源,第一类IO请求能够尽快被发送到磁盘进行处理。
需要说明的是,当前IO请求属于第一类IO请求时,该方法还可以包括前述如图4所示方法实施例中步骤403至步骤406中的部分或全部。
与前述方法实施例基于相同的构思,本说明书实施例中还提供了一种IO请求的调度装置。如图7所示,该装置包括:请求获取单元701,配置为获取待调度的目标IO请求;分类确定单元703,配置为确定所述目标IO请求是否属于被限流的IO请求;调度时刻确定单元705,配置为当所述目标IO请求属于未被限流的第一类IO请求时,将当前时刻确定为所述目标IO请求的调度时刻;当所述目标IO请求属于被限流的第二类IO请求时,根据当前限流资源比例确定所述目标IO请求的调度时刻,所述当前限流资源比例是当前时刻所属的当前时间周期中用于处理第二类IO请求的资源比例,所述当前限流资源比例根据前一时间周期的前一限流资源比例和前一负载信息计算得到,所述前一负载信息是前一时间周期内调度的第一类IO请求的负载信息,所述调度时刻不小于当前时刻;请求调度单元707,配置为将所述目标IO请求加入IO请求集合,所述IO请求集合中的若干IO请求按照调度时刻从小到大的顺序依次被发送到磁盘进行处理。
在一种可能的实施方式中,第一类IO请求包括前台IO请求,第二类IO请求包括后台IO请求。
在一种可能的实施方式中,所述请求调度单元707,具体配置为将所述目标IO请求加入通过最小堆来管理的IO请求集合。
在一种可能的实施方式中,所述调度时刻确定单元705,包括:计算子单元,配置为根据当前限流资源比例以及获取的上一个第二类IO请求的调度时刻,计算所述目标IO请求的期望调度时刻,所述期望调度时刻与当前限流资源比例负相关;第一确定子单元,配置为将当前时刻和所述期望调度时刻的较大值确定为所述目标IO请求的调度时刻。
在一种可能的实施方式中,所述调度时刻确定单元705还包括第二确定子单元,配置为根据磁盘的性能确定所述目标IO请求的请求带宽所对应的期望读写频次;所述计算子单元,具体配置为根据所述期望读写频次、当前限流资源比例,以及获取的上一个第二类IO请求的调度时刻,计算所述目标IO请求的期望调度时刻;其中,所述期望调度时刻与所述期望读写频次负相关。
在一种可能的实施方式中,所述装置还包括请求处理单元709,配置为在所述目标IO请求属于未被限流的第一类IO请求时,确定获取所述目标IO请求的第一时刻;在第二时刻,从所述IO请求集合中选择所述目标IO请求,并将所述目标IO请求发送到磁盘,其中在所述第二时刻,所述目标IO请求的调度时刻是所述IO请求集合包含的所有IO请求中的最小值;接收磁盘返回的请求结果;向所述目标IO请求对应的应用程序发送所述请求结果,并确定发送所述请求结果的第三时刻;根据所述第三时刻和所述第一时刻确定所述目标IO请求的响应时间。
在一种可能的实施方式中,还包括计算单元711,配置为在达到当前时间周期的结束时刻时,根据当前时间周期内调度的第一类IO请求的当前负载信息,确定下一时间周期的下一限流资源比例;其中,当前负载信息具体包括,当前时间周期内调度的第一类IO请求的平均响应时间,以及当前时间周期内调度的第一类IO请求的平均请求带宽。
在一种可能的实施方式中,所述计算单元711具体配置为根据磁盘的性能确定所述平均请求带宽对应的期望响应时间;当所述平均响应时间不小于所述期望响应时间时,按照预设步长减小所述当前限流资源比例,获得下一时间周期的下一限流资源比例;或者,当所述平均响应时间小于所述期望响应时间时,按照预设步长增大所述当前限流资源比例,获得下一时间周期的下一限流资源比例。
在一种可能的实施方式中,下一时间周期的下一限流资源比例不大于第一预设阈值且不小于第二预设阈值。
与前述方法实施例基于相同的构思,本说明书实施例中还提供了一种IO请求的调度装置。如图8所示,该装置包括:获取单元801,配置为获取IO请求集合,所述IO请求集合通过如图1或图4中所示方法得到,所述IO请求集合中包括若干IO请求,每个IO请求具有对应的调度时刻;选择单元803,配置为从所述IO请求集合中选择调度时刻最小的IO请求作为当前IO请求;发送单元805,配置为将所述当前IO请求发送到磁盘,使磁盘处理所述当前IO请求并返回请求结果。
在一种可能的实施方式中,所述发送单元805配置为在所述当前IO请求对应的调度时刻小于当前时刻时,将所述当前IO请求发送到磁盘。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本说明书所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能所对应的计算机程序存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令/代码进行传输,以便这些功能所对应的计算机程序被计算机执行时,通过计算机实现本说明书任意一个实施例中所述的方法。
本说明书实施例中还提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算设备中执行时,计算设备执行本说明书任意一个实施例中提供的IO请求的调度方法。
本说明书实施例中还提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现本说明书任意一个实施例中提供的IO请求的调度方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例中相同、相似的部分互相参见即可,每个实施例中重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
上述对本说明书特定实施例进行了描述。其它实施例在本申请要求保护的范围内。在一些情况下,部分动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。

Claims (15)

1.一种IO请求的调度方法,包括:
获取待调度的目标IO请求,并确定所述目标IO请求是否属于被限流的IO请求;
当所述目标IO请求属于未被限流的第一类IO请求时,将当前时刻确定为所述目标IO请求的调度时刻;
当所述目标IO请求属于被限流的第二类IO请求时,根据当前限流资源比例确定所述目标IO请求的调度时刻,所述当前限流资源比例是当前时刻所属的当前时间周期中用于处理第二类IO请求的资源比例,所述当前限流资源比例根据前一时间周期的前一限流资源比例和前一负载信息计算得到,所述前一负载信息是前一时间周期内调度的第一类IO请求的负载信息,所述调度时刻不小于当前时刻;
将所述目标IO请求加入IO请求集合,所述IO请求集合中的若干IO请求按照调度时刻从小到大的顺序依次被发送到磁盘进行处理。
2.根据权利要求1所述的方法,其中,第一类IO请求包括前台IO请求,第二类IO请求包括后台IO请求。
3.根据权利要求1所述的方法,其中,将所述目标IO请求加入IO请求集合具体包括:将所述目标IO请求加入通过最小堆来管理的IO请求集合。
4.根据权利要求1所述的方法,其中,根据当前限流资源比例确定所述目标IO请求的调度时刻,包括:
根据当前限流资源比例以及获取的上一个第二类IO请求的调度时刻,计算所述目标IO请求的期望调度时刻,所述期望调度时刻与当前限流资源比例负相关;
将当前时刻和所述期望调度时刻的较大值确定为所述目标IO请求的调度时刻。
5.根据权利要求4所述的方法,其中,根据当前限流资源比例确定所述目标IO请求的调度时刻,还包括:根据磁盘的性能确定所述目标IO请求的请求带宽所对应的期望读写频次;
根据当前限流资源比例以及获取的上一个第二类IO请求的调度时刻,计算所述目标IO请求的期望调度时刻,具体包括:根据所述期望读写频次、当前限流资源比例,以及获取的上一个第二类IO请求的调度时刻,计算所述目标IO请求的期望调度时刻;其中,所述期望调度时刻与所述期望读写频次负相关。
6.根据权利要求1至5中任一项所述的方法,其中,当所述目标IO请求属于未被限流的第一类IO请求时,所述方法还包括:
确定获取所述目标IO请求的第一时刻;
在第二时刻,从所述IO请求集合中选择所述目标IO请求,并将所述目标IO请求发送到磁盘;其中,在所述第二时刻,所述目标IO请求的调度时刻是所述IO请求集合包含的所有IO请求中的最小值;
接收磁盘返回的请求结果;
向所述目标IO请求对应的应用程序发送所述请求结果,并确定发送所述请求结果的第三时刻;
根据所述第三时刻和所述第一时刻确定所述目标IO请求的响应时间。
7.根据权利要求6所述的方法,其中,还包括:在达到当前时间周期的结束时刻时,根据当前时间周期内调度的第一类IO请求的当前负载信息,确定下一时间周期的下一限流资源比例;其中,当前负载信息具体包括,当前时间周期内调度的第一类IO请求的平均响应时间,以及当前时间周期内调度的第一类IO请求的平均请求带宽。
8.根据权利要求7所述的方法,其中,根据当前时间周期内调度的第一类IO请求的当前负载信息,确定下一时间周期的下一限流资源比例,包括:
根据磁盘的性能确定所述平均请求带宽对应的期望响应时间;
当所述平均响应时间不小于所述期望响应时间时,按照预设步长减小所述当前限流资源比例,获得下一时间周期的下一限流资源比例;或者,当所述平均响应时间小于所述期望响应时间时,按照预设步长增大所述当前限流资源比例,获得下一时间周期的下一限流资源比例。
9.根据权利要求7所述的方法,其中,下一时间周期的下一限流资源比例不大于第一预设阈值且不小于第二预设阈值。
10.一种IO请求的调度方法,包括:
获取IO请求集合,所述IO请求集合通过权利要求1至9中任一项所述的方法得到,所述IO请求集合中包括若干IO请求,每个IO请求具有对应的调度时刻;
从所述IO请求集合中选择调度时刻最小的IO请求作为当前IO请求;
将所述当前IO请求发送到磁盘,使磁盘处理所述当前IO请求并返回请求结果。
11.根据权利要求10所述的方法,其中,将所述当前IO请求发送到磁盘,具体包括:在所述当前IO请求对应的调度时刻小于当前时刻时,将所述当前IO请求发送到磁盘。
12.一种IO请求的调度装置,包括:
请求获取单元,配置为获取待调度的目标IO请求;
分类确定单元,配置为确定所述目标IO请求是否属于被限流的IO请求;
调度时刻确定单元,配置为当所述目标IO请求属于未被限流的第一类IO请求时,将当前时刻确定为所述目标IO请求的调度时刻;当所述目标IO请求属于被限流的第二类IO请求时,根据当前限流资源比例确定所述目标IO请求的调度时刻,所述当前限流资源比例是当前时刻所属的当前时间周期中用于处理第二类IO请求的资源比例,所述当前限流资源比例根据前一时间周期的前一限流资源比例和前一负载信息计算得到,所述前一负载信息是前一时间周期内调度的第一类IO请求的负载信息,所述调度时刻不小于当前时刻;
请求调度单元,配置为将所述目标IO请求加入IO请求集合,所述IO请求集合中的若干IO请求按照调度时刻从小到大的顺序依次被发送到磁盘进行处理。
13.一种IO请求的调度装置,包括:
获取单元,配置为获取IO请求集合,所述IO请求集合通过权利要求12所述的装置得到,所述IO请求集合中包括若干IO请求,每个IO请求具有对应的调度时刻;
选择单元,配置为从所述IO请求集合中选择调度时刻最小的IO请求作为当前IO请求;
发送单元,配置为将所述当前IO请求发送到磁盘,使磁盘处理所述当前IO请求并返回请求结果。
14.一种计算设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时,实现权利要求1-9或者权利要求10-11中任一项所述的方法。
15.一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算设备中执行时,计算设备执行权利要求1-9或者权利要求10-11中任一项所述的方法。
CN202110375903.8A 2021-04-08 2021-04-08 Io请求的调度方法及装置 Active CN112799606B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202110375903.8A CN112799606B (zh) 2021-04-08 2021-04-08 Io请求的调度方法及装置
PCT/CN2022/085281 WO2022213973A1 (zh) 2021-04-08 2022-04-06 Io请求的调度方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110375903.8A CN112799606B (zh) 2021-04-08 2021-04-08 Io请求的调度方法及装置

Publications (2)

Publication Number Publication Date
CN112799606A CN112799606A (zh) 2021-05-14
CN112799606B true CN112799606B (zh) 2021-07-09

Family

ID=75816467

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110375903.8A Active CN112799606B (zh) 2021-04-08 2021-04-08 Io请求的调度方法及装置

Country Status (2)

Country Link
CN (1) CN112799606B (zh)
WO (1) WO2022213973A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112799606B (zh) * 2021-04-08 2021-07-09 蚂蚁金服(杭州)网络技术有限公司 Io请求的调度方法及装置
CN113111099B (zh) * 2021-06-15 2021-08-24 蚂蚁金服(杭州)网络技术有限公司 一种环路检测方法、装置、电子设备与存储介质
CN114168306B (zh) * 2022-02-10 2022-05-17 北京奥星贝斯科技有限公司 调度方法及调度装置
CN117009091B (zh) * 2023-10-07 2023-12-19 浪潮(山东)计算机科技有限公司 一种资源调整方法、装置、设备及可读存储介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10592137B1 (en) * 2017-04-24 2020-03-17 EMC IP Holding Company LLC Method, apparatus and computer program product for determining response times of data storage systems
CN107295090B (zh) * 2017-06-30 2020-01-21 北京奇艺世纪科技有限公司 一种资源调度的方法和装置
CN109783028B (zh) * 2019-01-16 2022-07-15 Oppo广东移动通信有限公司 I/o调度的优化方法、装置、存储介质及智能终端
CN111831436A (zh) * 2020-07-01 2020-10-27 Oppo广东移动通信有限公司 Io请求的调度方法、装置、存储介质及电子设备
CN111831432B (zh) * 2020-07-01 2023-06-16 Oppo广东移动通信有限公司 Io请求的调度方法、装置、存储介质及电子设备
CN112799606B (zh) * 2021-04-08 2021-07-09 蚂蚁金服(杭州)网络技术有限公司 Io请求的调度方法及装置

Also Published As

Publication number Publication date
CN112799606A (zh) 2021-05-14
WO2022213973A1 (zh) 2022-10-13

Similar Documents

Publication Publication Date Title
CN112799606B (zh) Io请求的调度方法及装置
US11340812B2 (en) Efficient modification of storage system metadata
US20170255496A1 (en) Method for scheduling data flow task and apparatus
JP5425286B2 (ja) データ処理システムのメモリ使用状況を追跡する方法
US10459915B2 (en) Managing queries
US9965196B2 (en) Resource reservation for storage system metadata updates
US10255114B2 (en) Abnormality detection apparatus, control method, and program
US7418568B2 (en) Memory management technique
AU2010319840A1 (en) Allocating storage memory based on future use estimates
CN111324427B (zh) 一种基于dsp的任务调度方法及装置
CN110362275B (zh) 提升固态硬盘服务质量的方法及固态硬盘
JP6885193B2 (ja) 並列処理装置、ジョブ管理方法、およびジョブ管理プログラム
US10248618B1 (en) Scheduling snapshots
CA2631255A1 (en) Scalable scheduling of tasks in heterogeneous systems
US20060236065A1 (en) Method and system for variable dynamic memory management
CN108932112B (zh) 一种固态颗粒的数据读写方法、装置、设备及介质
CN108132759B (zh) 一种文件系统中管理数据的方法和装置
CN108446169B (zh) 一种作业调度方法及装置
CN113407343A (zh) 一种基于资源分配的业务处理方法、装置及设备
CN113220650A (zh) 数据存储方法、装置、设备、存储介质及程序
CN117472568A (zh) 一种多线程任务处理方法及终端
US10585620B2 (en) Storage monitoring system for monitoring components in a storage system in a distributed manner
JP3175764B2 (ja) メモリスケジューリング方法及びメモリスケジューリングプログラムを格納する記憶媒体
US20200301732A1 (en) Information processing system and non-transitory computer readable medium storing program
US20090320036A1 (en) File System Object Node Management

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20210914

Address after: 100000 unit 02, floor 901, unit 1, building 1, No. 1, Middle East Third Ring Road, Chaoyang District, Beijing

Patentee after: Beijing Aoxing Beisi Technology Co., Ltd

Address before: 801-10, Section B, 8th floor, 556 Xixi Road, Xihu District, Hangzhou City, Zhejiang Province 310000

Patentee before: Ant financial (Hangzhou) Network Technology Co.,Ltd.

TR01 Transfer of patent right