资源管理的方法、装置及服务器设备与流程

文档序号:14860331发布日期:2018-07-04 06:51阅读:118来源:国知局
资源管理的方法、装置及服务器设备与流程

本申请涉及互联网技术领域,尤其涉及资源管理的方法、装置及服务器设备。



背景技术:

在多租户的分布式存储系统中,一般会对每个用户的iops(input/outputoperationspersecond,每秒进行读写操作的次数)配置一定的配额,由于系统无法处理超出配额的请求,因此,该配额需要满足用户对读写操作的最高业务需求。但是,一般情况下,用户对读写操作的业务需求要远低于最高业务需求,并且,大部分用户对读写操作的业务需求存在明显的波动性,需要最高业务需求的时间所占比例较小。因此,大部分时间用户对读写操作的业务需求远低于配置的配额,造成了存储系统资源的浪费。

目前,一般采用累计奖励池的方式解决上述问题。具体来说,针对每个用户,对该用户配置每秒读写操作请求次数的预设配额,统计该用户实际的每秒读写操作请求次数,计算该用户对应的预设配额与实际的每秒读写操作请求次数的差值(用预设配额减去该次数,保留正负号)。累加这个差值,作为该用户的奖励池,当该奖励池不为空时(奖励池的值大于0,小于等于一个预定阈值时),如果一秒内该用户读写操作请求次数超过对应的预设配额,则仍然可以处理超出预设配额的请求。当这个奖励池的值为空时,如果一秒内该用户读写操作请求的次数超过预设配额,则无法处理超出预设配额的请求。因此,可以降低用户对应的预设配额,节省资源。但可能会存在由于某些用户在某个时间段业务需求过大,占用过多资源,而影响其它用户的问题。

为了避免由于某些用户在某个时间段业务需求过大,占用过多资源,而影响其它用户的问题,在现有技术中,一般是对每个用户设定一个每秒读写操作请求次数的上限。即使在奖励池不为空时,如果一秒内该用户读写操作请求次数超过该上限,则超出上限的请求无法被处理。然而,一方面,对用户设定每秒读写操作请求次数的上限后,用户在业务需求较大时,该需求会受到上述上限的限制,因此,用户的需求仍然无法得到满足。另一方面,在个别用户对读写操作的业务需求的高峰时段,其它大多数用户对读写操作的业务需求较小。因此,从整个分布式存储系统的角度来看,当整个系统对读写操作请求具有较强的处理能力时,处于业务需求高峰时段的个别用户对读写操作的需求又无法得到满足,使得资源并没有得到更好的利用。



技术实现要素:

为了解决上述技术问题,本申请提供了一种资源管理的方法、装置及服务器设备。

根据本申请实施例的第一方面,提供一种资源管理的方法,应用于分布式存储系统中,所述方法包括:

获取预设队列对应的分配条件,所述预设队列包括预先设定的多个具有不同优先级的请求队列;

在进入当前处理周期后,根据所述分配条件,将当前处理周期内接收到的读写操作请求按照该读写操作请求对应的预设配额,分配到相应的请求队列中;

在当前处理周期内,按照所述预设队列中请求队列的优先级处理请求队列中的读写操作请求。

根据本申请实施例的第二方面,提供一种资源管理的装置,应用于分布式存储系统中,所述装置包括:

获取单元,用于获取预设队列对应的分配条件,所述预设队列包括预先设定的多个具有不同优先级的请求队列;

第一分配单元,用于在进入当前处理周期后,根据所述分配条件,将当前处理周期内接收到的读写操作请求按照该读写操作请求对应的预设配额,分配到相应的请求队列中;

处理单元,用于在当前处理周期内,按照所述预设队列中请求队列的优先级处理请求队列中的读写操作请求。

根据本申请实施例的第三方面,提供一种服务器设备,应用于分布式存储系统中,包括:存储器,接收器,处理器;

所述存储器,用于存储预设队列对应的分配条件,所述预设队列包括预先设定的多个具有不同优先级的请求队列;

所述接收器,用于接收读写操作请求;

所述处理器,用于从所述存储器中获取所述分配条件,在进入当前处理周期后,根据所述分配条件,将所述接收器在当前处理周期内接收到的读写操作请求,按照该读写操作请求对应的预设配额,分配到相应的请求队列中,并在当前处理周期内,按照所述预设队列中请求队列的优先级处理请求队列中的读写操作请求。

根据本申请实施例的第四方面,提供一种计算机存储介质,所述存储介质中存储有程序指令,所述指令可被处理器执行以:

获取预设队列对应的分配条件,所述预设队列包括预先设定的多个具有不同优先级的请求队列;

在进入当前处理周期后,根据所述分配条件,将当前处理周期内接收到的读写操作请求按照该读写操作请求对应的预设配额,分配到相应的请求队列中;

在当前处理周期内,按照所述预设队列中请求队列的优先级处理请求队列中的读写操作请求。

应用上述实施例,获取预设队列对应的分配条件,该预设队列包括预先设定的多个具有不同优先级的请求队列,在进入当前处理周期后,根据分配条件,将当前处理周期内接收到的读写操作请求按照该读写操作请求对应的预设配额,分配到该预设队列中相应的请求队列中,在当前处理周期内,按照该预设队列中请求队列的优先级处理请求队列中的读写操作请求。由于可以按照读写操作请求对应的预设配额将用户的读写操作请求分放在具有不同优先级的队列中,并按照队列的优先级处理队列中的请求,因此,当一些用户对读写操作的业务需求较大时,可以按照预设配额将这些用户的部分读写操作请求放在优先级较低的队列中,避免了这些用户占用过多资源,而影响其它用户的问题。同时,无需对用户设定每处理周期读写操作请求次数的上限,当用户对读写操作的业务需求较大时,仍然可以满足用户的需求。并且,从整个分布式存储系统的角度来看,提高了对读写操作请求的处理能力的利用率,使资源得到了更好的利用。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。

图1为应用本申请实施例的示例性系统架构示意图;

图2为本申请资源管理的方法的一个实施例流程图;

图3为本申请资源管理的方法的另一个实施例流程图;

图4为本申请资源管理的装置所在设备的一种硬件结构图;

图5为本申请资源管理的装置的一个实施例框图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

参见图1,为应用本申请实施例的示例性系统架构示意图:

如图1所示,系统架构100可以包括用户终端设备101,102,网络103,服务器104等。

网络103用于在服务器104和用户终端设备101,102之间提供通信链路的介质。网络103可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。

用户终端设备101,102可以通过网络103与服务器104交互,以接收或发送请求或信息等。用户终端设备101,102可以是各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机以及台式电脑等等。服务器104可以是提供各种服务的服务器,可以响应于用户的服务请求而提供服务。可以理解,一个服务器可以提供一种或多种服务,同一种服务也可以由多个服务器来提供。

应该理解,图1中的用户终端设备、网络以及服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的用户终端设备、网络以及服务器。

基于图1示出的系统架构,在本申请实施例中,用户终端设备101或102可以通过网络103与服务器104进行交互,以接收或发送信息等。例如,用户终端101或102可以通过网络103向服务器104发送读写操作,服务器104可以获取预先设定的多个具有不同优先级的请求队列对应的分配条件,在进入当前处理周期后,根据该分配条件将当前处理周期内接收到的读写操作请求分配到相应的请求队列中,并在当前处理周期内,按照请求队列的优先级依次处理请求队列中的读写操作请求。

下面将结合具体的实施例对本申请进行详细描述。

参见图2,为本申请资源管理的方法的一个实施例流程图,该实施例可以应用在分布式存储系统中的服务器中,包括如下步骤:

在步骤201中,获取预设队列对应的分配条件,该预设队列包括预先设定的多个具有不同优先级的请求队列。

在本实施例中,可以预先设定多个具有不同优先级的请求队列作为预设队列,并且,该预设队列对应一个分配条件。可以根据上述分配条件将接收到的读写操作请求分配到该预设队列中相应的请求队列中,如,将读写操作请求分配到其满足的条件对应的请求队列中。其中,该分配条件可以是基于读写操作请求对应的预设配额而将该读写操作请求分配到相应的请求队列的条件,可选地,该读写操作请求对应的预设配额为发送该读写操作请求的用户对应的每处理周期读写操作次数的配额。可以理解,该读写操作请求对应的预设配额还可以是其它与该读写操作请求相关的配额,本申请对此方面不限定。

一般来说,每个用户对应一个每处理周期读写操作次数的配额,通常,该配额由用户购买读写资源时确定。该配额一般为用户的iops配额,即每秒进行读写操作的次数的配额。因此,服务器通常会将一秒作为一个处理周期,可以理解,处理周期还可以是其它的时间长度,本申请对此方面不限定。

在步骤202中,在进入当前处理周期后,根据上述分配条件,将当前处理周期内接收到的读写操作请求按照该读写操作请求对应的预设配额,分配到相应的请求队列中。

在本实施例中,在进入当前处理周期后,可以根据上述分配条件,将当前处理周期内接收到的读写操作请求按照该读写操作请求对应的预设配额,分配到上述预设队列中相应的请求队列中。具体来说,可以将当前处理周期内未超出对应的预设配额的读写操作请求分配到上述预设队列中相应的一组或多组第一请求队列中。并将当前处理周期内超出对应的预设配额的读写操作请求分配到上述预设队列中相应的一组或多组第二请求队列中。其中,第一请求队列中包括的每个请求队列均比第二请求队列中包括的每个请求队列的优先级高。例如,第一请求队列包括a和b两个请求队列,第二请求队列包括c一个请求队列,则a和b两个请求队列均比c请求队列的优先级高。

在步骤203中,在当前处理周期内,按照预设队列中请求队列的优先级处理请求队列中的读写操作请求。

在本实施例中,在当前处理周期内,按照预设队列中请求队列的优先级处理请求队列中的读写操作请求。具体来说,首先排除预设队列中空队列(未包括读写操作请求的队列),确定当前处理周期内预设队列中优先级最高的非空请求队列(包括读写操作请求的队列),优先处理该优先级最高的非空请求队列中的读写操作请求。处理完毕后,接着处理剩下的非空请求队列中优先级最高的请求队列中的读写操作请求。例如,预先设定了六个队列作为预设队列,按照优先级从高到低的顺序分别为a、b、c、d、e、f。在进入当前处理周期后,可以根据分配条件将当前处理周期内接收到的读写操作请求分别分配到a和b两个队列中,c、d、e、f四个队列为空。在当前处理周期内,可以先处理a队列中的请求,当a队列中的请求处理完毕后,再处理b队列中的请求。

在一种实现方式中,如果在处理过程中,具有更高优先级的空队列中又被放入读写操作请求,可以停止处理较低优先级的请求队列中的读写操作请求,并优先处理该具有更高优先级的请求队列中的读写操作请求。例如,结合上述例子,在处理b队列中的请求的过程中,如果a队列中又被放入了新的请求,那么可以停止处理b队列中的请求,并开始处理a队列中被放入的新请求,处理完毕后,再接着处理b队列中的请求。

在另一种实现方式中,如果在处理过程中,具有更高优先级的空队列中又被放入读写操作请求,还可以不停止当前的处理,直到当前处理的队列处理完毕之后,再处理剩下的非空请求队列中优先级最高的请求队列中的读写操作请求。例如,仍然结合上述例子,在处理b队列中的请求的过程中,如果a队列中又被放入了新的请求,还可以继续处理b队列中的请求,处理完毕后,再处理a队列中的请求。

由现有技术可知,在相关技术中,需要对每个用户设定一个每处理周期读写操作请求次数的上限。当用户短时间内对读写操作的业务需求较大时,该需求会受到上述上限的限制,因此,用户的需求仍然无法得到满足。另外,通常情况下,不同用户对读写操作的业务需求的高峰时段重叠较少,在个别用户对读写操作的业务需求的高峰时段,其它大多数用户对读写操作的业务需求较小。因此,从整个分布式存储系统的角度来看,当整个系统对读写操作请求具有较强的处理能力时,处于业务需求高峰时段的个别用户对读写操作的需求又无法得到满足,使得资源并没有得到更好的利用。

应用上述实施例,获取预设队列对应的分配条件,该预设队列包括预先设定的多个具有不同优先级的请求队列,在进入当前处理周期后,根据分配条件,将当前处理周期内接收到的读写操作请求按照该读写操作请求对应的预设配额,分配到该预设队列中相应的请求队列中,在当前处理周期内,按照该预设队列中请求队列的优先级处理请求队列中的读写操作请求。由于可以按照读写操作请求对应的预设配额将用户的读写操作请求分放在具有不同优先级的队列中,并按照队列的优先级处理队列中的请求,因此,当一些用户对读写操作的业务需求较大时,可以按照预设配额将这些用户的部分读写操作请求放在优先级较低的队列中,避免了这些用户占用过多资源,而影响其它用户的问题。同时,无需对用户设定每处理周期读写操作请求次数的上限,当用户对读写操作的业务需求较大时,仍然可以满足用户的需求。并且,从整个分布式存储系统的角度来看,提高了对读写操作请求的处理能力的利用率,使资源得到了更好的利用。

参见图3,为本申请资源管理的方法的另一个实施例流程图,该实施例可以应用在分布式存储系统中的服务器中,包括如下步骤:

在步骤301中,获取预设队列对应的分配条件,该预设队列包括预先设定的多个具有不同优先级的请求队列。

在本实施例中,分配条件为基于上述读写操作请求对应的预设配额而对该读写操作请求分配请求队列的条件,该读写操作请求对应的预设配额为发送该读写操作请求的用户对应的每处理周期读写操作次数的配额。

在步骤302中,在进入当前处理周期后,将第一读写操作请求分配到上述预设队列中的一组或多组第一请求队列中,该第一读写操作请求为未超出对应的预设配额的读写操作请求。

在步骤303中,在进入当前处理周期后,将第二读写操作请求分配到上述预设队列中的一组或多组第二请求队列中,该第二读写操作请求为超出对应的预设配额的读写操作请求。

在本实施例中,可以将当前处理周期内接收到的读写操作请求中未超出对应的预设配额的读写操作请求作为第一读写操作请求,超出对应的预设配额的读写操作请求作为第二读写操作请求。将第一读写操作请求分配到上述预设队列中的一组或多组第一请求队列中,将第二读写操作请求分配到上述预设队列中的一组或多组第二请求队列中。由于未超出对应的预设配额的读写操作请求是刚性需求,需要尽量保证及时得到处理,因此,第一请求队列比第二请求队列的优先级高。

例如,用户a的iops(每秒读写操作次数)配额为1000,在一个处理周期内,用户a的前1000个读写操作请求(第1~1000个读写操作请求)为未超出对应的预设配额的读写操作请求,可以作为第一读写操作请求放入到一组或多组第一请求队列中。在一个处理周期内,用户a发出1000个读写操作请求之后,再发出的读写操作请求(超过第1000个的读写操作请求)为超出对应的预设配额的读写操作请求,可以作为第二读写操作请求放入到一组或多组第二请求队列中。如,在一个处理周期内,接收到用户a的800个读写操作请求,则可以将用户a的这800个读写操作请求均放入到第一请求队列中。又如,在一个处理周期内,接收到用户a的1800个读写操作请求,则可以将用户a的第1~1000个读写操作请求放入到第一请求队列中,将第1001~1800个读写操作请求放入到第二请求队列中。

又例如,用户b的iops配额为1600,在一个处理周期内,用户b的前1600个读写操作请求为未超出对应的预设配额的读写操作请求,可以作为第一读写操作请求放入到一组或多组第一请求队列中。在一个处理周期内,用户b的超过第1600个的读写操作请求为超出对应的预设配额的读写操作请求,可以作为第二读写操作请求放入到一组或多组第二请求队列中。如,在一个处理周期内,接收到用户b的1000个读写操作请求,则可以将用户b的这1000个读写操作请求均放入到第一请求队列中。又如,在一个处理周期内,接收到用户a的1800个读写操作请求,则可以将用户b的第1~1600个读写操作请求放入到第一请求队列中,将第1601~1800个读写操作请求放入到第二请求队列中。

在本实施例中,可以设定一组第一请求队列,也可以设定多组第一请求队列,本申请对设定多组第一请求队列的具体方式方面不限定。可以设定一组第二请求队列,也可以设定多组第二请求队列,本申请对设定多组第二请求队列的具体方式方面不限定。

可选地,如果设定多组第二请求队列,可以根据超出对应预设配额的数值大小所在的范围,设定分配条件。例如,假设设定三组第二请求队列,按照优先级从高到低的顺序分别为a、b、c队列。根据分配条件,可以将超出对应预设配额的数值大小小于a的读写操作请求的分配到a队列,将超出对应预设配额的数值大小大于或者等于a,小于或者等于b的读写操作请求分配到b队列,将超出对应预设配额的数值大小大于b的读写操作请求分配到c队列。

如,a为601,b为801,用户a的iops配额为1000,在一个处理周期内,接收到用户a的1900个读写操作请求,则可以将用户a的第1001~1900个读写操作请求分别放入到上述a、b、c3个第二请求队列中。其中,第1001~1600个读写操作请求可以放入到a队列中;第1601~1800个读写操作请求可以放入到b队列中;第1601~1800个读写操作请求可以放入到c队列中。

又如,a为501,b为901,用户b的iops配额为1600,在一个处理周期内,接收到用户b的2500个读写操作请求,则可以将用户b的第1601~1900个读写操作请求分别放入到上述a、b2个第二请求队列中。其中,第1601~2100个读写操作请求可以放入到a队列中;第2101~2500个读写操作请求可以放入到b队列中。

在步骤304中,在当前处理周期内,按照预设队列中请求队列的优先级处理请求队列中的读写操作请求。

由现有技术可知,在相关技术中,需要对每个用户设定一个每处理周期读写操作请求次数的上限。一方面,当用户短时间内对读写操作的业务需求较大时,该需求会受到上述上限的限制,因此,用户的需求仍然无法得到满足。另一方面,通常情况下,不同用户对读写操作的业务需求的高峰时段重叠较少,在个别用户对读写操作的业务需求的高峰时段,其它大多数用户对读写操作的业务需求较小。因此,从整个分布式存储系统的角度来看,当整个系统对读写操作请求具有较强的处理能力时,处于业务需求高峰时段的个别用户对读写操作的需求又无法得到满足,使得资源并没有得到更好的利用。再一方面,如果多个用户同时处于对读写操作的业务需求的高峰期时,由于资源被大量占用,可能会导致一些用户在对应的预设配额以内的读写操作请求不能得到及时的处理,使得资源配置不平均。

应用上述实施例,获取预设队列对应的分配条件,该预设队列包括预先设定的多个具有不同优先级的请求队列,在进入当前处理周期后,可以将当前处理周期内未超出对应的预设配额的读写操作请求分配到预设队列中优先级相对较高的请求队列中,将当前处理周期内超出对应的预设配额的读写操作请求分配到预设队列中优先级相对较低的请求队列中。在当前处理周期内,按照该预设队列中请求队列的优先级处理请求队列中的读写操作请求。因此,当一些用户对读写操作的业务需求超出对应的预设配额时,可以将这些用户的超出预设配额的读写操作请求放在优先级较低的队列中,将所有用户未超出预设配额的读写操作请求放在优先级较高的队列中,从而能够优先处理所有用户未超出预设配额的读写操作请求。一方面,无需对用户设定每处理周期读写操作请求次数的上限,当用户对读写操作的业务需求较大时,仍然可以满足用户的需求。另一方面,从整个分布式存储系统的角度来看,提高了对读写操作请求的处理能力的利用率,使资源得到了更好的利用。再一方面,当多个用户同时处于业务需求的高峰期时,仍然可以保证所有用户配额以内的读写操作请求能够得到及时的处理,避免了资源配置的不平均。

在一个可选的实现方式中,该方法还可以包括:在进入当前处理周期后,如果上一个处理周期内有未处理的读写操作请求,则将该未处理的读写操作请求分配到预设队列中的第三请求队列中。

在本实施例中,在上一个处理周期内,如果有未处理的读写操作请求,可以在进入当前处理周期后,将该未处理的读写操作请求分配到当前处理周期对应的第三请求队列中,从而避免了部分请求总是得不到处理的情况。进一步提高了对读写操作请求的处理能力的利用率,有助于避免资源配置的不平均。其中,该第三请求队列的优先级可以低于第二请求队列,可选地,该第三请求队列的优先级也可以高于第一请求队列,本申请对此方面不限定。

在一个可选的实现方式中,该方法还可以包括:判断当前处理周期的结束时刻是否到达,在当前处理周期的结束时刻到达时,确定进入下一个处理周期。

应当注意,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。相反,流程图中描绘的步骤可以改变执行顺序。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。

下面结合一个完整的资源管理的应用实例,对本申请方案进行示意性说明。

应用场景具体如下:首先,针对分布式存储系统m,预先设定三个请求队列,按照优先级从高到低的顺序分别为a、b、c队列。系统m在进入当前处理周期后,首先确定上一个处理周期内是否有未处理的读写操作请求。如果有,则可以将该未处理的读写操作请求分配到a队列中。如果没有,则a队列为空队列。

接着,系统m在当前处理周期内,接收用户的读写操作请求,统计不同用户在当前处理周期内的读写操作请求次数。将未超出用户对应的预设配额的读写操作请求分配到b队列中。如果存在超出用户对应的预设配额的读写操作请求,则将超出预设配额的读写操作请求分配到c队列中,否则c队列为空队列。

例如,用户k的iops配额为1000,用户l的iops配额为1500。在当前处理周期内,可以将接收到的用户k的前1000个读写操作请求以及接收到的用户l的前1500个读写操作请求分配到b队列中。在当前处理周期内,如果接收到的用户k的读写操作请求超过了1000个,则可以将超过第1000个的读写操作请求分配到c队列中。如果接收到的用户l的读写操作请求超过了1500个,则可以将超过第1500个的读写操作请求分配到c队列中。

在当前处理周期内,如果a、b、c队列均为非空队列,则可以先处理a队列中的请求,a队列为空队列后,接着处理b队列中的请求。当b队列中的请求处理完毕后,b队列为空队列,则可以处理c队列中的请求。如果在处理c队列中请求的过程中,又有新的请求被分配到b队列,则b队列又成为非空队列,此时,可以停止处理c队列中的请求,并接着处理b队列中的请求,直到处理完毕后,再接着处理c队列中的请求。最后,在当前处理周期的结束时刻到达时,确定进入下一个处理周期。

可见,应用上述方案,一方面,无需对用户设定每处理周期读写操作请求次数的上限,因此,当用户对读写操作的业务需求较大时,仍然可以满足用户的需求。另一方面,从整个分布式存储系统的角度来看,提高了对读写操作请求的处理能力的利用率,使资源得到了更好的利用。再一方面,当多个用户同时处于业务需求的高峰期时,仍然可以保证所有用户配额以内的读写操作请求能够得到及时的处理,避免了资源配置的不平均。

与本申请资源管理的方法的实施例相对应,本申请还提供了资源管理的装置的实施例。

本申请资源管理的装置的实施例可以应用在设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图4所示,为本申请资源管理的装置401所在设备400的一种硬件结构图,设备400包括处理器402、内存403、网络接口404、非易失性存储器405以及内部总线406,其中,处理器402、内存403、网络接口404以及非易失性存储器405相互之间可以通过内部总线406进行通信。除了图4所示的处理器402、内存403、网络接口404、非易失性存储器405以及内部总线406之外,实施例中装置所在的设备400通常根据该设备的实际功能,还可以包括其他硬件,图4中不再一一示出。

参见图5,为本申请资源管理的装置的一个实施例框图。

该装置应用于分布式存储系统中,可以包括:获取单元501,第一分配单元502和处理单元503。

其中,获取单元501,用于获取预设队列对应的分配条件,所述预设队列包括预先设定的多个具有不同优先级的请求队列。

第一分配单元502,用于在进入当前处理周期后,根据该分配条件,将当前处理周期内接收到的读写操作请求按照该读写操作请求对应的预设配额,分配到相应的请求队列中。

处理单元503,用于在当前处理周期内,按照预设队列中请求队列的优先级处理请求队列中的读写操作请求。

在一个可选的实现方式中,上述读写操作请求对应的预设配额为发送该读写操作请求的用户对应的每处理周期读写操作次数的配额。

在另一个可选的实现方式中,第一分配单元被配置用于:

将第一读写操作请求分配到所述预设队列中的一组或多组第一请求队列中,所述第一读写操作请求为未超出对应的预设配额的读写操作请求;

将第二读写操作请求分配到所述预设队列中的一组或多组第二请求队列中,所述第二读写操作请求为超出对应的预设配额的读写操作请求;

其中,所述第一请求队列比所述第二请求队列的优先级高。

在另一个可选的实现方式中,所述装置还可以包括(图5中未示出):

第二分配单元,用于在进入当前处理周期后,如果上一个处理周期内有未处理的读写操作请求,则将所述未处理的读写操作请求分配到所述预设队列中的第三请求队列中。

在另一个可选的实现方式中,所述第三请求队列比所述第一请求队列的优先级高。

在另一个可选的实现方式中,所述装置还可以包括(图5中未示出):

判断单元,用于判断当前处理周期的结束时刻是否到达;

确定单元,用于在当前处理周期的结束时刻到达时,确定进入下一个处理周期。

上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

应当理解,上述装置可以预先设置在服务器中,也可以通过下载等方式而加载到服务器中。上述装置中的相应模块单元可以与服务器中的模块单元相互配合以实现资源管理的方案。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

相应的,本申请实施例还提供一种服务器设备,应用于分布式存储系统中,所述服务器设备包括:存储器,接收器,处理器;

其中,所述存储器,用于存储预设队列对应的分配条件,所述预设队列包括预先设定的多个具有不同优先级的请求队列;

所述接收器,用于接收读写操作请求;

所述处理器,用于从所述存储器中获取所述分配条件,在进入当前处理周期后,根据所述分配条件,将所述接收器在当前处理周期内接收到的读写操作请求,按照该读写操作请求对应的预设配额,分配到相应的请求队列中,并在当前处理周期内,按照所述预设队列中请求队列的优先级处理请求队列中的读写操作请求。

在一个可选的实现方式中,所述读写操作请求对应的预设配额为发送所述读写操作请求的用户对应的每处理周期读写操作次数的配额。

在另一个可选的实现方式中,所述处理器通过如下方式根据所述分配条件,将当前处理周期内接收到的读写操作请求按照该读写操作请求对应的预设配额,分配到相应的请求队列中:

将第一读写操作请求分配到所述预设队列中的一组或多组第一请求队列中,所述第一读写操作请求为未超出对应的预设配额的读写操作请求;

将第二读写操作请求分配到所述预设队列中的一组或多组第二请求队列中,所述第二读写操作请求为超出对应的预设配额的读写操作请求;

其中,所述第一请求队列比所述第二请求队列的优先级高。

在另一个可选的实现方式中,所述处理器还用于在进入当前处理周期后,如果上一个处理周期内有未处理的读写操作请求,则将所述未处理的读写操作请求分配到所述预设队列中的第三请求队列中。

在另一个可选的实现方式中,所述第三请求队列比所述第一请求队列的优先级高。

在另一个可选的实现方式中,所述服务器设备还包括定时器:

其中,所述定时器,用于按照预先设定的处理周期计时,并生成计时信号;

所述处理器,还用于根据所述定时器的计时信号,判断当前处理周期的结束时刻是否到达,并在当前处理周期的结束时刻到达时,确定进入下一个处理周期。

本申请实施例可采用在一个或多个其中包含有程序代码的存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

相应的,本申请实施例还提供一种计算机存储介质,该存储介质中存储有程序指令,该指令可被处理器执行以:

获取预设队列对应的分配条件,所述预设队列包括预先设定的多个具有不同优先级的请求队列;

在进入当前处理周期后,根据所述分配条件,将当前处理周期内接收到的读写操作请求按照该读写操作请求对应的预设配额,分配到相应的请求队列中;

在当前处理周期内,按照所述预设队列中请求队列的优先级处理请求队列中的读写操作请求。

本申请提供的该计算机可读存储介质可以是上述实施例中所述装置中所包含的计算机可读存储介质;也可以是单独存在,未装配入终端或服务器中的计算机可读存储介质。该计算机可读存储介质存储有一个或者一个以上程序,该程序被一个或者一个以上的处理器用来执行描述于本申请的资源管理的方法。

计算机可用存储介质包括永久性和非永久性、可移动和非可移动媒体,可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括但不限于:相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。

应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1