CN108667744A - 流量控制方法及装置 - Google Patents

流量控制方法及装置 Download PDF

Info

Publication number
CN108667744A
CN108667744A CN201810159977.6A CN201810159977A CN108667744A CN 108667744 A CN108667744 A CN 108667744A CN 201810159977 A CN201810159977 A CN 201810159977A CN 108667744 A CN108667744 A CN 108667744A
Authority
CN
China
Prior art keywords
token
target
tenant
request
service
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
Application number
CN201810159977.6A
Other languages
English (en)
Other versions
CN108667744B (zh
Inventor
肖庚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Cloud Computing Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201810159977.6A priority Critical patent/CN108667744B/zh
Publication of CN108667744A publication Critical patent/CN108667744A/zh
Application granted granted Critical
Publication of CN108667744B publication Critical patent/CN108667744B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/215Flow control; Congestion control using token-bucket
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/61Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources taking into account QoS or priority requirements

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)

Abstract

本申请公开了一种流量控制方法及装置,属于数据处理技术领域。该方法包括:当接收到目标租户发送的业务请求时,在本地存储的令牌中查找第一数量的目标租户的令牌;当未查找到第一数量的目标租户的令牌且目标租户的令牌的剩余总数量充足时,对业务请求进行处理,并启动异步任务,异步任务用于在处理业务请求的过程中异步向目标服务质量控制模块请求目标租户的令牌;当未查找到第一数量的目标租户的令牌且目标租户的令牌的剩余总数量不足时,向目标租户发送业务请求拒绝消息。由此可见,在本发明实施例中,当接收到租户的请求时,可以直接在本地查找该租户的令牌,相较于跨节点申请令牌,减少了节点间的通信开销,降低了对系统性能的影响。

Description

流量控制方法及装置
技术领域
本申请涉及数据处理技术领域,特别涉及一种流量控制方法及装置。
背景技术
分布式对象存储系统可以供多个租户进行访问。其中,当多个租户同时对分布式对象存储系统中的同一个节点进行访问时,不同租户之间将存在资源争抢。在这种情况下,为了防止一个租户占用过多资源,从而影响其他租户的业务请求,可以通过流量控制方法对各个租户的业务进行相应的管理。
图1A是分布式对象存储系统架构图。如图1A所示,分布式对象存储系统包括应用程序编程接口(Application Programming Interface,API)层、服务层以及分布式存储层。其中,API层包括多个API,当租户对分布式对象存储系统进行访问时,租户可以通过该API层中的API向服务层发送业务请求,该业务请求用于请求进行对象上传或下载。服务层包括多个节点,其中,每个节点均可以接收租户发送的业务请求,并且该多个节点上均可以设置有令牌服务中心,需要说明的是,不同租户对应不同的令牌服务中心,且该令牌服务中心用于为对应的租户提供令牌。分布式存储层包括多个存储节点,该多个存储节点即是根据租户的业务请求进行数据读写的节点。假设如图1A中所示,节点1接收到了租户1通过API层发送的业务请求且租户1的令牌服务中心位于节点2上,此时,节点1可以向该租户1的令牌服务中心所在的节点2申请令牌,当节点1接收到节点2发送的该租户1的令牌之后,则可以根据租户1的业务请求从分布式存储层上的多个存储节点中确定租户1要访问的存储节点,并将该业务请求下发至相应的存储节点,当相应的存储节点当前繁忙时,则会向节点1返回业务请求失败,当相应地存储节点当前不繁忙时,则可以执行写入或读取操作,并向节点1返回业务请求响应,实现对象的上传或下载。对于分布式存储系统中服务层的任一节点,均可以通过上述方式来处理租户的业务请求,也即是,相关技术中,可以在服务层根据租户的QoS上限值以及为不同租户的业务请求分配令牌来进行流量控制。
然而,当在服务层进行流量控制时,接收到租户的业务请求的节点通常都需要到该租户的令牌服务中心所在的节点去申请令牌,增加了大量的节点间通信和时延,对于时延敏感的业务请求,极大的影响业务的处理。
发明内容
为了解决相关技术中在服务层进行流量控制时,由于跨节点申请令牌所导致的时延问题以及节点间通信开销较大的问题,本申请提供了一种流量控制方法及装置。所述技术方案如下:
第一方面,提供了一种流量控制方法,应用于分布式对象存储系统包括的服务层中的任一节点,所述方法包括:
当接收到目标租户发送的业务请求时,在本地存储的令牌中查找第一数量的所述目标租户的令牌,所述第一数量为处理所述业务请求时所需要的令牌数量;
当未查找到所述第一数量的所述目标租户的令牌且所述目标租户的令牌的剩余总数量充足时,对所述业务请求进行处理,并启动异步任务,所述异步任务用于在处理所述业务请求的过程中异步向目标服务质量控制模块发送令牌请求消息,所述令牌请求消息用于请求所述目标租户的令牌,所述目标服务质量控制模块位于所述服务层中的任一节点上,且所述目标服务质量控制模块中存储有所述目标租户的令牌;
当未查找到所述第一数量的所述目标租户的令牌且所述目标租户的令牌的剩余总数量不足时,向所述目标租户发送业务请求拒绝消息。
在本发明实施例中,可以在本地存储有令牌,这样,当服务层的节点接收到目标租户的业务请求时,即可以直接从本地存储中查找该目标租户的令牌,若查找到,则可以对该业务请求进行处理,相较于相关技术中跨节点申请令牌,减少了节点间的通信开销。若查找不到,也可以通过异步任务在处理该业务请求的同时异步向目标服务质量服务器模块请求该目标租户的令牌,这样,该业务请求将不受节点间通信时延影响。
可选地,所述业务请求携带所述目标租户的租户标识和所述业务请求的请求类型;
所述在本地存储的令牌中查找第一数量的所述目标租户的令牌,包括:
在本地存储的令牌中查找所述租户标识和所述请求类型所对应的令牌;
当查找到所述租户标识和所述请求类型所对应的令牌时,确定处理所述业务请求时所需的令牌数量,得到所述第一数量;
当所述第一数量大于本地存储的所述租户标识和所述请求类型所对应的令牌的数量时,确定未查找到所述第一数量的所述目标租户的令牌。
需要说明的是,业务请求的请求类型可以包括下载和上传,其中,下载类型的业务请求的令牌和上传类型的业务请求的令牌不同。
可选地,所述启动异步任务之后,还包括:
当接收到所述目标服务质量控制模块发送的所述目标租户的令牌时,将接收到的所述目标租户的令牌存储在本地,并将本地存储的所述目标租户的令牌状态指示信息设置为第一状态,所述第一状态用于指示所述目标租户的令牌的剩余总数量充足,所述目标服务质量控制模块发送的所述目标租户的令牌的数量大于或等于所述令牌请求消息所请求的所述目标租户的令牌的数量;
当接收到所述目标服务质量控制模块发送的令牌请求失败消息时,将本地存储的所述目标租户的令牌状态指示信息设置为第二状态,并向所述服务层的其他节点同步所述目标租户的令牌状态指示信息,所述第二状态用于指示所述目标租户的令牌的剩余总数量不足。
其中,本地中还可以存储有令牌状态指示信息,在启动异步任务之后,可以通过目标服务质量控制模块返回的响应结果来设置该令牌状态指示信息,以指示目标服务质量控制模块中目标租户的令牌的剩余总数量是否充足。
可选地,所述目标服务质量控制模块中还存储有其他租户的令牌,所述异步任务按照预设周期启动;
所述当未查找到所述第一数量的所述目标租户的令牌且所述目标租户的令牌的剩余总数量充足时,启动异步任务,包括:
当未查找到所述第一数量的所述目标租户的令牌且所述目标租户的令牌的剩余总数量充足时,在到达启动所述异步任务的时刻时,启动所述异步任务;
其中,所述异步任务具体用于根据在所述预设周期内接收到的业务请求,确定向所述目标服务质量控制模块请求令牌的多个租户,以及所述多个租户中每个租户所请求的令牌的数量,所述多个租户中包括所述目标租户;基于所述多个租户和所述多个租户中每个租户所请求的令牌数量,在所述预设周期的结束时刻向所述目标服务质量控制模块发送所述令牌请求消息,所述令牌请求消息还用于请求所述多个租户中除所述目标租户之外的其他租户的令牌。
可选地,所述对所述业务请求进行处理,包括:
基于所述业务请求从所述分布式对象存储系统包括的分布式存储层中的多个存储节点中确定所要访问的目标存储节点;
获取存储的所述目标存储节点的热度信息,所述热度信息用于指示所述目标存储节点的繁忙程度;
基于所述热度信息,对所述业务请求进行处理。
其中,该热度信息可以指示存储节点繁忙或空闲,也可以指示存储节点的繁忙程度。该繁忙程度可以分为重度繁忙、中等繁忙和空闲等。
可选地,所述基于所述热度信息,对所述业务请求进行处理,包括:
当所述热度信息指示所述目标存储节点的繁忙程度为重度繁忙时,向所述目标租户发送所述业务请求拒绝消息;
当所述热度信息指示所述目标存储节点的繁忙程度不为重度繁忙时,向所述目标存储节点发送所述业务请求,以使所述存储节点基于所述业务请求进行业务处理。
其中,当目标存储节点的繁忙程度不为重度繁忙时,节点A还可以根据繁忙程度决定向目标存储节点发送该业务请求的时机。
可选地,所述向所述目标存储节点发送所述业务请求之后,还包括:
接收所述目标存储节点发送的业务响应消息,所述业务响应消息携带所述目标存储节点当前的热度信息;
基于所述目标存储节点当前的热度信息对存储的所述目标存储节点的热度信息进行更新。
第二方面,提供了一种流量控制装置,所述流量控制装置具有实现上述第一方面中流量控制方法行为的功能。所述流量控制装置包括至少一个模块,该至少一个模块用于实现上述第一方面所提供的流量控制方法。
第三方面,提供了一种流量控制装置,所述流量控制装置的结构中包括处理器和存储器,所述存储器用于存储支持流量控制装置执行上述第一方面所提供的流量控制方法的程序,以及存储用于实现上述第一方面所提供的流量控制方法所涉及的数据。所述处理器被配置为用于执行所述存储器中存储的程序。所述存储设备的操作装置还可以包括通信总线,该通信总线用于该处理器与存储器之间建立连接。
第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面所述的流量控制方法。
第五方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面所述的流量控制方法。
上述第二方面、第三方面、第四方面和第五方面所获得的技术效果与第一方面中对应的技术手段获得的技术效果近似,在这里不再赘述。
本申请提供的技术方案带来的有益效果是:当接收到租户发送的业务请求时,基于该业务请求,在本地存储的令牌中查找第一数量的目标租户的令牌,当未查找到第一数量的目标租户的令牌且目标租户的令牌的剩余总数量充足时,对该业务请求进行处理,并启动异步任务,通过该异步任务在处理业务请求的过程中异步向目标服务质量服务器模块发送令牌请求消息,该令牌请求消息用于请求目标租户的令牌;当未查找到第一数量的目标租户的令牌且目标租户的令牌的剩余总数量不足时,则可以向目标租户发送业务请求拒绝消息。由此可见,在本发明实施例中,可以在本地存储令牌,这样,当接收到租户的请求时,可以直接在本地查找该租户的令牌,相较于相关技术中跨节点申请令牌,减少了节点间的通信开销,降低了对系统性能的影响。另外,在本发明实施例中,即使未在本地查找到令牌,在目标租户的令牌剩余总数量充足情况下,也可以通过异步任务在处理该业务请求的同时异步向目标服务质量服务器模块请求该目标租户的令牌,这样,该业务请求将不受节点间通信时延影响。
附图说明
图1A是相关技术中的分布式对象存储系统的架构图;
图1B是本发明实施例提供的一种分布式对象存储系统的架构图;
图2是本发明实施例提供的计算机设备的结构示意图;
图3是本发明实施例提供的流量控制方法流程图;
图4是本发明实施例提供的流量控制装置结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
在对本发明实施例进行详细的解释说明之前,先对本发明实施例涉及的分布式对象存储系统的系统架构进行介绍。
图1B是本发明实施例提供的一种分布式对象存储系统的系统架构图。如图1中所示,该分布式对象存储系统中包括API层、服务层以及分布式存储层。
其中,API层包括多个API,当租户对分布式对象存储系统进行访问时,租户可以通过该API层中的API向服务层发送业务请求,该业务请求用于请求进行对象上传或下载。
服务层包括多个节点,其中,每个节点中可以包括对象服务模块101、本地服务质量模块102、服务质量客户端103、服务质量控制模块104以及分布式存储客户端105。其中,本地服务质量模块102中可以缓存有不同租户的用于不同请求类型的部分数量的令牌,而不同节点上的服务质量控制模块104中则存储有不同租户的剩余令牌。对象服务模块101可以接收API层分发的租户的业务请求,并根据该业务请求与本地服务质量模块102进行交互,以从本地服务质量模块102缓存的租户的令牌中申请处理该业务请求所需的令牌。并且,对象服务模块101还可以通过分布式存储客户端105与分布式存储层中的存储节点交互,从而对该业务请求进行处理。本地服务质量模块102在自身缓存的租户令牌不够用的情况下,可以通过服务质量客户端103与服务层中任一节点上的服务质量控制模块104进行交互,从而从服务质量控制模块104中存储的租户的剩余令牌中申请部分数量的令牌。服务质量控制模块104可以接收本地质量服务模块102通过服务质量客户端103发送的令牌请求消息,并根据令牌请求消息中携带的请求数量以及其本身存储的令牌的剩余总数量进行令牌分配,在令牌的剩余总数量不足的情况下,服务质量控制模块104可以向发送该令牌请求消息的服务质量客户端102发送用于指示租户令牌剩余总数量不足的令牌请求失败消息,并由该服务质量客户端102将该租户令牌剩余总数量不足的指示信息同步至服务层的每个节点中。
分布式存储层包括多个存储节点106,该多个存储节点106可以用于根据服务层中任一节点的对象服务模块101下发的业务请求进行数据读写。并且,该多个存储节点可以生成用于指示自身繁忙程度的热度信息,并将该热度信息携带在业务响应消息中通过分布式存储客户端105发送至对象服务模块101,对象服务模块101在接收到该热度信息之后可以将该热度信息存储在本地服务质量模块102中,以供后续使用。
需要说明的是,在本发明实施例中,服务层同一个节点包括的对象服务模块101、本地服务质量模块102、服务质量客户端103可以处于同一个进程中,也可以处于不同的进程中。并且,对象服务模块101、本地服务质量模块102和服务质量客户端103中的任一模块均与服务质量控制模块104处于不同的进程中。
图2是本发明实施例提供的一种计算机设备的结构示意图。图1B中分布式对象存储系统中服务层的任一节点以及分布式存储层中的任一存储节点均可以通过图2所示的计算机设备来实现。参见图2,该计算机设备包括至少一个处理器201,通信总线202,存储器203以及至少一个通信接口204。
处理器201可以是一个通用中央处理器(Central Processing Unit,CPU),微处理器,特定应用集成电路(application-specific integrated circuit,ASIC),或一个或多个用于控制本申请方案程序执行的集成电路。
通信总线202可包括一通路,在上述组件之间传送信息。
存储器203可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其它类型的静态存储设备,随机存取存储器(random access memory,RAM))或者可存储信息和指令的其它类型的动态存储设备,也可以是电可擦可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、只读光盘(CompactDisc Read-Only Memory,CD-ROM)或其它光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质,但不限于此。存储器203可以是独立存在,通过通信总线202与处理器201相连接。存储器203也可以和处理器201集成在一起。
通信接口204,使用任何收发器一类的装置,用于与其它设备或通信网络通信,如以太网,无线接入网(RAN),无线局域网(Wireless Local Area Networks,WLAN)等。
在具体实现中,作为一种实施例,处理器201可以包括一个或多个CPU,例如图2中所示的CPU0和CPU1。
在具体实现中,作为一种实施例,计算机设备可以包括多个处理器,例如图2中所示的处理器201和处理器205。这些处理器中的每一个可以是一个单核(single-CPU)处理器,也可以是一个多核(multi-CPU)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
在具体实现中,作为一种实施例,计算机设备还可以包括输出设备206和输入设备207。输出设备206和处理器201通信,可以以多种方式来显示信息。例如,输出设备206可以是液晶显示器(liquid crystal display,LCD),发光二级管(light emitting diode,LED)显示设备,阴极射线管(cathode ray tube,CRT)显示设备,或投影仪(projector)等。输入设备207和处理器201通信,可以以多种方式接收用户的输入。例如,输入设备207可以是鼠标、键盘、触摸屏设备或传感设备等。
上述的计算机设备可以是一个通用计算机设备或者是一个专用计算机设备。在具体实现中,计算机设备可以是台式机、便携式电脑、网络服务器、掌上电脑(PersonalDigital Assistant,PDA)、移动手机、平板电脑、无线终端设备、通信设备或者嵌入式设备。本发明实施例不限定计算机设备的类型。
其中,存储器203用于存储执行本申请方案的程序代码,并由处理器201来控制执行。处理器201用于执行存储器203中存储的程序代码208。程序代码208中可以包括一个或多个软件模块。图1B中所示的分布式对象存储系统中服务层的任一节点或分布式存储层的任一存储节点可以通过处理器201以及存储器203中的程序代码208中的一个或多个软件模块,来确定用于进行流控的数据。
本申请后续实施例中均是以在服务质量控制模块中设置的服务质量上限值为基础来进行流量控制的,因此,在对本发明实施例进行详细的解释说明之前,先对在服务质量控制模块中设置的服务质量上限值以及服务质量控制模块根据设置的服务质量上限值确定相应地令牌总数量的具体过程进行介绍。
在本发明实施例中,分布式对象存储系统中设备有配置管理通道,技术人员可以通过该配置管理通道对服务层中每个节点包括的服务质量控制模块内的不同租户的不同请求类型的服务质量上限值进行配置,其中,该服务质量上限值可以是系统在预设时长内允许处理的每个租户的不同请求类型的业务请求的数量的最大值,也可以是系统在预设时长内允许处理的每个租户的不同请求类型的业务请求的数据量的最大值。例如,针对任一租户A,可以设置该租户A的上传类型的业务请求的服务质量上限值为1000TPS,下载类型的业务请求的服务质量上限值为2000TPS,也即系统每秒允许处理的该租户A的上传类型的业务请求的数量最多为1000个,每秒允许处理的该租户A的下载类型的业务请求的数量最多为2000个。再例如,针对任一租户A,可以设置该租户A的上传类型的业务请求的服务质量上限值为M kB/s,下载类型的业务请求的服务质量上限值为N kB/s,也即系统每秒允许处理的该租户A上传类型的业务请求的总数据量为M kB,每秒允许处理的该租户A下载类型的业务请求的总数据量为N kB。
当在每个服务质量控制模块内设置不同租户的服务质量上限值之后,每个服务质量控制模块可以根据每个租户的服务质量上限值计算得到每个租户在一定时间内的令牌总数量。例如,假设租户A的上传类型的业务请求的服务质量上限值为1000TPS,下载类型的业务请求的服务质量上限值为2000TPS,且一个令牌可以供一个业务请求使用,那么,在一秒内可供该租户A的上传类型的业务请求使用的令牌总数量则为1000个,可供该租户A的下载类型的业务请求使用的令牌总数量则为2000个。再例如,假设该租户A的上传类型的业务请求的服务质量上限值为M kB/s,下载类型的业务请求的服务质量上限值为N kB/s,且一个令牌可以供w kB的数据量的数据使用,那么,在一秒内可供该租户A的上传类型的业务请求使用的令牌总数量则为M/w个,可供该租户A的下载类型的业务请求使用的令牌总数量则为N/w个。
当对服务层中每个节点包括的服务质量控制模块内的服务质量上限值进行配置,且服务质量控制模块基于该服务质量上限值确定得到每个租户每种请求类型的令牌总数量之后,则可以通过本发明实施例提供的流量控制方法来对租户的业务请求进行流量控制,接下来将结合附图3对本发明实施例提供的流量控制方法进行详细的解释说明。
图3是本发明实施例提供的一种流量控制方法,该方法可以应用于图1B所示的分布式对象存储系统中服务层的任一节点中,在本发明实施例,将以任一节点A为例进行解释说明,参见图3,该方法包括:
步骤301:当节点A接收到目标租户发送的业务请求时,在本地存储的令牌中查找第一数量的目标租户的令牌,第一数量为处理该业务请求时所需要的令牌数量。
在本发明实施例中,业务请求中可以携带有租户标识和该业务请求的请求类型,其中,该租户标识用于唯一标识发送该业务请求的目标租户,该业务请求的请求类型则可以包括上传或是下载。并且,当该业务请求的请求类型为上传时,该业务请求中还携带待上传的对象的对象标识以及该对象的数据和元数据等。当该业务请求的请求类型为下载时,则该业务请求中还携带有待下载的对象的对象标识。
基于前述对图1B所示的分布式对象存储系统的系统架构的介绍可知,服务层中每个节点的本地服务质量模块中可以缓存有不同租户用于不同请求类型的令牌。基于此,当节点A接收到API层下发的业务请求时,可以根据该业务请求中携带的租户标识以及该业务请求的请求类型,从该节点A中的本地服务质量模块存储的令牌中查找第一数量的目标租户的令牌。
其中,节点A可以在本地存储的令牌中查找该租户标识和请求类型所对应的令牌,当查找到该租户标识和请求类型所对应的令牌时,确定处理该业务请求时所需的令牌数量,得到第一数量,当第一数量大于本地存储的该租户标识和该请求类型所对应的令牌的数量时,则确定为查找到第一数量的目标租户的令牌。否则,则确定查找到第一数量的目标租户的令牌。
具体的,节点A可以首先从本地存储的令牌中查找目标租户的租户标识和请求类型所对应的令牌,如果本地存储的令牌中不存在该目标租户的租户标识或该请求类型的令牌时,节点A则可以确定未在本地存储中查找到第一数量的该目标租户的令牌。如果本地存储中存在该目标租户的租户标识和请求类型所对应的令牌时,节点A可以进一步判断本地存储的该目标租户的该种请求类型的令牌是否足够处理该业务请求时进行使用。
其中,节点A可以根据该业务请求确定处理该业务请求时所需要的令牌的数量。具体的,基于前述描述的关于根据服务质量上限值确定令牌总数量的介绍可知,服务质量上限值所采用的参数类型不同,转换得到令牌的方式也不同,在本发明实施例中,根据转换得到令牌的方式的不同,也即是,每个令牌所代表的含义的不同,节点A可以根据不同的方式来确定该业务请求所需的令牌数量,也即第一数量。通过比较本地存储中的该目标租户的租户标识和请求类型对应的令牌的数量和第一数量的大小,节点A可以判断是否在本地存储中查找到了第一数量的该目标租户的令牌,也即,判断本地存储的该目标租户的该种请求类型的令牌是否足够该业务请求使用。
例如,当服务质量上限值是业务请求的数量的最大值时,其中,每个令牌可以允许一个业务请求通行,在这种情况下,针对该业务请求,第一数量即为1,也即是,当本地至少存储有1个该目标租户的该请求类型的令牌,节点A则可以确定查找到了第一数量的目标租户的令牌,否则,则可以确定未查找到第一数量的目标租户的令牌。
再例如,当服务质量上限值是不同请求类型的业务请求的数据量的最大值时,其中,假设每个令牌可以允许1kB的数据量通过,那么,如果该业务请求占用的总带宽为1MB时,则处理该业务请求时需要1024个令牌。也即是,第一数量为1024。如果本地存储的目标租户的该请求类型的令牌大于或等于1024个令牌,则节点A可以确定查找到第一数量的目标租户的令牌,否则,则可以确定未查找到第一数量的目标租户的令牌。
当节点A在本地存储中查找到第一数量的目标租户的令牌时,则说明在本次周期的预设时长内,该目标租户的业务请求数量或者是业务请求数据量还未达到服务质量上限值,因此,节点A可以从本地存储的目标租户的该种请求类型的令牌中获取第一数量的令牌,并根据该第一数量的令牌对该业务请求放行,也即是,节点A可以继续对该业务请求进行处理。其中,节点A继续对该业务请求进行处理的具体实现过程将在下述步骤303中进行详细介绍。另外,当节点A从本地存储的目标租户的该种请求类型的令牌中获取第一数量的令牌之后,本地存储的该目标租户的该种请求类型的令牌的数量也将减少第一数量。
当节点A在本地存储中未查找到第一数量的目标租户的令牌时,则可以通过步骤302-304来决定对该业务请求是继续处理还是向目标租户返回业务请求拒绝消息。
步骤302:当未查找到第一数量的目标租户的令牌时,节点A判断目标租户的令牌的剩余总数量是否充足。
其中,节点A可以在本地存储有用于指示该目标租户的令牌的剩余总数量是否充足的令牌状态指示信息,该令牌状态指示信息可以包括第一状态和第二状态,其中,第一状态用于指示该目标租户的令牌的剩余总数量充足,第二状态用于指示该目标租户的令牌的剩余总数量不足,通过读取该令牌状态指示信息,节点A可以确定目标租户的令牌的剩余总数量是否充足。
具体的,由于目标租户的令牌可以按照请求类型进行分类,因此,不同请求类型也均可以设置有对应的令牌状态指示信息。其中节点A可以根据业务请求的请求类型,读取目标租户的该种请求类型对应的令牌状态指示信息,从而确定目标租户的该种请求类型的令牌的剩余总数量是否充足。
需要说明的是,该令牌状态指示信息可以是节点A在当前时刻之前接收到目标租户的业务请求时,在本地存储的目标租户的令牌的数量不足的情况下向管理该目标租户的令牌的目标服务质量控制模块申请令牌后,根据该目标服务质量控制模块返回的请求响应消息设置的。也即是,该令牌状态指示信息可以用于指示在接收到当前的业务请求之前,该目标服务质量控制模块中的目标租户的令牌是否充足。其中,该目标服务质量控制模块可能位于节点A中,也可能位于服务层的其他节点中。
当节点A通过读取令牌状态指示信息确定当前为第一状态时,则可以确定目标租户的令牌的剩余总数量充足,并执行步骤303。当令牌状态指示信息为第二状态时,则可以确定目标租户的令牌的剩余总数量不足,此时,节点A可以执行步骤307。
可选地,在一种可能的实现方式中,考虑到在一个周期结束之后,下一个周期开始时,目标服务质量控制模块会将每个租户的令牌的剩余总数量重新设置为服务质量上限值所对应的令牌数量,从而开始新一轮的流量控制过程,而节点A有可能并不知道本周期什么时候结束,下个周期什么时候开始,也即,节点A可能并不知道目标服务质量控制模块会在什么时候重置租户的令牌总数量,因此,为了能够在目标服务质量控制模块重置租户的令牌总数量之后及时申请到目标租户的令牌,在节点A确定目标租户的令牌的剩余总数量不足之后,节点A可以每隔指定时长向目标服务质量控制模块发送令牌请求消息以请求目标租户的令牌,若请求失败,则说明目标服务质量控制模块中还未重置目标租户的令牌的剩余总数量,此时,继续保持令牌状态指示信息为第二状态,若请求成功,也即请求到了目标租户的令牌,则可以将令牌状态指示信息更新为第一状态,并将请求到的令牌保存在本地,以便目标租户使用。
步骤303:当目标租户的令牌的剩余总数量充足时,节点A对业务请求进行处理,并启动异步任务,该异步任务用于在处理业务请求的过程中向目标服务质量控制模块发送令牌请求消息。
当节点A确定目标租户的令牌的剩余总数量充足时,则说明管理该目标租户的令牌的目标服务质量控制模块中存储的该目标租户的令牌暂时还是充足的。在此基础上,由于在本地存储中未查找到第一数量的目标租户的令牌,因此,节点A可以转而向目标服务质量控制模块申请令牌。
由于通常情况下,目标租户对应的目标服务质量控制模块有很大概率不在本节点A上,因此,节点A向目标服务质量控制模块申请令牌时需要跨节点。在这种情况下,为了减少该业务请求的处理时延,节点A可以先放行该业务请求,与此同时,节点A可以启动异步任务向目标服务质量控制模块申请令牌。也就是说,节点A可以不必等待申请到令牌之后再对该业务请求进行处理,而是在处理该业务请求的过程中,启动用于向目标服务质量控制模块申请令牌的异步任务异步向目标服务质量控制模块发送令牌请求消息。
其中,在分布式对象存储系统中,可以根据每个租户的租户标识的哈希值来设置用于管理每个租户的令牌的服务质量控制模块。节点A可以首先根据目标租户的租户标识的哈希值,确定用于管理目标租户的令牌的目标服务质量控制模块,在确定目标服务质量控制模块之后,节点A可以启动异步任务,也即向该目标服务质量控制模块发送令牌请求消息,该令牌请求消息中可以携带有目标租户的租户标识,该业务请求的请求类型以及节点A所要请求的该目标租户的令牌的数量。
可选地,在一种可能的实现方式中,考虑到目标服务质量控制模块通常并不位于节点A上,这样,向目标服务质量控制模块申请令牌就会涉及到跨节点通信,而跨节点通信会增加时延,因此,为了尽量的减少节点间的通信,节点A可以按照预设周期启动异步任务。其中,节点A可以在确定目标租户的令牌的剩余总数量充足时,在到达启动异步任务的时刻时,启动异步任务,该异步任务用于根据在预设周期内接收到的业务请求,确定向目标服务质量控制模块请求令牌的多个租户,以及多个租户中每个租户所请求的令牌的数量,多个租户中包括目标租户基于多个租户和多个租户中每个租户所请求的令牌数量,在预设周期的结束时刻向目标服务质量控制模块发送令牌请求消息,令牌请求消息还用于请求多个租户中除目标租户之外的其他租户的令牌。
具体的,节点A仍然可以首先根据目标租户的租户标识确定对应的目标服务质量控制模块,当节点A确定了该目标租户对应的目标服务质量控制模块之后,节点A可以判断是否到达了启动该异步任务的时刻,如果到达了启动该异步任务的时刻,那么,节点A可以启动异步任务,之后,该异步任务可以统计在预设周期内接收到的所有租户的业务请求中未在本地存储中查找到所需数量的令牌的业务请求,并按照不同租户所对应的不同的服务质量控制模块对统计得到的业务请求进行分类,之后,在该预设周期的结束时刻,该异步任务可以将对应同一服务质量控制模块的同一租户的同种请求类型所需请求的令牌的数量进行汇总,从而根据汇总结果,统一向相应地服务质量控制模块发送用于请求令牌的令牌请求消息。其中,该预设周期可以为10ms、15ms或其他毫秒级的数值。
例如,假设节点A未从本地存储中查找到用于处理该业务请求的第一数量的该目标租户的令牌,目标租户的业务请求是下载类型的业务请求,且节点A每10ms启动一次异步任务。当确定该目标租户对应的目标服务质量控制模块时,节点A确定按照预设周期,当前时刻并非启动异步任务的时刻,在这种情况下,节点A可以等待启动异步任务时刻的到来。当到达启动该异步任务的时刻时,节点A启动该异步任务,从启动该异步任务开始,该异步任务可以对接下来该预设周期内接收到的所有业务请求进行统计,假设异步任务统计得到接下来在该预设周期内节点A还接收到了租户A的2个下载类型的业务请求、租户B的3个上传类型的业务请求以及租户C的2个上传类型的下载请求和2个下载类型的业务请求,节点A针对上述业务请求均没有在本地存储中查找到满足上述业务请求的令牌。其中,用于管理租户A和租户B的令牌的服务质量控制模块均为服务质量控制模块A,用于管理租户C和目标租户的令牌的服务质量控制模块均为目标服务质量控制模块。在这种情况下,当到达该本周期的结束时刻时,异步任务可以对租户A和租户B、租户C和目标租户所要申请的令牌的数量进行分类汇总,并根据汇总结果,向服务质量控制模块A发送一条用于请求令牌的令牌请求消息A,在该令牌请求消息A中可以携带有租户A的租户标识、租户A的业务请求的请求类型——下载、所要请求的下载类型的令牌的数量2,以及租户B的租户标识、租户B的业务请求的请求类型——上传、所要请求的上传类型的令牌的数量3。同理,对于租户C和目标租户,则可以向目标服务质量控制模块发送一条令牌请求消息,该令牌请求消息中将携带有目标租户的租户标识、目标租户的业务请求的请求类型——下载、所要请求的下载类型的令牌的数量1,以及租户C的租户标识、租户C的业务请求的请求类型——上传和下载、下载类型对应的所要请求的令牌的数量2和上传类型对应的所要请求的令牌的数量2。
在节点A通过启动异步任务异步向目标质量服务器发送令牌请求消息的过程中,对目标租户的业务请求的处理并没有受到影响,也即是,节点A在确定目标租户的令牌的剩余总数量充足时,即继续对该业务请求进行处理。这样,由于该业务请求并未等待令牌分配即被下发,减少了时延。
其中,节点A可以基于该业务请求从分布式对象存储系统包括的分布式存储层中的多个存储节点中确定所要访问的目标存储节点;获取存储的目标存储节点的热度信息,热度信息用于指示目标存储节点的繁忙程度;基于该热度信息,对业务请求进行处理。
具体的,节点A可以根据该业务请求中携带的对象标识通过分布式哈希表(Distributed Hash Table,DHT)算法确定所要访问的目标存储节点。其中,对于上传类型的业务请求,上述确定的所要访问的目标存储节点即是存储该业务请求中携带的待上传的对象的数据的节点,而对于下载类型的业务请求,该目标存储节点即是该业务请求所要下载的对象所在的存储节点。
当确定目标存储节点之后,节点A还可以获取本地存储的该目标存储节点的热度信息,该热度信息是该目标存储节点最近一次向节点A返回业务响应消息时所携带的指示该目标存储节点的繁忙程度的信息。需要说明的是,该热度信息可以指示存储节点繁忙或空闲,当然,该热度信息也可以指示存储节点繁忙程度。其中,该繁忙程度可以分为重度繁忙、中等繁忙以及空闲等。
针对上述不同的热度信息,节点A可以对该业务请求执行不同的操作。当该热度信息指示存储节点繁忙或是空闲时,如果获取到目标存储节点的热度信息指示目标存储节点繁忙,那么,节点A可以直接向目标租户返回业务请求拒绝消息或者是业务请求失败消息。如果获取到的目标存储节点的热度信息指示目标存储节点为空闲时,则节点A可以将该业务请求下发至该目标存储节点进行进一步地处理。
当该热度信息指示存储节点的繁忙程度时,如果获取到的目标存储节点的热度信息指示目标存储节点的繁忙程度为重度繁忙,那么,节点A可以直接向目标租户返回业务请求拒绝消息或者是业务请求失败消息。如果目标存储节点的繁忙程度不为重度繁忙,节点A则可以向目标存储节点下发该业务请求,以使存储节点基于业务请求进行业务处理。
进一步地,在本发明实施例中,当目标存储节点的繁忙程度不为重度繁忙时,节点A还可以根据繁忙程度决定向目标存储节点发送该业务请求的时机。例如,假设繁忙程度还包括中等繁忙和空闲。如果热度信息指示目标存储节点为空闲,则节点A可以立即向目标存储节点发送该业务请求,如果热度信息指示目标存储节点为中等繁忙,则节点A可以延时一定时长后再向目标存储节点发送该业务请求。
基于上述描述可知,在本发明实施例中,节点A可以根据存储的目标存储节点的热度信息来决定是否向目标存储节点下发该业务请求,这样,即可以在服务层就对分布式存储层中的流量进行提前控制,而相关技术中将业务请求直接下发至分布式存储层后由存储节点根据繁忙程度来进行流量控制,由于大量的业务请求同时下发至存储节点,很容易将网络带宽冲垮,并且,存储节点接收业务请求之后根据繁忙程度需要向服务层的节点返回消息,返回消息的过程也会消耗大量的资源。显然的,本发明实施例在服务层节点提前对分布式存储层的存储节点进行流量控制,既可以避免在业务请求下发的过程中导致网络带宽被冲垮,同时又可以减少存储节点与服务层节点之间的信令开销,降低了对存储节点的资源的消耗,效果更佳。
当节点A将业务请求下发至分布式存储层的目标存储节点之后,目标存储节点可以根据该业务请求中携带的对象标识以及对象的数据,进行相应的读写操作,之后,目标存储节点可以向节点A返回针对该业务请求的业务响应消息。其中,目标存储节点可以根据处理器的运行参数、存储器的运行参数、硬盘输入输出时延等数据来生成当前的热度信息,并将该热度信息携带在业务响应消息中发送至节点A。另外,该业务响应消息中还可以根据业务请求的请求类型的不同而携带不同的信息,例如,当该业务请求是下载类型的请求时,该业务响应消息中还可以携带根据该业务请求中的对象标识下载的数据内容。
当节点A接收到目标存储节点返回的业务响应消息之后,可以根据该业务响应消息中携带的目标存储节点当前的热度信息对存储的目标存储节点的热度信息进行更新,以便后续可以更准确的根据该热度信息对业务请求进行下发。
需要说明的是,在本发明实施例中,当节点A在本地存储中未查找到第一数量的目标租户的令牌但是确定目标租户的令牌的剩余总数量充足时,节点A在没有令牌的情况下对该业务请求放行了,也就是说,实际上该业务请求并没有消耗该目标租户的令牌,但是,这种机会对于每一个租户较少,这样,对于分布式对象存储系统,在流量控制的过程中,实际处理的业务请求的数量或者数据量会比服务上限值多出一部分,多出的一部分就是在本地存储的令牌不足且剩余总数量充足的情况下放行的这一部分,这一部分在一次预设时长的流量控制过程中造成的偏差极小,并不会影响整个系统对业务请求的处理。当然,为了弥补这一部分偏差,配置管理模块在设置服务质量上限值时可以相应地较本来的服务质量上限值设置的小一些。
步骤304:当目标服务质量控制模块接收到令牌请求消息时,基于该令牌请求消息以及存储的目标租户的令牌的剩余总数量,向节点A发送所述目标租户的令牌或令牌请求失败消息。
基于前述步骤303可知,当节点A确定目标租户的令牌的剩余总数量充足时,可以在处理目标租户的业务请求的过程中启动异步任务向目标服务质量控制模块发送令牌请求消息。当目标服务质量控制模块接收到令牌请求消息时,可以根据该令牌请求消息中携带的该目标租户的租户标识以及该目标租户的业务请求的请求类型,确定存储的该目标租户的该请求类型的令牌的剩余总数量。之后,目标服务质量控制模块可以将存储的该目标租户的该请求类型的令牌的剩余总数量与该目标租户所请求的数量进行比较。如果存储的该目标租户的该请求类型的令牌的剩余总数量不大于该目标租户所请求的数量,则说明目标服务质量控制模块中存储的该目标租户的该请求类型的令牌已经不足,因此,目标服务质量控制模块可以向节点A发送令牌请求失败消息,以指示当前目标服务质量控制模块中存储的该目标租户的该请求类型的令牌的剩余总数量不足,已不够使用。
如果存储的该目标租户的该请求类型的令牌的剩余总数量大于该目标租户所请求的数量,则目标服务质量控制模块可以根据目标租户所请求的数量确定为该目标租户预分配的令牌数量。
具体的,目标服务质量控制模块可以根据以下公式确定为该目标租户预分配的令牌数量:
W=max[(a*M+b*N),N]
其中,W为预分配的令牌数量,M为该目标租户所请求的数量,N为目标服务质量控制模块中存储的该目标租户的该请求类型的令牌的剩余总数量,a目标租户所请求的令牌数量所对应的影响因子,且a≥1,b为存储的该目标租户的该请求类型的令牌的剩余总数量对应的影响因子,且b≥0。
当确定为该目标租户预分配的令牌数量之后,目标服务质量控制模块从存储的该目标租户的该请求类型的令牌中获取相同数量的令牌,并将获取到的该目标租户的令牌发送至节点A。
步骤305:当节点A接收到目标租户的令牌时,将接收到的目标租户的令牌存储在本地,并将本地存储的目标租户的令牌状态指示信息设置为第一状态。
当节点A接收到目标服务质量控制模块发送的目标租户的令牌时,节点A可以将接收到的目标租户的令牌存储在本地,以便后续再次接收到该目标租户的业务请求时使用。与此同时,节点A还可以对本地存储的令牌状态指示信息进行设置。其中,当节点A接收到目标租户分配的令牌时,则说明目标服务质量控制模块中存储的该目标租户的令牌还未用尽,也即该目标租户的令牌的剩余总数量还充足,此时,节点A可以将本地存储的令牌状态指示信息设置为第一状态,该第一状态即可以用于指示目标租户的令牌的剩余总数量充足。
步骤306:当节点A接收到目标服务质量控制模块发送的令牌请求失败消息,将本地存储的目标租户的令牌状态指示信息设置为第二状态,并向服务层的其他节点同步该目标租户的令牌状态指示信息。
当节点A接收到的是令牌请求失败消息时,则说明目标服务质量控制模块中存储的该目标租户的令牌的剩余总数量已经不足,在这种情况下,后续即使再向目标服务质量控制模块请求该目标租户的令牌也请求不到了,因此,节点A可以根据该令牌请求失败消息将本地存储的令牌状态指示信息设置为第二状态,并且,向服务层的其他节点同步该目标租户的令牌状态指示信息。这样,在本次预设时长的流量控制中,当服务层的任一节点接收到该目标租户的业务请求时,如果在本地存储中未查找到该目标租户的业务请求所需数量的令牌时,节点则可以根据该令牌状态指示信息,参考步骤302直接确定该目标租户的令牌的剩余总数量不足,进而根据步骤307直接向该目标租户返回业务请求拒绝消息,而不必在徒劳的再次向目标服务质量控制模块请求令牌。
步骤307:当目标租户的令牌的剩余总数量不足时,节点A向目标租户发送业务请求拒绝消息。
当节点A根据步骤302确定目标租户的令牌的剩余总数量不足时,则说明目标服务质量控制模块中已不能再为该目标租户分配令牌,此时,由于节点A在本地存储的令牌中也未查找到第一数量的目标租户的令牌,因此,可以说明在本次预设时长的流量控制过程中,该目标租户的业务请求的数量或者是业务请求的数据量已经超过了该目标租户的服务质量上限值,此时,节点A可以直接向目标租户发送业务请求拒绝消息。
在本发明实施例中,当接收到租户发送的业务请求时,基于该业务请求,在本地存储的令牌中查找第一数量的目标租户的令牌,当未查找到第一数量的目标租户的令牌且目标租户的令牌的剩余总数量充足时,对该业务请求进行处理,并启动异步任务,通过该异步任务在处理业务请求的过程中异步向目标服务质量控制模块发送令牌请求消息,该令牌请求消息用于请求目标租户的令牌;当未查找到第一数量的目标租户的令牌且目标租户的令牌的剩余总数量不足时,则可以向目标租户发送业务请求拒绝消息。由此可见,在本发明实施例中,可以在本地存储令牌,这样,当接收到租户的请求时,可以直接在本地查找该租户的令牌,相较于相关技术中跨节点申请令牌,减少了节点间的通信开销,降低了对系统性能的影响。另外,在本发明实施例中,即使未在本地查找到令牌,在目标租户的令牌剩余总数量充足情况下,也可以通过异步任务在处理该业务请求的同时异步向目标服务质量控制模块请求该目标租户的令牌,这样,该业务请求将不受节点间通信时延影响。并且,通过目标服务质量控制模块对该令牌请求消息的响应,可以相应地更新本地存储的以及服务层其他节点中存储的用于指示目标租户的令牌的剩余总数量是否充足的令牌状态指示信息,这样,当后续再接收到该目标租户的业务请求时,如果未在本地存储的令牌中获取到目标租户的令牌,并且该令牌状态指示信息指示目标租户的令牌的剩余总数量不足,服务层的节点则可以直接返回业务请求拒绝消息,减少了节点间的无用通信,节省了信令开销。
另外,在本发明实施例中,节点A可以根据存储的目标存储节点的热度信息来决定是否向目标存储节点下发该业务请求,这样,即可以在服务层就对分布式存储层中的流量进行提前控制,而相关技术中将业务请求直接下发至分布式存储层后由存储节点根据繁忙程度来进行流量控制,由于大量的业务请求同时下发至存储节点,很容易将网络带宽冲垮,并且,存储节点接收业务请求之后根据繁忙程度需要向服务层的节点返回消息,返回消息的过程也会消耗大量的资源。显然的,本发明实施例在服务层节点提前对分布式存储层的存储节点进行流量控制,既可以避免在业务请求下发的过程中导致网络带宽被冲垮,同时又可以减少存储节点与服务层节点之间的信令开销,降低了对存储节点的资源的消耗,流控效果更佳。
参见图4,本发明实施例提供了一种流量控制装置400,应用于分布式对象存储系统包括的服务层中的任一节点,该装置400包括:
查找模块401,用于执行上述实施例中步骤301;
处理模块402,用于执行上述实施例中步骤302和步骤303;
发送模块403,用于执行上述实施例中步骤307。
可选地,业务请求携带目标租户的租户标识和业务请求的请求类型;
查找模块401包括:
查找子模块,用于在本地存储的令牌中查找租户标识和请求类型所对应的令牌;
第一确定子模块,用于当查找到租户标识和请求类型所对应的令牌时,确定处理业务请求时所需的令牌数量,得到第一数量;
第二确定子模块,用于当第一数量大于本地存储的租户标识和请求类型所对应的令牌的数量时,确定未查找到第一数量的目标租户的令牌。
可选地,其特征在于,该装置400还包括:
存储模块,用于当接收到目标服务质量控制模块发送的目标租户的令牌时,将接收到的目标租户的令牌存储在本地,并将本地存储的目标租户的令牌状态指示信息设置为第一状态,第一状态用于指示目标租户的令牌的剩余总数量充足,目标服务质量控制模块发送的目标租户的令牌的数量大于或等于令牌请求消息所请求的目标租户的令牌的数量;
同步模块,用于当接收到目标服务质量控制模块发送的令牌请求失败消息时,将本地存储的目标租户的令牌状态指示信息设置为第二状态,并向服务层的其他节点同步目标租户的令牌状态指示信息,第二状态用于指示目标租户的令牌的剩余总数量不足。
可选地,目标服务质量控制模块中还存储有其他租户的令牌,异步任务按照预设周期启动;
处理模块402具体用于:
当未查找到第一数量的目标租户的令牌且目标租户的令牌的剩余总数量充足时,在到达启动异步任务的时刻时,启动异步任务;
其中,异步任务具体用于根据在预设周期内接收到的业务请求,确定向目标服务质量控制模块请求令牌的多个租户,以及多个租户中每个租户所请求的令牌的数量,多个租户中包括目标租户;基于多个租户和多个租户中每个租户所请求的令牌数量,在预设周期的结束时刻向目标服务质量控制模块发送令牌请求消息,令牌请求消息还用于请求多个租户中除目标租户之外的其他租户的令牌。
可选地,处理模块402包括:
第三确定子模块,用于基于业务请求从分布式对象存储系统包括的分布式存储层中的多个存储节点中确定所要访问的目标存储节点;
获取子模块,用于获取存储的目标存储节点的热度信息,热度信息用于指示目标存储节点的繁忙程度;
处理子模块,用于基于热度信息,对业务请求进行处理。
可选地,处理子模块具体用于:
当热度信息指示目标存储节点的繁忙程度为重度繁忙时,向目标租户发送业务请求拒绝消息;
当热度信息指示目标存储节点的繁忙程度不为重度繁忙时,向目标存储节点发送业务请求,以使存储节点基于业务请求进行业务处理。
可选地,处理子模块还用于:
接收目标存储节点发送的业务响应消息,业务响应消息携带目标存储节点当前的热度信息;
基于目标存储节点当前的热度信息对存储的目标存储节点的热度信息进行更新。
综上所述,本发明实施例在接收到租户发送的业务请求时,基于该业务请求,在本地存储的令牌中查找第一数量的目标租户的令牌,当未查找到第一数量的目标租户的令牌且目标租户的令牌的剩余总数量充足时,对该业务请求进行处理,并启动异步任务,通过该异步任务在处理业务请求的过程中异步向目标服务质量服务器模块发送令牌请求消息,该令牌请求消息用于请求目标租户的令牌;当未查找到第一数量的目标租户的令牌且目标租户的令牌的剩余总数量不足时,则可以向目标租户发送业务请求拒绝消息。由此可见,在本发明实施例中,可以在本地存储令牌,这样,当接收到租户的请求时,可以直接在本地查找该租户的令牌,相较于相关技术中跨节点申请令牌,减少了节点间的通信开销,降低了对系统性能的影响。另外,在本发明实施例中,即使未在本地查找到令牌,在目标租户的令牌剩余总数量充足情况下,也可以通过异步任务在处理该业务请求的同时异步向目标服务质量服务器模块请求该目标租户的令牌,这样,该业务请求将不受节点间通信时延影响。
需要说明的是:上述实施例提供的流量控制装置在进行流量控制时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的流量控制装置与流量控制方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意结合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如:同轴电缆、光纤、数据用户线(Digital Subscriber Line,DSL))或无线(例如:红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如:软盘、硬盘、磁带)、光介质(例如:数字通用光盘(Digital Versatile Disc,DVD))、或者半导体介质(例如:固态硬盘(Solid State Disk,SSD))等。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述为本申请提供的实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (14)

1.一种流量控制方法,应用于分布式对象存储系统包括的服务层中的任一节点,其特征在于,所述方法包括:
当接收到目标租户发送的业务请求时,在本地存储的令牌中查找第一数量的所述目标租户的令牌,所述第一数量为处理所述业务请求时所需要的令牌数量;
当未查找到所述第一数量的所述目标租户的令牌且所述目标租户的令牌的剩余总数量充足时,对所述业务请求进行处理,并启动异步任务,所述异步任务用于在处理所述业务请求的过程中异步向目标服务质量控制模块发送令牌请求消息,所述令牌请求消息用于请求所述目标租户的令牌,所述目标服务质量控制模块位于所述服务层中的任一节点上,且所述目标服务质量控制模块中存储有所述目标租户的令牌;
当未查找到所述第一数量的所述目标租户的令牌且所述目标租户的令牌的剩余总数量不足时,向所述目标租户发送业务请求拒绝消息。
2.如权利要求1所述的方法,其特征在于,所述业务请求携带所述目标租户的租户标识和所述业务请求的请求类型;
所述在本地存储的令牌中查找第一数量的所述目标租户的令牌,包括:
在本地存储的令牌中查找所述租户标识和所述请求类型所对应的令牌;
当查找到所述租户标识和所述请求类型所对应的令牌时,确定处理所述业务请求时所需的令牌数量,得到所述第一数量;
当所述第一数量大于本地存储的所述租户标识和所述请求类型所对应的令牌的数量时,确定未查找到所述第一数量的所述目标租户的令牌。
3.如权利要求1所述的方法,其特征在于,所述启动异步任务之后,还包括:
当接收到所述目标服务质量控制模块发送的所述目标租户的令牌时,将接收到的所述目标租户的令牌存储在本地,并将本地存储的所述目标租户的令牌状态指示信息设置为第一状态,所述第一状态用于指示所述目标租户的令牌的剩余总数量充足,所述目标服务质量控制模块发送的所述目标租户的令牌的数量大于或等于所述令牌请求消息所请求的所述目标租户的令牌的数量;
当接收到所述目标服务质量控制模块发送的令牌请求失败消息时,将本地存储的所述目标租户的令牌状态指示信息设置为第二状态,并向所述服务层的其他节点同步所述目标租户的令牌状态指示信息,所述第二状态用于指示所述目标租户的令牌的剩余总数量不足。
4.如权利要求1-3任一所述的方法,其特征在于,所述目标服务质量控制模块中还存储有其他租户的令牌,所述异步任务按照预设周期启动;
所述当未查找到所述第一数量的所述目标租户的令牌且所述目标租户的令牌的剩余总数量充足时,启动异步任务,包括:
当未查找到所述第一数量的所述目标租户的令牌且所述目标租户的令牌的剩余总数量充足时,在到达启动所述异步任务的时刻时,启动所述异步任务;
其中,所述异步任务具体用于根据在所述预设周期内接收到的业务请求,确定向所述目标服务质量控制模块请求令牌的多个租户,以及所述多个租户中每个租户所请求的令牌的数量,所述多个租户中包括所述目标租户;基于所述多个租户和所述多个租户中每个租户所请求的令牌数量,在所述预设周期的结束时刻向所述目标服务质量控制模块发送所述令牌请求消息,所述令牌请求消息还用于请求所述多个租户中除所述目标租户之外的其他租户的令牌。
5.如权利要求1所述的方法,其特征在于,所述对所述业务请求进行处理,包括:
基于所述业务请求从所述分布式对象存储系统包括的分布式存储层中的多个存储节点中确定所要访问的目标存储节点;
获取存储的所述目标存储节点的热度信息,所述热度信息用于指示所述目标存储节点的繁忙程度;
基于所述热度信息,对所述业务请求进行处理。
6.如权利要求5所述的方法,其特征在于,所述基于所述热度信息,对所述业务请求进行处理,包括:
当所述热度信息指示所述目标存储节点的繁忙程度为重度繁忙时,向所述目标租户发送所述业务请求拒绝消息;
当所述热度信息指示所述目标存储节点的繁忙程度不为重度繁忙时,向所述目标存储节点发送所述业务请求,以使所述存储节点基于所述业务请求进行业务处理。
7.如权利要求6所述的方法,其特征在于,所述向所述目标存储节点发送所述业务请求之后,还包括:
接收所述目标存储节点发送的业务响应消息,所述业务响应消息携带所述目标存储节点当前的热度信息;
基于所述目标存储节点当前的热度信息对存储的所述目标存储节点的热度信息进行更新。
8.一种流量控制装置,应用于分布式对象存储系统包括的服务层中的任一节点,其特征在于,所述装置包括:
查找模块,用于当接收到目标租户发送的业务请求时,在本地存储的令牌中查找第一数量的所述目标租户的令牌,所述第一数量为处理所述业务请求时所需要的令牌数量;
处理模块,用于当未查找到所述第一数量的所述目标租户的令牌且所述目标租户的令牌的剩余总数量充足时,对所述业务请求进行处理,并启动异步任务,所述异步任务用于在处理所述业务请求的过程中异步向目标服务质量控制模块发送令牌请求消息,所述令牌请求消息用于请求所述目标租户的令牌,所述目标服务质量控制模块位于所述服务层中的任一节点上,且所述目标服务质量控制模块中存储有所述目标租户的令牌;
发送模块,用于当未查找到所述第一数量的所述目标租户的令牌且所述目标租户的令牌的剩余总数量不足时,向所述目标租户发送业务请求拒绝消息。
9.如权利要求8所述的装置,其特征在于,所述业务请求携带所述目标租户的租户标识和所述业务请求的请求类型;
所述查找模块包括:
查找子模块,用于在本地存储的令牌中查找所述租户标识和所述请求类型所对应的令牌;
第一确定子模块,用于当查找到所述租户标识和所述请求类型所对应的令牌时,确定处理所述业务请求时所需的令牌数量,得到所述第一数量;
第二确定子模块,用于当所述第一数量大于本地存储的所述租户标识和所述请求类型所对应的令牌的数量时,确定未查找到所述第一数量的所述目标租户的令牌。
10.如权利要求8所述的装置,其特征在于,所述装置还包括:
存储模块,用于当接收到所述目标服务质量控制模块发送的所述目标租户的令牌时,将接收到的所述目标租户的令牌存储在本地,并将本地存储的所述目标租户的令牌状态指示信息设置为第一状态,所述第一状态用于指示所述目标租户的令牌的剩余总数量充足,所述目标服务质量控制模块发送的所述目标租户的令牌的数量大于或等于所述令牌请求消息所请求的所述目标租户的令牌的数量;
同步模块,用于当接收到所述目标服务质量控制模块发送的令牌请求失败消息时,将本地存储的所述目标租户的令牌状态指示信息设置为第二状态,并向所述服务层的其他节点同步所述目标租户的令牌状态指示信息,所述第二状态用于指示所述目标租户的令牌的剩余总数量不足。
11.如权利要求8-10任一所述的装置,其特征在于,所述目标服务质量控制模块中还存储有其他租户的令牌,所述异步任务按照预设周期启动;
所述处理模块具体用于:
当未查找到所述第一数量的所述目标租户的令牌且所述目标租户的令牌的剩余总数量充足时,在到达启动所述异步任务的时刻时,启动所述异步任务;
其中,所述异步任务具体用于根据在所述预设周期内接收到的业务请求,确定向所述目标服务质量控制模块请求令牌的多个租户,以及所述多个租户中每个租户所请求的令牌的数量,所述多个租户中包括所述目标租户;基于所述多个租户和所述多个租户中每个租户所请求的令牌数量,在所述预设周期的结束时刻向所述目标服务质量控制模块发送所述令牌请求消息,所述令牌请求消息还用于请求所述多个租户中除所述目标租户之外的其他租户的令牌。
12.如权利要求8所述的装置,其特征在于,所述处理模块包括:
第三确定子模块,用于基于所述业务请求从所述分布式对象存储系统包括的分布式存储层中的多个存储节点中确定所要访问的目标存储节点;
获取子模块,用于获取存储的所述目标存储节点的热度信息,所述热度信息用于指示所述目标存储节点的繁忙程度;
处理子模块,用于基于所述热度信息,对所述业务请求进行处理。
13.如权利要求12所述的装置,其特征在于,所述处理子模块具体用于:
当所述热度信息指示所述目标存储节点的繁忙程度为重度繁忙时,向所述目标租户发送所述业务请求拒绝消息;
当所述热度信息指示所述目标存储节点的繁忙程度不为重度繁忙时,向所述目标存储节点发送所述业务请求,以使所述存储节点基于所述业务请求进行业务处理。
14.如权利要求13所述的装置,其特征在于,所述处理子模块还用于:
接收所述目标存储节点发送的业务响应消息,所述业务响应消息携带所述目标存储节点当前的热度信息;
基于所述目标存储节点当前的热度信息对存储的所述目标存储节点的热度信息进行更新。
CN201810159977.6A 2018-02-26 2018-02-26 流量控制方法及装置 Active CN108667744B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810159977.6A CN108667744B (zh) 2018-02-26 2018-02-26 流量控制方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810159977.6A CN108667744B (zh) 2018-02-26 2018-02-26 流量控制方法及装置

Publications (2)

Publication Number Publication Date
CN108667744A true CN108667744A (zh) 2018-10-16
CN108667744B CN108667744B (zh) 2020-09-25

Family

ID=63784702

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810159977.6A Active CN108667744B (zh) 2018-02-26 2018-02-26 流量控制方法及装置

Country Status (1)

Country Link
CN (1) CN108667744B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109787915A (zh) * 2018-12-14 2019-05-21 北京三快在线科技有限公司 网络访问的流量控制方法、装置、电子设备及存储介质
CN109831391A (zh) * 2018-12-29 2019-05-31 华为技术有限公司 分布式存储系统中流控的方法、存储设备和系统
CN110728799A (zh) * 2019-10-15 2020-01-24 恩亿科(北京)数据科技有限公司 一种余量更新方法及装置
CN111078391A (zh) * 2018-10-22 2020-04-28 阿里巴巴集团控股有限公司 一种业务请求处理方法、装置及设备
CN114745682A (zh) * 2022-02-28 2022-07-12 联想(北京)有限公司 一种处理方法以及控制面网元
CN115442432A (zh) * 2022-09-06 2022-12-06 上海浦东发展银行股份有限公司 一种控制方法、装置、设备及存储介质
CN115442432B (zh) * 2022-09-06 2024-06-07 上海浦东发展银行股份有限公司 一种控制方法、装置、设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101282305A (zh) * 2008-05-22 2008-10-08 杭州华三通信技术有限公司 分布式系统中的带宽控制方法及业务板
CN103188160A (zh) * 2013-04-18 2013-07-03 杭州华三通信技术有限公司 一种流量控制方法和转发单元
US8930489B2 (en) * 2011-10-11 2015-01-06 Rakspace US, Inc. Distributed rate limiting of handling requests
CN105337891A (zh) * 2015-11-02 2016-02-17 北京百度网讯科技有限公司 用于分布式缓存系统的流量控制方法和装置
CN105409171A (zh) * 2013-06-25 2016-03-16 亚马逊科技公司 突发模式控制
CN106462466A (zh) * 2014-06-23 2017-02-22 甲骨文国际公司 用于在多租户应用服务器环境中提供工作管理器的系统和方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101282305A (zh) * 2008-05-22 2008-10-08 杭州华三通信技术有限公司 分布式系统中的带宽控制方法及业务板
US8930489B2 (en) * 2011-10-11 2015-01-06 Rakspace US, Inc. Distributed rate limiting of handling requests
CN103188160A (zh) * 2013-04-18 2013-07-03 杭州华三通信技术有限公司 一种流量控制方法和转发单元
CN105409171A (zh) * 2013-06-25 2016-03-16 亚马逊科技公司 突发模式控制
CN106462466A (zh) * 2014-06-23 2017-02-22 甲骨文国际公司 用于在多租户应用服务器环境中提供工作管理器的系统和方法
CN105337891A (zh) * 2015-11-02 2016-02-17 北京百度网讯科技有限公司 用于分布式缓存系统的流量控制方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
何高峰: ""基于HDFS的多租户小文件存储系统的研究与设计"", 《中国优秀硕士学位论文全文数据库信息科技辑》 *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111078391A (zh) * 2018-10-22 2020-04-28 阿里巴巴集团控股有限公司 一种业务请求处理方法、装置及设备
CN109787915A (zh) * 2018-12-14 2019-05-21 北京三快在线科技有限公司 网络访问的流量控制方法、装置、电子设备及存储介质
CN109787915B (zh) * 2018-12-14 2022-09-20 北京三快在线科技有限公司 网络访问的流量控制方法、装置、电子设备及存储介质
CN109831391A (zh) * 2018-12-29 2019-05-31 华为技术有限公司 分布式存储系统中流控的方法、存储设备和系统
CN109831391B (zh) * 2018-12-29 2022-05-13 华为云计算技术有限公司 分布式存储系统中流控的方法、存储设备和系统
CN110728799A (zh) * 2019-10-15 2020-01-24 恩亿科(北京)数据科技有限公司 一种余量更新方法及装置
CN114745682A (zh) * 2022-02-28 2022-07-12 联想(北京)有限公司 一种处理方法以及控制面网元
CN114745682B (zh) * 2022-02-28 2023-08-18 联想(北京)有限公司 一种处理方法以及控制面网元
CN115442432A (zh) * 2022-09-06 2022-12-06 上海浦东发展银行股份有限公司 一种控制方法、装置、设备及存储介质
CN115442432B (zh) * 2022-09-06 2024-06-07 上海浦东发展银行股份有限公司 一种控制方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN108667744B (zh) 2020-09-25

Similar Documents

Publication Publication Date Title
CN108667744A (zh) 流量控制方法及装置
JP6371858B2 (ja) 複数エクステント動作のための原子書き込み
JP6416279B2 (ja) 拡張縮小可能なファイル格納サービス
JP6371859B2 (ja) 分散格納システムにおけるセッション管理
JP6259532B2 (ja) 分散格納システムにおける名前空間管理
US10831387B1 (en) Snapshot reservations in a distributed storage system
CN108182105B (zh) 基于Docker容器技术的局部动态迁移方法及控制系统
CN111225059A (zh) 网络请求资源调度方法、装置、电子设备及存储介质
CN108984266B (zh) 一种虚拟机的管理方法、装置及系统
US10235047B2 (en) Memory management method, apparatus, and system
JP2017511541A (ja) 可変ストライプサイズを使用するファイル格納
CN109491928A (zh) 缓存控制方法、装置、终端及存储介质
US20220329651A1 (en) Apparatus for container orchestration in geographically distributed multi-cloud environment and method using the same
US11799961B2 (en) File directory traversal method, apparatus, device, and medium
CN109359063A (zh) 面向存储系统软件的缓存置换方法、存储设备及存储介质
JP7192645B2 (ja) 情報処理装置、分散処理システム及び分散処理プログラム
CN111209333B (zh) 数据更新方法、装置、终端及存储介质
CN110347656B (zh) 文件存储系统中请求的管理方法和装置
CN111126604A (zh) 模型训练方法、装置、服务器及存储介质
CN113297226B (zh) 数据存储方法、数据读取方法、装置、电子设备及介质
CN109783006A (zh) 计算系统及操作计算系统的方法
CN114640678A (zh) 基于SR-IOV的Pod管理方法、设备及介质
US10824640B1 (en) Framework for scheduling concurrent replication cycles
US20120124269A1 (en) Organizing Memory for Effective Memory Power Management
CN113191136A (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
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20220221

Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province

Patentee after: Huawei Cloud Computing Technology Co.,Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.

TR01 Transfer of patent right