CN114610485A - 资源处理系统以及方法 - Google Patents
资源处理系统以及方法 Download PDFInfo
- Publication number
- CN114610485A CN114610485A CN202210211124.9A CN202210211124A CN114610485A CN 114610485 A CN114610485 A CN 114610485A CN 202210211124 A CN202210211124 A CN 202210211124A CN 114610485 A CN114610485 A CN 114610485A
- Authority
- CN
- China
- Prior art keywords
- thread
- transaction
- information
- module
- resource
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5018—Thread allocation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本说明书实施例提供资源处理系统以及方法,其中所述资源处理系统包括:资源协调模块,被配置为通过检测共享数据结构获得待处理事务;确定所述待处理事务关联的至少两个线程模块,并向每个线程模块发送事务处理请求;每个线程模块,被配置为基于所述事务处理请求确定线程状态信息,并将所述线程状态信息反馈至所述资源协调模块;所述资源协调模块,还被配置为根据每个线程模块的线程状态信息确定所述待处理事务对应的事务处理信息,并向每个线程模块发送所述事务处理信息;每个线程模块,还被配置为基于所述事务处理信息对所述待处理事务进行处理;其中,各个线程模块所属的物理资源相同。
Description
技术领域
本说明书实施例涉及资源调度技术领域,特别涉及资源处理系统以及方法。
背景技术
随着互联网技术的发展,云计算在越来越多的场景中得以应用,其不仅可以支持高并发的服务,还能够充分的利用资源完成事务的处理操作,成为了现有技术中应用较为广泛的一种资源。而在云环境下,CPU的任务调度器若需要实现资源调度或负载均衡,需要不断的与各个CPU进行交互,而此环境下,不同的任务之间的调度决策可能互相产生依赖;例如,开启了超线程的机器上,两个不同的虚拟机所对应的虚拟机CPU不能同时运行在同一个机器CPU上的两个不同的超线程,如果违反该规则,就会导致在任务处理时虚拟机之间可以相互攻击;不仅会消耗大量的调度资源,还会影响任务安全性,因此亟需一种有效的方案以解决上述问题。
发明内容
有鉴于此,本说明书实施例提供了一种资源处理系统。本说明书一个或者多个实施例同时涉及两种资源处理方法,两种资源处理装置,一种计算设备,一种计算机可读存储介质以及一种计算机程序,以解决现有技术中存在的技术缺陷。
根据本说明书实施例的第一方面,提供了一种资源处理系统,包括:
资源协调模块,被配置为通过检测共享数据结构获得待处理事务;确定所述待处理事务关联的至少两个线程模块,并向每个线程模块发送事务处理请求;
每个线程模块,被配置为基于所述事务处理请求确定线程状态信息,并将所述线程状态信息反馈至所述资源协调模块;
所述资源协调模块,还被配置为根据每个线程模块的线程状态信息确定所述待处理事务对应的事务处理信息,并向每个线程模块发送所述事务处理信息;
每个线程模块,还被配置为基于所述事务处理信息对所述待处理事务进行处理;其中,各个线程模块所属的物理资源相同。
根据本说明书实施例的第二方面,提供了一种资源处理方法,应用于资源协调模块,包括:
通过检测共享数据结构获得待处理事务;
确定所述待处理事务关联的至少两个线程模块,并向每个线程模块发送事务处理请求;
接收每个线程模块针对所述事务处理请求反馈的线程状态信息;
基于所述线程状态信息确定所述待处理事务对应的事务处理信息,并向每个线程模块发送所述事务处理信息。
根据本说明书实施例的第三方面,提供了另一种资源处理方法,应用于线程模块,包括:
接收资源协调模块针对待处理事务发送的事务处理请求;
根据所述事务处理请求确定线程状态信息,并将所述线程状态信息反馈至所述资源协调模块;
接收所述资源协调模块针对所述线程状态信息反馈的事务处理信息;
基于所述事务处理信息对所述待处理事务进行处理。
根据本说明书实施例的第四方面,提供了一种资源处理装置,应用于资源协调模块,包括:
检测事务单元,被配置为通过检测共享数据结构获得待处理事务;
确定线程单元,被配置为确定所述待处理事务关联的至少两个线程模块,并向每个线程模块发送事务处理请求;
接收信息单元,被配置为接收每个线程模块针对所述事务处理请求反馈的线程状态信息;
发送信息单元,被配置为基于所述线程状态信息确定所述待处理事务对应的事务处理信息,并向每个线程模块发送所述事务处理信息。
根据本说明书实施例的第五方面,提供了一种资源处理装置,应用于线程模块,包括:
接收请求单元,被配置为接收资源协调模块针对待处理事务发送的事务处理请求;
确定信息单元,被配置为根据所述事务处理请求确定线程状态信息,并将所述线程状态信息反馈至所述资源协调模块;
接收信息单元,被配置为接收所述资源协调模块针对所述线程状态信息反馈的事务处理信息;
处理事务单元,被配置为基于所述事务处理信息对所述待处理事务进行处理。
根据本说明书实施例的第六方面,提供了一种计算设备,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令时实现上述资源处理方法的步骤。
根据本说明书实施例的第七方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该指令被处理器执行时实现上述资源处理方法的步骤。
根据本说明书实施例的第八方面,提供了一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行上述资源处理方法的步骤。
本说明书提供的资源处理系统,资源协调模块通过检测共享数据结构获得待处理事务的情况下,为了能够提高事务处理效率,以及资源消耗成本的降低,此时可以确定待处理事务关联的至少两个线程模块,且各个线程模块所属的物理资源相同;之后向每个线程模块分别发送事务处理请求,每个线程模块可以根据事务处理请求确定线程状态信息,并将其反馈到资源协调模块;资源协调模块可以通过整合各个线程模块的线程状态信息确定待处理事务的事务处理信息,并将事务处理信息反馈给各个线程模块,最后每个线程模块即可根据事务处理信息对待处理事务进行处理操作。实现在进行事务处理时,可以通过资源协调模块统计各个线程模块的线程状态,以决定是否对待处理事务进行处理,且在处理过程中,将采用统一决策完成,保证待处理事务要么被全部线程执行,要么全部线程都不执行,从而提高事务处理安全性的同时,提高事务处理效率,以降低资源消耗成本。
附图说明
图1是本说明书一个实施例提供的一种资源处理系统的结构示意图;
图2是本说明书一个实施例提供的一种资源处理方法的流程图;
图3是本说明书一个实施例提供的另一种资源处理方法的流程图;
图4是本说明书一个实施例提供的一种资源处理装置的结构示意图;
图5是本说明书一个实施例提供的另一种资源处理装置的结构示意图;
图6是本说明书一个实施例提供的一种计算设备的结构框图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本说明书。但是本说明书能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本说明书内涵的情况下做类似推广,因此本说明书不受下面公开的具体实施的限制。
在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
首先,对本说明书一个或多个实施例涉及的名词术语进行解释。
CPU:(Central Processing Unit,处理器)作为计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元。
超线程:一种在CPU上模拟多个逻辑线程的技术,把多线程处理器一块物理芯片模拟成两个逻辑CPU,让单个处理器就能使用线程级的并行计算,进而兼容多线程操作系统和软件。超线程技术充分利用空闲CPU资源,在相同时间内完成更多工作。
VM:(Virtual Machine,虚拟机)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。在实体计算机中能够完成的工作在虚拟机中都能够实现。在计算机中创建虚拟机时,需要将实体机的部分硬盘和内存容量作为虚拟机的硬盘和内存容量。每个虚拟机都有独立的CMOS、硬盘和操作系统,可以像使用实体机一样对虚拟机进行操作。
vCPU:电脑中的虚拟处理器;相对于物理CPU而言,虚拟机内的CPU。
云计算:(Cloud Computing)是分布式计算的一种,指的是通过网络“云”将巨大的数据计算处理程序分解成无数个小程序,然后,通过多部服务器组成的系统进行处理和分析这些小程序得到结果并返回给用户。
在本说明书中,提供了一种资源处理系统,本说明书同时涉及两种资源处理方法,两种资源处理装置,一种计算设备,一种计算机可读存储介质以及一种计算机程序,在下面的实施例中逐一进行详细说明。
实际应用中,CPU的任务调度器需要不断的回答两个问题,一个是任务应该在那个CPU上运行,以及每个CPU下一时刻应该运行按个任务。一般来说,每个任务是相互独立的。但是在云环境下,不同的任务之间的调度决策可能互相产生依赖。例如,在开启了超线程的x86-64机器上,两个不同VM所对应的vCPU不能同时运行在同一个CPU上的两个不同的超线程;这是因为同一个CPU不同超线程的任务,共享CPU流水线和高速缓存上的某些资源。如果违反了这一规则,一个恶意的VM就可以利用漏洞攻击另一个VM。然而现有技术中的调度器都是基于任务之间的调度决策是相互独立这一设定来实现的;其虽然能够达到调度的效果,但是无法解决上述问题,如Linux内核使用的调度器CFS。
CFS是一个通用调度器,它的目标应用是所有Linux进程与线程。由于当前主流的虚拟化方案使用QEMU-KVM,而在QEMU-KVM中,每一个vCPU都是一个Linux的任务,所以使用CFS调度vCPU是可行的。但CFS并不区分vCPU和普通任务,所以CFS无法满足虚拟化环境下特有的需求。而改进版CFS加入了云环境的需求。例如,改进版CFS可以首先在某个超线程上调度一个vCPU,然后通过某种机制通知关联的vCPU进行相应的调度。但这里的问题在于这两次调度之间可能存在时间差,因为调度器通常依赖时钟中断来进行调度和负载均衡。考虑一个每秒产生200次时钟中断的CPU,那么这个时间差最大为5ms(数学期望为2.5ms)。这5ms可能被攻击者利用,从而造成安全隐患。
如果在调度器CFS的基础上小范围修改则容易引起不一致的问题,即对多个vCPU的调度决策可能只对部分vCPU生效,这种不一致会导致严重的安全隐患问题。因此亟需一种有效的方案以解决上述问题。
有鉴于此,本说明书提供的资源处理系统,资源协调模块通过检测共享数据结构获得待处理事务的情况下,为了能够提高事务处理效率,以及资源消耗成本的降低,此时可以确定待处理事务关联的至少两个线程模块,且各个线程模块所属的物理资源相同;之后向每个线程模块分别发送事务处理请求,每个线程模块可以根据事务处理请求确定线程状态信息,并将其反馈到资源协调模块;资源协调模块可以通过整合各个线程模块的线程状态信息确定待处理事务的事务处理信息,并将事务处理信息反馈给各个线程模块,最后每个线程模块即可根据事务处理信息对待处理事务进行处理操作。实现在进行事务处理时,可以通过资源协调模块统计各个线程模块的线程状态,以决定是否对待处理事务进行处理,且在处理过程中,将采用统一决策完成,保证待处理事务要么被全部线程执行,要么全部线程都不执行,从而提高事务处理安全性的同时,提高事务处理效率,以降低资源消耗成本。
图1示出了根据本说明书一个实施例提供的一种资源处理系统的结构示意图,资源处理系统100,包括资源协调模块110以及至少两个线程模块120,线程模块120分别为线程模块1,线程模块2…线程模块n,其中n为正整数,且n≥1。具体的,资源处理系统100,包括:
资源协调模块100,被配置为通过检测共享数据结构获得待处理事务;确定所述待处理事务关联的至少两个线程模块,并向每个线程模块发送事务处理请求;
每个线程模块120,被配置为基于所述事务处理请求确定线程状态信息,并将所述线程状态信息反馈至所述资源协调模块;
所述资源协调模块110,还被配置为根据每个线程模块的线程状态信息确定所述待处理事务对应的事务处理信息,并向每个线程模块发送所述事务处理信息;
每个线程模块120,还被配置为基于所述事务处理信息对所述待处理事务进行处理;其中,各个线程模块所属的物理资源相同。
具体的,资源协调模块具体是指云计算环境下负责协调不同超线程的模块,即开启超线程的CPU;相应的,线程模块具体是指资源协调模块开启的超线程对应的模块,用于运行虚拟机的vCPU,实现对待处理事务的处理。也就是说,资源协调模块为开启超线程的CPU;相应的,每个线程模块为运行虚拟机的超线程。
相应的,共享数据结构具体是指存储待处理事务的队列、数组或者二叉树等,具体应用时,可以根据实际应用场景设定,本实施例在此不作任何限定;相应的,待处理事务具体是指在云计算环境下需要执行的事务,即资源使用方需要使用云计算资源运行的事务,通过运行该事务实现相应的项目服务。相应的,事务处理请求具体是指向各个线程模块发送的对待处理事务进行处理的请求,每个线程模块将根据事务处理请求响应于资源调度器调度同一CPU中不同虚拟机对应的vCPU,实现通过虚拟机对应的vCPU运行待处理事务。
需要说明的是,为了能够包含事务执行的安全性,以及提高资源利用率,各个线程模块所属的物理资源相同,也就是说,执行待处理事务的超线程属于同一CPU,且各个超线程所调度的资源属于该CPU中不同虚拟机对应的vCPU。
相应的,线程状态信息具体是指线程模块当前时刻是否可以处理待处理事务的状态信息;相应的,事务处理信息具体是指资源协调模块根据各个线程模块反馈的线程状态信息确定的信息,用于确定是否需要超线程同时调用资源对待处理事务进行处理,其需要保持一致性,即全部超线程对应的线程状态信息均为可执行待处理事务的状态时,确定需要调度资源对待处理事务进行处理;或者任意一个超线程对应的线程状态信息为不可执行待处理事务状态的情况下,确定当前时刻不对待处理事务进行处理,即保证资源调度或负载均衡时,同一CPU下的超线程可以同时进行或同时不进行。相应的,对待处理事务进行处理即为通过vCPU资源执行待处理事务,实现前端的项目运行。
基于此,在调度器进行资源调度或负载均衡时,为了能够保证事务执行安全的同时,提高资源利用率;资源协调模块可以先通过检测共享数据结构,确定待处理事务,并根据检测结果确定资源调度器需要执行待处理事务,则此时为了能够保证待处理事务执行完成,且提高资源利用率,可以先确定待处理事务对应的至少两个超线程,且确定的超线程属于同一CPU,之后向每个超线程发送待处理事务对应的事务处理请求,即同时各个超线程需要执行待处理事务。
每个超线程接收到待处理事务对应的事务处理请求后,考虑到各个超线程属于同一CPU,且分别对应不同的虚拟机,因此各个超线程可能在运行其他事务,为了能够保证事务执行安全性,每个超线程可以根据当前时刻的状态信息,向资源协调模块反馈线程状态信息。资源协调模块在得到各个超线程反馈的线程状态信息后,即可根据各个超线程的状态创建事务处理信息,以决定是否需要通过当前时刻调度的超线程运行待处理事务;即保证同时执行或同时不执行;之后向各个超线程发送事务处理信息,最后超线程即可根据事务处理信息对待处理事务进行处理,实现完成对应事务处理信息的操作。
本实施例以负载均衡为例对上述资源处理方法进行说明;例如同一CPU下创建有VM0和VM1,其中,VM0对应有vCPU0,VM1对应有vCPU1,而该CPU开启了超线程模式,因此vCPU0将运行在超线程HT-x上,vCPU1运行在超线程HT-y上;基于此,根据资源调度器的调度结果,确定需要通过vCPU0和vCPU1运行待处理事务,且超线程HT-x和超线程HT-y处于运行状态;则此时可以根据调度结果确定需要使用超线程HT-s运行vCPU0,相应的,与超线程HT-s属于同一CPU的超线程HT-t将运行vCPU1,实现结合同一CPU下的超线程运行相应的资源,完成待处理事务的执行。
进一步的,超线程HT-s的调度器向CPU发起形如vCPU0->HT-s,以及vCPU1->HT-t的待处理事务,CPU此时确定超线程HT-s和HT-t将要运行待处理事务,则向各个超线程发送事务处理请求,由于HT-s决定运行vCPU0,因此CPU可以默认超线程HT-s反馈的线程状态信息为OK,则此时将接收超线程HT-t反馈的线程状态信息。
在超线程HT-t的线程状态信息与超线程HT-s的线程状态信息均为OK的情况下,说明可以对待处理事务进行执行,则CPU会向超线程HT-s和HT-t分别反馈事务执行信息,超线程HT-s和HT-t将根据事务执行信息分别调度资源vCPU0和vCPU1处理待处理事务。
在超线程HT-t的线程状态信息与超线程HT-s的线程状态信息不一致的情况下,说明超线程HT-t的线程状态信息为Abort,即超线程HT-t当前时刻无法执行待处理事务,则CPU会向超线程HT-s和HT-t分别反馈事务中断信息,超线程HT-s和HT-t将根据事务中断信息放弃执行待处理事务,即不进行资源vCPU0和vCPU1的调度,继续由超线程HT-x和HT-y运行资源vCPU0和vCPU1,实现待处理事务的处理操作。
需要说明的是,在进行资源调度时,也可以采用上述实施例中相同或相应的描述内容完成资源处理,本实施例在此不作过多赘述。
综上,资源协调模块通过检测共享数据结构获得待处理事务的情况下,为了能够提高事务处理效率,以及资源消耗成本的降低,此时可以确定待处理事务关联的至少两个线程模块,且各个线程模块所属的物理资源相同;之后向每个线程模块分别发送事务处理请求,每个线程模块可以根据事务处理请求确定线程状态信息,并将其反馈到资源协调模块;资源协调模块可以通过整合各个线程模块的线程状态信息确定待处理事务的事务处理信息,并将事务处理信息反馈给各个线程模块,最后每个线程模块即可根据事务处理信息对待处理事务进行处理操作。实现在进行事务处理时,可以通过资源协调模块统计各个线程模块的线程状态,以决定是否对待处理事务进行处理,且在处理过程中,将采用统一决策完成,保证待处理事务要么被全部线程执行,要么全部线程都不执行,从而提高事务处理安全性的同时,提高事务处理效率,以降低资源消耗成本。
进一步的,云计算环境下,若需要通过线程模块完成待处理事务的执行处理操作,需要通过资源调度器完成;也就是说,需要先由资源调度器完成资源调度或负载均衡,之后再根据调度结果进行后续的事务处理操作;即资源处理系统还包括资源调度器;所述资源调度器,被配置为接收所述待处理事务;针对所述待处理事务配置待使用资源,并根据配置结果创建资源调度信息;将携带有所述资源调度信息的所述待处理事务写入所述共享数据结构。
具体的,资源调度器具体是指云计算环境下,为了提高资源利用率对可运行资源进行调度的处理器,用于实现资源调度和负载均衡;相应的,待使用资源具体是指资源调度器根据各个节点反馈的资源运行情况,针对待处理事务所分配的可使用资源;相应的,资源调度信息具体是指针对待处理事务分配完成待使用资源所创建的信息,用于告知资源协调模块需要使用的资源有哪些,用于后续实现待处理事务的处理。
基于此,当资源调度器确定需要执行待处理事务的情况下,可以先针对待处理事务指明待使用资源,即指明一批调度或一批负载均衡决策,并根据待使用资源的配置结果创建资源调度信息,将携带有资源调度信息的待处理事务写入共享数据结构,实现后续对接资源调度器的资源协调模块可以通过共享数据结构确定需要执行的待处理事务,完成后续的处理操作。
综上,为了能够支持后续的事务处理操作,可以先通过资源调度器完成资源调度信息的创建,并将其写入共享数据结构,实现后续的资源协调模块通过检测共享数据模块启动待处理事务的处理机制,完成对待处理事务的处理。
更进一步的,在将携带有资源调度信息的待处理事务写入共享数据结构后,资源协调模块将通过检测共享数据结构确定待处理事务,而在此过程中,由于待处理事务携带有资源调度信息,因此资源协调模块在进行线程确定时,可以结合资源调度信息完成,本实施例中,所述资源协调模块,进一步被配置为通过对所述共享数据结构进行检测,获得携带有所述资源调度信息的所述待处理事务;根据所述资源调度信息确定所述待处理事务关联的所述至少两个线程模块;在确定所述待处理事务为待执行状态的情况下,向每个线程模块发送所述事务处理请求。
具体的,当资源调度器将携带有资源读取信息的待处理事务写入共享数据结构中后,说明通过检测共享数据结构中可以确定针对待处理事务分配的待使用资源的决策信息,则此时资源协调模块可以通过对共享数据结构进行检测,获得携带有资源调度信息的待处理事务,之后资源协调模块根据资源调度信息可以确定执行待处理事务的至少两个超线程。当资源协调模块确定资源调度器需要执行待处理事务的情况下,说明待处理事务为待执行状态,可以向每个超线程发送待处理事务对应的事务处理请求,以方便后续每个超线程可以根据具体线程状态信息反馈事务处理信息。
在此过程中,为了能够提高事务处理的安全性,即避免同一CPU下的不同虚拟机之间相互攻击,可以选择属于同一物理资源的线程模块作为执行待处理事务的线程模块;资源协调模块,进一步被配置为根据所述资源调度信息选择所述待处理事务关联的事务线程模块,并确定所述事务线程模块所属的所述物理资源;在所述物理资源中选择所述事务线程模块关联的至少一个关联线程模块;基于所述事务线程模块和所述至少一个关联线程模块组成所述待处理事务关联的所述至少两个线程模块。
具体的,事务线程模块具体是指空闲的超线程中能够对待处理事务进行处理的超线程;相应的,物理资源具体是指线程模块所属的CPU;相应的,关联线程模块具体是指与事务线程模块属于同一物理资源的其他超线程,通过选择所属同一物理资源的超线程确定待处理事务关联的线程模块,可以保证在执行待处理事务时环境的安全性,同时能够充分利用计算资源,提高事务处理效率。
基于此,资源协调模块根据资源调度信息将先确定能够执行待处理事务的事务线程模块,之后为了保证事务处理的安全性,此时可以确定事务线程模块所属的无力资源,之后在物理资源中选择事务线程模块关联的至少一个关联线程模块,结合事务线程模块和至少一个关联线程模块组成待处理事务对应的至少两个线程模块即可,用于后续可以通过至少两个线程模块完成对待处理事务的处理,保证事务处理效率。
沿用上例,资源调度器在确定需要针对待处理事务进行负载均衡时,可以先针对待处理事务分配资源vCPU0和vCPU1;之后根据资源配置结果创建资源调度信息,此时将携带有资源调度信息的待处理事务写入共享数据结构中即可。CPU通过对共享数据结构进行检测,确定需要使用资源vCPU0和vCPU1对待处理事务进行处理,则此时根据资源调度信息确定运行资源vCPU0的超线程HT-s,之后再确定与超线程HT-s属于同一CPU的另一个超线程HT-t,基于超线程HT-s和HT-t组成处理待处理事务的目标超线程,以用于后续分别运行资源vCPU0和vCPU1,对待处理事务进行处理。
综上,通过选择同一物理资源对应的线程模块组成待处理事务关联的至少两个待处理事务,不仅可以保证后续对待处理事务进行处理的安全性,还能够提高事务处理效率,实现提高资源利用率。
进一步的,当资源协调模块确定资源调度器需要执行待处理事务的情况下,则资源协调模块需要向执行待处理事务的线程模块发送事务处理请求,在此过程中,为了能够保证各个线程模块可以及时响应于事务处理请求作出反馈,则可以结合关联待处理事务的资源准备信息的中断请求完成事务处理请求的创建;本实施例中,所述资源协调模块,进一步被配置为针对每个线程模块分别确定资源准备信息,创建携带有所述资源准备信息的中断请求作为所述事务处理请求,并发送至每个线程模块。
具体的,资源准备信息具体是指通知各个线程模块需要对待处理事务进行处理的准备信息,各个线程模块可以响应于资源准备信息反馈当前时刻是否可以对待处理事务进行处理的信息;相应的,中断请求具体是指承载资源准备信息的核间中断,用于对各个线程模块进行运行中断。
基于此,当资源协调模块确定待处理事务关联的至少两个线程模块的情况下,可以针对每个线程模块分别创建资源准备信息,以用于可以通知各个线程模块需要执行待处理事务;之后创建携带有资源准备信息的核间中断,并将其作为事务处理请求发给各个线程模块,实现各个线程模块可以基于核间中断及时针对执行待处理事务的操作作出响应。
综上,通过创建携带有资源准备信息的中断请求作为事务处理请求,可以使得各个线程模块在接收到事务处理请求后,及时针对事务处理请求作出响应,从而有效的提高了事务处理效率。
更进一步的,各个线程模块在接收到携带有资源准备信息的中断请求后,则将第一时间针对中断请求作出响应;本实施例中,每个线程模块,进一步被配置为接收携带有所述资源准备信息的所述中断请求,并根据所述中断请求调用中断处理函数;通过所述中断处理函数对所述资源准备信息进行处理,根据信息处理结果确定所述线程状态信息。
具体的,中断处理函数具体是指能够基于资源准备信息向资源协调模块反馈线程状态信息的函数,其反馈的线程状态信息用于表征当前时刻线程模块的执行状态,线程状态信息分别为OK和Abort,其中,线程状态信息OK表示线程模块同意执行待处理事务;线程状态信息Abort表示线程模块由于某些原因拒绝执行待处理事务。
基于此,当线程模块接收到携带有资源准备信息的核间中断后,此时无论线程模块处理何种状态,都将根据核间中断调用中断处理函数,之后通过中断处理函数对资源准备信息进行处理,确定当前时刻线程模块对应的线程状态信息,并将线程状态信息反馈给资源协调模块,以实现资源协调模块可以根据各个线程模块反馈的线程状态信息作出相应的操作。
沿用上例,CPU在确定待处理事务关联的超线程HT-s和HT-t后,此时可以针对各个超线程创建Prepare,之后将其整合在核间中断中发送给超线程HT-s和HT-t;超线程HT-s和HT-t接收到携带有Prepare的核间中断,将调用中断处理函数,之后根据中断处理函数确定线程状态信息为OK或者Abort,并将其反馈给CPU,以进行后续的事务处理操作。
综上,通过以核间中断携带资源准备信息进行事务请求,可以使得每个线程模块能够快速的响应于核间中断作出反馈,以保证在各个线程模块对应的线程状态信息均为可执行状态的情况下,可以快速的完成对待处理事务的处理操作。
进一步的,各个线程模块与资源协调模块进行信息通信时,为了能够应对复杂的通信场景,可以通过信息共享单元完成信息的通信;本实施例中,每个线程模块,还被配置为将所述线程状态信息写入信息共享单元;
相应的,所述资源协调模块,还被配置为通过轮询所述信息共享单元,确定每个线程模块对应的线程状态信息;根据每个线程模块对应的线程状态信息确定所述待处理事务对应的所述事务处理信息,并将所述事务处理信息写入所述信息共享单元;
相应的,每个线程模块,还被配置为通过轮询所述信息共享单元确定所述事务处理信息,并基于所述事务处理信息对所述待处理事务进行处理。
具体的,信息共享单元具体是指线程模块与资源协调模块之间进行通信时所使用的共享变量,包括但不限于网络、内存、局域网等;即用于支持各个线程模块可以快速的连通资源协调模块;相应的,当将信息写入信息共享单元后,信息共享单元中的变量将会发生改变,轮询信息共享单元的资源协调模块或线程模块可以根据变量的变化确定各自需要的信息。
基于此,当各个超线程根据事务处理请求确定各自对应的线程状态信息后,可以将线程状态信息写入信息共享单元;之后资源协调模块将不断的对信息共享单元进行轮询,当信息共享单元被各个超线程完成线程状态信息的写入后,此时资源协调模块将根据轮询结果确定每个超线程对应的线程状态信息,之后可以根据各个超线程反馈的线程状态信息确定事务处理信息,以决定是否对待处理事务进行处理;之后由于处理事务的操作由各个超线程完成,因此还需要将事务处理信息写入信息共享单元。最后每个超线程可以通过轮询信息共享单元,确定事务处理信息,并按照事务处理信息对待处理事务进行处理即可。
以超线程HT-s和HT-t需要反馈的线程状态信息OK为例,对通过信息共享单元传递消息的过程进行描述;超线程HT-s和HT-t此时将分别向共享变量中写入线程状态信息OK;之后CPU通过轮询共享变量确定超线程HT-s和HT-t是否同意执行待处理事务,根据轮询结果确定超线程HT-s和HT-t反馈的线程状态信息均为OK,则此时可以创建事务执行信息Commit,并将其写入共享变量;超线程HT-s和HT-t通过轮询共享变量确定事务执行信息为Commit,即可根据事务执行信息Commit分别调度资源vCPU0和vCPU1处理待处理事务。
综上,通过以信息共享单元为基础建立各个线程模块与资源协调模块之间的通信链路,可以使得各个线程模块和资源协调模块快速的确定相互反馈的信息,以提高事务处理效率,同时能够降低信息传递时间。
具体实施时,考虑到各个线程模块在执行待处理事务时,将根据资源协调模块反馈的事务处理信息完成,在此过程中,而为了能够保证事务处理的安全性,则需要各个线程模块均为可使用状态才能够实现;本实施例中,所述资源协调模块,进一步被配置为根据每个线程模块对应的线程状态信息确定所述至少两个线程模块为可使用状态的情况下,根据所述可使用状态创建事务执行信息作为所述事务处理信息,并将所述事务处理信息写入所述信息共享单元;
相应的,每个线程模块,进一步被配置为通过轮询所述信息共享单元确定所述事务执行信息,根据所述事务执行信息确定目标资源,并将所述目标资源写入资源调度队列;在所述目标资源满足所述资源调度队列的事务处理条件的情况下,通过所述目标资源对所述待处理事务进行处理。
具体的,可使用状态具体是指线程模块可以对待处理事务进行处理;相应的,事务执行信息具体是指全部线程模块都同意处理待处理事务;相应的,目标资源具体是指线程模块需要运行的资源,用于处理待处理事务;相应的,资源调度队列具体是指线程模块对应的队列,用于对将要运行的目标资源进行规范化排队。相应的,事务处理条件具体是指目标资源被运行条件。
基于此,资源协调模块根据每个线程模块反馈的线程状态信息,确定各个线程模块均为可使用状态的情况下,说明至少两个线程模块中的各个线程模块均同意对待处理事务进行处理,此时可以根据使用状态创建事务执行信息作为事务处理信息,并将其写入到信息共享单元;各个线程模块通过轮询信息共享单元,确定关联待处理事务的线程模块都同意处理待处理事务,则各个线程模块可以根据事务执行信息确定各自运行的目标资源,并将目标资源写入资源调度队列;并在目标资源满足资源调度队列的事务处理条件的情况下,说明线程模块可以运行目标资源,则此时通过目标资源对待处理事务进行处理即可。
沿用上例,确定超线程HT-s和HT-t反馈的线程状态信息均为OK,则此时CPU将根据各个超线程的线程状态信息OK创建事务执行信息Commit,并将其写入共享变量;超线程HT-s和HT-t通过轮询共享变量确定事务执行信息为Commit,则此时超线程HT-s会将资源vCPU0写入其对应的资源调度队列,以及超线程HT-t会将资源vCPU1写入其对应的资源调度队列;以用于后续满足事务处理条件的情况下,通过资源vCPU0和vCPU1对待处理事务进行处理。
另一方面,在存在任意一个线程模块无法处理待处理事务的情况下,则此时资源协调模块,还被配置为根据每个线程模块对应的线程状态信息确定至少一个线程模块为非使用状态的情况下,根据所述非使用状态创建事务中断信息作为所述事务处理信息,并将所述事务处理信息写入所述信息共享单元;
相应的,每个线程模块,还被配置为通过轮询所述信息共享单元确定所述事务中断信息,根据所述事务中断信息确定至少两个目标线程模块,并向所述至少两个目标线程模块发送所述待处理事务。
具体的,非使用状态具体是指线程模块无法在当前时刻处理待处理事务;相应的,事务中断信息具体是指资源协调者取消处理待处理事务的信息。
基于此,资源协调模块根据每个线程模块反馈的线程状态信息,确定存在至少一个线程模块反馈的线程状态信息表征线程模块为非使用状态的情况下,说明存在至少一个线程模块无法在当前时刻对待处理事务进行处理,则此时资源协调模块可以根据非使用状态创建事务中断信息作为事务处理信息,并将其写入到信息共享单元;当各个线程模块通过轮询信息共享单元确定有其他线程模块无法处理待处理事物的情况下,则此时可以根据事务中断信息确定至少两个目标线程模块,之后由目标线程模块对待处理事务进行处理。
沿用上例,在超线程HT-t的线程状态信息与超线程HT-s的线程状态信息不一致的情况下,说明超线程HT-t的线程状态信息为Abort,即超线程HT-t当前时刻无法执行待处理事务,则CPU会向共享变量中写入事务中断信息Fail;超线程HT-s和HT-t通过轮询共享变量确定事务中断信息Fail,则确定超线程HT-s和HT-t将根据事务中断信息Fail放弃执行待处理事务,即不进行资源vCPU0和vCPU1的调度,可以继续由超线程HT-x和HT-y运行资源vCPU0和vCPU1,实现待处理事务的处理操作。
本说明书提供的资源处理系统,资源协调模块通过检测共享数据结构获得待处理事务的情况下,为了能够提高事务处理效率,以及资源消耗成本的降低,此时可以确定待处理事务关联的至少两个线程模块,且各个线程模块所属的物理资源相同;之后向每个线程模块分别发送事务处理请求,每个线程模块可以根据事务处理请求确定线程状态信息,并将其反馈到资源协调模块;资源协调模块可以通过整合各个线程模块的线程状态信息确定待处理事务的事务处理信息,并将事务处理信息反馈给各个线程模块,最后每个线程模块即可根据事务处理信息对待处理事务进行处理操作。实现在进行事务处理时,可以通过资源协调模块统计各个线程模块的线程状态,以决定是否对待处理事务进行处理,且在处理过程中,将采用统一决策完成,保证待处理事务要么被全部线程执行,要么全部线程都不执行,从而提高事务处理安全性的同时,提高事务处理效率,以降低资源消耗成本。
图2示出了根据本说明书一个实施例提供的一种资源处理方法的流程图,应用于资源协调模块,具体包括以下步骤。
步骤S202,通过检测共享数据结构获得待处理事务。
步骤S204,确定所述待处理事务关联的至少两个线程模块,并向每个线程模块发送事务处理请求。
步骤S206,接收每个线程模块针对所述事务处理请求反馈的线程状态信息。
步骤S208,基于所述线程状态信息确定所述待处理事务对应的事务处理信息,并向每个线程模块发送所述事务处理信息。
一个可选的实施例中,通过对共享数据结构进行检测,获得携带有资源调度信息的待处理事务;根据资源调度信息确定待处理事务关联的至少两个线程模块;在确定待处理事务为待执行状态的情况下,向每个线程模块发送事务处理请求。
一个可选的实施例中,针对每个线程模块分别确定资源准备信息,创建携带有资源准备信息的中断请求作为事务处理请求,并发送至每个线程模块。
一个可选的实施例中,每个线程模块将线程状态信息写入信息共享单元;
相应的,资源协调模块通过轮询信息共享单元,确定每个线程模块对应的线程状态信息;根据每个线程模块对应的线程状态信息确定待处理事务对应的事务处理信息,并将事务处理信息写入信息共享单元;
相应的,每个线程模块通过轮询信息共享单元确定事务处理信息,并基于事务处理信息对待处理事务进行处理。
一个可选的实施例中,资源协调模块根据每个线程模块对应的线程状态信息确定至少两个线程模块为可使用状态的情况下,根据可使用状态创建事务执行信息作为事务处理信息,并将事务处理信息写入信息共享单元;
相应的,每个线程模块通过轮询信息共享单元确定事务执行信息,根据事务执行信息确定目标资源,并将目标资源写入资源调度队列;在目标资源满足资源调度队列的事务处理条件的情况下,通过目标资源对待处理事务进行处理。
一个可选的实施例中,资源协调模块根据每个线程模块对应的线程状态信息确定至少一个线程模块为非使用状态的情况下,根据非使用状态创建事务中断信息作为事务处理信息,并将事务处理信息写入信息共享单元;
相应的,每个线程模块通过轮询信息共享单元确定事务中断信息,根据事务中断信息确定至少两个目标线程模块,并向至少两个目标线程模块发送待处理事务。
一个可选的实施例中,根据资源调度信息选择待处理事务关联的事务线程模块,并确定事务线程模块所属的物理资源;在物理资源中选择事务线程模块关联的至少一个关联线程模块;基于事务线程模块和至少一个关联线程模块组成待处理事务关联的至少两个线程模块。
综上所述,资源协调模块通过检测共享数据结构获得待处理事务的情况下,为了能够提高事务处理效率,以及资源消耗成本的降低,此时可以根据待处理事务中携带的资源调度信息确定待处理事务关联的至少两个线程模块,且各个线程模块所属的物理资源相同;之后在确定所述待处理事务为待执行状态的情况下,之后向每个线程模块分别发送事务处理请求,每个线程模块可以根据事务处理请求确定线程状态信息,并将其反馈到资源协调模块;资源协调模块可以通过整合各个线程模块的线程状态信息确定待处理事务的事务处理信息,并将事务处理信息反馈给各个线程模块,最后每个线程模块即可根据事务处理信息对待处理事务进行处理操作。实现在进行事务处理时,可以通过资源协调模块统计各个线程模块的线程状态,以决定是否对待处理事务进行处理,且在处理过程中,将采用统一决策完成,保证待处理事务要么被全部线程执行,要么全部线程都不执行,从而提高事务处理安全性的同时,提高事务处理效率,以降低资源消耗成本。
上述为本实施例的一种资源处理方法的示意性方案。需要说明的是,该资源处理方法的技术方案与上述的资源处理系统的技术方案属于同一构思,资源处理方法的技术方案未详细描述的细节内容,均可以参见上述资源处理系统的技术方案的描述。
图3示出了根据本说明书一个实施例提供的另一种资源处理方法的流程图,应用于线程模块,具体包括以下步骤。
步骤S302,接收资源协调模块针对待处理事务发送的事务处理请求。
步骤S304,根据所述事务处理请求确定线程状态信息,并将所述线程状态信息反馈至所述资源协调模块。
步骤S306,接收所述资源协调模块针对所述线程状态信息反馈的事务处理信息。
步骤S308,基于所述事务处理信息对所述待处理事务进行处理。
一个可选的实施例中,接收携带有资源准备信息的中断请求,并根据中断请求调用中断处理函数;通过中断处理函数对资源准备信息进行处理,根据信息处理结果确定线程状态信息。
一个可选的实施例中,每个线程模块将线程状态信息写入信息共享单元;
相应的,资源协调模块通过轮询信息共享单元,确定每个线程模块对应的线程状态信息;根据每个线程模块对应的线程状态信息确定待处理事务对应的事务处理信息,并将事务处理信息写入信息共享单元;
相应的,每个线程模块通过轮询信息共享单元确定事务处理信息,并基于事务处理信息对待处理事务进行处理。
一个可选的实施例中,资源协调模块根据每个线程模块对应的线程状态信息确定至少两个线程模块为可使用状态的情况下,根据可使用状态创建事务执行信息作为事务处理信息,并将事务处理信息写入信息共享单元;
相应的,每个线程模块通过轮询信息共享单元确定事务执行信息,根据事务执行信息确定目标资源,并将目标资源写入资源调度队列;在目标资源满足资源调度队列的事务处理条件的情况下,通过目标资源对待处理事务进行处理。
一个可选的实施例中,资源协调模块根据每个线程模块对应的线程状态信息确定至少一个线程模块为非使用状态的情况下,根据非使用状态创建事务中断信息作为事务处理信息,并将事务处理信息写入信息共享单元;
相应的,每个线程模块通过轮询信息共享单元确定事务中断信息,根据事务中断信息确定至少两个目标线程模块,并向至少两个目标线程模块发送待处理事务。
综上所述,资源协调模块通过检测共享数据结构获得待处理事务的情况下,为了能够提高事务处理效率,以及资源消耗成本的降低,此时可以根据待处理事务中携带的资源调度信息确定待处理事务关联的至少两个线程模块,且各个线程模块所属的物理资源相同;之后在确定所述待处理事务为待执行状态的情况下,之后向每个线程模块分别发送事务处理请求,每个线程模块可以根据事务处理请求确定线程状态信息,并将其反馈到资源协调模块;资源协调模块可以通过整合各个线程模块的线程状态信息确定待处理事务的事务处理信息,并将事务处理信息反馈给各个线程模块,最后每个线程模块即可根据事务处理信息对待处理事务进行处理操作。实现在进行事务处理时,可以通过资源协调模块统计各个线程模块的线程状态,以决定是否对待处理事务进行处理,且在处理过程中,将采用统一决策完成,保证待处理事务要么被全部线程执行,要么全部线程都不执行,从而提高事务处理安全性的同时,提高事务处理效率,以降低资源消耗成本。
上述为本实施例的另一种资源处理方法的示意性方案。需要说明的是,该资源处理方法的技术方案与上述的资源处理系统的技术方案属于同一构思,资源处理方法的技术方案未详细描述的细节内容,均可以参见上述资源处理系统的技术方案的描述。
与上述方法实施例相对应,本说明书还提供了资源处理装置实施例,图4示出了本说明书一个实施例提供的一种资源处理装置的结构示意图。如图4所示,该装置应用于资源协调模块,包括:
检测事务单元402,被配置为通过检测共享数据结构获得待处理事务;
确定线程单元404,被配置为确定所述待处理事务关联的至少两个线程模块,并向每个线程模块发送事务处理请求;
接收信息单元406,被配置为接收每个线程模块针对所述事务处理请求反馈的线程状态信息;
发送信息单元408,被配置为基于所述线程状态信息确定所述待处理事务对应的事务处理信息,并向每个线程模块发送所述事务处理信息。
一个可选的实施例中,该装置还包括:通过对共享数据结构进行检测,获得携带有资源调度信息的待处理事务;根据资源调度信息确定待处理事务关联的至少两个线程模块;在确定待处理事务为待执行状态的情况下,向每个线程模块发送事务处理请求。
一个可选的实施例中,该装置还包括:针对每个线程模块分别确定资源准备信息,创建携带有资源准备信息的中断请求作为事务处理请求,并发送至每个线程模块。
一个可选的实施例中,该装置还包括:每个线程模块将线程状态信息写入信息共享单元;
相应的,资源协调模块通过轮询信息共享单元,确定每个线程模块对应的线程状态信息;根据每个线程模块对应的线程状态信息确定待处理事务对应的事务处理信息,并将事务处理信息写入信息共享单元;
相应的,每个线程模块通过轮询信息共享单元确定事务处理信息,并基于事务处理信息对待处理事务进行处理。
一个可选的实施例中,该装置还包括:资源协调模块根据每个线程模块对应的线程状态信息确定至少两个线程模块为可使用状态的情况下,根据可使用状态创建事务执行信息作为事务处理信息,并将事务处理信息写入信息共享单元;
相应的,每个线程模块通过轮询信息共享单元确定事务执行信息,根据事务执行信息确定目标资源,并将目标资源写入资源调度队列;在目标资源满足资源调度队列的事务处理条件的情况下,通过目标资源对待处理事务进行处理。
一个可选的实施例中,该装置还包括:资源协调模块根据每个线程模块对应的线程状态信息确定至少一个线程模块为非使用状态的情况下,根据非使用状态创建事务中断信息作为事务处理信息,并将事务处理信息写入信息共享单元;
相应的,每个线程模块通过轮询信息共享单元确定事务中断信息,根据事务中断信息确定至少两个目标线程模块,并向至少两个目标线程模块发送待处理事务。
一个可选的实施例中,该装置还包括:根据资源调度信息选择待处理事务关联的事务线程模块,并确定事务线程模块所属的物理资源;在物理资源中选择事务线程模块关联的至少一个关联线程模块;基于事务线程模块和至少一个关联线程模块组成待处理事务关联的至少两个线程模块。
综上所述,资源协调模块通过检测共享数据结构获得待处理事务的情况下,为了能够提高事务处理效率,以及资源消耗成本的降低,此时可以根据待处理事务中携带的资源调度信息确定待处理事务关联的至少两个线程模块,且各个线程模块所属的物理资源相同;之后在确定所述待处理事务为待执行状态的情况下,之后向每个线程模块分别发送事务处理请求,每个线程模块可以根据事务处理请求确定线程状态信息,并将其反馈到资源协调模块;资源协调模块可以通过整合各个线程模块的线程状态信息确定待处理事务的事务处理信息,并将事务处理信息反馈给各个线程模块,最后每个线程模块即可根据事务处理信息对待处理事务进行处理操作。实现在进行事务处理时,可以通过资源协调模块统计各个线程模块的线程状态,以决定是否对待处理事务进行处理,且在处理过程中,将采用统一决策完成,保证待处理事务要么被全部线程执行,要么全部线程都不执行,从而提高事务处理安全性的同时,提高事务处理效率,以降低资源消耗成本。
上述为本实施例的一种资源处理装置的示意性方案。需要说明的是,该资源处理装置的技术方案与上述的资源处理系统的技术方案属于同一构思,资源处理装置的技术方案未详细描述的细节内容,均可以参见上述资源处理系统的技术方案的描述。
与上述方法实施例相对应,本说明书还提供了资源处理装置实施例,图5示出了本说明书一个实施例提供的另一种资源处理装置的结构示意图。如图5所示,该装置应用于线程模块,包括:
接收请求单元502,被配置为接收资源协调模块针对待处理事务发送的事务处理请求;
确定信息单元504,被配置为根据所述事务处理请求确定线程状态信息,并将所述线程状态信息反馈至所述资源协调模块;
接收信息单元506,被配置为接收所述资源协调模块针对所述线程状态信息反馈的事务处理信息;
处理事务单元508,被配置为基于所述事务处理信息对所述待处理事务进行处理。
一个可选的实施例中,该装置还包括:接收携带有资源准备信息的中断请求,并根据中断请求调用中断处理函数;通过中断处理函数对资源准备信息进行处理,根据信息处理结果确定线程状态信息。
一个可选的实施例中,该装置还包括:每个线程模块将线程状态信息写入信息共享单元;
相应的,资源协调模块通过轮询信息共享单元,确定每个线程模块对应的线程状态信息;根据每个线程模块对应的线程状态信息确定待处理事务对应的事务处理信息,并将事务处理信息写入信息共享单元;
相应的,每个线程模块通过轮询信息共享单元确定事务处理信息,并基于事务处理信息对待处理事务进行处理。
一个可选的实施例中,该装置还包括:资源协调模块根据每个线程模块对应的线程状态信息确定至少两个线程模块为可使用状态的情况下,根据可使用状态创建事务执行信息作为事务处理信息,并将事务处理信息写入信息共享单元;
相应的,每个线程模块通过轮询信息共享单元确定事务执行信息,根据事务执行信息确定目标资源,并将目标资源写入资源调度队列;在目标资源满足资源调度队列的事务处理条件的情况下,通过目标资源对待处理事务进行处理。
一个可选的实施例中,该装置还包括:资源协调模块根据每个线程模块对应的线程状态信息确定至少一个线程模块为非使用状态的情况下,根据非使用状态创建事务中断信息作为事务处理信息,并将事务处理信息写入信息共享单元;
相应的,每个线程模块通过轮询信息共享单元确定事务中断信息,根据事务中断信息确定至少两个目标线程模块,并向至少两个目标线程模块发送待处理事务。
综上所述,资源协调模块通过检测共享数据结构获得待处理事务的情况下,为了能够提高事务处理效率,以及资源消耗成本的降低,此时可以根据待处理事务中携带的资源调度信息确定待处理事务关联的至少两个线程模块,且各个线程模块所属的物理资源相同;之后在确定所述待处理事务为待执行状态的情况下,之后向每个线程模块分别发送事务处理请求,每个线程模块可以根据事务处理请求确定线程状态信息,并将其反馈到资源协调模块;资源协调模块可以通过整合各个线程模块的线程状态信息确定待处理事务的事务处理信息,并将事务处理信息反馈给各个线程模块,最后每个线程模块即可根据事务处理信息对待处理事务进行处理操作。实现在进行事务处理时,可以通过资源协调模块统计各个线程模块的线程状态,以决定是否对待处理事务进行处理,且在处理过程中,将采用统一决策完成,保证待处理事务要么被全部线程执行,要么全部线程都不执行,从而提高事务处理安全性的同时,提高事务处理效率,以降低资源消耗成本。
上述为本实施例的另一种资源处理装置的示意性方案。需要说明的是,该资源处理装置的技术方案与上述的资源处理系统的技术方案属于同一构思,资源处理装置的技术方案未详细描述的细节内容,均可以参见上述资源处理系统的技术方案的描述。
图6示出了根据本说明书一个实施例提供的一种计算设备600的结构框图。该计算设备600的部件包括但不限于存储器610和处理器620。处理器620与存储器610通过总线630相连接,数据库650用于保存数据。
计算设备600还包括接入设备640,接入设备640使得计算设备600能够经由一个或多个网络660通信。这些网络的示例包括公用交换电话网(PSTN)、局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。接入设备640可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE802.11无线局域网(WLAN)无线接口、全球微波互联接入(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。
在本说明书的一个实施例中,计算设备600的上述部件以及图6中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图6所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备600可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备600还可以是移动式或静止式的服务器。
其中,处理器620用于执行如下计算机可执行指令,该计算机可执行指令被处理器执行时实现上述资源处理方法的步骤。
上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的资源处理方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述资源处理方法的技术方案的描述。
本说明书一实施例还提供一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现上述资源处理方法的步骤。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的资源处理方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述资源处理方法的技术方案的描述。
本说明书一实施例还提供一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行上述资源处理方法的步骤。
上述为本实施例的一种计算机程序的示意性方案。需要说明的是,该计算机程序的技术方案与上述的资源处理方法的技术方案属于同一构思,计算机程序的技术方案未详细描述的细节内容,均可以参见上述资源处理方法的技术方案的描述。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本说明书实施例并不受所描述的动作顺序的限制,因为依据本说明书实施例,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本说明书实施例所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本说明书优选实施例只是用于帮助阐述本说明书。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书实施例的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本说明书实施例的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本说明书。本说明书仅受权利要求书及其全部范围和等效物的限制。
Claims (14)
1.一种资源处理系统,包括:
资源协调模块,被配置为通过检测共享数据结构获得待处理事务;确定所述待处理事务关联的至少两个线程模块,并向每个线程模块发送事务处理请求;
每个线程模块,被配置为基于所述事务处理请求确定线程状态信息,并将所述线程状态信息反馈至所述资源协调模块;
所述资源协调模块,还被配置为根据每个线程模块的线程状态信息确定所述待处理事务对应的事务处理信息,并向每个线程模块发送所述事务处理信息;
每个线程模块,还被配置为基于所述事务处理信息对所述待处理事务进行处理;其中,各个线程模块所属的物理资源相同。
2.根据权利要求1所述的系统,还包括资源调度器;所述资源调度器,被配置为接收所述待处理事务;针对所述待处理事务配置待使用资源,并根据配置结果创建资源调度信息;将携带有所述资源调度信息的所述待处理事务写入所述共享数据结构;
相应的,所述资源协调模块,进一步被配置为通过对所述共享数据结构进行检测,获得携带有所述资源调度信息的所述待处理事务;根据所述资源调度信息确定所述待处理事务关联的所述至少两个线程模块;在确定所述待处理事务为待执行状态的情况下,向每个线程模块发送所述事务处理请求。
3.根据权利要求1所述的系统,所述资源协调模块,进一步被配置为针对每个线程模块分别确定资源准备信息,创建携带有所述资源准备信息的中断请求作为所述事务处理请求,并发送至每个线程模块。
4.根据权利要求3所述的系统,每个线程模块,进一步被配置为接收携带有所述资源准备信息的所述中断请求,并根据所述中断请求调用中断处理函数;通过所述中断处理函数对所述资源准备信息进行处理,根据信息处理结果确定所述线程状态信息。
5.根据权利要求1-4任意一项所述的系统,所述资源协调模块为开启超线程的CPU;相应的,每个线程模块为运行虚拟机的超线程。
6.根据权利要求1-4任意一项所述的系统,每个线程模块,还被配置为将所述线程状态信息写入信息共享单元;
相应的,所述资源协调模块,还被配置为通过轮询所述信息共享单元,确定每个线程模块对应的线程状态信息;根据每个线程模块对应的线程状态信息确定所述待处理事务对应的所述事务处理信息,并将所述事务处理信息写入所述信息共享单元;
相应的,每个线程模块,还被配置为通过轮询所述信息共享单元确定所述事务处理信息,并基于所述事务处理信息对所述待处理事务进行处理。
7.根据权利要求6所述的系统,所述资源协调模块,进一步被配置为根据每个线程模块对应的线程状态信息确定所述至少两个线程模块为可使用状态的情况下,根据所述可使用状态创建事务执行信息作为所述事务处理信息,并将所述事务处理信息写入所述信息共享单元;
相应的,每个线程模块,进一步被配置为通过轮询所述信息共享单元确定所述事务执行信息,根据所述事务执行信息确定目标资源,并将所述目标资源写入资源调度队列;在所述目标资源满足所述资源调度队列的事务处理条件的情况下,通过所述目标资源对所述待处理事务进行处理。
8.根据权利要求6所述的系统,所述资源协调模块,还被配置为根据每个线程模块对应的线程状态信息确定至少一个线程模块为非使用状态的情况下,根据所述非使用状态创建事务中断信息作为所述事务处理信息,并将所述事务处理信息写入所述信息共享单元;
相应的,每个线程模块,还被配置为通过轮询所述信息共享单元确定所述事务中断信息,根据所述事务中断信息确定至少两个目标线程模块,并向所述至少两个目标线程模块发送所述待处理事务。
9.根据权利要求3所述的系统,所述资源协调模块,进一步被配置为根据所述资源调度信息选择所述待处理事务关联的事务线程模块,并确定所述事务线程模块所属的所述物理资源;在所述物理资源中选择所述事务线程模块关联的至少一个关联线程模块;基于所述事务线程模块和所述至少一个关联线程模块组成所述待处理事务关联的所述至少两个线程模块。
10.一种资源处理方法,应用于资源协调模块,包括:
通过检测共享数据结构获得待处理事务;
确定所述待处理事务关联的至少两个线程模块,并向每个线程模块发送事务处理请求;
接收每个线程模块针对所述事务处理请求反馈的线程状态信息;
基于所述线程状态信息确定所述待处理事务对应的事务处理信息,并向每个线程模块发送所述事务处理信息。
11.根据权利要求10所述的方法,所述接收每个线程模块针对所述事务处理请求反馈的线程状态信息,包括:
通过轮询信息共享单元,确定每个线程模块针对所述事务处理请求反馈的线程状态信息;
相应的,所述基于所述线程状态信息确定所述待处理事务对应的事务处理信息,并向每个线程模块发送所述事务处理信息,包括:
根据每个线程模块对应的线程状态信息确定所述至少两个线程模块为可使用状态的情况下,根据所述可使用状态创建事务执行信息作为所述事务处理信息;或者,根据每个线程模块对应的线程状态信息确定至少一个线程模块为非使用状态的情况下,根据所述非使用状态创建事务中断信息作为所述事务处理信息。
12.一种资源处理方法,应用于线程模块,包括:
接收资源协调模块针对待处理事务发送的事务处理请求;
根据所述事务处理请求确定线程状态信息,并将所述线程状态信息反馈至所述资源协调模块;
接收所述资源协调模块针对所述线程状态信息反馈的事务处理信息;
基于所述事务处理信息对所述待处理事务进行处理。
13.根据权利要求12所述的方法,所述将所述线程状态信息反馈至所述资源协调模块,包括:
将所述线程状态信息写入信息共享单元,作为对应所述资源协调模块的反馈;
相应的,所述接收所述资源协调模块针对所述线程状态信息反馈的事务处理信息,包括:
通过轮询所述信息共享单元确定所述资源协调模块针对所述线程状态信息反馈的所述事务处理信息。
14.一种计算设备,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,该计算机可执行指令被处理器执行时实现权利要求10至13任一项所述方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210211124.9A CN114610485A (zh) | 2022-03-03 | 2022-03-03 | 资源处理系统以及方法 |
PCT/CN2023/075638 WO2023165318A1 (zh) | 2022-03-03 | 2023-02-13 | 资源处理系统以及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210211124.9A CN114610485A (zh) | 2022-03-03 | 2022-03-03 | 资源处理系统以及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114610485A true CN114610485A (zh) | 2022-06-10 |
Family
ID=81861514
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210211124.9A Pending CN114610485A (zh) | 2022-03-03 | 2022-03-03 | 资源处理系统以及方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114610485A (zh) |
WO (1) | WO2023165318A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023165318A1 (zh) * | 2022-03-03 | 2023-09-07 | 阿里巴巴(中国)有限公司 | 资源处理系统以及方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7484215B2 (en) * | 2003-10-30 | 2009-01-27 | International Business Machines Corporation | Method, system and program product for processing a transaction |
US8321637B2 (en) * | 2007-05-14 | 2012-11-27 | International Business Machines Corporation | Computing system with optimized support for transactional memory |
US9411595B2 (en) * | 2012-05-31 | 2016-08-09 | Nvidia Corporation | Multi-threaded transactional memory coherence |
US11709748B2 (en) * | 2019-11-21 | 2023-07-25 | Apple Inc. | Adaptive memory performance control by thread group |
CN112988883B (zh) * | 2019-12-16 | 2023-03-10 | 金篆信科有限责任公司 | 数据库的数据同步方法、装置以及存储介质 |
CN114610485A (zh) * | 2022-03-03 | 2022-06-10 | 阿里巴巴(中国)有限公司 | 资源处理系统以及方法 |
-
2022
- 2022-03-03 CN CN202210211124.9A patent/CN114610485A/zh active Pending
-
2023
- 2023-02-13 WO PCT/CN2023/075638 patent/WO2023165318A1/zh unknown
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023165318A1 (zh) * | 2022-03-03 | 2023-09-07 | 阿里巴巴(中国)有限公司 | 资源处理系统以及方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2023165318A1 (zh) | 2023-09-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10768960B2 (en) | Method for affinity binding of interrupt of virtual network interface card, and computer device | |
TWI559153B (zh) | 分散式計算架構 | |
CN108156181B (zh) | 一种基于协程异步io的漏洞探测方法及其漏洞扫描系统 | |
US20240160474A1 (en) | Multi-core processor task scheduling method, and device and storage medium | |
US20110219373A1 (en) | Virtual machine management apparatus and virtualization method for virtualization-supporting terminal platform | |
CN112035238A (zh) | 任务调度处理方法、装置、集群系统及可读存储介质 | |
CN103744716A (zh) | 一种基于当前vcpu调度状态的动态中断均衡映射方法 | |
US20170097854A1 (en) | Task placement for related tasks in a cluster based multi-core system | |
WO2018040845A1 (zh) | 一种计算资源调度方法及装置 | |
CN112306669A (zh) | 一种基于多核系统的任务处理方法及装置 | |
WO2023165318A1 (zh) | 资源处理系统以及方法 | |
CN112231102A (zh) | 一种提升存储系统性能的方法、装置、设备、产品 | |
US11237859B2 (en) | Securing virtual machines in computer systems | |
CN111274044A (zh) | Gpu虚拟化资源限制处理方法及装置 | |
CN110837415B (zh) | 一种基于risc-v多核处理器的线程调度方法和装置 | |
CN112965788A (zh) | 一种混合虚拟化方式的任务执行方法、系统及设备 | |
CN112181689A (zh) | 一种在云端下进行gpu内核程序高效率调度的运行时系统 | |
WO2023160359A1 (zh) | 资源调度方法以及装置 | |
CN113032154B (zh) | 一种虚拟cpu的调度方法、装置、电子设备及存储介质 | |
CN114911538A (zh) | 一种运行系统的启动方法及计算设备 | |
CN114253708A (zh) | 负载调度方法及系统 | |
CN113608845A (zh) | 数据处理方法及装置 | |
US20110231637A1 (en) | Central processing unit and method for workload dependent optimization thereof | |
CN114281529A (zh) | 分布式虚拟化的客户操作系统调度优化方法、系统及终端 | |
US9619277B2 (en) | Computer with plurality of processors sharing process queue, and process dispatch processing method |
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 |