CN109885393A - 读写请求处理方法、装置、电子设备以及存储介质 - Google Patents
读写请求处理方法、装置、电子设备以及存储介质 Download PDFInfo
- Publication number
- CN109885393A CN109885393A CN201910024624.XA CN201910024624A CN109885393A CN 109885393 A CN109885393 A CN 109885393A CN 201910024624 A CN201910024624 A CN 201910024624A CN 109885393 A CN109885393 A CN 109885393A
- Authority
- CN
- China
- Prior art keywords
- terminal
- priority
- read
- write requests
- server
- 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
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
- G06F3/0613—Improving I/O performance in relation to throughput
-
- 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
-
- 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/0604—Improving or facilitating administration, e.g. storage management
-
- 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/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0637—Permissions
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Mobile Radio Communication Systems (AREA)
- Computer And Data Communications (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种读写请求处理方法、装置、电子设备以及存储介质,属于数据处理领域。本方法通过对各个终端进行分组,并为每个终端组分配不同的服务时长,使得服务器在任一服务时长内,仅能处理与该服务时长对应的终端组中的终端的发送的读写请求,从而基于该终端组中的终端发送的读写请求所生成的QP和WQE有限,可以使得服务器的网卡的缓存区只存储有限的QP和WQE,进而可以避免出现网卡的缓存区出现资源分布不均的问题。
Description
技术领域
本发明涉及数据处理技术领域,特别涉及一种读写请求处理方法、装置、电子设备以及存储介质。
背景技术
远程直接数据存取(remote direct memory access,RDMA)可以通过网络将数据从一个系统快速移动到远程系统的存储器中,而不对操作系统造成任何影响,由于RDMA的低延迟和高带宽特性,使得RDMA被广泛地应用于分布式系统中,在该分布式系统中服务端的通过RDMA网卡可以处理客户端的读写请求,使得服务端可以直接将读写请求中的数据写入服务端的内存中,或者将服务端内存中的数据直接发送给客户端。
目前,服务端处理读写请求可以通过下述过程来实现:将服务端的RDMA网卡的缓存区划分为多个子缓存区;客户端与服务端建立通信连接后,服务端在自己的RDMA网卡的对应的子缓存区上创建并初始化队列对(queue pairs,QP),每对QP包括发送队列(sendqueue,SQ)和接收队列(receive queue,RQ),且在该QP的RQ中注册工作队列单元(workqueue element,WQE),该WQE用于指示该服务端内存中的一个存储位置;当该客户端向该服务端的RDMA网卡发送读写请求时,服务端根据QP中的与该客户端对应的SQ,可以确定与该SQ对应的RQ,从而在该RQ中可以确定WQE,进而当该读写请求为读请求时,该服务端可以直接将该WQE指示的存储位置上的数据发送给该客户端,当该读写请求为写请求时,该服务端可以直接在该WQE指示的存储位置上写入该写请求中待写入的数据。
在上述服务端处理读写请求的过程中,服务端的RDMA网卡的子缓存区可以存储SQ和WQE,当子缓存区负责的客户端增加时,该子缓存区将需要存储大量的SQ和WQE,当该子缓存区的内存较小时,该子缓存区可能无法同时存储大量的SQ和WQE,当该子缓存区的内存较大时,该子缓存区在存储完所有的SQ和WQE后,可能还会有空置的内存没有用到,就会造成子缓存区资源的浪费,所以,通过给服务端的RDMA网卡划分缓存区,会导致RDMA网卡缓存区资源分布不均的问题。
发明内容
本发明实施例提供了一种读写请求处理方法、装置、电子设备以及存储介质,能够解决网卡缓存区资源分布不均的问题。该技术方案如下:
第一方面,提供了一种读写请求处理方法,该方法由服务器执行,包括:
对多个终端进行分组,得到多个终端组,每个终端组包括至少一个终端,该多个终端与该服务器相连接;
为该每个终端组分配对应的服务时长;
在任一个服务时长内,处理与该服务时长对应的终端组中的终端所发送的读写请求,不处理与其他服务时长对应的终端组中终端所发送的读写请求。
在一种可能实现方式中,该对多个终端进行分组,包括:
确定多个终端的优先级;
将优先级相同的终端分配至一个终端组中,每个终端组对应一个优先级。
在一种可能实现方式中,该确定多个终端的优先级,包括:
获取多个终端在预设时间内的吞吐量以及每个终端的读写请求的平均数据量大小;
根据该每个终端的吞吐量以及该每个终端的读写请求的平均数据量大小,确定该每个终端的优先级。
在一种可能实现方式中,该根据该每个终端的吞吐量以及读写请求的平均数据量大小,确定该每个终端的优先级,包括:
根据该每个终端的权重参数、该每个终端的吞吐量以及该每个终端的读写请求的平数据量均大小,确定该每个终端的优先级。
基于上述可能的实现方式,可以为各个终端分配优先级,加入了权重参数,使得承担重要业务的终端的优先级更高,从而使得服务器可以重点处理承担重要业务的终端。
在一种可能实现方式中,将优先级相同的终端分配至一个终端组中之后,该方法还包括:
根据该每个终端组的优先级,确定该每个终端组的最大终端数;
当一个终端组内的终端的数目大于该终端组的预设终端数时,将该终端组拆分成多个终端组;
当一个终端组内的终端的数目小于该终端组的预设终端数时,将至少一个第一终端组与该终端组合并,得到第二终端组,该第二终端组中的终端的数目不大于该第二终端组的预设终端数,该第二终端组的优先级由该第二终端组中的多数终端的优先级来决定,该第一终端组的优先级与该终端组的优先级相同或优先级之差小于预设数值。
在一种可能实现方式中,将优先级相同的终端分配至一个终端组中之后,该方法还包括:
根据该服务器的处理能力以及每个终端的优先级,确定每个终端组的最大终端数;
当一个终端组内的终端的数目大于该终端组的最大终端数时,将该终端组拆分成多个终端组;
当一个终端组内的终端的数目小于该终端组的最大终端数时,将至少一个第三终端组与该终端组合并,得到第四终端组,该第四终端组中的终端的数目不大于该第四终端组的最大预设终端数,该第四终端组的优先级由该第四终端组中的多数终端的优先级来决定,该第三终端组的优先级与该终端组的优先级相同或优先级之差小于预设数值。
基于上述可能的实现方式,基于服务器的网卡的缓存区资源、CPU资源以及终端组的优先级,来调整每个终端组中终端的数目,可以使得服务器的网卡的缓存区资源和CPU资源可以充分利用。
在一种可能实现方式中,以第一预设服务时长为基准时长,根据该每个终端组的优先级,为该每个终端组分配不同的服务时长,所分配的服务时长在该第一预设服务时长的预设范围内。
在一种可能实现方式中,在一个服务时长内,处理与该服务时长对应的组中的终端发送的读写请求,包括:
根据等待队列中的存储顺序,从该等待队列中获取待处理的终端组,该等待队列用于存储终端组;
每获取到一个终端组,在与该终端组对应的服务时长内,处理该终端组中的终端发送的读写请求;
当经过与该终端组对应的服务时长后,停止处理该终端组中的终端发送的读写请求,将该终端组存储至该等待队列的队尾。
基于上述可能的实现方式,可以使得该服务器只能接收一个终端组的终端发送的读写请求,进而可以避免服务器接收大量的发送读写请求,进而可以避免大量的读写请求在该服务器处等待处理,进而达到了限流的目的。
在一种可能实现方式中,该等待队列用于根据该每个终端组的优先级存储该每个终端组。
基于上述可能的实现方式,可以使得优先级较高的终端组中的终端发送的读写请求可以被优先处理
在一种可能实现方式中,该方法还包括:
当该终端组对应的服务时长能够满足该终端组中的终端的业务处理需求,且还有剩余时长时,减少与该终端组对应的服务时长;
当该终端组对应的服务时长不能够满足该终端组中的终端的业务处理需求,增加与该终端组对应的服务时长。
基于上述可能的实现方式,随着服务器对各个终端组对应的服务时长的调整,可以使得该服务器在各个终端组对应的调整后的时长内,可以正好完成对各个终端组中的终端所发送读写请求的处理,进而服务器不会出现空闲的情况,从而进一步提高了服务器的利用率。
在一种可能实现方式中,在一个服务时长内,处理与该服务时长对应的终端组中的终端发送的读写请求之前,该方法还包括:
向与该服务时长对应的终端组中的终端发送响应,该响应用于通知终端向该服务器发送读写请求。
基于上述可能的实现方式,可以使得只有接收响应的终端才能向该服务器发送读写请求,进而使得该服务器只能接收该终端组的终端发送的读写请求,可以避免服务器接收大量的发送读写请求,进而可以避免大量的读写请求在该服务器处等待处理,进而达到了限流的目的,另外还可以使得其他终端组中终端发送无用的读写请求,降低了其他终端组的终端的工作量。
在一种可能实现方式中,该方法还包括:
存储该每个终端组中的终端的信息;
当该服务器重启后,根据存储的该每个终端组中的终端的信息,处理该每个终端组中的终端所发送的读写请求。
基于上述可能的实现方式,当该服务器出现故障重启后,可以避免再次对各个终端进行分组。当然,该服务器可以周期性的存储每个终端组中的终端的信息。
在一种可能实现方式中,该方法还包括:
存储该每个终端的优先级;
当该服务器重启后,根据存储的该每个终端的优先级,对该每个终端进行分组。
基于上述可能的实现方式,当该服务器出现故障重启后,无需对每个终端求优先级,可以直接根据存储的每个终端的优先级,对每个终端组进行分组。
第二方面,提供了一种读写请求处理装置,用于执行上述读写请求处理方法。具体地,该读写请求处理装置包括用于执行上述第一方面或上述第一方面的任一种可选方式提供的读写请求处理的功能模块,其中,该上述方面为应用于服务器的一种读写请求处理方法所对应的方面。
第三方面,提供一种电子设备,该电子设备包括处理器和存储器,该存储器中存储有至少一条指令,该指令由该处理器加载并执行以实现如上述读写请求处理方法所执行的操作。
第四方面,提供一种计算机可读存储介质,该存储介质中存储有至少一条指令,该指令由处理器加载并执行以实现如上述读写请求处理方法所执行的操作。
本发明实施例提供的技术方案带来的有益效果是:
通过对各个终端进行分组,并为每个终端组分配不同的服务时长,使得服务器在任一服务时长内,仅能处理与该服务时长对应的终端组中的终端的发送的读写请求,从而基于该终端组中的终端发送的读写请求所生成的QP和WQE有限,可以使得服务器的网卡的缓存区只存储有限的QP和WQE,进而可以避免出现网卡的缓存区出现资源分布不均的问题。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种分布式系统的示意图;
图2是本发明实施例提供的一种电子设备的结构示意图;
图3是本发明实施例提供的一种读写请求处理方法流程图;
图4是本发明实施例提供的一种处理读写请求的过程示意图;
图5是本发明实施例提供的一种读写请求处理方法的示意图;
图6是本发明实施例提供的一种处理读写请求装置的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
图1是本发明实施例提供的一种分布式系统的示意图,参见图1,该分布式系统包括至少一个服务器以及至少一个终端,其中一个服务器可以与多个终端相连接,每个终端上可以安装有客户端,还可以安装有RDMA网卡,终端可以通过RDMA网卡向服务器发送过远程过程控制(remote procedure call,RPC)请求,该RPC请求可以是读数据请求,还可以是写数据请求,进而该终端可以从该服务器中读取或者写入数据。其中,RDMA网卡为具有RDMA功能的网卡,例如远程过程控制网卡(remote procedure call network interface card,RNIC)。该客户端可以为不同机构的客户端,也可以为同一机构的客户端中,每个客户端负责业务可以不同。
服务器,用于处理终端发送的RPC请求,该服务器可以安装有RDMA网卡,以便服务器可以使用RDMA网卡直接处理该终端发送的RPC请求。
图1中的服务器以及终端也可以是一个电子设备,参见图2,图2是本发明实施例提供的一种电子设备的结构示意图,电子设备200包括可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)201和一个或一个以上的存储器202,其中,该存储器202中存储有至少一条指令,该至少一条指令由该处理器201加载并执行以实现下述各个方法实施例提供的方法。当然,该电子设备200还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该电子设备200还可以包括其他用于实现设备功能的部件,在此不做赘述。
在示例性实施例中,还提供了一种计算机可读存储介质,例如包括指令的存储器,上述指令可由电子设备中的处理器执行以完成下述实施例中的读写请求处理方法。例如,该计算机可读存储介质可以是只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、只读光盘(compact disc read-only memory,CD-ROM)、磁带、软盘和光数据存储设备等。
以上是对分布式系统以及终端的描述,为了进一步体现服务器处理读写请求的过程,参见图3,图3是本发明实施例提供的一种读写请求处理方法流程图,该方法具体包括:
301、服务器获取多个终端在预设时间内的吞吐量以及每个终端的读写请求的平均数据量大小。
该服务器可以是作为服务端的终端,该多个终端为与该服务器相连接的设备,每个终端可以安装有客户端。该读写请求可以是RPC请求。当一个读写请求为读请求时,该读写请求的数据量为待读取的数据的数据量,当一个读写请求为写请求时,该读写请求的数据量为待写入的数据的数据量。
每个终端的读写请求的平均数据量大小可以通过下述过程来确定:任一个终端i向该服务器发送的第j个读写请求的数据量为Nj,在该预设时间内,该终端的向该服务器发送的读写请求的数目为xi,则该终端i的读写请求的平均数据量Si可以表示为:
其中,i、j、N、x为正整数。
在一种可能的实施方式中,每个终端与服务器建立连接后,每个终端都可以向该服务器发送读写请求,进而在预设时间内,基于该服务器接收的该终端发送的读写请求,该服务器可以获取每个终端的吞吐量以及每个终端的读写请求的平均数据量的大小。需要说明的是,本发明实施例对该预设时间不做具体限定。
302、根据每个终端的吞吐量以及每个终端的读写请求的平均数据量大小,该服务器确定每个终端的优先级。
在一种可能的实现方式中,对于终端获取到终端i在预设时间中的吞吐量为Ti以及读写请求的平均数据量大小为Si,该终端i的优先级Pi可以表示为:Pi=Ti÷Si,那么,对于具有较高优先级的终端更有可能在承载较少有效载荷的同时更频繁地发送读写请求。
在一种可能的实现方式中,由于每个终端负责的业务可能不同,在上述实现方式中对于负责不同业务的终端的优先级可能相同,在一种可能的实现方式中,根据每个终端分配的权重参数、每个终端的吞吐量以及每个终端的读写请求的平均数据量的大小,该终端确定每个终端的优先级,例如,可以通引入权重参数来使得吞吐量以及读写请求的平均数据量大小相同终端的优先级不同,也即是,Pi=(Ti÷Si)*Wi,其中,Wi为该服务器为终端i分配的权重参数,该终端可以为负责重要业务的终端分配较大的权重参数,为负责普通业务的终端分配较小的权重参数,从而可以为保证负责重要业务的终端可以具有较高的优先级,进而使得该服务器可以优先处理负责重要业务的终端发送的读写请求。
在上述两种可能的实现方式中,计算得到不同的终端的Pi之间的差值可能较小,该终端可以将差值较小的Pi视为同一个优先级,其中,该差值小于第一预设数值,本发明实施例对该第一预设数值不做具体限定,
在一种可能的实现方式中,通过Pi所在的数值区间,确定各个终端的优先级每个数值区间对应的优先级,该服务器根据各个终端的Pi,确定该各个终端的Pi所处的数值区间;每个终端的Pi所处的数值区间对应的优先级为每个终端的优先级。具体地,可以划分预设数目的优先级,以划分5个优先级为例,这5个优先级从低至高分别为优先级1、优先级2、优先级3、优先级4以及优先级5,每个优先级都有一个相对优先级My,其中,My为优先级y(y=1,2,3)的相对优先级,当Pi与My之间的差值小于第一预设数值时,将终端i的优先级确定为优先级y,Pi与My之间的差值小于第一预设数值可以表示Pi在该优先级y对应的数值区间内,例如,P1-P3与M5小于第一预设数值,则终端1-3的优先级为优先级5,在本发明实施例对优先级的划分不做具体限定,对每个优先级对应的数据区间以及每个优先级的相对优先级的大小不做具体限定。
303、该服务器将优先级相同的终端分配至一个终端组中,每个终端组对应一个优先级。
在一种可能的实现方式中,仍以步骤302中的示例为例,该终端划分了优先级1-5,则每个优先级分别对应一个终端组,也即是,优先级1对应终端组1,优先级2对应终端组2,优先级3对应终端组3,优先级4对应终端组4,优先级5对应终端组5,终端1-3的优先级为优先级5,则终端1-3分配至终端组5中。
在一种可能的实现方式中,每个终端组还可以与一个终端表对应,该终端表中可以存储有该终端组内的终端的信息,该终端的信息可以是终端的网络协议(internetprotocol,IP)地址,基于本步骤303中的上述示例,终端组5的终端表中存储有终端1的IP地址、终端2的IP地址、终端3的IP地址,当然,该终端的信息也可以是其他标识该终端的信息,本发明实施例对该终端的信息不做具体限定。
304、根据每个终端组的优先级,该服务器调整每个终端组中终端的数目。
在一种可能的实现方式中,本步骤304可以通过下述步骤304A-304C所示的过程来实现。
步骤304A、根据每个终端组的优先级,该终端确定每个终端组的预设终端数。
在一种可能的实现方式中,优先级越高的终端组的预设终端数越小,优先级越低的终端组的预设终端数越大,仍以步骤303中的示例为例,终端组1的预设终端数为10,终端组2的预设终端数为8,终端组3的预设终端数为6,终端组4的预设终端数为4,终端组5的预设备终端数为2。
步骤304B、当一个终端组内的终端的数目大于该终端组的预设终端数时,该服务器将该终端组拆分成多个终端组。
在一种可能的实现方式中,仍以步骤304A中的示例为例,终端组5的预设终端数为2,目前终端组5中有终端1-3,可见,终端组5中的终端数目(3)大于终端组5的预设终端数(2),则可以将该终端组5进行拆分,得到终端组5.1和终端组5.2,其中,终端组5.1中有2个终端,终端组5.2中有1个终端,该服务器可以将该终端组5中的任一终端分配至终端组5.2,也可以将Pi最大的终端分配至终端组5.2,也可以将Pi最小的终端分配至终端组5.2,本发明实施例对从该终端组中拆分出哪些终端不做具体限定。
在一种可能的实现方式中,仍以步骤304A中的示例为例,终端组5的预设终端数为1,目前终端组5中有终端1-3,可见,终端组5中的终端数目(3)大于终端组5的预设终端数(1),则该服务器对该终端组5进行拆分,得到终端组5.3、终端组5.4以及终端组5.5,其中,终端组5.3、终端组5.4以及终端组5.5中分别有一个终端。
需要说明的是,通过拆分得到的终端组优先级不变,也即是,拆分出的终端组的优先级与拆分前的终端组的优先级相同。另外,本发明实施例对各个终端组的预设终端数不做具体限定。
步骤304C、当一个终端组内的终端的数目小于该终端组的预设终端数时,将至少一个第一终端组与该终端组合并,得到第二终端组,该第二终端组中的终端的数目不大于该第二终端组的预设终端数,该第二终端组的优先级由该第二终端组中的多数终端的优先级来决定,该第一终端组的优先级与该终端组的优先级相同或优先级之差小于预设数值。
仍以步骤304A中的示例为例,终端组4分配的预设终端数为4,目前优先级为4的终端组4中包括终端4以及终端5,可见终端组4中的终端的数目(2)小于终端组4的预设终端数(4),则可以将该终端组4与其他终端组合并得到新的终端组4,使得新的组4内的终端的数目不大于4,该新的终端组4即为第二终端组,例如,将该终端组4与步骤301B中的终端组5.2合并成新的终端组4,新的终端组4中包括终端组4中的两个终端以及终端组5.2中的一个终端,进而使得新的终端组4中包括3个终端,可见,新的终端组4中的终端的数目还未达到终端组4的预设终端数(4),所以新的终端组4还可以再次与其他终端组进行合并,其他终端组的优先级可以与该终端组4的优先级相同,也可以与终端组4的优先级之差小于预设数值,例如,该预设数值为2,则该新的终端组4可以与优先级为5、4、3或2的终端组合并,只要保证合并后终端组中终端的数目不超过最大终端数为4即可,本发明实施例对该优先级之差的预设数值不做具体限定。
需要说明是,合并后的终端组的优先级需要重新确定,当得到一个合并终端组后,需要根据该合并终端组中的多数终端的优先级来确定该合并终端组的优先级,例如,一个合并终端组包括终端8、终端9以及终端10,终端8和终端9的优先级均为3,终端10的优先级为4,则该合并终端组的优先级为3。
考虑到服务器的网卡的缓存大小以及CPU的处理能力,服务器在同一时间只能处理一定数目的终端发送的读写请求,该服务器在对各个终端分组后,一个终端组中的终端数目可能较多,使得该服务器不能在同一时间内同时处理该终端组中的终端发送的读写请求,当然,该终端组中的终端数目可能较少,为此该服务器可以根据服务器的网卡的缓存资源以及CPU资源来调整各个终端组中终端的数目,以便可以最大化利用服务器的网卡的缓存资源以及CPU资源,该网卡可以是RDMA网卡。
在一种可能的实现方式中,该服务器也可以基于服务器的处理能力,来调整各个终端组,参见下述步骤304D-304F所示的根据服务器的处理能力调整各个终端组的过程。
步骤304D、根据服务器的处理能力以及每个终端组的优先级,该终端确定每个终端组最大终端数。
一个终端组的最大终端数为一个终端组最多可以容纳的终端的数量,也是该服务器在一定时间内最多可以处理的终端发送的读写请求。各个终端组的最大终端数可以由两个因素来决定,其中,第一个因素为该服务器的网卡的缓存资源以及CPU资源,第二个因素为该终端组的优先级,当终端组的优先级确定时,该服务器的网卡的缓存资源以及CPU资源越大,该终端组的最大终端数越大,反之,该终端组的最大终端数越小,当该服务器的网卡的缓存资源以及CPU资源确定时,该终端组的优先级越高,该终端组的最大终端数越大,反之,该终端组的最大终端数越小。
步骤304E、当一个终端组内的终端的数目大于该终端组的最大终端数时,该服务器将该终端组拆分成多个终端组。
该服务器在拆分终端组时,根据该终端组的最大终端数来拆分,将该终端组拆分成至少一个有最大终端数的终端的终端组以及至少一个有小于最大终端数的终端的终端组,具体的拆分过程与步骤304B中服务器进行拆分的方式同理,本发明实施例在此对该服务器拆分该组的具体过程不做赘述。
步骤304F、当一个终端组内的终端的数目小于该终端组的最大终端数时,该服务器将至少一个第三终端组与该终端组合并,得到第四终端组,该第四终端组中的终端的数目不大于该第四终端组的最大预设终端数,该第四终端组的优先级由该第四终端组中的多数终端的优先级来决定,该第三终端组的优先级与该终端组的优先级相同或优先级之差小于预设数值。
该服务器将该终端组与至少一个第三终端组合并的方式,与步骤304C中服务器合并终端组的方式同理,本发明实施例在此对服务器将该终端组与至少一个第三终端组合并的方式不做赘述。
305、以第一预设服务时长为基准时长,根据每个终端组的优先级,该服务器为每个终端组分配不同的服务时长,所分配的服务时长在该第一预设服务时长的预设范围内。
该第一预设服务时长的预设范围,可以是小于该第一预设服务时长的时长范围,还可以是小于该第一预设服务时长的时长范围,例如,该第一预设时长为20分钟,则该第一预设服务时长的预设范围可以是0至40分钟,本发明实施例对该第一预设服务时长的预设范围不做具体限定。
对于优先级越高的终端组,分配的服务时长越长,对于优先级越低的终端组,分配的服务时长越短,在一种可能的实现方式中,基于优先级,在该第一服务时长的基础上增加固定的时长或减少固定的时长,为每个终端组分配不同的服务时长。具体地,仍以步骤303的实施例为例,优先级1对应终端组1,优先级2对应终端组2,优先级3对应终端组3,优先级4对应终端组4,优先级5对应终端组5,该服务器将第一服务时长作为终端组3的服务时,则该服务器可以以该第一预设服务时长为基础增加一个固定的时长1,得到终端组4的服务时长4,可以以该第一预设服务时长为基础增加一个固定的时长2,得到终端组5的服务时长5,时长2可以大于时长1,从而使得终端组5的服务时长5大于终端组4的服务时长4,该服务器还可以以该第一预设服务时长为基础减少一个固定的时长3,得到终端组2的服务时长1,还可以以该第一预设服务时长为基础减少一个固定的时长4,得到终端组1的服务时长1,时长4可以大于时长2,从而使得终端组2的服务时长2大于终端组1的服务时长1,进而,通过固定的时长以及第一服务时长可以得到的各个终端组的服务时长。另外,本发明实施例对上述各个固定时长不做具体限定,
需要说明的是,在一种可能的实现方式中,当该服务器也可以不通过优先级对各个终端分组,可以直接对各个终端进行分组,例如,该服务器可以随机对各个终端进行分组。
306、根据优先级的高低顺序,该服务器将各个终端组存储至等待队列中。
在该等待队列中,越靠近队列头部的终端组的优先级越高,也即是,在后续的处理过程中,越靠近队列头部的终端组内的终端所发送的读写请求,越先被服务器处理。通过按照优先级进行存储,使得在后续的处理过程中,该服务器可以从该等待队列中获取各个终端组,并按照该等待队列中各个终端组的顺序,依次处理各个终端组中的终端发送的读写请求。
需要说明的是,在一种可能的实现方式中,当各个终端组不是按照优先级来分配时,该服务器可以不对各个终端组在该等待队列中的存储顺序进行排序,例如,该服务器可以先将设备2存储至等待对列中,然后再将终端组5存储至该等待队列中。
307、根据该等待队列中的存储顺序,该服务器从该等待队列中获取待处理的终端组。
在一种可能的实施方式中,参见图4,图4是本发明实施例提供的一种处理读写请求的过程示意图,从图4中可知,该等待队列中排列着各个终端组,其中,第b组位于等待队列的队列头,该服务器可以获取第b组,第b组即为待处理的终端组。
308、每获取到一个终端组后,该服务器向该终端组中的终端发送响应,该响应用于通知该终端组中的终端向该服务器发送读写请求。
该服务器可以从与获取的终端组对应的终端表中获取该终端组中的终端的信息,进而该服务器可以向该终端组中的终端发送响应。以获取的终端组为终端组5为例,该终端组5中包括终端1-3,在该终端组5对应的终端表中,该服务器获取到终端1-3的IP地址,则该服务器基于终端1-3的IP地址,可以向终端1-3发送响应。
通过通知终端组中的终端,可以使得该服务器只能接收该终端组的终端发送的读写请求,进而可以避免服务器接收大量的发送读写请求,进而可以避免大量的读写请求在该服务器处等待处理,达到了限流的目的,另外还可以使得没有接收到该响应的其他终端无需发送读写请求,降低了其他终端的工作量,
309、任一终端接收到该响应后,向该服务器发送读写请求。
310、每获取到一个终端组,在与该终端组对应的服务时长内,该服务器处理该终端组中的终端发送的读写请求。
在一种可能的实现中,在同一终端组内的终端可以同时向该服务器发送读写请求,当服务器接收到同一终端组内的终端发送的读写请求后,服务器的工作线程以轮询的方式对各个读写请求进行处理。具体地,参见图5,图5是本发明实施例提供的一种读写请求处理方法的示意图,其中,该终端组为第X组,第X组包括C1、C2和C3三个终端,当该服务器的CPU接收到终端C1发送的读写数据请求1、终端C2发送的读写数据请求2以及终端C1发送的读写数据请求3后,该服务器的CPU向该服务器的网卡发送读写数据请求1-3,基于读写数据请求1在该网卡的缓存区中生成对应的QP以及WQE,根据终端C1发送的读写请求所生成的QP以及WQE可以用元数据E1来表示,也即是,E1对应终端C1;基于读写数据请求2在该网卡的缓存区中生成对应的QP以及WQE,根据终端C2发送的读写请求所生成的QP以及WQE可以用元数据E2来表示,也即是,E2多应终端C2;基于读写数据请求3在该网卡的缓存区中生成对应的QP以及WQE,根据终端C3发送的读写请求所生成的QP以及WQE可以用元数据E3来表示,也即是,E1对应终端C3;然后该服务器可以基于各个读写请求对应的WQE,处理各个读写请求,由于服务器在预设服务时长内,服务器需要处理多个读写请求,那么服务器的工作线程可以以轮询的方式对各个读写请求进行处理。需要说明的是,图5中的箭头方向不同于指示读写请求的传输方向,仅用于表示对应的逻辑关系。
需要说明的是,在任一个服务时长内,该服务器仅处理与该服务时长对应的终端组中的终端所发送的读写请求,而不处理其他组中的终端发送的读写请求。例如,终端组5的服务时长为20分钟,当该服务器在从等待队列中获取到该终端组5时,该服务器停止从等待队列中获取其他终端组,且在获取到该终端组5后的20分钟内,该服务器仅对终端组5中的终端发送的读写请求进行处理,而不对其他终端组中的终端发送的读写请求进行处理。
以网卡是RDMA网卡为例,由于在分组时,考虑了该服务器的RDMA网卡的缓存区的大小以及CPU的处理能力,使得该服务器的RDMA网卡的缓存区可以存储基于该终端组中的终端所发送的读写请求而生成的QP以及WQE,并且还可以充分利用RDMA网卡的缓存区,使得该RDMA网卡的缓存区不出现过多的剩余或者缓存区不足的情况,进而可以充分利用该服务器的RDMA网卡的缓存区资源和CPU资源。
需要说明的是,本步骤310所示的过程,也即是,在任一个服务时长内,该服务器处理与该服务时长对应的终端组中的终端所发送的读写请求,不处理与其他服务时长对应的终端组中终端所发送的读写请求的过程。
311、当经过与该终端组对应的服务时长后,该服务器停止处理该终端组中的终端发送的读写请求,将该终端组存储至该等待队列的队尾。
当在与该终端组对应的服务时长内,该服务器没有将该终端组中的终端发送的读写请求处理完,该服务器将不再处理该终端组中的终端发送的读写请求,直接执行本步骤311。当将该终端组存储至该等待队列的队尾后,该服务器才可以从该等待队列的队头中获取下一个待处理的终端组。所以该服务器在该预设服务时长内,仅处理与该预设服务时长对应的终端组中的终端发送的读写请求,进而可以避免大量的读写请求在该服务器处等待处理,进而达到了限流的目的。
考虑到该服务器任一服务时长内可能会不能按时处理完与该服务时长对应的终端组中的终端发送的读写请求,或者是提前处理完与该服务时长对应的终端组中的终端发送的读写请求,为了进一步提高对服务器的网卡的缓存区以及CPU的利用率,该服务器可以调整各个终端组的服务时长。
在一种可能的实现方式中,当该终端组对应的服务时长能够满足该终端组中的终端的业务处理需求,且还有剩余时长时,该服务器减少与该终端组对应的服务时长;当该终端组对应的服务时长不能够满足该终端组中的终端的业务处理需求,该服务器增加与该终端组对应的服务时长。其中,满足该终端组中的终端的业务处理需求,是指本次处理过程是第预设次处理该终端组的过程,在本次处理过程中,服务器在该终端组对应的服务时长内,可以完成该终端组中的第二终端发送的读写请求。
具体地,以该服务器获取终端组5,终端组5分配到的服务时长为20分钟,终端组5中包括终端1-3,预设次数为2为例,如果第一次在等待队列的队头中获取到该终端组5后的20分钟,该服务器可以完成终端1-3发送的读写请求,且剩余5分钟的时间,该服务器将该终端组5存储至等待队列的队尾;如果第二次从等待队列中队头中获取到该终端组5后的20分钟,该服务器也可以完成终端1-3发送的读写请求,且剩余4分钟的时间,该服务器将该终端组5存储至等待队列的队尾;可见,2次获取到终端组5后,在该终端组5对应的服务时长内,该服务器每次都能提前完成该终端组5中的终端发送的读写请求,则该服务器可以减少该终端组5对应的服务时长,例如,将该终端组5对应的服务时长调整为16分钟。
如果第一次在等待队列的队头中获取到该终端组5后的20分钟,该服务器不能完成终端1-3发送的读写请求,该服务器停止处理终端1-3发送的任何读写请求,将该终端组5存储至等待队列的队尾;如果第二次在等待队列的队头中获取到该终端组5后的20分钟,该服务器也不能完成终端1-3发送的读写请求,该服务器停止处理终端1-3发送的任何读写请求,将该终端组5存储至等待队列的队尾,可见,两次获取到该终端组5后,在该终端组5对应的服务时长内,该服务器都不能完成该终端组5中的终端发送的读写请求,则该服务器可以适当增加该终端组5对应的服务时长,例如,将该终端组5对应的服务时长调整为25分钟。
那么,随着服务器对各个终端组对应的服务时长的调整,可以使得该服务器在各个终端组对应的调整后的时长内,可以正好完成对各个终端组中的终端所发送读写请求的处理,进而服务器不会出现空闲的情况,从而进一步提高了服务器的利用率。
需要说明的是,该服务器可以存储每个终端组中的终端的信息;当该服务器重启后,根据存储的每个终端组中的终端的信息,处理每个终端组中的终端所发送的读写请求,从而当该服务器出现故障重启后,可以避免再次对各个终端进行分组。当然,该服务器可以周期性的存储每个终端组中的终端的信息,例如,每个2小时存储一次每个终端组中的终端的信息,并可以将上次存储的每个终端组中的终端的信息替换掉。
该服务器也可以存储每个终端的优先级;当该服务器重启后,根据存储的每个终端的优先级,对每个终端进行分组,从而当该服务器出现故障重启后,无需对每个终端求优先级,可以直接根据存储的每个终端的优先级,对每个终端组进行分组。当然,该服务器可以周期性的存储每个终端的优先级,例如,每个2小时存储一次每个终端的优先级,并可以将上次存储的每个终端的优先级替换掉。
需要说明的是,本发明实施提供的方法不仅可以针对于网卡,还可以适用于一些硬件上存在共享资源的场景,包括不限于硬盘,例如固态硬盘(solid state disk,SSD)、硬盘驱动器(hard disk drive,HDD),主机总线适配器(host bus adapter,HBA)卡等存在缓存的共享资源的场景,且本发明实施例提供的方法不仅可以对终端进行分组以及为每个终端组分配服务时长,也同样可以用于对终端上的各个软件进行分组,例如,计算机应用程序(application,APP)、虚拟机等,例如,当多个虚拟机向同一个镜像服务器发送读请求时,可以对虚拟机进行分组,或者,一个终端内的一个管理进程在管理多个虚拟机发送的读写请求时,可以对多个虚拟机进行分组,并为每个组分配服务时长。
本发明实施例提供的方法,通过对各个终端进行分组,并为每个终端组分配不同的服务时长,使得服务器在任一服务时长内,仅能处理与该服务时长对应的终端组中的终端的发送的读写请求,从而基于该终端组中的终端发送的读写请求所生成的QP和WQE有限,可以使得服务器的网卡的缓存区只存储有限的QP和WQE,进而可以避免出现网卡的缓存区资源分布不均的问题。并且,通过通知终端组中的终端,可以使得该服务器只能接收该终端组的终端发送的读写请求,进而可以避免服务器接收大量的发送读写请求,进而可以避免大量的读写请求在该服务器处等待处理,进而达到了限流的目的。并且,基于服务器的网卡的缓存区资源、CPU资源以及终端组的优先级,来调整每个终端组中终端的数目,可以使得服务器的网卡的缓存区资源和CPU资源可以充分利用。并且,通过监控处理每个终端组中的终端发送的读写请求所占用的时间,服务器可以降低或者增加各个终端组的服务时长,可以避免服务器的网卡的缓存区资源和CPU资源出现空闲时间,进一步最大化的利用了服务器的网卡的缓存区资源和CPU资源,提高了服务器的网卡的缓存区资源和CPU资源的利用率,且服务器将不会出现大量的读写请求对网卡缓存的竞争问题,进而最大化了具有服务器和终端的系统的整体性能,提高了该系统的扩展性。并且,在为各个终端分配优先级时,加入了权重参数,使得承担重要业务的终端的优先级更高,从而使得服务器可以重点处理承担重要业务的终端。
图6是本发明实施例提供一种读写请求处理装置的结构示意图,参见图6,该装置包括:
分组模块601,用于执行上述步骤301-303;
分配模块602,用于执行上述步骤305;
处理模块603,用于执行上述步骤306-308以及步骤310-311。
可选地,分组模块601,包括:
确定单元,用于执行上述步骤301-302;
分配单元,用于执行上述步骤303。
可选地,确定单元,包括:
获取子单元,用于执行上述步骤301;
确定子单元,用于执行上述步骤302。
可选地,该确定子单元,用于根据该每个终端的权重参数、该每个终端的吞吐量以及该每个终端的读写请求的平数据量均大小,确定该每个终端的优先级。
可选地,该装置还包括:
第一确定模块,用于执行上述步骤304A;
第一拆分模块,用于执行上述步骤304B;
第一合并模块,用于执行上述步骤304C。
可选地,该装置还包括:
第二确定模块,用于执行上述步骤304D;
第二拆分模块,用于执行上述步骤304E;
第二合并模块,用于执行上述步骤304F。
可选地,分配模块602,用于执行上述步骤305
可选地,该处理模块603包括:
获取单元,用于执行上述步骤307;
处理单元,用于执行上述步骤310;
停止单元,用于执行上述步骤311。
可选地,等待队列用于根据该每个终端组的优先级存储该每个终端组。
可选地,该装置还包括:
减少模块,用于当该终端组对应的服务时长能够满足该终端组中的终端的业务处理需求,且还有剩余时长时,减少与该终端组对应的服务时长;
增加模块,用于当该终端组对应的服务时长不能够满足该终端组中的终端的业务处理需求,增加与该终端组对应的服务时长。
可选地,该装置还包括:
发送模块,用于执行上述步骤308。
可选地,该装置还包括:
第一存储模块,用于存储该每个终端组中的终端的信息;
处理模块603,还用于当该服务器重启后,根据存储的该每个终端组中的终端的信息,处理该每个终端组中的终端所发送的读写请求。
可选地,该装置还包括:
第二存储模块,用于存储该每个终端的优先级;
分组模块601,还用于当该服务器重启后,根据存储的该每个终端的优先级,对该每个终端进行分组。
需要说明的是,该装置的各个模块均可以由CPU来执行。
上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。
需要说明的是:上述实施例提供的读写请求处理装置在读写请求处理时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的读写请求处理方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,该的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上该仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (20)
1.一种读写请求处理方法,其特征在于,所述方法由服务器执行,包括:
对多个终端进行分组,得到多个终端组,每个终端组包括至少一个终端,所述多个终端与所述服务器相连接;
为所述每个终端组分配对应的服务时长;
在任一个服务时长内,处理与所述服务时长对应的终端组中的终端所发送的读写请求,不处理与其他服务时长对应的终端组中终端所发送的读写请求。
2.根据权利要求1所述的方法,其特征在于,所述对多个终端进行分组,包括:
确定多个终端的优先级;
将优先级相同的终端分配至一个终端组中,每个终端组对应一个优先级。
3.根据权利要求2所述的方法,其特征在于,所述确定多个终端的优先级,包括:
获取多个终端在预设时间内的吞吐量以及每个终端的读写请求的平均数据量大小;
根据所述每个终端的吞吐量以及所述每个终端的读写请求的平均数据量大小,确定所述每个终端的优先级。
4.根据权利要求3所述的方法,其特征在于,所述根据所述每个终端的吞吐量以及读写请求的平均数据量大小,确定所述每个终端的优先级,包括:
根据所述每个终端的权重参数、所述每个终端的吞吐量以及所述每个终端的读写请求的平数据量均大小,确定所述每个终端的优先级。
5.根据权利要求2所述的方法,其特征在于,所述将优先级相同的终端分配至一个终端组中之后,所述方法还包括:
根据所述每个终端组的优先级,确定所述每个终端组的预设终端数;
当一个终端组内的终端的数目大于所述终端组的预设终端数时,将所述终端组拆分成多个终端组;
当一个终端组内的终端的数目小于所述终端组的预设终端数时,将至少一个第一终端组与所述终端组合并,得到第二终端组,所述第二终端组中的终端的数目不大于所述第二终端组的预设终端数,所述第二终端组的优先级由所述第二终端组中的多数终端的优先级来决定,所述第一终端组的优先级与所述终端组的优先级相同或优先级之差小于预设数值。
6.根据权利要求2所述的方法,其特征在于,所述将优先级相同的终端分配至一个终端组中之后,所述方法还包括:
根据所述服务器的处理能力以及所述每个终端组的优先级,确定所述每个终端组的最大终端数;
当一个终端组内的终端的数目大于所述终端组的最大终端数时,将所述终端组拆分成多个终端组;
当一个终端组内的终端的数目小于所述终端组的最大终端数时,将至少一个第三终端组与所述终端组合并,得到第四终端组,所述第四终端组中的终端的数目不大于所述第四终端组的最大预设终端数,所述第四终端组的优先级由所述第四终端组中的多数终端的优先级来决定,所述第三终端组的优先级与所述终端组的优先级相同或优先级之差小于预设数值。
7.根据权利要求2所述的方法,其特征在于,所述方法还包括:
以第一预设服务时长为基准时长,根据所述每个终端组的优先级,为所述每个终端组分配不同的服务时长,所分配的服务时长在所述第一预设服务时长的预设范围内。
8.根据权利要求1所述的方法,其特征在于,所述在一个服务时长内,处理与所述服务时长对应的组中的终端发送的读写请求,包括:
根据等待队列中的存储顺序,从所述等待队列中获取待处理的终端组,所述等待队列用于存储终端组;
每获取到一个终端组,在与所述终端组对应的服务时长内,处理所述终端组中的终端发送的读写请求;
当经过与所述终端组对应的服务时长后,停止处理所述终端组中的终端发送的读写请求,将所述终端组存储至所述等待队列的队尾。
9.根据权利要求8所述的方法,其特征在于,所述等待队列用于根据所述每个终端组的优先级存储所述每个终端组。
10.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述终端组对应的服务时长能够满足所述终端组中的终端的业务处理需求,且还有剩余时长时,减少与所述终端组对应的服务时长;
当所述终端组对应的服务时长不能够满足所述终端组中的终端的业务处理需求,增加与所述终端组对应的服务时长。
11.根据权利要求1所述的方法,其特征在于,所述在一个服务时长内,处理与所述服务时长对应的终端组中的终端发送的读写请求之前,所述方法还包括:
向所述与所述服务时长对应的终端组中的终端发送响应,所述响应用于通知终端向所述服务器发送读写请求。
12.根据权利要求1所述的方法,其特征在于,所述方法还包括:
存储所述每个终端组中的终端的信息;
当所述服务器重启后,根据存储的所述每个终端组中的终端的信息,处理所述每个终端组中的终端所发送的读写请求。
13.根据权利要求1所述的方法,其特征在于,所述方法还包括:
存储所述每个终端的优先级;
当所述服务器重启后,根据存储的所述每个终端的优先级,对所述每个终端进行分组。
14.一种读写请求处理装置,其特征在于,所述装置包括:
分组模块,用于对多个终端进行分组,得到多个终端组,每个终端组包括至少一个终端,所述多个终端与所述服务器相连接;
分配模块,用于为所述每个终端组分配对应的服务时长;
处理模块,用于在任一个服务时长内,处理与所述服务时长对应的终端组中的终端所发送的读写请求,不处理与其他服务时长对应的终端组中终端所发送的读写请求。
15.根据权利要求14所述的装置,其特征在于,所述分组模块用于:
确定多个终端的优先级;
将优先级相同的终端分配至一个终端组中,每个终端组对应一个优先级。
16.根据权利要求14所述的装置,其特征在于,所述处理模块用于:
根据等待队列中的存储顺序,从所述等待队列中获取待处理的终端组,所述等待队列用于存储终端组;
每获取到一个终端组,在与所述终端组对应的服务时长内,处理所述终端组中的终端发送的读写请求;
当经过与所述终端组对应的服务时长后,停止处理所述终端组中的终端发送的读写请求,将所述终端组存储至所述等待队列的队尾。
17.根据权利要求14所述的装置,其特征在于,所述装置还包括:
减少模块,用于当所述终端组对应的服务时长能够满足所述终端组中的终端的业务处理需求,且还有剩余时长时,减少与所述终端组对应的服务时长;
增加模块,用于当所述终端组对应的服务时长不能够满足所述终端组中的终端的业务处理需求,增加与所述终端组对应的服务时长。
18.根据权利要求14所述的装置,其特征在于,所述装置还包括:
存储模块,用于存储所述每个终端的优先级;
所述分组模块,还用于当所述服务器重启后,根据存储的所述每个终端的优先级,对所述每个终端进行分组。
19.一种电子设备,其特征在于,所述电子设备包括处理器和存储器,所述存储器中存储有至少一条指令,所述指令由所述处理器加载并执行以实现如权利要求1至权利要求13任一项所述的读写请求处理方法所执行的操作。
20.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现如权利要求1至权利要求13任一项所述的读写请求处理方法所执行的操作。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910024624.XA CN109885393A (zh) | 2019-01-10 | 2019-01-10 | 读写请求处理方法、装置、电子设备以及存储介质 |
PCT/CN2019/127243 WO2020143434A1 (zh) | 2019-01-10 | 2019-12-21 | 读写请求处理方法、装置、电子设备以及存储介质 |
EP19908562.2A EP3885907A4 (en) | 2019-01-10 | 2019-12-21 | METHOD AND APPARATUS FOR PROCESSING READ/WRITE REQUEST, ELECTRONIC DEVICE, AND STORAGE MEDIA |
US17/372,250 US11899939B2 (en) | 2019-01-10 | 2021-07-09 | Read/write request processing method and apparatus, electronic device, and storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910024624.XA CN109885393A (zh) | 2019-01-10 | 2019-01-10 | 读写请求处理方法、装置、电子设备以及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109885393A true CN109885393A (zh) | 2019-06-14 |
Family
ID=66925864
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910024624.XA Pending CN109885393A (zh) | 2019-01-10 | 2019-01-10 | 读写请求处理方法、装置、电子设备以及存储介质 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11899939B2 (zh) |
EP (1) | EP3885907A4 (zh) |
CN (1) | CN109885393A (zh) |
WO (1) | WO2020143434A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110445848A (zh) * | 2019-07-22 | 2019-11-12 | 阿里巴巴集团控股有限公司 | 用于事务处理的方法和装置 |
WO2020143434A1 (zh) * | 2019-01-10 | 2020-07-16 | 华为技术有限公司 | 读写请求处理方法、装置、电子设备以及存储介质 |
CN111562985A (zh) * | 2020-05-09 | 2020-08-21 | 上海商汤智能科技有限公司 | 资源管理方法及装置、电子设备和存储介质 |
CN114866529A (zh) * | 2022-04-29 | 2022-08-05 | 阿里巴巴(中国)有限公司 | 基于rdma的通信方法、装置、设备以及存储介质 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11133987B2 (en) * | 2018-10-24 | 2021-09-28 | Cox Communications, Inc. | Systems and methods for network configuration management |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6301616B1 (en) * | 1997-04-11 | 2001-10-09 | Microsoft Corporation | Pledge-based resource allocation system |
CN101202973A (zh) * | 2006-12-11 | 2008-06-18 | 大唐移动通信设备有限公司 | 一种话权分配的方法、系统及集群通信服务器 |
CN101778092A (zh) * | 2009-01-13 | 2010-07-14 | 蒋一 | 多客户端服务器的数据传输方法 |
CN102958099A (zh) * | 2012-10-30 | 2013-03-06 | 北京创毅讯联科技股份有限公司 | 机器类通信中非连续接收周期的处理方法和网络侧设备 |
CN103516761A (zh) * | 2012-06-29 | 2014-01-15 | 上海斐讯数据通信技术有限公司 | 一种多终端访问服务器的分时控制方法及云计算系统 |
CN107422986A (zh) * | 2017-05-10 | 2017-12-01 | 郑州云海信息技术有限公司 | 一种云存储系统并发读写请求的控制装置及方法 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030037091A1 (en) * | 2001-08-09 | 2003-02-20 | Kozo Nishimura | Task scheduling device |
US8387052B2 (en) * | 2005-03-14 | 2013-02-26 | Qnx Software Systems Limited | Adaptive partitioning for operating system |
CN104797007B (zh) * | 2010-08-12 | 2018-05-11 | 华为技术有限公司 | 一种通信系统 |
CN101968750B (zh) * | 2010-10-15 | 2012-12-26 | 珠海举天软件科技有限公司 | 计算机系统及其工作方法 |
CN103220788B (zh) * | 2012-01-19 | 2016-08-24 | 华为技术有限公司 | 对节点进行分组的方法、节点和接入点 |
CN103748859B (zh) * | 2012-07-23 | 2017-04-26 | 华为技术有限公司 | 一种数据传输方法、系统及其设备 |
CN104144516B (zh) * | 2013-05-10 | 2018-02-06 | 华为技术有限公司 | 无线局域网接入点调度方法、控制器、接入点及系统 |
CN105900064B (zh) * | 2014-11-19 | 2019-05-03 | 华为技术有限公司 | 调度数据流任务的方法和装置 |
CN105743713B (zh) * | 2016-04-14 | 2019-10-11 | 上海斐讯数据通信技术有限公司 | 一种网络管理系统及方法 |
CN107306294A (zh) * | 2016-04-25 | 2017-10-31 | 西门子公司 | 服务器的负载均衡方法、服务器、和智能家居控制系统 |
US20190057047A1 (en) * | 2017-08-21 | 2019-02-21 | Mediatek Singapore Pte. Ltd. | Data storage device and a method for controlling access to a memory device of a data storage device |
US10649813B2 (en) * | 2018-03-29 | 2020-05-12 | Intel Corporation | Arbitration across shared memory pools of disaggregated memory devices |
CN109885393A (zh) * | 2019-01-10 | 2019-06-14 | 华为技术有限公司 | 读写请求处理方法、装置、电子设备以及存储介质 |
-
2019
- 2019-01-10 CN CN201910024624.XA patent/CN109885393A/zh active Pending
- 2019-12-21 EP EP19908562.2A patent/EP3885907A4/en active Pending
- 2019-12-21 WO PCT/CN2019/127243 patent/WO2020143434A1/zh unknown
-
2021
- 2021-07-09 US US17/372,250 patent/US11899939B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6301616B1 (en) * | 1997-04-11 | 2001-10-09 | Microsoft Corporation | Pledge-based resource allocation system |
CN101202973A (zh) * | 2006-12-11 | 2008-06-18 | 大唐移动通信设备有限公司 | 一种话权分配的方法、系统及集群通信服务器 |
CN101778092A (zh) * | 2009-01-13 | 2010-07-14 | 蒋一 | 多客户端服务器的数据传输方法 |
CN103516761A (zh) * | 2012-06-29 | 2014-01-15 | 上海斐讯数据通信技术有限公司 | 一种多终端访问服务器的分时控制方法及云计算系统 |
CN102958099A (zh) * | 2012-10-30 | 2013-03-06 | 北京创毅讯联科技股份有限公司 | 机器类通信中非连续接收周期的处理方法和网络侧设备 |
CN107422986A (zh) * | 2017-05-10 | 2017-12-01 | 郑州云海信息技术有限公司 | 一种云存储系统并发读写请求的控制装置及方法 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020143434A1 (zh) * | 2019-01-10 | 2020-07-16 | 华为技术有限公司 | 读写请求处理方法、装置、电子设备以及存储介质 |
US11899939B2 (en) | 2019-01-10 | 2024-02-13 | Huawei Technologies Co., Ltd. | Read/write request processing method and apparatus, electronic device, and storage medium |
CN110445848A (zh) * | 2019-07-22 | 2019-11-12 | 阿里巴巴集团控股有限公司 | 用于事务处理的方法和装置 |
CN110445848B (zh) * | 2019-07-22 | 2023-02-24 | 创新先进技术有限公司 | 用于事务处理的方法和装置 |
CN111562985A (zh) * | 2020-05-09 | 2020-08-21 | 上海商汤智能科技有限公司 | 资源管理方法及装置、电子设备和存储介质 |
CN111562985B (zh) * | 2020-05-09 | 2024-03-22 | 上海商汤智能科技有限公司 | 资源管理方法及装置、电子设备和存储介质 |
CN114866529A (zh) * | 2022-04-29 | 2022-08-05 | 阿里巴巴(中国)有限公司 | 基于rdma的通信方法、装置、设备以及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US11899939B2 (en) | 2024-02-13 |
EP3885907A4 (en) | 2022-01-19 |
US20210334011A1 (en) | 2021-10-28 |
WO2020143434A1 (zh) | 2020-07-16 |
EP3885907A1 (en) | 2021-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109885393A (zh) | 读写请求处理方法、装置、电子设备以及存储介质 | |
US20210311781A1 (en) | Method and system for scalable job processing | |
CN106384290B (zh) | 保单处理系统、方法及装置 | |
US10944683B1 (en) | Hybrid queue system for request throttling | |
WO2013075446A1 (zh) | 处理业务的方法和系统 | |
CN110311938A (zh) | 基于redis的请求处理方法、装置、网关及系统 | |
US20050169309A1 (en) | System and method for vertical perimeter protection | |
US11316916B2 (en) | Packet processing method, related device, and computer storage medium | |
CN111586140A (zh) | 一种数据交互的方法及服务器 | |
US8458702B1 (en) | Method for implementing user space up-calls on java virtual machine before/after garbage collection | |
US9755897B1 (en) | Enhanced throttle management system | |
EP2913981B1 (en) | Image forming system, relay server, communication controlling method and non-transitory computer readable recording medium | |
CN115439250A (zh) | 一种交易请求的处理方法及装置、存储介质、电子装置 | |
CN109947081B (zh) | 网联车辆控制方法及装置 | |
WO2020252724A1 (zh) | 日志处理方法、设备及计算机可读存储介质 | |
CN109670691A (zh) | 用于客服队列管理及客服分配的方法、设备与客服系统 | |
US20100030851A1 (en) | Load balancer, load-balancing method, and recording medium with load-balancing program | |
CN107729435A (zh) | 分布式文件系统任务分派的方法、装置、设备和存储介质 | |
CN109257227B (zh) | 数据传输中的偶联管理方法、装置及系统 | |
US9960957B2 (en) | Methods for prioritizing failover of logical interfaces (LIFs) during a node outage and devices thereof | |
JP2013222407A (ja) | 流量制御機能を有するシステム | |
JP6488557B2 (ja) | 通信制御システム、通信システム、通信制御方法および通信制御プログラム | |
JP2017059250A (ja) | 流量制御機能を有するシステム | |
WO2015125536A1 (ja) | 帯域割り当て制御システム | |
CN118093530A (zh) | 一种基于电信行业计费系统的文件负载均衡方法和系统 |
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 |