CN114461139A - 业务处理方法、装置、计算机设备和存储介质 - Google Patents
业务处理方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN114461139A CN114461139A CN202111643867.5A CN202111643867A CN114461139A CN 114461139 A CN114461139 A CN 114461139A CN 202111643867 A CN202111643867 A CN 202111643867A CN 114461139 A CN114461139 A CN 114461139A
- Authority
- CN
- China
- Prior art keywords
- processing
- service
- sequence list
- business
- tasks
- 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.)
- Granted
Links
- 238000003672 processing method Methods 0.000 title abstract description 14
- 230000002776 aggregation Effects 0.000 claims abstract description 90
- 238000004220 aggregation Methods 0.000 claims abstract description 90
- 238000000034 method Methods 0.000 claims abstract description 74
- 238000012163 sequencing technique Methods 0.000 claims abstract description 33
- 238000004590 computer program Methods 0.000 claims abstract description 25
- 230000004931 aggregating effect Effects 0.000 claims description 13
- 238000004422 calculation algorithm Methods 0.000 claims description 10
- 230000008569 process Effects 0.000 description 28
- 230000007246 mechanism Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 239000007787 solid Substances 0.000 description 6
- AYFVYJQAPQTCCC-GBXIJSLDSA-N L-threonine Chemical compound C[C@@H](O)[C@H](N)C(O)=O AYFVYJQAPQTCCC-GBXIJSLDSA-N 0.000 description 5
- 238000011010 flushing procedure Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000002372 labelling Methods 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000007621 cluster analysis Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008844 regulatory mechanism Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种业务处理方法、装置、计算机设备、存储介质和计算机程序产品。所述方法包括:获取业务操作任务;每一业务操作任务对应有业务操作类型;根据所述业务操作任务携带的业务地址编号,将所述业务操作任务进行聚合排序处理,得到对应每一聚合处理结果的顺序列表;根据机械盘投递线程持有的处理令牌,依次对顺序列表中包含的业务操作任务进行处理。采用本方法提供了业务处理效率。
Description
技术领域
本申请涉及数据存储技术领域,特别是涉及一种业务处理方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术
传统的机械硬盘主要由:盘片、磁头、盘片转轴及控制电机,磁头控制器,数据转换器,接口,缓存等几个部件组成。其中,磁头用于定位在盘片的指定位置上进行数据的读写操作。
由于机械硬盘是利用其磁头的摆动来实现数据的读写,因此相较于顺序读写,其根据前端业务指定位置进行随机读写的性能较差。为了提高机械硬盘的读写性能,LinuxBcache块设备缓存利用高性能的固态硬盘,作为机械硬盘的缓存设备,将前端业务数据先写入固态硬盘中,然后再回刷(writeback)到机械硬盘。这样既能实现上层应用的高性能,又能发挥后端机械硬盘的连续处理的性能优势。同时,若固态硬盘的缓存资源不足时,为了满足前端业务处理性能,也会存在bypass(旁路)固态硬盘的情况,即在固态硬盘缓存不足的情况下,前端业务操作绕过固态硬盘,将数据直接写入机械硬盘。
然而,基于目前的块设备缓存优化机械盘的业务数据的处理机制中,并未考虑bypass业务处理方式与writeback业务处理方式之间业务处理顺序上的相互影响,bypass的业务处理方式会打断writeback业务处理方式的顺序性,进而,造成磁头大幅度摆动,占用业务数据处理时间,从而,降低机械硬盘的处理效率。
发明内容
基于此,有必要针对上述技术问题,提供一种业务处理方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
第一方面,本申请提供了一种业务处理方法,所述方法包括:
获取业务操作任务;
根据所述业务操作任务携带的业务地址编号,将所述业务操作任务进行聚合排序处理,得到对应每一聚合排序处理结果的顺序列表;
根据机械盘投递线程持有的处理令牌,依次对所述顺序列表中包含的业务操作任务进行处理。
采用本方法,通过对各种类型的业务操作任务进行聚合排序处理,重新规划机械盘业务处理顺序,减少磁头大幅摆动而不工作的时间,提高业务处理效率。
在其中一个实施例中,每一所述业务操作任务对应有业务操作类型,所述业务操作类型包括写操作类型、读操作类型和回刷操作类型,则所述业务操作任务包括写操作任务、读操作任务和回刷操作任务;在所述获取业务操作任务之后,在所述根据所述业务操作任务携带的业务地址编号,将所述业务操作任务进行聚合排序处理,得到对应每一聚合排序处理结果的顺序列表之前,所述方法还包括:
将所述写操作任务和所述读操作任务分别添加至写操作队列和读操作队列;
获取当前回刷数据量阈值,将等于所述当前回刷数据量阈值的所述回刷操作任务添加至回刷操作队列中,以对所述写操作队列、所述读操作队列和所述回刷操作队列中的业务操作任务进行聚合排序处理;所述当前回刷数据量阈值为根据所述机械盘的业务处理速度得到的。
本实施例中,通过将不同业务操作类型的业务操作任务添加至不同的业务操作队列里,对于操作队列中每一业务流程必须进行加锁操作的情况下,每种业务流程独享一个业务操作队列,减小操作队列中锁的粒度。同时,将不同业务操作类型的业务操作任务分别添加至不同的业务操作队列,使得各种不同类型的业务操作任务的业务流程之间相互独立,加快每个队列的处理时间,提高机械盘整体处理性能。
在一个实施例中,所述根据所述业务操作任务携带的业务地址编号,将所述业务操作任务进行聚合排序处理,得到对应每一聚合排序处理结果的顺序列表,包括:
根据所述业务操作任务携带的业务地址编号,将所述业务操作任务进行排序处理,确定全部的所述业务操作任务的处理顺序,并按照所述处理顺序将所述业务操作任务添加至机械盘投递线程队列中;
对所述机械盘投递线程队列中包含的各所述业务操作任务进行聚合处理,得到对应每一聚合排序处理结果的顺序列表。
本实施例中,通过对不同业务操作类型的业务操作任务进行排序,并对排序后的业务操作任务进行聚合处理,确定聚合处理后每一聚合处理结果的顺序列表,对各业务操作任务进行排序和拆分,以通过机械盘投递线程对每一顺序列表进行处理,提高机械盘投递线程的处理效率。
在其中一个实施例中,所述对机械盘投递线程队列中包含的各所述业务操作任务进行聚合处理,得到对应每一聚合排序处理结果的顺序列表,包括:
基于所述机械盘队列中包含的全部所述业务操作任务的处理顺序,对全部所述业务操作任务进行聚合处理,得到多个聚合处理结果;
将每一所述聚合处理结果包含的所述业务操作任务确定为一个顺序列表,得到多个顺序列表。
本实施例中,通过对机械盘投递线程队列中的操作任务进行聚合排序处理,得到多个聚合处理结果,使得每一聚合排序处理结果中包含的业务操作任务之间更具有业务操作紧密性,减少磁头摆动时间,提高机械盘业务处理性能。
在其中一个实施例中,在所述根据所述业务操作任务携带的业务地址编号,将所述业务操作任务进行聚合排序处理,得到对应每一聚合处理结果的顺序列表之后,在所述根据所述机械盘投递线程所持有的处理令牌,依次对所述顺序列表中包含的业务操作任务进行处理之前,所述方法还包括:
根据所述顺序列表对应的操作时间信息,判别在各所述顺序列表中是否存在超时的顺序列表;
若不存在所述超时的顺序列表,根据各所述顺序列表对应的连续度、业务优先级和操作时间信息,确定各所述顺序列表的处理优先级;
在各所述顺序列表中,确定出所述处理优先级最高的目标顺序列表,并将所述目标顺序列表向所述机械盘进行投递。
本实施例中,通过确定聚合排序处理后的多个顺序列表的处理优先级,进而确定多个顺序列表的处理顺序,计算机设备根据确定出的处理顺序,依次对顺序列表进行处理,由于每一顺序处理列表中包含的业务操作任务的业务操作时间更紧密,业务地址距离相近,进而,提高了机械盘业务处理效率。
在其中一个实施例中,所述方法还包括:
若存在所述超时的顺序列表,则将所述超时的顺序列表作为目标顺序列表,并向所述机械盘进行投递。
在其中一个实施例中,每一所述业务操作任务对应有业务操作类型优先级,所述根据各所述顺序列表对应的连续度、业务优先级和操作时间信息,确定各所述顺序列表的处理优先级,包括:
统计每一所述顺序列表中全部的所述业务操作任务待操作的机械盘存储空间大小,将所述业务操作任务的所述待操作的机械盘存储空间大小作为所述顺序列表的连续度;
将每一所述顺序列表中第一目标业务操作任务业务操作类型对应的优先级,作为所述顺序列表的业务优先级;所述第一目标业务操作任务为所述顺序列表中具备最高业务操作类型优先级的业务操作任务;
将每一所述顺序列表中第二目标业务操作任务对应的业务操作时间,作为所述顺序列表的操作时间信息;所述第二目标业务操作任务为所述顺序列表中具备最早操作时间的业务操作任务;
根据每一所述顺序列表对应的连续度、业务优先级和操作时间信息以及预设的优先级算法,确定每一所述顺序列表的处理优先级。
本实施例中,通过确定每一顺序列表对应的连续度、业务优先级以及操作时间信息,确定每一顺序列表的处理优先级,进而,计算机设备可以基于处理优先级对各顺序列表进行分别处理,及时反馈处理信息,提高前端业务处理性能和提高机械盘处理效率。
在其中一个实施例中,所述根据机械盘投递线程持有的处理令牌,依次对所述顺序列表中包含的业务操作任务进行处理,包括:
判别当前所述机械盘投递线程是否存在处理令牌;
若存在所述处理令牌,则获取所述处理令牌,并对所述顺序列表中待处理的当前业务操作任务进行处理;
判别所述顺序列表中是否存在待处理的业务操作任务,若存在,则执行所述判别当前所述机械盘投递线程是否存在处理令牌的步骤,直至所述顺序列表中的待处理的业务操作任务全部处理完成。
本实施例中,针对聚合处理之后得到的多个顺序列表,根据机械盘中的处理令牌机制,对每一顺序列表中包含的业务操作任务进行处理,提高前端业务操作任务的处理性能。
第二方面,本申请还提供了一种业务处理装置,所述装置包括:
获取模块,用于获取业务操作任务;每一所述业务操作任务对应有业务操作类型;
聚合排序模块,用于根据所述业务操作任务携带的业务地址编号,将所述业务操作任务进行聚合排序处理,得到对应每一聚合处理结果的顺序列表;
处理模块,用于根据机械盘投递的处理令牌,对所述顺序列表中包含的业务操作任务进行处理。
采用本方法,通过对各种类型的业务操作任务进行排序以及聚合处理,重新规划机械盘业务处理顺序,减少磁头大幅摆动而不工作的时间,提高业务处理效率。
第三方面,本申请还提供了一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取业务操作任务;每一所述业务操作任务对应有业务操作类型;
根据所述业务操作任务携带的业务地址编号,将所述业务操作任务进行聚合排序处理,得到对应每一聚合处理结果的顺序列表;
根据所述机械盘投递的处理令牌,依次对所述顺序列表中包含的业务操作任务进行处理。
采用本方法,通过对各种类型的业务操作任务进行排序以及聚合处理,重新规划机械盘业务处理顺序,减少磁头大幅摆动而不工作的时间,提高业务处理效率。
第四方面,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取业务操作任务;每一所述业务操作任务对应有业务操作类型;
根据所述业务操作任务携带的业务地址编号,将所述业务操作任务进行聚合排序处理,得到对应每一聚合处理结果的顺序列表;
根据所述机械盘投递的处理令牌,依次对所述顺序列表中包含的业务操作任务进行处理。
采用本方法,通过对各种类型的业务操作任务进行排序以及聚合处理,重新规划机械盘业务处理顺序,减少磁头大幅摆动而不工作的时间,提高业务处理效率。
第五方面,本申请还提供了一种计算机程序产品,所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
获取业务操作任务;每一所述业务操作任务对应有业务操作类型;
根据所述业务操作任务携带的业务地址编号,将所述业务操作任务进行聚合排序处理,得到对应每一聚合处理结果的顺序列表;
根据所述机械盘投递的处理令牌,依次对所述顺序列表中包含的业务操作任务进行处理。
上述业务处理方法、装置、计算机设备、存储介质和计算机程序产品,获取业务操作任务。其中,每一所述业务操作任务对应有业务操作类型。根据所述业务操作任务携带的业务地址编号,将所述业务操作任务进行聚合排序处理,得到对应每一聚合处理结果的顺序列表。根据机械盘投递线程持有的处理令牌,依次对所述顺序列表中包含的业务操作任务进行处理。采用本方法,通过对各种类型的业务操作任务进行排序以及聚合处理,重新规划机械盘业务处理顺序,减少磁头大幅摆动而不工作的时间,提高业务处理效率。
附图说明
图1为一个实施例中业务处理方法的流程示意图;
图2为一个实施例中前端业务操作任务读/写至机械盘指定位置的示意图;
图3为一个实施例中将不同的业务操作任务在不同业务操作队列中处理步骤的流程图;
图4为一个实施例中对业务操作任务进行聚合排序处理步骤的流程示意图;
图5为一个实施例中常规的业务操作任务在机械盘中执行操作位置的示意图;
图6为一个实施例中对全部的业务操作任务进行聚合处理步骤的流程图;
图7为一个实施例中聚合得到的多个顺序列表的示意图;
图8为一个实施例中确定目标顺序列表步骤的流程示意图;
图9为一个实施例中确定每一顺序列表的处理优先级步骤的流程示意图;
图10为一个实施例中投递处理令牌对业务操作任务处理步骤的流程图;
图11为一个实施例中一种业务处理方法示例的流程示意图;
图12为一个实施例中业务处理装置的结构框图;
图13为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在一个实施例中,如图1所示,提供了一种业务处理方法,本实施例以该方法应用于服务器进行举例说明,可以理解的是,该方法还可以应用于包括终端和服务器的***,并通过终端和服务器的交互实现。本实施例中,该方法包括以下步骤:
步骤102,获取业务操作任务。
其中,每一业务操作任务对应有业务操作类型。
在实施中,用户通过前端操作界面发起业务操作任务的请求,计算机设备响应于业务操作任务的请求,获取到业务操作任务(IO,input/output)。该业务操作任务可以对应有多种类型。例如,旁路操作类型(bypass_IO)和回刷操作类型(writeback IO)。其中,旁路操作类型又包括(旁路)读操作类型(bypass_read IO)和(旁路)写操作类型(bypass_writeIO)
旁路操作类型的业务操作任务直接绕过缓存设备对机械盘(即机械硬盘的简称,本申请实施例均以机械盘作为机械硬盘的简称进行描述,后文不再赘述)进行读或者写操作,如图2所示,前端发送的旁路操作任务请求有bypass_0、bypass_1、bypass_2、bypass_3和bypass_4。针对这5个旁路操作任务,计算机设备根据每一业务操作任务携带的业务地址编号,对应的确定其在机械盘(hdd_position)中的操作位置。即图2中对应的磁头位置,计算机设备进而通过机械盘磁头执行相应的业务操作。
针对回刷操作任务,计算机设备先将回刷操作任务缓存至缓存设备中,然后,再根据每一回刷操作任务携带的业务地址编码,将缓存设备中的待回刷数据回刷至机械盘中,以实现对业务操作任务数据的处理。
步骤104,根据业务操作任务携带的业务地址编号,将业务操作任务进行聚合排序处理,得到对应每一聚合处理结果的顺序列表。
在实施中,每一业务操作任务携带对应的业务操作地址的地址编号(称为业务地址编号),计算机设备根据每一业务操作任务携带的业务地址编号,将不同的业务处理队列中包含的全部业务操作任务按照业务地址编号进行重新排序处理,确定全部的业务操作任务的处理顺序,然后,对排序后的全部业务操作任务进行聚合处理,得到聚合处理后的聚合处理结果。最后,计算机设备以每一聚合处理结果生成对应的顺序列表。
其中,全部的业务操作任务重新排序后的处理顺序是基于业务地址编号的伪顺序,即处理顺序中包含的业务地址编号并非是完全连续的,但是,重新排序后的业务处理顺序遵从业务地址编号由小到大,或者由大到小的顺序。
步骤106,根据机械盘投递的处理令牌,依次对顺序列表中包含的业务操作任务进行处理。
在实施中,机械盘中存在多个处理令牌(token),基于机械盘中预置的处理令牌的投递机制,机械盘可以控制单位时间内机械盘存储***中存储对象(即待处理的业务操作任务IO)的数量,即当机械盘中接收到的业务操作任务对应有处理令牌时,可以处理该业务操作任务的IO请求。一般的,机械盘存储***中对应的处理令牌的数量通常等于该存储***可以同步处理的IO请求的数量。
针对确定出的当前待处理的顺序列表,在该顺序列表中包括多个业务操作任务,基于机械盘的处理令牌投递机制依次对获取到处理令牌的业务操作任务IO请求进行处理。
上述业务处理方法中,计算机设备获取业务操作任务。其中,每一业务操作任务对应有业务操作类型。然后,计算机设备根据业务操作任务携带的业务地址编号,将业务操作任务进行排序处理,确定全部的业务操作任务的处理顺序,并按照处理顺序将业务操作任务添加至机械盘投递线程队列中。进而,计算机设备对机械盘投递线程队列中包含的各业务操作任务进行聚合处理,得到对应每一聚合处理结果的顺序列表。最后,计算机设备根据机械盘投递的处理令牌,依次对顺序列表中包含的业务操作任务进行处理。采用本方法,通过业务地址编号对各种类型的业务操作任务进行排序,重新规划了机械盘业务操作任务的处理顺序,基于该处理顺序对业务操作任务进行聚合处理,得到对应聚合处理结果的顺序列表,分别处理每一顺序列表,减少磁头大幅摆动而不工作的时间,提高业务处理效率。
在一个实施例中,如图3所示,由于业务操作任务对应的业务操作类型包括写操作类型、读操作类型和回刷操作类型,则对应的业务操作任务包括写操作任务、读操作任务和回刷操作任务。因此,针对不同类型的业务操作任务,可以预先建立多个不同类型的业务队列,将对应不同业务操作流程的业务操作任务添加至不同类型的业务操作队列中进行异步处理,具体的,在步骤102之后,在步骤104之前,该方法还包括以下步骤:
步骤302,将写操作任务和读操作任务分别添加至写操作队列和读操作队列。
在实施中,计算机设备将写操作任务(write IO)和读操作任务(read IO)分别添加至写操作队列(write_queue)和读操作队列(read_queue)。具体的,由于前端bypass业务操作任务,需要及时响应处理,因此,若接收到对应的前端写操作任务,计算机设备无条件将该写操作任务添加至写操作队列,若接收到对应的前端读操作任务,计算机设备无条件将该读操作任务添加至读操作队列。
步骤304,获取当前回刷数据量阈值,将等于当前回刷数据量阈值的回刷操作任务添加至回刷操作队列中,以对写操作队列、读操作队列和回刷操作队列中的业务操作任务进行聚合排序处理。
在实施中,由于回刷操作任务无需立即向机械盘申请处理,可以在缓存设备中等待回刷,因此,回刷操作任务的处理量可以根据机械盘的业务处理速度进行相应调整。
回刷数据量阈值(用wb_thre表示)通过Qos(Quality of Service,服务质量)机制进行动态调整,当前回刷数据量阈值是根据机械盘的业务处理速度得到的。当机械盘业务处理速度较快时,则可以多添加一些回刷操作任务进行处理,则增大回刷数据量阈值,当机械盘业务处理速度较慢时,则可以少添加一些回刷操作任务,则减少回刷数据量阈值,以降低机械盘处理压力。
具体的回刷数据量阈值的调整过程可以为:基于Qos调节机制,实时监控机械盘处理速度,当机械盘处理速度过慢时,机械盘中存在的处理令牌(token)数量会下降,计算机设备在监测到token数量下降时,可以减小(成比例下降)回刷数据量阈值,直至回刷数据量阈值到达下限阈值。这样,通过减小回刷数据量阈值,可以降低回刷操作任务的数据量,从而调节机械盘处理速度。当回刷数据量阈值到达下限阈值时,即使token总数量下降,回刷数据量阈值也维持在下限阈值不变,以保证回刷操作任务的处理及时性。当机械盘处理速度较快时,机械盘中存在的处理令牌(token)总数量慢速升高,计算机设备在监测到token数量上升时,可以增大(成比例上升)回刷数据量阈值,直至回刷数据量阈值到达上限阈值。这样,通过增大回刷数据量阈值,可以增大回刷操作任务的数据量,从而调节机械盘处理速度。并且,当回刷数据量阈值到达上限阈值时,即使token总数量上升,回刷数据量阈值仍然维持在上限阈值不变,以防止回刷操作任务过多,无法保证前端bypass任务的处理。
计算机设备获取当前机械盘处理速度下确定出的回刷数据量阈值,并以当前的回刷数据量阈值这一参数,作为向回刷操作队列中添加回刷操作任务的数据量的依据,向回刷操作队列中添加等于当前回刷数据量阈值数量的回刷操作任务,以对上述写操作队列、读操作队列和回刷操作队列中的业务操作任务进行聚合排序处理。
综上,本申请实施例的总体设计中,token总数是相对快速降低,慢速提高,同时回刷操作任务的数据量阈值wb_thre在其阈值范围内同比例变化,相对于前端bypass读/写操作任务无条件的添加至对应的读/写业务操作队列,回刷操作任务需要依赖wb_thre来确定投递数据量。wb_thre不能过大,否则会抢占前端业务的带宽。同时wb_thre也不能过小,防止缓存设备被缓存数据占满,无法提供缓存机制。token总数增大时,会向后端投递更多的IO业务操作任务,为避免发生投递IO排队等待的情况,token数增大的速率缓慢一些。token数降低是当前机械盘已经处于处理缓慢的状态下了,此时,需要快速的降低,减轻机械盘的负载。
在一个实施例中,如图4所示,步骤104的具体处理过程包括:
步骤402,根据业务操作任务携带的业务地址编号,将业务操作任务进行排序处理,确定全部的业务操作任务的处理顺序,并按照处理顺序将业务操作任务添加至机械盘投递线程队列中。
在实施中,在常规的处理业务操作任务的过程中,计算机设备针对每一业务操作任务的业务操作时间以及业务操作类型对应的优先级,将业务操作任务读写或者回刷至机械盘中。然而,该种方式下,由于前端读操作和写操作的业务操作类型对应的优先级均要高于回刷业务操作类型对应的优先级,因此,前端读和写操作任务会打断回刷操作任务的处理顺序。如图5所示,若在回刷操作任务的列表(wb_list)中存在回刷操作任务wb_0、wb_1和wb_2,在前端旁路操作任务中包含bypass_0操作任务(该旁路操作任务为读或写操作任务)。其中,bypass_0的业务操作时间在wb_2之前,则由于bypass业务操作类型对应的优先级高于wb业务操作类型对应的优先级,则bypass_0会打乱回刷操作任务的处理顺序。即图5中显示的,计算机设备将回刷操作任务wb_0回刷至机械盘中t0_s0位置(磁头位置1)、wb_1回刷至机械盘中t0_s1位置(磁头位置2),然后,bypass_0读或者写机械盘t0_s100位置(磁头位置3),最后,再处理回刷操作任务wb_2,将其回刷至机械盘t0_s2。由于bypass业务操作任务的加入,造成机械盘磁头的空摆时间长(即由t0_s1至t0_s100,再返回至t0_s2的时长),业务操作任务处理效率较低。因此,本申请计算机设备在获取到全部的业务操作任务之后,先对业务操作任务基于业务地址编号进行重新排序,确定出全部的业务操作任务的处理顺序之后,按照处理顺序将业务操作任务添加至机械盘投递线程队列(hdd_queue)中。
具体的,每一业务操作任务需要在机械盘的指定位置进行操作,因此,每一业务操作任务携带有对应的业务地址编号(例如,上述位置“t0_s1”)。然后,计算机设备根据业务操作任务携带的业务地址编号,对多个业务操作任务进行排序处理,确定重新规划后的全部的业务操作任务的处理顺序。
步骤404,对机械盘投递线程队列中包含的各业务操作任务进行聚合处理,得到对应每一聚合处理结果的顺序列表。
在实施中,针对确定出的全部业务操作任务的处理顺序,计算机设备根据预设的聚合算法对机械盘投递线程队列中包含的各业务操作任务进行聚合处理,得到对应每一聚合处理结果的顺序列表(seq_list)。
可选的,预设的聚合算法可以是针对各业务操作任务对应的业务地址(表征为业务地址编号),以预设的距离阈值进行的聚合算法,或者是基于预设的业务地址(表征为业务地址编号)为中心进行的聚类分析算法,本申请实施例不做限定。
本实施例中,通过将不同业务操作类型的业务操作任务添加至不同的业务操作队列里,对于操作队列中每一业务流程必须进行加锁操作的情况下,每种业务流程独享一个业务操作队列,减小操作队列中锁的粒度。同时,将不同业务操作类型的业务操作任务分别添加至不同的业务操作队列,使得各种不同类型的业务操作任务的业务流程之间相互独立,加快每个队列的处理时间,提高机械盘整体处理性能。
在一个实施例中,如图6所示,步骤106的具体处理过程包括:
步骤602,基于机械盘投递线程队列中包含的全部业务操作任务的处理顺序,对全部业务操作任务进行聚合处理,得到多个聚合处理结果。
在实施中,计算机设备对机械盘投递线程队列(hdd_queue)中包含的全部业务操作任务按照处理顺序进行聚合处理,得到多个聚合处理结果。具体的,由于机械盘投递线程队列包含的业务操作任务数量较大,各业务操作任务对应的业务操作地址仍然可能是存在分布不均匀的情况。
例如,以r代表bypass读(前端读操作任务),w代表bypass写(前端写操作任务),wb代表writeback(回刷操作任务)。按照处理顺序对业务操作任务进行排序标号,则包括:IO1_r(第1读操作任务)、IO2_r(第2读操作任务)、IO3_w(第3写操作任务)、IO4_w(第4写操作任务)和IO5_wb(第5回刷操作任务),这些业务操作任务对应的机械盘上的业务操作地址的地址编号分别为:t1_s1、t2_s2、t3_s8、t4_s20、t5_s22。其中,该业务地址编号中“tn”表示业务操作任务的处理顺序,即第1业务操作任务对应为“t1”、第2业务操作任务对应为“t2”,……,第n业务操作任务对应为“tn”。该业务地址编号中“sn”表示为位置编号,例如,第1读操作任务的业务地址编号中“s1”表示在机械盘中的业务操作地址在机械盘中的第一位置。因此,针对上述机械盘投递线程队列中的5个业务操作任务,由业务操作任务对应的业务地址编号可以看出,第1读操作任务和第2读操作任务间的位置距离较近,而第4写操作任务和第5回刷操作任务间的位置距离较近,第3写操作任务在机械盘上的写操作地址相对远离其他业务操作任务。因此,针对处于同一机械盘投递线程队列中各业务操作任务,还需要对各业务操作任务进行聚合处理,更进一步的划分各业务操作任务,得到多个聚合结果。
步骤604,将每一聚合处理结果包含的业务操作任务确定为一个顺序列表,得到多个顺序列表。
在实施中,计算机设备将每一聚合处理结果包含的业务操作任务确定为一个顺序列表,其中,每一顺序列表中包含的业务操作任务相对于顺序列表之外的其他业务操作任务,其业务操作时间间隔较短,并且在机械盘中业务操作的地址距离更近。
如图7所示,针对机械盘投递线程队列中包含的全部业务操作任务,进行聚合处理后得到对应的4个顺序列表,分别为:seq_list0、seq_list1、seq_list2和seq_list3,其中,seq_list0包含IO1_r、IO3_w、IO7_w和IO11_w;seq_list1中包含IO2_r、IO4_wb和IO5_w;seq_list2中包含IO6_w、IO8_w和IO12_w;seq_list3包含IO9_wb、IO10_wb。(本申请实施例中的“IO”或者图6中的“io”均代表相同的含义,撰写方式的不同不做区分)。
本实施例中,通过对机械盘投递线程队列中排序处理后的全部业务操作任务进行聚合处理,得到多个聚合处理结果,使得每一聚合处理结果中包含的业务操作任务之间更具有业务操作紧密性,减少磁头摆动时间,提高机械盘业务处理性能。
在一个实施例中,如图8所示,针对机械盘投递线程队列中聚合后得到的多个聚合处理结果,将每一聚合处理结果作为一个顺序列表,则得到多个对应的顺序列表,然后,计算机设备分别确定每个顺序列表在机械盘中的处理优先级,以该处理优先级由大到小的顺序,依次处理每一顺序列表。在步骤104之后,在步骤106之前,该方法还包括:
步骤802,根据顺序列表对应的操作时间信息,判别在各顺序列表中是否存在超时的顺序列表。
在实施中,计算机设备首先以顺序列表的操作时间信息作为判别标准,判别各顺序列表中是否存在超时的顺序列表。
在一种可选的实施方式中,每一顺序列表的操作时间信息以该顺序列表中全部的业务操作任务的业务操作时间信息中最早的业务操作时间信息作为该顺序里列表的业务操作时间,以此来保证每一顺序列表中需要最早处理的业务操作任务的处理时效性。
步骤804,若不存在超时的顺序列表,根据各顺序列表对应的连续度、业务优先级和操作时间信息,确定各顺序列表的处理优先级。
在实施中,当前时刻相对于各顺序列表对应的操作时间信息,当前时刻均未超出各顺序列表的操作时间信息,或者当前时刻与各顺序列表的操作时间信息相比对应的超时时间在预设的超时时间范围内,则不存在超时的顺序列表,进而,可以针对多个维度对顺序列表进行筛选,即根据各顺序列表对应的连续度、业务优先级和操作时间信息三个维度的特征,确定各顺序列表的处理优先级。如图7所示,顺序列表seq_list0的业务优先级(prio)为r,连续度(seq)为4,操作时间(time)为2。顺序列表seq_list1的业务优先级(prio)为r,连续度(seq)为3,操作时间(time)为3。顺序列表seq_list2的业务优先级(prio)为w,连续度(seq)为3,操作时间(time)为4。顺序列表seq_list3的业务优先级(prio)为wb,连续度(seq)为2,操作时间(time)为1。
其中,各顺序列表对应的连续度、业务优先级和操作时间信息这三个维度的特征的确定方法,本申请实施例后文会进行详细描述,在此不再进行赘述。
步骤806,在各顺序列表中,确定出处理优先级最高的目标顺序列表,并将目标顺序列表向机械盘进行投递。
在实施中,针对每一顺序列表确定出的处理优先级,计算机设备在各顺序列表中,确定出当前轮次(即当前包含的各顺序列表中)处理优先级最高的顺序列表作为目标顺序列表(submit_list),对目标顺序列表进行优先处理,即计算机设备向机械盘投递该目标顺序列表中包含的业务操作任务(IO)。
本实施例中,通过确定聚合处理后的多个顺序列表的处理优先级,进而确定多个顺序列表的处理顺序,计算机设备根据确定出的处理顺序,依次对顺序列表进行处理,由于每一顺序处理列表中包含的业务操作任务的业务操作时间更紧密,业务地址距离相近,进而,提高了机械盘业务处理效率。
在一个实施例中,针对上述实施例中的另一种情况,该方法还包括:
若存在超时的顺序列表,则将超时的顺序列表作为目标顺序列表,并向机械盘进行投递。
在实施中,若多个顺序列表中,存在针对当前时间已超时的顺序列表,则需要优先处理该超时的顺序列表,即将该顺序列表作为目标顺序列表,向机械盘进行投递,以对该目标顺序列表中的业务操作任务进行处理。
本实施例中,以顺序列表的操作时间信息作为判断条件,即对应顺序列表中各业务操作任务的最早业务操作时间进行判别,若该业务操作时间已超时,则表征该顺序列表中已存在超时的业务操作任务,进而,以该超时的顺序列表为目标顺序列表,优先处理该顺序列表,以降低顺序列表中各业务操作任务的处理延迟,提高前端业务处理及时性。
在一个实施例中,如图9所示,本申请提供了针对顺序列表对应的连续度、业务优先级和操作时间信息这三个特征维度的确定方式,进而,基于确定出的每一顺序列表的三个特征维度的特征值,计算机设备可以确定每一顺序列表的处理优先级,从而基于处理优先级得到多个顺序列表的处理顺序,即步骤704的具体处理过程包括:
步骤902,统计每一顺序列表中全部的业务操作任务待操作的机械盘存储空间大小,将业务操作任务的待操作的机械盘存储空间大小作为顺序列表的连续度。
在实施中,计算机设备统计每一顺序列表中全部的业务操作任务待操作的机械盘存储空间大小,将业务操作任务的待操作的机械盘存储空间大小作为顺序列表的连续度。因此,如图6中确定出的这4个顺序列表,每一顺序列表的连续度通过计算机设备的统计计算可以得到:seq_list0的连续度为4,seq_list1的连续度为3,seq_list2的连续度为3以及seq_list0的连续度为2。
步骤904,将每一顺序列表中第一目标业务操作任务业务操作类型对应的优先级,作为顺序列表的业务优先级。
其中,第一目标业务操作任务为顺序列表中具备最高业务操作类型优先级的业务操作任务。
在实施中,计算机设备将每一顺序列表中第一目标业务操作任务业务操作类型对应的优先级作为该顺序列表的业务优先级。
具体的,业务操作任务对应有不同的业务操作类型,例如,读操作类型、写操作类型和回刷操作类型。针对不同的业务操作类型,对应有业务操作类型的操作类型优先级,例如,各业务操作类型的优先级预置为:bypass r_IO(旁路(缓存设备)的读业务操作类型)的优先级最高,bypass w_IO(旁路(缓存设备)的写业务操作类型)的优先级次之,而writeback_IO的优先级最低。进而,针对每一顺序列表,识别该顺序列表中包含的全部的业务操作任务对应的业务操作类型,确定其中的最高业务操作类型优先级,将该最高业务操作类型优先级作为顺序列表的业务优先级。
例如,若顺序列表中仅包含bypass w_IO和writeback_IO这两种业务操作类型的业务操作任务,则该顺序列表的业务优先级即为其中最高业务操作类型优先级:bypass w_IO。若顺序列表中包含bypass r_IO、bypass w_IO和writeback_IO三种业务操作类型的业务操作任务,则该顺序列表的业务优先级即为其中最高业务操作类型优先级:bypass r_IO。
步骤906,将每一顺序列表中第二目标业务操作任务对应的业务操作时间,作为顺序列表的操作时间信息。
其中,第二目标业务操作任务为顺序列表中具备最早操作时间的业务操作任务。
在实施中,计算机设备将每一顺序列表中第二目标业务操作任务对应的业务操作时间,作为顺序列表的操作时间信息。
具体的,计算机设备以顺序列表中包含的各业务操作任务对应的最早业务操作时间作为该顺序列表的操作时间依据,识别每一顺序列表中包含的具有最早操作时间的业务操作任务,将该业务操作任务作为第二目标业务操作任务,并以第二目标业务操作任务的业务操作时间作为顺序列表的操作时间信息。
步骤908,根据每一顺序列表对应的连续度、业务优先级和操作时间信息以及预设的优先级算法,确定每一顺序列表的处理优先级。
在实施中,计算机设备根据每一顺序列表确定出的连续度、业务优先级和操作时间信息这三个维度的特征,结合预设的优先级算法,确定每一顺序列表的处理优先级。其中,预设的优先级算法为:连续度*业务优先级/排队时间;其中,该排队时间为当前时间(当前时刻)减去操作时间信息。
进而,计算机设备基于确定出的顺序列表的处理优先级的大小,可以确定出各顺序列表的处理顺序,以使根据确定出的处理顺序依次执行每一顺序列表。
本实施例中,通过确定每一顺序列表对应的连续度、业务优先级以及操作时间信息,确定每一顺序列表的处理优先级,进而,计算机设备可以基于处理优先级对各顺序列表进行分别处理,及时反馈处理信息,提高前端业务处理性能和提高机械盘处理效率。
在一个实施例中,如图10所示,步骤108的具体处理过程包括如下步骤:
步骤1002,判别当前机械盘投递线程是否存在处理令牌。
在实施中,计算机设备判别当前机械盘投递线程是否存在处理令牌。具体的,机械盘投递线程中存在动态数量的处理令牌(token),根据该处理令牌投递机制,机械盘投递线程可以控制单位时间内投递到机械盘进行处理的存储对象(即待处理的业务操作任务IO)的数量,即当机械盘投递线程中存在处理令牌时,可以处理该业务操作任务的IO请求,因此,计算机设备首先判别当前机械盘投递线程是否存在处理令牌。
步骤1004,若存在处理令牌,则获取处理令牌,并对顺序列表中待处理的当前业务操作任务进行处理。
在实施中,若存在处理令牌,则表示机械盘当前业务操作任务的处理数量并未达到上限值,因此,基于机械盘中的处理令牌机制,计算机设备获取处理令牌,根据处理令牌与当前业务操作任务,对该当前业务操作任务进行处理。
步骤1006,判别顺序列表中是否存在待处理的业务操作任务,若存在,则执行判别当前机械盘投递线程是否存在处理令牌的步骤,直至顺序列表中的待处理的业务操作任务全部处理完成。
在实施中,计算机设备判别顺序列表中是否存在待处理的业务操作任务,若存在,则执行上述步骤1002,直至顺序列表中的待处理的业务操作任务全部处理完成。
具体的,在对顺序列表中的每一业务操作任务进行处理时,都需要有对应的处理令牌,因此,若顺序列表中仍存在未处理的业务操作任务,并且机械盘投递线程中还存在处理令牌,则获取该处理令牌,根据该处理令牌的触发,使机械盘投递线程对未处理的业务操作任务IO请求进行处理;若此时机械盘投递线程中不存在处理令牌,则此时需进行业务等待,直至机械盘处理完成其他业务操作任务并释放处理令牌时,计算机设备可以基于新释放的处理令牌对业务操作任务进行处理。计算机设备基于该处理流程,依次处理顺序列表中的每一业务操作任务IO,直至当前顺序列表处理完成。进一步地,计算机设备还可以判断当前机械盘存储***中是否还存在待处理的顺序列表,若存在待处理的顺序列表,则依据上述对顺序列表中业务操作任务的处理方法,对待处理的顺序列表进行处理,本申请实施例不再赘述,直至机械盘存储***中的顺序列表全部处理完成。
本实施例中,针对聚合处理之后得到的多个顺序列表,根据机械盘中的处理令牌机制,对每一顺序列表中包含的业务操作任务进行处理,提高前端业务操作任务的处理性能。
在一个实施例中,如图11所示,提供了一种业务处理方法的示例,该方法包括:
步骤1101,获取业务操作任务。其中,每一业务操作任务对应有业务操作类型,包括:读操作类型、写操作类型和回刷操作类型,则业务操作任务包括写操作任务、读操作任务和回刷操作任务。
步骤1102,将写操作任务和读操作任务分别添加至写操作队列和读操作队列,获取当前回刷数据量阈值,将等于当前回刷数据量阈值的回刷操作任务添加至回刷操作队列中。其中,当前回刷数据量阈值为根据机械盘的业务处理速度得到的。
步骤1103,根据业务操作任务携带的业务地址编号,将不同的业务处理队列中的全部业务操作任务进行排序处理,确定全部的业务操作任务的处理顺序。并按照处理顺序将业务操作任务添加至机械盘投递线程队列中。
步骤1104,对机械盘投递线程队列中包含的各业务操作任务进行聚合处理,得到对应每一聚合处理结果的顺序列表。
步骤1105,在各顺序列表中,确定出目标顺序列表。
步骤1106,判别当前机械盘投递线程是否存在处理令牌,若存在处理令牌,根据机械盘投递的处理令牌,依次对顺序列表中包含的业务操作任务进行处理。其中,处理令牌的总数也基于机械盘的业务处理速度进行动态调整。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的业务处理方法的业务处理装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个业务处理装置实施例中的具体限定可以参见上文中对于业务处理方法的限定,在此不再赘述。
在一个实施例中,如图12所示,提供了一种业务处理装置1200,包括:获取模块1210、确定模块1220、聚合模块1230和处理模块1140,其中:
获取模块1210,用于获取业务操作任务;每一业务操作任务对应有业务操作类型;
聚合排序模块1220,用于根据所述业务操作任务携带的业务地址编号,将所述业务操作任务进行聚合排序处理,得到对应每一聚合处理结果的顺序列表;
处理模块1230,用于根据机械盘投递的处理令牌,对顺序列表中包含的业务操作任务进行处理。
采用本装置1200,通过对各种类型的业务操作任务进行排序以及聚合处理,重新规划机械盘业务处理顺序,减少磁头大幅摆动而不工作的时间,提高业务处理效率。
在一个实施例中,业务操作类型包括写操作类型、读操作类型和回刷操作类型,则业务操作任务包括写操作任务、读操作任务和回刷操作任务;聚合排序模块1220,具体用于将写操作任务和读操作任务分别添加至写操作队列和读操作队列;
获取当前回刷数据量阈值,将等于当前回刷数据量阈值的回刷操作任务添加至回刷操作队列中;当前回刷数据量阈值为根据机械盘的业务处理速度得到的。
在一个实施例中,聚合排序模块1220,具体用于根据所述业务操作任务携带的业务地址编号,将所述业务操作任务进行排序处理,确定全部的所述业务操作任务的处理顺序,并按照所述处理顺序将所述业务操作任务添加至机械盘投递线程队列中;
对所述机械盘投递线程队列中包含的各所述业务操作任务进行聚合处理,得到对应每一聚合处理结果的顺序列表。
在一个实施例中,聚合排序模块,具体用于基于机械盘投递线程队列中包含的全部业务操作任务的处理顺序,对全部业务操作任务进行聚合处理,得到多个聚合处理结果;
将每一聚合处理结果包含的业务操作任务确定为一个顺序列表,得到多个顺序列表。
在一个实施例中,该装置1200还包括:
判别模块,用于根据顺序列表对应的操作时间信息,判别在各顺序列表中是否存在超时的顺序列表;
确定模块,用于若不存在超时的顺序列表,根据各顺序列表对应的连续度、业务优先级和操作时间信息,确定各顺序列表的处理优先级;
投递模块,用于在各顺序列表中,确定出处理优先级最高的目标顺序列表,并将目标顺序列表向机械盘进行投递。
在一个实施例中,该装置1200还包括:
投递模块,还用于若存在超时的顺序列表,则将超时的顺序列表作为目标顺序列表,并向机械盘进行投递。
在一个实施例中,每一业务操作任务对应有业务操作类型优先级,则确定模块具体用于统计每一顺序列表中全部的业务操作任务待操作的机械盘存储空间大小,将业务操作任务的待操作的机械盘存储空间大小作为所述顺序列表的连续度;
将每一顺序列表中第一目标业务操作任务业务操作类型对应的优先级,作为顺序列表的业务优先级;第一目标业务操作任务为顺序列表中具备最高业务操作类型优先级的业务操作任务;
将每一顺序列表中第二目标业务操作任务对应的业务操作时间,作为顺序列表的操作时间信息;第二目标业务操作任务为顺序列表中具备最早操作时间的业务操作任务;
根据每一顺序列表对应的连续度、业务优先级和操作时间信息以及预设的优先级算法,确定每一顺序列表的处理优先级。
在一个实施例中,处理模块1230,具体用于判别当前机械盘投递线程是否存在处理令牌;
若存在处理令牌,则获取处理令牌,并对顺序列表中待处理的当前业务操作任务进行处理;
判别顺序列表中是否存在待处理的业务操作任务,若存在,则执行判别当前机械盘投递线程是否存在处理令牌的步骤,直至顺序列表中的待处理的业务操作任务全部处理完成。
上述业务处理装置1200中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图13所示。该计算机设备包括通过***总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作***、计算机程序和数据库。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的数据库用于存储数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种业务处理方法。
本领域技术人员可以理解,图13中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (11)
1.一种业务处理方法,其特征在于,所述方法包括:
获取业务操作任务;
根据所述业务操作任务携带的业务地址编号,将所述业务操作任务进行聚合排序处理,得到对应每一聚合处理结果的顺序列表;
根据机械盘投递线程持有的处理令牌,依次对所述顺序列表中包含的业务操作任务进行处理。
2.根据权利要求1所述的方法,其特征在于,每一所述业务操作任务对应有业务操作类型,所述业务操作类型包括写操作类型、读操作类型和回刷操作类型,则所述业务操作任务包括写操作任务、读操作任务和回刷操作任务,所述获取业务操作任务之后,在所述根据所述业务操作任务携带的业务地址编号,将所述业务操作任务进行聚合排序处理,得到对应每一聚合排序处理结果的顺序列表之前,所述方法还包括:
将所述写操作任务和所述读操作任务分别添加至写操作队列和读操作队列;
获取当前回刷数据量阈值,将等于所述当前回刷数据量阈值的所述回刷操作任务添加至回刷操作队列中,以对所述写操作队列、所述读操作队列和所述回刷操作队列中的业务操作任务进行聚合排序处理;所述当前回刷数据量阈值为根据所述机械盘的业务处理速度得到的。
3.根据权利要求1或2所述的方法,其特征在于,所述根据所述业务操作任务携带的业务地址编号,将所述业务操作任务进行聚合排序处理,得到对应每一聚合处理结果的顺序列表,包括:
根据所述业务操作任务携带的业务地址编号,将所述业务操作任务进行排序处理,确定全部的所述业务操作任务的处理顺序,并按照所述处理顺序将所述业务操作任务添加至机械盘投递线程队列中;
对所述机械盘投递线程队列中包含的各所述业务操作任务进行聚合处理,得到对应每一聚合处理结果的顺序列表。
4.根据权利要求1所述的方法,其特征在于,所述根据所述业务操作任务携带的业务地址编号,将所述业务操作任务进行聚合排序处理,得到对应每一聚合处理结果的顺序列表之后,在所述根据所述机械盘投递线程所持有的处理令牌,依次对所述顺序列表中包含的业务操作任务进行处理之前所述方法还包括:
根据所述顺序列表对应的操作时间信息,判,别在各所述顺序列表中是否存在超时的顺序列表;
若不存在所述超时的顺序列表,根据各所述顺序列表对应的连续度、业务优先级和操作时间信息,确定各所述顺序列表的处理优先级;
在各所述顺序列表中,确定出所述处理优先级最高的目标顺序列表,并将所述目标顺序列表向所述机械盘进行投递。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
若存在所述超时的顺序列表,则将所述超时的顺序列表作为目标顺序列表,并向所述机械盘进行投递。
6.根据权利要求4所述的方法,其特征在于,每一所述业务操作任务对应有业务操作类型优先级,所述根据各所述顺序列表对应的连续度、业务优先级和操作时间信息,确定各所述顺序列表的处理优先级,包括:
统计每一所述顺序列表中全部的所述业务操作任务待操作的机械盘存储空间大小,将所述待操作的机械盘存储空间大小作为所述顺序列表的连续度;
将每一所述顺序列表中第一目标业务操作任务业务操作类型对应的优先级,作为所述顺序列表的业务优先级;所述第一目标业务操作任务为所述顺序列表中具备最高业务操作类型优先级的业务操作任务;
将每一所述顺序列表中第二目标业务操作任务对应的业务操作时间,作为所述顺序列表的操作时间信息;所述第二目标业务操作任务为所述顺序列表中具备最早操作时间的业务操作任务;
根据每一所述顺序列表对应的连续度、业务优先级和操作时间信息以及预设的优先级算法,确定每一所述顺序列表的处理优先级。
7.根据权利要求1所述的方法,其特征在于,所述根据机械盘投递线程持有的处理令牌,依次对所述顺序列表中包含的业务操作任务进行处理,包括:
判别当前所述机械盘投递线程是否存在处理令牌;
若存在所述处理令牌,则获取所述处理令牌,并对所述顺序列表中待处理的当前业务操作任务进行处理;
判别所述顺序列表中是否存在待处理的业务操作任务,若存在,则执行所述判别当前所述机械盘投递线程是否存在处理令牌的步骤,直至所述顺序列表中的待处理的业务操作任务全部处理完成。
8.一种业务处理装置,其特征在于,所述装置包括:
获取模块,用于获取业务操作任务;每一所述业务操作任务对应有业务操作类型;
聚合排序模块,用于根据所述业务操作任务携带的业务地址编号,将所述业务操作任务进行聚合排序处理,得到对应每一聚合处理结果的顺序列表;
处理模块,用于根据机械盘投递的处理令牌,对所述顺序列表中包含的业务操作任务进行处理。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
11.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111643867.5A CN114461139B (zh) | 2021-12-29 | 2021-12-29 | 业务处理方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111643867.5A CN114461139B (zh) | 2021-12-29 | 2021-12-29 | 业务处理方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114461139A true CN114461139A (zh) | 2022-05-10 |
CN114461139B CN114461139B (zh) | 2024-07-09 |
Family
ID=81407505
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111643867.5A Active CN114461139B (zh) | 2021-12-29 | 2021-12-29 | 业务处理方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114461139B (zh) |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6567886B1 (en) * | 1999-06-30 | 2003-05-20 | International Business Machines Corporation | Disk drive apparatus and control method thereof |
CN1828532A (zh) * | 2006-04-17 | 2006-09-06 | 莱瑞世(北京)软件有限公司 | 一种将业务流程图转换为执行语言的方法 |
JP2009087460A (ja) * | 2007-09-28 | 2009-04-23 | Toshiba Corp | ディスク記憶装置のコマンド処理方法 |
JP2014075089A (ja) * | 2012-10-05 | 2014-04-24 | Canon Inc | 画像管理装置、画像管理方法及びプログラム |
US20160077972A1 (en) * | 2014-09-16 | 2016-03-17 | International Business Machines Corporation | Efficient and Consistent Para-Virtual I/O System |
CN106843765A (zh) * | 2017-01-22 | 2017-06-13 | 郑州云海信息技术有限公司 | 一种磁盘管理方法及装置 |
CN107305473A (zh) * | 2016-04-21 | 2017-10-31 | 华为技术有限公司 | 一种io请求的调度方法及装置 |
US9959052B1 (en) * | 2015-09-17 | 2018-05-01 | Western Digital Technologies, Inc. | Media based cache for data storage device |
CN111427515A (zh) * | 2020-03-27 | 2020-07-17 | 杭州宏杉科技股份有限公司 | Raid重建方法及装置 |
CN111949392A (zh) * | 2020-08-27 | 2020-11-17 | 苏州浪潮智能科技有限公司 | 一种缓存任务队列调度方法、***、终端及存储介质 |
CN111984200A (zh) * | 2020-08-28 | 2020-11-24 | 大连大学 | 海量视频数据存储*** |
CN113434296A (zh) * | 2021-07-01 | 2021-09-24 | 曙光信息产业股份有限公司 | 缓存回刷方法、装置、电子设备及存储介质 |
-
2021
- 2021-12-29 CN CN202111643867.5A patent/CN114461139B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6567886B1 (en) * | 1999-06-30 | 2003-05-20 | International Business Machines Corporation | Disk drive apparatus and control method thereof |
CN1828532A (zh) * | 2006-04-17 | 2006-09-06 | 莱瑞世(北京)软件有限公司 | 一种将业务流程图转换为执行语言的方法 |
JP2009087460A (ja) * | 2007-09-28 | 2009-04-23 | Toshiba Corp | ディスク記憶装置のコマンド処理方法 |
JP2014075089A (ja) * | 2012-10-05 | 2014-04-24 | Canon Inc | 画像管理装置、画像管理方法及びプログラム |
US20160077972A1 (en) * | 2014-09-16 | 2016-03-17 | International Business Machines Corporation | Efficient and Consistent Para-Virtual I/O System |
US9959052B1 (en) * | 2015-09-17 | 2018-05-01 | Western Digital Technologies, Inc. | Media based cache for data storage device |
CN107305473A (zh) * | 2016-04-21 | 2017-10-31 | 华为技术有限公司 | 一种io请求的调度方法及装置 |
CN106843765A (zh) * | 2017-01-22 | 2017-06-13 | 郑州云海信息技术有限公司 | 一种磁盘管理方法及装置 |
CN111427515A (zh) * | 2020-03-27 | 2020-07-17 | 杭州宏杉科技股份有限公司 | Raid重建方法及装置 |
CN111949392A (zh) * | 2020-08-27 | 2020-11-17 | 苏州浪潮智能科技有限公司 | 一种缓存任务队列调度方法、***、终端及存储介质 |
CN111984200A (zh) * | 2020-08-28 | 2020-11-24 | 大连大学 | 海量视频数据存储*** |
CN113434296A (zh) * | 2021-07-01 | 2021-09-24 | 曙光信息产业股份有限公司 | 缓存回刷方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114461139B (zh) | 2024-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10635485B2 (en) | Devices, systems, and methods for lockless distributed object input/output | |
US20150127863A1 (en) | Maintaining i/o priority and i/o sorting | |
US6301639B1 (en) | Method and system for ordering priority commands on a commodity disk drive | |
US9742869B2 (en) | Approach to adaptive allocation of shared resources in computer systems | |
CN111324427B (zh) | 一种基于dsp的任务调度方法及装置 | |
JP2013509658A (ja) | 将来の使用推量に基づく記憶メモリの割り当て | |
US9823875B2 (en) | Transparent hybrid data storage | |
US10884667B2 (en) | Storage controller and IO request processing method | |
US11429314B2 (en) | Storage device, storage system and operating method thereof | |
US11914894B2 (en) | Using scheduling tags in host compute commands to manage host compute task execution by a storage device in a storage system | |
US10965610B1 (en) | Systems and methods for allocating shared resources in multi-tenant environments | |
US10686721B2 (en) | Storage device access mediation | |
CN116893899A (zh) | 资源分配方法、装置、计算机设备和存储介质 | |
US8478952B1 (en) | Flexible optimized group-based backups | |
CN114461139A (zh) | 业务处理方法、装置、计算机设备和存储介质 | |
US8245229B2 (en) | Temporal batching of I/O jobs | |
US10452553B1 (en) | Systems and methods for distributing cache space | |
CN113742059B (zh) | 任务分配方法、装置、计算机设备和存储介质 | |
CN115499513A (zh) | 数据请求的处理方法、装置、计算机设备和存储介质 | |
CN115202842A (zh) | 任务调度方法及装置 | |
US10992517B1 (en) | Dynamic distributed execution budget management system | |
JP2020503613A (ja) | ストレージコントローラおよびioリクエスト処理方法 | |
CN111488222B (zh) | 一种流聚合方法、装置及电子设备 | |
US10254962B2 (en) | Asynchronously clearing page frames | |
US9785578B2 (en) | Apparatus and method for controlling access to a memory device |
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 |