CN105868002A - 一种用于在分布式计算中处理重发请求的方法与设备 - Google Patents
一种用于在分布式计算中处理重发请求的方法与设备 Download PDFInfo
- Publication number
- CN105868002A CN105868002A CN201510032434.4A CN201510032434A CN105868002A CN 105868002 A CN105868002 A CN 105868002A CN 201510032434 A CN201510032434 A CN 201510032434A CN 105868002 A CN105868002 A CN 105868002A
- Authority
- CN
- China
- Prior art keywords
- subregion
- request
- copy
- response
- response speed
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/08—Arrangements for detecting or preventing errors in the information received by repeating transmission, e.g. Verdan system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请的目的是提供一种用于在分布式计算中处理重发请求的方法与设备;获取分布式计算中待处理的重发请求,其中,所述分布式计算涉及至少一个数据副本,每个数据副本包括一个或多个副本分区;基于所述副本分区的分区响应时间信息确定所述重发请求所对应的目标副本分区;将所述重发请求发送至所述目标副本分区。与现有技术相比,本申请通过所述各个副本分区的分区响应时间来区别各个分区,从而确定所述重发请求所对应的目标副本分区,使得重发时可以优先选择响应时间更优的副本,降低重发请求的响应时间,降低集群的整体负载。
Description
技术领域
本申请涉及计算机领域,尤其涉及一种用于在分布式计算中处理重发请求的技术。
背景技术
在分布式计算中,有时需要将一个较大的计算任务拆分成多个子任务,并将各个子任务分发到多个计算节点进行处理,待所述计算节点处理完成后,再将各个子任务的计算结果反馈汇总为最终计算结果,所述较大的计算任务的执行情况取决于最慢的子任务的执行时间,若是个别子任务的执行时间远远大于其他子任务,就会影响到整个分布式系统的吞吐量和请求相应时间,这就是分布式计算中的长尾现象。
目前,在现有技术中,对于长尾现象,主要是采用简单的任务重发的方式来补偿长尾现象对整体计算任务的耗时影响,但实践表明,此时,重发的任务往往并不能较快地完成,从而导致简单的任务重发并不能有效缓解分布式计算中的长尾现象。
发明内容
本申请的目的是提供一种用于在分布式计算中处理重发请求的方法与设备。
根据本申请的一个方面,提供了一种用于在分布式计算中处理重发请求的方法,包括:
获取分布式计算中待处理的重发请求,其中,所述分布式计算涉及至少一个数据副本,每个数据副本包括一个或多个副本分区;
基于所述副本分区的分区响应时间信息确定所述重发请求所对应的目标副本分区;
将所述重发请求发送至所述目标副本分区。
根据本申请的另一方面,还提供了一种用于在分布式计算中处理重发请求的设备,包括:
第一装置,用于获取分布式计算中待处理的重发请求,其中,所述分布式计算涉及至少一个数据副本,每个数据副本包括一个或多个副本分区;
第二装置,用于基于所述副本分区的分区响应时间信息确定所述重发请求所对应的目标副本分区;
第三装置,用于将所述重发请求发送至所述目标副本分区。
与现有技术相比,本申请通过所述各个副本分区的分区响应时间来区别各个分区,从而确定所述重发请求所对应的目标副本分区,使得重发时可以优先选择响应时间更优的副本,降低重发请求的响应时间,降低集群的整体负载。而且,本申请还引入重发预判,只有当所述重发请求满足请求重发条件时,才将所述重发请求发送至所述目标副本分区,而在集群高负载和分区倾斜等应用场景中,由于被请求重发的分区的最近响应时间已经较大,则放弃重发请求,使得可以节省大概率无益处的重发,从而降低集群实际负载。此外,对于分布式计算中待处理的首发请求,本申请还可依据各个副本分区的分区响应速度信息选择所述首发请求对应的副本分区,即在第一次发送请求时就为目标请求选择了较优的分区,从而在源头上就尽量减少了需要重发的概率。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1示出根据本申请一个方面的一种用于在分布式计算中处理重发请求的设备的设备示意图;
图2示出根据本申请一个优选实施例的一种用于在分布式计算中处理重发请求的设备的设备示意图;
图3示出根据本申请另一个方面的一种用于在分布式计算中处理重发请求的方法流程图;
图4示出根据本申请一个优选实施例的一种用于在分布式计算中处理重发请求的方法流程图;
图5示出根据本申请一个优选实施例的与现有技术的技术效果对比图。
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
下面结合附图对本申请作进一步详细描述。
在本申请一个典型的配置中,终端、服务网络的设备和可信方均包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
图1示出根据本申请一个方面的一种用于在分布式计算中处理重发请求的设备的设备示意图。所述设备1包括第一装置101、第二装置102和第三装置103。
其中,第一装置101获取分布式计算中待处理的重发请求,其中,所述分布式计算涉及至少一个数据副本,每个数据副本包括一个或多个副本分区;第二装置102基于所述副本分区的分区响应时间信息确定所述重发请求所对应的目标副本分区;第三装置103将所述重发请求发送至所述目标副本分区。
具体地,所述设备1的第一装置101获取分布式计算中待处理的重发请求,其中,所述分布式计算涉及至少一个数据副本,每个数据副本包括一个或多个副本分区。在分布式计算中,用户发出的任务请求往往需要巨大计算能力才能解决,此时,会将该复杂的父请求拆分为多个子请求,进而,通过服务器将所述多个子请求分别发送到分布式集群的多个计算节点进行各自处理,待各个计算节点处理完成,再将各个计算结果返回汇总。在此,所述分布式集群中,会存在若干套副本数据,每一套副本数据都包含分布式计算中所需要的全部数据,每一套副本数据进一步划分为若干个副本分区,每个副本分区都包含对应副本数据中的部分数据。在此,优选地,所述每一套副本数据对应的分区划分一致,例如,系统中同时存在副本数据1和副本数据2,两套副本数据都分别划分为M个分区,且对应分区中分布的数据相同,如,副本数据1的分区1与副本数据2的分区1一致,副本数据1的分区2与副本数据2的分区2一致,……以此类推。在此,分布式集群由多台服务器组成,一台服务器即为一个计算节点,可以存储一个或是多个分区数据。一个副本数据的各个分区所对应的设备,可以都存在于同一个机房,也可以跨机房部署。一个机房也可以同时部署多个副本数据对应的各个设备。
在此,基于分布式集群中一些常见问题,如跨机房网络延迟、设备瞬时故障、设备硬件差异、数据分片不均匀等原因可能导致各个计算节点上响应时间的不平衡。此时,对于响应不及时的子请求定义为长尾请求,即为所述待处理的重发请求。所述待处理的重发请求的获取,可以基于所设定的比例时间,即所述目标请求超过预设的比例时间即需要启动重发任务;也可以采用自一定比例的分区结果返回时,判断是否启动重发任务,例如一个父请求拆分成100个目标子请求,并对应于100个分区,当有30%的分区返回了请求结果,而剩下的请求仍在执行时,则判断启动重发剩余的仍在执行的任务,获取重发请求。
接着,所述设备1的第二装置102基于所述副本分区的分区响应时间信息确定所述重发请求所对应的目标副本分区。基于系统中冗余的副本分区,所述重发请求可以重新选择一个发送副本分区,在该副本分区中对应有所述重发请求需要的数据信息,在此,优选地,所述每一个副本数据对应的分区划分一致,进而所述重发请求可以与每个副本的对应分区相匹配。一般情况下,不同副本的相同分区,对于同一个重发请求的响应情况存在着差异,例如,同样对于重发请求A,同时存在两个副本分区,副本1的分区3与副本2的分区3同时都包含重发请求A对应的请求数据,但是上述两个副本分区可能由于此时数据负载,或是两个副本分区对应的设备之间的差异,或是其中一个副本分区对应的设备存在故障等原因,使得对于重发请求A而言,两个副本分区的实际请求响应效果存在差异,为了更有效地完成整体计算,会优先选择响应效果更优的副本分区作为所述重发请求A的目标副本分区。在此,优选地,基于所述副本分区的分区响应时间信息来确定所述重发请求对应的目标副本分区。所述分区响应时间信息包括基于所述分区接收的历史请求、实时请求的响应时间等数据进行分析计算而得到的分区信息。一般情况下,可以通过比较各个副本分区的分区响应时间信息来选择响应效果更优的副本分区。具体地,在分布式计算过程中,每个副本分区每个时间段都可能会接受大量的不同数据请求,所以分区的数据负载在不断变化,进而,每个副本分区的分区响应时间信息不会一成不变,而是需要实时更新。在本申请中,更新所基于的所述历史请求或实时请求包括某个数据请求的首发请求,也包括某个数据请求的重发请求。进一步,系统可以设置一定的更新周期,例如每隔T时间,更新对应的分区响应时间信息;也可以基于实时请求的响应时间,更新对应的分区响应时间信息;还可以同时对历史请求和实时请求的响应时间进行权重计算,得到更合理的分区响应时间信息。更进一步,当一个重发请求需要选择对应的目标副本分区时,就可以基于此时各个副本分区对应的分区响应时间信息,进行筛选,得到最终的目标副本分区。
在此,本领域技术人员应能理解上述基于所述副本分区的分区响应时间信息确定所述重发请求所对应的目标副本分区仅为举例,其他现有的或今后可能出现的确定所述重发请求对应的目标副本分区的方式如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
接着,所述设备1的第三装置103将所述重发请求发送至所述目标副本分区。当确定了所述重发请求对应的目标副本分区,可以进一步将请求任务重新发送到新的副本分区,并等待新的副本分区返回信息。本申请中,所述分布式计算可以包括实时计算,也可以包括非实时计算。特别是,当所述分布式计算为非实时计算时,计算任务时长的量级较大,如可以是分钟、小时或是更长,此时若是一次重发的效果依然不理想,在性能开销允许的范围内,还可以基于本申请继续进行二次重发、三次重发……。此外,可以在重发请求发出前,对所述目标副本分区进行重发预判,目的是,当出现集群高负载和分区倾斜等场景,放弃无益处的重发,降低集群整体的实际负载。
在现有技术中,对于长尾现象,重发请求会等概率的发送到不同副本,此时,任务重发是基于两个前提:一是默认重发请求比原先请求优先返回;二是重发请求带来的性能开销较小,对其他正常处理的请求无明显影响。但是在实际计算中,上述假设的前提并不总是成立。例如,当整个集群处于高负载状态下,若是接受重发请求的设备已经处于高负载状态,则重发请求依然需要较长时间返回,此时,重发并不能改善集群响应时间,反而会增加集群负担。又如,计算任务所依赖的数据分区倾斜,如数据划分不均和数据访问倾斜等情况,此时,所有副本中对应重发请求的分区响应时间都较大,无法对任务重发带来任何好处。再如,计算任务对应的副本倾斜,如由于网络访问时间延迟差异、设备差异、硬件故障等原因使得分布式集群中包含相同数据的等价副本在负载相同时也可能存在一致性的响应时间差异。这些场景使得现有技术的适用存在明显的缺点,从而,并不能很好地解决长尾问题。
与此相比,本申请通过所述各个副本分区的分区响应时间来区别各个分区,从而确定所述重发请求所对应的目标副本分区,使得重发时可以优先选择响应时间更优的副本,降低重发请求的响应时间,降低集群的整体负载,从而优化了整体的分布式计算。
优选地,所述设备1的第三装置103包括第一单元(未示出)和第二单元(未示出),所述第一单元检测所述重发请求是否满足请求重发条件;所述第二单元当所述重发请求满足所述请求重发条件,将所述重发请求发送至所述目标副本分区。
具体地,对于所获取的重发请求,基于所述各个副本分区的分区响应时间确定了重发请求所对应的最优的目标副本分区,但是,有时在目标副本分区完成重发并不能真正优化集群计算。例如,当整个集群处于高负载状态下,或是计算任务所依赖的数据分区倾斜时,如遇到数据划分不均和数据访问倾斜等情况时,所有副本中对应重发请求的分区响应时间都较大,无法对任务重发带来任何好处。此时,可以选择放弃重发请求,以避免大概率的无益处的重发,从而降低集群的实际负载。优选地,可以基于任务请求对应的副本分区可能存在的过载情况,设置对应的请求重发条件,通过所述第三装置103的第一单元检测所述重发请求是否满足设置的请求重发条件。当不满足请求重发条件时,则启动过载保护,即判断认为所对应的目标副本分区过载,放弃重发,若是所述重发请求满足所述请求重发条件,则判断进行重发操作,所述第二单元会将所述重发请求发送至所述目标副本分区。
更优选地,所述第一单元根据所述目标副本分区的分区响应时间信息及所述重发请求所对应的最大超时时间,确定所述重发请求是否满足请求重发条件。
具体地,可以基于所述重发请求所对应的目标副本分区的分区响应时间信息以及所述目标副本分区中所述重发请求对应的最大超时时间,来判断所述重发请求是否满足请求重发条件。在此,所述最大超时时间对应于一个请求在分区等待响应的所允许的最长时间。优选地,在分布式计算中,来自同一个父请求的各个子请求对应的所述最大超时时间一致,来自不同父请求的各个子请求可以对应各异的所述最大超时时间。所述最大超时时间的设置的差异可以基于各个任务请求对应的来源不同而有所差异。在此,基于所述重发请求对应的最大超时时间,并结合目标副本分区的分区响应时间信息,就可以对所述重发请求进行预判。例如,当副本分区中所述重发请求对应的最大超时时间为T,当前目标副本分区的分区响应时间信息是score,则当score<T×a(a是介于0到1之间的浮点数)时,判断不满足请求重发条件,启动过载保护。例如当a取为0.5时,若此时分区响应时间信息score较小,如小于该副本分区的请求最大超时时间的一半时,说明发往目标副本分区的请求可能需要较长时间才能返回,这可能是应为是目标副本分区对应的设备的负载已经很高,此时则选择放弃重发。反之,则说明满足请求重发条件,进而可以将所述重发请求发送至所述目标副本分区。
在此,本领域技术人员应能理解上述确定所述重发请求是否满足请求重发条件的方法仅为举例,其他现有的或今后可能出现的其他确定所述重发请求是否满足请求重发条件的方法如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
图2示出根据本申请一个优选实施例的一种用于在分布式计算中处理重发请求的设备的设备示意图。所述设备1还包括第四装置204。以下参照图2对该优选实施例进行详细描述:具体地,设备1的第一装置201获取分布式计算中待处理的重发请求,其中,所述分布式计算涉及至少一个数据副本,每个数据副本包括一个或多个副本分区;第二装置202基于所述副本分区的分区响应时间信息确定所述重发请求所对应的目标副本分区;第三装置203将所述重发请求发送至所述目标副本分区;第四装置204根据所述副本分区的历史分区响应时间信息和/或当前分区响应时间信息,确定所述副本分区的分区响应速度信息;其中,所述第二装置202基于所述副本分区的分区响应速度信息确定所述重发请求所对应的目标副本分区。其中,所述设备1的第一装置201、第二装置202和第三装置203与图1所示出的对应装置相同或基本相同,故此处不再赘述,并通过引用的方式包含于此。
其中,所述第四装置204根据所述副本分区的历史分区响应时间信息和/或当前分区响应时间信息,确定所述副本分区的分区响应速度信息;其中,所述第二装置202基于所述副本分区的分区响应速度信息确定所述重发请求所对应的目标副本分区。具体地,通过所述分区响应时间信息确定所述副本分区的分区响应速度信息,再基于所述分区响应速度信息确定所述目标副本分区。优选地,所述分区响应速度信息为当前分区响应速度信息。所述分区响应速度信息可以对应多种形式。例如,在当前时刻T1,副本x的分区y响应了某个当前请求Q1,并且所述分区y对于请求Q1的响应返回时间是t1,此时基于请求Q1的所述响应返回时间t1,确定副本x的分区y的当前分区响应时间信息D1,此时,可以将所述副本x的分区y的当前分区响应时间信息D1作为该副本分区的当前分区响应速度信息。又如,基于上例,已知所述副本x的分区y的当前分区响应时间信息D1,并且,若是在之前一个历史时刻T0,副本x的分区y响应了某个当前请求Q0,所述分区y对于请求Q0的响应返回时间是t0,对应于T0时刻,基于请求Q0的所述响应返回时间t0,确定副本x的分区y的历史分区响应时间信息D0,同时,该历史分区响应时间信息D0对应于一个历史分区响应速度信息E0,此时,基于所述历史分区响应速度信息E0和当前分区响应时间信息D1,做加权运算,得到当前分区响应速度信息E1,所述算法的一种举例如下:
E1=[E0×b+D1×(2-b)]/2,(b是0到1之间的浮点数,比如0.8)
在此,所述分区响应速度信息是基于历史分区响应速度信息和当前分区响应时间信息的加权运算得到的,通过所述加权运算做数据平滑处理,可以降低历史分区响应时间信息的影响,突出最新的分区响应时间信息的影响。所述分区响应速度信息能够体现各个副本分区对于任务请求的处理差异,并且,还可以对各个分区响应速度信息进行周期性、或是实时地更新,使得该数据的更加合理。进一步,所述设备1的第二装置102基于所述副本分区的当前分区响应速度信息确定所述重发请求所对应的目标副本分区。
优选地,所述第二装置202包括第三单元(未示出)和第四单元(未示出),所述第三单元根据所述重发请求确定一个或多个候选副本分区;所述第四单元基于所述候选副本分区的分区响应速度信息,确定所述重发请求所对应的目标副本分区。
具体地,所述第二装置202的第三单元根据所述重发请求确定一个或多个候选副本分区。在此,首先要确定若干个候选副本分区,其中所述候选副本分区需要包含所述重发请求所请求的目标数据。每一套副本数据都包含分布式集群中进行的计算所需要的全套数据,各个副本数据划分成若干个分区,各个副本数据划分分区的标准可以一致,也可以不同。例如,副本数据1划分为n个分区,副本数据2划分为m个分区,若此时重发请求对应的首发请求发送到的是副本数据1中的第n1个分区,请求的是数据W,则副本数据2中所对应的候选副本分区,就是其m个分区中包含了数据W的对应分区。在此,优选地,分布式集群中,各个副本数据的划分标准一致,由此,便可以快速地确定所述候选副本分区。例如,在上述举例中,n与m相等,且每一组相同分区中数据组成也分别一致,即副本数据1的第n1分区中的数据与副本数据2的第m1分区中的数据分布一致。此时,若所述首发请求是向某个副本数据的第k个分区发出的请求,则对应的重发请求的候选副本分区,就是其他各个副本中的第k个分区。
接着,所述第二装置202的第四单元基于所述候选副本分区的分区响应速度信息,确定所述重发请求所对应的目标副本分区。在此,各个副本数据,可能因为历史数据负载不均,跨机房网络延迟、设备瞬时故障、设备硬件差异等情况而存在副本响应速度信息的差异,这种差异会直接反映到各个副本所对应的分区,进而,即使各个副本的分区划分一致,不同副本数据中相同的副本分区,如副本数据1的第a个分区与副本数据2的第a个分区,也会存在分区响应速度信息的差异。进一步,基于这种差异,便可以选择出所述重发请求对应的最终的目标副本分区。所述重发请求对应的目标副本分区的确定,可以有多种方式,例如,可以是先基于副本分区的各个分区响应速度信息,得到一个副本整体的副本响应速度信息,再对各个副本数据对应的所述副本响应速度信息进行对比,选择目标副本,进而选择目标副本中与重发请求对应的具体的目标副本分区;又如,在此,优选地,也可以是直接采用体现了各个副本数据之间的差异体的分区响应速度信息,从而选择重发请求对应的目标副本分区,其中,副本之间的差异,也会间接的体现在其中各个副本分区的分区响应速度信息中。
更优选地,所述第四单元累加前i个所述候选副本分区的分区响应速度信息,直至所得累加和与所有所述候选副本分区的分区响应速度信息之和的比值超过区间(0,1)内的一随机数;将该第i个所述候选副本分区作为所述重发请求所对应的目标副本分区。
具体地,确定所述重发请求对应的目标副本分区的方法,优选地可以是:基于获取的所述重发请求,进一步确定若干个候选副本分区,并获得各个候选副本分区当前对应的分区响应速度信息,在此,基于本方案的所述目标副本分区的选择算法的一个实例如下:
分区M.sum_score=副本1.分区M.score+副本2.分区M.score+…副本n.分区M.score
rand=生成0-1之间的随机浮点数
for循环副本1.分区M到副本n.分区M
分区M.accumulate=副本1.分区M.score+副本2.分区M.score+…副本i.分区M.score
如果rand<分区M.accumulate/分区M.sum_score
返回:选择分区i
循环结束
选择分区n(上述循环未选中)
在此,所述重发请求对应的数据信息存在于副本分区M中,候选副本将分区响应速度信息记为score。副本1、副本2……副本n为n个候选副本,每个副本都对应数据分布相同的分区M。副本1.分区M.score、副本2.分区M.score、…副本n.分区M.score为各个候选副本分区对应的分区响应速度信息。分区M.sum_score为所有所述候选副本分区的分区响应速度信息之和。首先,累加前i个所述候选副本分区的分区响应速度信息,则当累加到前i个所述候选副本分区的分区响应速度信息时,所述分区响应速度信息的累加值与所有所述候选副本分区的分区响应速度信息之和的比值超过区间(0,1)内的一随机数,此时,选择第i个候选副本分区作为所述重发请求所对应的目标副本分区;若是循环结束仍未有选中的副本分区,则以第n个副本分区作为所述重发请求所对应的目标副本分区。在此,所述候选副本分区对应的分区响应速度信息越优,即score数值越大,则对应副本分区其被选中作为目标副本分区的概率就越大。
在此,本领域技术人员应能理解上述确定重发请求对应的目标副本分区的方法仅为举例,其他现有的或今后可能出现的确定所述重发请求对应的目标副本分区的方式如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
更优选地,所述随机数为实时生成的。
具体地,区间(0,1)内的一随机数是实时生成的,即在进行目标副本分区选择时即时生成。在此,基于实时生成的随机数,并依照一定的概率选择目标副本分区,虽然所述候选副本分区对应的分区响应速度信息越优,其被选中作为目标副本分区的概率就越大,但是一些分区响应速度信息较低的分区也存在被选中的概率。这种并非严格选择分区响应速度信息最优的分区的做法是为了对数据做平滑处理。原因可以包含以下两点:一是,所述各个分区的分区响应速度信息,反映的是历史上计算出该分区响应速度信息时的各个分区的情况,并不能完全准确地代表当前进行重发请求时的各个分区的最新情况。例如,某个分区之前由于存在设备障碍,对应的分区响应速度信息不理想,但是当前由于设备回复正常,就可能带来比其他分区更优的操作性能,这一改变并不能及时体现在该分区对应的分区响应速度信息上,此时,如果完全基于对应的分区响应速度信息进行选择,该分区就不会被选中,则所述分区对应设备性能恢复后的优势就得不到利用。所以,在此,通过实时生成的随机数可以均衡地给予分区响应速度信息不理想、但是实际性可能较优的候选副本分区被选中的机会。二是,避免候选副本分区对应的分区响应速度信息波动太大。若是严格按照分区响应速度信息选择目标副本分区,对于分区响应速度信息较优的分区,在连续一段时间,特别在请求量较大时,甚至是一瞬时,该分区会接受大量请求,对应的负载会快速增大,进而该分区对应的分区响应速度信息迅速降低,则后续请求又会快速转移请求另一个分区响应速度信息较高的分区,如此一来,各个分区后背跳跃式选择,稳定性较差,不利于集群的整体性能发挥。
优选地,所述设备1还包括第七装置(未示出)和第八装置(未示出),其中,所述第七装置接收对应的请求响应结果;所述第八装置根据所述请求响应结果的响应时间,更新对应副本分区的分区响应速度信息。
具体地,在分布式计算中,副本分区对应的分区响应速度信息可以实时更新。优选地,可以基于每一次所述副本分区返回的请求响应结果来更新该副本分区的分区响应速度信息。在此,通过所述第七装置接收的请求响应结果,可以对应于到达对应分区的某个请求任务的首发请求,也可以对应于到达对应分区的某个请求任务的重发请求。例如,本申请中,当目标重发请求在副本u的分区v中完成重发任务,并返回请求信息,此时接收到该副本u的分区v的重发请求对应的请求响应结果是响应时间t,则基于该响应时间t,更新对应的副本分区的分区响应速度信息。
在此,本领域技术人员应能理解上述请求响应结果的响应时间仅为举例,其他现有的或今后可能出现的其他形式的请求响应结果如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
更优选地,所述第八装置根据所述请求响应结果的响应时间,以及对应副本分区的请求最大超时时间,确定所述对应副本分区的请求富余时间信息;并根据所述请求富余时间信息,更新所述对应副本分区的分区响应速度信息。
具体地,在此,所述第八装置对副本分区对应的分区响应速度信息的具体更新,需要获得几个数据信息,一是所述第七装置接收到的所述待更新副本分区对某个所述任务请求的响应时间;二是所述任务请求在所述待更新副本分区对应的请求最大超时时间。例如,上述副本u的分区v的重发请求对应的请求响应结果是响应时间t。同时,所述重发请求在所述副本分区对应一个请求最大超时时间,所述请求最大超时时间对应于一个请求在分区等待响应的所允许的最长时间。进一步,基于所述副本分区中请求相应结果的响应时间和对应的请求最大超时时间,确定对应副本分区的请求富余时间信息。例如,上述副本u的分区v的重发请求对应的请求响应结果是响应时间t,所述重发请求在分区v的请求的最大超时时间Tm3,则优选地,所述副本分区的请求富余时间信息为Tm3-t。对于一个副本分区,若是请求的最大超时时间与请求响应结果的响应时间越接近,即富余时间越少,则后续就可能不会再接受紧急的请求,相反地,若是所述请求富余时间越多,则对应的分区响应速度信息越优。进一步,基于所述富余时间信息可以更新所述副本分区的分区响应速度信息,例如,可以直接以当前的请求所对应请求富余时间信息作为副本分区的分区响应速度信息来更新;也可以将当前所对应的请求富余时间信息与该副本分区之前计算得到的历史请求富余时间信息做加权运算,以加权运算的结果作为所更新的分区响应速度信息,在此,可以通过这样的平滑操作强化最新数据的影响。
此外,对于各个副本分区所对应的请求最大超时时间,在分布式计算中,父请求的响应时间取决于最慢的子任务的执行时间,进而,为父请求确定的请求最大超时时间也同样适用对应的各个子请求。例如,父请求1对应的最大超时时间是Tm,则其对应的所有子请求的最大超时时间是都Tm。则当所述子请求首发到各个副本分区,或是所述子请求重发到各个副本分区时,所对应的副本分区的请求最大超时时间即为所述Tm。在此,所述请求最大超时时间的确定可以依据各种不同的请求类型,并基于历史请求数据信息来确定。例如,同样是对某个副本分区中相同数据的请求,请求Y1是来自交易买家的请求,请求Y2是来自交易卖家的请求,此时,对应的副本分区的请求最大超时时间可能就是:在接收请求Y1时,对应请求的最大超时时间Tm1,在接收请求Y2时,对应请求的最大超时时间Tm2,在此,Tm1与Tm2可以不相同。
优选地,所述设备1还包括第五装置(未示出)和第六装置(未示出),所述第五装置用于获取分布式计算中待处理的首发请求;所述第六装置基于所述副本分区的分区响应速度信息确定所述首发请求所对应的副本分区,并将所述首发请求发送至所述首发请求所对应的副本分区。
具体地,在实际的分布式计算中,通过本申请所述的方法,可以对所述任务请求的重发进行优化,优选响应时间较优的副本。进一步,在父请求所对应的各个子请求的首发请求,也可以基于已有的所述副本分区的分区响应速度信息确定所述首发请求所对应的副本分区,并将所述首发请求发送至所述首发请求所对应的副本分区。此时,对比现有方案,可以从源头上减少需要重发的次数,有效地减少了后续因为长响应时间需要重发的请求,降低集群的实际负载。具体的操作过程与重发请求选择对应目标副本分区相同或相似,在此,不再赘述。
图3示出根据本申请另一个方面的一种用于在分布式计算中处理重发请求的方法流程图。
其中,在步骤S301中,所述设备1获取分布式计算中待处理的重发请求,其中,所述分布式计算涉及至少一个数据副本,每个数据副本包括一个或多个副本分区;在步骤S302中,所述设备1基于所述副本分区的分区响应时间信息确定所述重发请求所对应的目标副本分区;在步骤S303中,所述设备1将所述重发请求发送至所述目标副本分区。
具体地,在步骤S301中,所述设备1获取分布式计算中待处理的重发请求,其中,所述分布式计算涉及至少一个数据副本,每个数据副本包括一个或多个副本分区。在分布式计算中,用户发出的任务请求往往需要巨大计算能力才能解决,此时,会将该复杂的父请求拆分为多个子请求,进而,通过服务器将所述多个子请求分别发送到分布式集群的多个计算节点进行各自处理,待各个计算节点处理完成,再将各个计算结果返回汇总。在此,所述分布式集群中,会存在若干套副本数据,每一套副本数据都包含分布式计算中所需要的全部数据,每一套副本数据进一步划分为若干个副本分区,每个副本分区都包含对应副本数据中的部分数据。在此,优选地,所述每一套副本数据对应的分区划分一致,例如,系统中同时存在副本数据1和副本数据2,两套副本数据都分别划分为M个分区,且对应分区中分布的数据相同,如,副本数据1的分区1与副本数据2的分区1一致,副本数据1的分区2与副本数据2的分区2一致,……以此类推。在此,分布式集群由多台服务器组成,一台服务器即为一个计算节点,可以存储一个或是多个分区数据。一个副本数据的各个分区所对应的设备,可以都存在于同一个机房,也可以跨机房部署。一个机房也可以同时部署多个副本数据对应的各个设备。
在此,基于分布式集群中一些常见问题,如跨机房网络延迟、设备瞬时故障、设备硬件差异、数据分片不均匀等原因可能导致各个计算节点上响应时间的不平衡。此时,对于响应不及时的子请求定义为长尾请求,即为所述待处理的重发请求。所述待处理的重发请求的获取,可以基于所设定的比例时间,即所述目标请求超过预设的比例时间即需要启动重发任务;也可以采用自一定比例的分区结果返回时,判断是否启动重发任务,例如一个父请求拆分成100个目标子请求,并对应于100个分区,当有30%的分区返回了请求结果,而剩下的请求仍在执行时,则判断启动重发剩余的仍在执行的任务,获取重发请求。
接着,在步骤S302中,所述设备1基于所述副本分区的分区响应时间信息确定所述重发请求所对应的目标副本分区。基于系统中冗余的副本分区,所述重发请求可以重新选择一个发送副本分区,在该副本分区中对应有所述重发请求需要的数据信息,在此,优选地,所述每一个副本数据对应的分区划分一致,进而所述重发请求可以与每个副本的对应分区相匹配。一般情况下,不同副本的相同分区,对于同一个重发请求的响应情况存在着差异,例如,同样对于重发请求A,同时存在两个副本分区,副本1的分区3与副本2的分区3同时都包含重发请求A对应的请求数据,但是上述两个副本分区可能由于此时数据负载,或是两个副本分区对应的设备之间的差异,或是其中一个副本分区对应的设备存在故障等原因,使得对于重发请求A而言,两个副本分区的实际请求响应效果存在差异,为了更有效地完成整体计算,会优先选择响应效果更优的副本分区作为所述重发请求A的目标副本分区。在此,优选地,基于所述副本分区的分区响应时间信息来确定所述重发请求对应的目标副本分区。所述分区响应时间信息包括基于所述分区接收的历史请求、实时请求的响应时间等数据进行分析计算而得到的分区信息。一般情况下,可以通过比较各个副本分区的分区响应时间信息来选择响应效果更优的副本分区。具体地,在分布式计算过程中,每个副本分区每个时间段都可能会接受大量的不同数据请求,所以分区的数据负载在不断变化,进而,每个副本分区的分区响应时间信息不会一成不变,而是需要实时更新。在本申请中,更新所基于的所述历史请求或实时请求包括某个数据请求的首发请求,也包括某个数据请求的重发请求。进一步,系统可以设置一定的更新周期,例如每隔T时间,更新对应的分区响应时间信息;也可以基于实时请求的响应时间,更新对应的分区响应时间信息;还可以同时对历史请求和实时请求的响应时间进行权重计算,得到更合理的分区响应时间信息。更进一步,当一个重发请求需要选择对应的目标副本分区时,就可以基于此时各个副本分区对应的分区响应时间信息,进行筛选,得到最终的目标副本分区。
在此,本领域技术人员应能理解上述基于所述副本分区的分区响应时间信息确定所述重发请求所对应的目标副本分区仅为举例,其他现有的或今后可能出现的确定所述重发请求对应的目标副本分区的方式如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
接着,在步骤S303中,所述设备1将所述重发请求发送至所述目标副本分区。当确定了所述重发请求对应的目标副本分区,可以进一步将请求任务重新发送到新的副本分区,并等待新的副本分区返回信息。本申请中,所述分布式计算可以包括实时计算,也可以包括非实时计算。特别是,当所述分布式计算为非实时计算时,计算任务时长的量级较大,如可以是分钟、小时或是更长,此时若是一次重发的效果依然不理想,在性能开销允许的范围内,还可以基于本申请继续进行二次重发、三次重发……。此外,可以在重发请求发出前,对所述目标副本分区进行重发预判,目的是,当出现集群高负载和分区倾斜等场景,放弃无益处的重发,降低集群整体的实际负载。
在现有技术中,对于长尾现象,重发请求会等概率的发送到不同副本,此时,任务重发是基于两个前提:一是默认重发请求比原先请求优先返回;二是重发请求带来的性能开销较小,对其他正常处理的请求无明显影响。但是在实际计算中,上述假设的前提并不总是成立。例如,当整个集群处于高负载状态下,若是接受重发请求的设备已经处于高负载状态,则重发请求依然需要较长时间返回,此时,重发并不能改善集群响应时间,反而会增加集群负担。又如,计算任务所依赖的数据分区倾斜,如数据划分不均和数据访问倾斜等情况,此时,所有副本中对应重发请求的分区响应时间都较大,无法对任务重发带来任何好处。再如,计算任务对应的副本倾斜,如由于网络访问时间延迟差异、设备差异、硬件故障等原因使得分布式集群中包含相同数据的等价副本在负载相同时也可能存在一致性的响应时间差异。这些场景使得现有技术的适用存在明显的缺点,从而,并不能很好地解决长尾问题。
与此相比,本申请通过所述各个副本分区的分区响应时间来区别各个分区,从而确定所述重发请求所对应的目标副本分区,使得重发时可以优先选择响应时间更优的副本,降低重发请求的响应时间,降低集群的整体负载,从而优化了整体的分布式计算。
优选地,所述方法的步骤S303中包括步骤S3031(未示出)和步骤S3032(未示出),在步骤S3031中,所述设备1检测所述重发请求是否满足请求重发条件;在步骤S3032中,当所述重发请求满足所述请求重发条件,所述设备1将所述重发请求发送至所述目标副本分区。
具体地,对于所获取的重发请求,基于所述各个副本分区的分区响应时间确定了重发请求所对应的最优的目标副本分区,但是,有时在目标副本分区完成重发并不能真正优化集群计算。例如,当整个集群处于高负载状态下,或是计算任务所依赖的数据分区倾斜时,如遇到数据划分不均和数据访问倾斜等情况时,所有副本中对应重发请求的分区响应时间都较大,无法对任务重发带来任何好处。此时,可以选择放弃重发请求,以避免大概率的无益处的重发,从而降低集群的实际负载。优选地,可以基于任务请求对应的副本分区可能存在的过载情况,设置对应的请求重发条件,在步骤S3031中,所述设备1检测所述重发请求是否满足设置的请求重发条件。当不满足请求重发条件时,则启动过载保护,即判断认为所对应的目标副本分区过载,放弃重发,若是所述重发请求满足所述请求重发条件,则判断进行重发操作,所述设备1会将所述重发请求发送至所述目标副本分区。
更优选地,在步骤S3031中,所述设备1根据所述目标副本分区的分区响应时间信息及所述重发请求所对应的最大超时时间,确定所述重发请求是否满足请求重发条件。
具体地,可以基于所述重发请求所对应的目标副本分区的分区响应时间信息以及所述目标副本分区中所述重发请求对应的最大超时时间,来判断所述重发请求是否满足请求重发条件。在此,所述最大超时时间对应于一个请求在分区等待响应的所允许的最长时间。优选地,在分布式计算中,来自同一个父请求的各个子请求对应的所述最大超时时间一致,来自不同父请求的各个子请求可以对应各异的所述最大超时时间。所述最大超时时间的设置的差异可以基于各个任务请求对应的来源不同而有所差异。在此,基于所述重发请求对应的最大超时时间,并结合目标副本分区的分区响应时间信息,就可以对所述重发请求进行预判。例如,当副本分区中所述重发请求对应的最大超时时间为T,当前目标副本分区的分区响应时间信息是score,则当score<T×a(a是介于0到1之间的浮点数)时,判断不满足请求重发条件,启动过载保护。例如当a取为0.5时,若此时分区响应时间信息score较小,如小于该副本分区的请求最大超时时间的一半时,说明发往目标副本分区的请求可能需要较长时间才能返回,这可能是应为是目标副本分区对应的设备的负载已经很高,此时则选择放弃重发。反之,则说明满足请求重发条件,进而可以将所述重发请求发送至所述目标副本分区。
在此,本领域技术人员应能理解上述确定所述重发请求是否满足请求重发条件的方法仅为举例,其他现有的或今后可能出现的其他确定所述重发请求是否满足请求重发条件的方法如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
图4示出根据本申请一个优选实施例的一种用于在分布式计算中处理重发请求的方法流程图。所述方法还包括步骤S404。以下参照图4对该优选实施例进行详细描述:具体地,在步骤S401中,所述设备1获取分布式计算中待处理的重发请求,其中,所述分布式计算涉及至少一个数据副本,每个数据副本包括一个或多个副本分区;在步骤S402中,所述设备1基于所述副本分区的分区响应时间信息确定所述重发请求所对应的目标副本分区;在步骤S403中,所述设备1将所述重发请求发送至所述目标副本分区;在步骤S404中,所述设备1根据所述副本分区的历史分区响应时间信息和/或当前分区响应时间信息,确定所述副本分区的分区响应速度信息;其中,在步骤S402中,所述设备1基于所述副本分区的分区响应速度信息确定所述重发请求所对应的目标副本分区。其中,所述步骤S401、步骤S402和步骤S403与图3所示出的对应步骤相同或基本相同,故此处不再赘述,并通过引用的方式包含于此。
其中,在所述步骤S404中,所述设备1根据所述副本分区的历史分区响应时间信息和/或当前分区响应时间信息,确定所述副本分区的分区响应速度信息;其中,在步骤S402中,所述设备1基于所述副本分区的分区响应速度信息确定所述重发请求所对应的目标副本分区。具体地,通过所述分区响应时间信息确定所述副本分区的分区响应速度信息,再基于所述分区响应速度信息确定所述目标副本分区。优选地,所述分区响应速度信息为当前分区响应速度信息。所述分区响应速度信息可以对应多种形式。例如,在当前时刻T1,副本x的分区y响应了某个当前请求Q1,并且所述分区y对于请求Q1的响应返回时间是t1,此时基于请求Q1的所述响应返回时间t1,确定副本x的分区y的当前分区响应时间信息D1,此时,可以将所述副本x的分区y的当前分区响应时间信息D1作为该副本分区的当前分区响应速度信息。又如,基于上例,已知所述副本x的分区y的当前分区响应时间信息D1,并且,若是在之前一个历史时刻T0,副本x的分区y响应了某个当前请求Q0,所述分区y对于请求Q0的响应返回时间是t0,对应于T0时刻,基于请求Q0的所述响应返回时间t0,确定副本x的分区y的历史分区响应时间信息D0,同时,该历史分区响应时间信息D0对应于一个历史分区响应速度信息E0,此时,基于所述历史分区响应速度信息E0和当前分区响应时间信息D1,做加权运算,得到当前分区响应速度信息E1,所述算法的一种举例如下:
E1=[E0×b+D1×(2-b)]/2,(b是0到1之间的浮点数,比如0.8)
在此,所述分区响应速度信息是基于历史分区响应速度信息和当前分区响应时间信息的加权运算得到的,通过所述加权运算做数据平滑处理,可以降低历史分区响应时间信息的影响,突出最新的分区响应时间信息的影响。所述分区响应速度信息能够体现各个副本分区对于任务请求的处理差异,并且,还可以对各个分区响应速度信息进行周期性、或是实时地更新,使得该数据的更加合理。进一步,,在步骤S402中,所述设备1基于所述副本分区的当前分区响应速度信息确定所述重发请求所对应的目标副本分区。
优选地,所述步骤S402中包括步骤S4021(未示出)和步骤S4022(未示出),在步骤S4021中,所述设备1根据所述重发请求确定一个或多个候选副本分区;在步骤S4022中,所述设备1基于所述候选副本分区的分区响应速度信息,确定所述重发请求所对应的目标副本分区。
具体地,在步骤S4021中,所述设备1根据所述重发请求确定一个或多个候选副本分区。在此,首先要确定若干个候选副本分区,其中所述候选副本分区需要包含所述重发请求所请求的目标数据。每一套副本数据都包含分布式集群中进行的计算所需要的全套数据,各个副本数据划分成若干个分区,各个副本数据划分分区的标准可以一致,也可以不同。例如,副本数据1划分为n个分区,副本数据2划分为m个分区,若此时重发请求对应的首发请求发送到的是副本数据1中的第n1个分区,请求的是数据W,则副本数据2中所对应的候选副本分区,就是其m个分区中包含了数据W的对应分区。在此,优选地,分布式集群中,各个副本数据的划分标准一致,由此,便可以快速地确定所述候选副本分区。例如,在上述举例中,n与m相等,且每一组相同分区中数据组成也分别一致,即副本数据1的第n1分区中的数据与副本数据2的第m1分区中的数据分布一致。此时,若所述首发请求是向某个副本数据的第k个分区发出的请求,则对应的重发请求的候选副本分区,就是其他各个副本中的第k个分区。
接着,在步骤S4022中,所述设备1基于所述候选副本分区的分区响应速度信息,确定所述重发请求所对应的目标副本分区。在此,各个副本数据,可能因为历史数据负载不均,跨机房网络延迟、设备瞬时故障、设备硬件差异等情况而存在副本响应速度信息的差异,这种差异会直接反映到各个副本所对应的分区,进而,即使各个副本的分区划分一致,不同副本数据中相同的副本分区,如副本数据1的第a个分区与副本数据2的第a个分区,也会存在分区响应速度信息的差异。进一步,基于这种差异,便可以选择出所述重发请求对应的最终的目标副本分区。所述重发请求对应的目标副本分区的确定,可以有多种方式,例如,可以是先基于副本分区的各个分区响应速度信息,得到一个副本整体的副本响应速度信息,再对各个副本数据对应的所述副本响应速度信息进行对比,选择目标副本,进而选择目标副本中与重发请求对应的具体的目标副本分区;又如,在此,优选地,也可以是直接采用体现了各个副本数据之间的差异体的分区响应速度信息,从而选择重发请求对应的目标副本分区,其中,副本之间的差异,也会间接的体现在其中各个副本分区的分区响应速度信息中。
更优选地,在步骤S4022中,所述设备1累加前i个所述候选副本分区的分区响应速度信息,直至所得累加和与所有所述候选副本分区的分区响应速度信息之和的比值超过区间(0,1)内的一随机数;将该第i个所述候选副本分区作为所述重发请求所对应的目标副本分区。
具体地,确定所述重发请求对应的目标副本分区的方法,优选地可以是:基于获取的所述重发请求,进一步确定若干个候选副本分区,并获得各个候选副本分区当前对应的分区响应速度信息,在此,基于本方案的所述目标副本分区的选择算法的一个实例如下:
分区M.sum_score=副本1.分区M.score+副本2.分区M.score+…+副本n.分区M.score
rand=生成0-1之间的随机浮点数
for循环副本1.分区M到副本n.分区M
分区M.accumulate=副本1.分区M.score+副本2.分区M.score+…+副本i.分区M.score
如果rand<分区M.accumulate/分区M.sum_score
返回:选择分区i
循环结束
选择分区n(上述循环未选中)
在此,所述重发请求对应的数据信息存在于副本分区M中,候选副本将分区响应速度信息记为score。副本1、副本2……副本n为n个候选副本,每个副本都对应数据分布相同的分区M。副本1.分区M.score、副本2.分区M.score、…副本n.分区M.score为各个候选副本分区对应的分区响应速度信息。分区M.sum_score为所有所述候选副本分区的分区响应速度信息之和。首先,累加前i个所述候选副本分区的分区响应速度信息,则当累加到前i个所述候选副本分区的分区响应速度信息时,所述分区响应速度信息的累加值与所有所述候选副本分区的分区响应速度信息之和的比值超过区间(0,1)内的一随机数,此时,选择第i个候选副本分区作为所述重发请求所对应的目标副本分区;若是循环结束仍未有选中的副本分区,则以第n个副本分区作为所述重发请求所对应的目标副本分区。在此,所述候选副本分区对应的分区响应速度信息越优,即score数值越大,则对应副本分区其被选中作为目标副本分区的概率就越大。
在此,本领域技术人员应能理解上述确定重发请求对应的目标副本分区的方法仅为举例,其他现有的或今后可能出现的确定所述重发请求对应的目标副本分区的方式如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
更优选地,所述随机数为实时生成的。
具体地,区间(0,1)内的一随机数是实时生成的,即在进行目标副本分区选择时即时生成。在此,基于实时生成的随机数,并依照一定的概率选择目标副本分区,虽然所述候选副本分区对应的分区响应速度信息越优,其被选中作为目标副本分区的概率就越大,但是一些分区响应速度信息较低的分区也存在被选中的概率。这种并非严格选择分区响应速度信息最优的分区的做法是为了对数据做平滑处理。原因可以包含以下两点:一是,所述各个分区的分区响应速度信息,反映的是历史上计算出该分区响应速度信息时的各个分区的情况,并不能完全准确地代表当前进行重发请求时的各个分区的最新情况。例如,某个分区之前由于存在设备障碍,对应的分区响应速度信息不理想,但是当前由于设备回复正常,就可能带来比其他分区更优的操作性能,这一改变并不能及时体现在该分区对应的分区响应速度信息上,此时,如果完全基于对应的分区响应速度信息进行选择,该分区就不会被选中,则所述分区对应设备性能恢复后的优势就得不到利用。所以,在此,通过实时生成的随机数可以均衡地给予分区响应速度信息不理想、但是实际性可能较优的候选副本分区被选中的机会。二是,避免候选副本分区对应的分区响应速度信息波动太大。若是严格按照分区响应速度信息选择目标副本分区,对于分区响应速度信息较优的分区,在连续一段时间,特别在请求量较大时,甚至是一瞬时,该分区会接受大量请求,对应的负载会快速增大,进而该分区对应的分区响应速度信息迅速降低,则后续请求又会快速转移请求另一个分区响应速度信息较高的分区,如此一来,各个分区后背跳跃式选择,稳定性较差,不利于集群的整体性能发挥。
优选地,所述方法还包括步骤S407(未示出)和步骤S408(未示出),其中,在步骤S407中,所述设备1接收对应的请求响应结果;在步骤S408中,所述设备1根据所述请求响应结果的响应时间,更新对应副本分区的分区响应速度信息。
具体地,在分布式计算中,副本分区对应的分区响应速度信息可以实时更新。优选地,可以基于每一次所述副本分区返回的请求响应结果来更新该副本分区的分区响应速度信息。在此,在步骤S408中,通过所述设备1接收的请求响应结果,可以对应于到达对应分区的某个请求任务的首发请求,也可以对应于到达对应分区的某个请求任务的重发请求。例如,本申请中,当目标重发请求在副本u的分区v中完成重发任务,并返回请求信息,此时接收到该副本u的分区v的重发请求对应的请求响应结果是响应时间t,则基于该响应时间t,更新对应的副本分区的分区响应速度信息。
在此,本领域技术人员应能理解上述请求响应结果的响应时间仅为举例,其他现有的或今后可能出现的其他形式的请求响应结果如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
更优选地,在步骤S408中,所述设备1根据所述请求响应结果的响应时间,以及对应副本分区的请求最大超时时间,确定所述对应副本分区的请求富余时间信息;并根据所述请求富余时间信息,更新所述对应副本分区的分区响应速度信息。
具体地,在此,在步骤S408中,所述设备1对副本分区对应的分区响应速度信息的具体更新,需要获得几个数据信息,一是所述第七装置接收到的所述待更新副本分区对某个所述任务请求的响应时间;二是所述任务请求在所述待更新副本分区对应的请求最大超时时间。例如,上述副本u的分区v的重发请求对应的请求响应结果是响应时间t。同时,所述重发请求在所述副本分区对应一个请求最大超时时间,所述请求最大超时时间对应于一个请求在分区等待响应的所允许的最长时间。进一步,基于所述副本分区中请求相应结果的响应时间和对应的请求最大超时时间,确定对应副本分区的请求富余时间信息。例如,上述副本u的分区v的重发请求对应的请求响应结果是响应时间t,所述重发请求在分区v的请求的最大超时时间Tm3,则优选地,所述副本分区的请求富余时间信息为Tm3-t。对于一个副本分区,若是请求的最大超时时间与请求响应结果的响应时间越接近,即富余时间越少,则后续就可能不会再接受紧急的请求,相反地,若是所述请求富余时间越多,则对应的分区响应速度信息越优。进一步,基于所述富余时间信息可以更新所述副本分区的分区响应速度信息,例如,可以直接以当前的请求所对应请求富余时间信息作为副本分区的分区响应速度信息来更新;也可以将当前所对应的请求富余时间信息与该副本分区之前计算得到的历史请求富余时间信息做加权运算,以加权运算的结果作为所更新的分区响应速度信息,在此,可以通过这样的平滑操作强化最新数据的影响。
此外,对于各个副本分区所对应的请求最大超时时间,在分布式计算中,父请求的响应时间取决于最慢的子任务的执行时间,进而,为父请求确定的请求最大超时时间也同样适用对应的各个子请求。例如,父请求1对应的最大超时时间是Tm,则其对应的所有子请求的最大超时时间是都Tm。则当所述子请求首发到各个副本分区,或是所述子请求重发到各个副本分区时,所对应的副本分区的请求最大超时时间即为所述Tm。在此,所述请求最大超时时间的确定可以依据各种不同的请求类型,并基于历史请求数据信息来确定。例如,同样是对某个副本分区中相同数据的请求,请求Y1是来自交易买家的请求,请求Y2是来自交易卖家的请求,此时,对应的副本分区的请求最大超时时间可能就是:在接收请求Y1时,对应请求的最大超时时间Tm1,在接收请求Y2时,对应请求的最大超时时间Tm2,在此,Tm1与Tm2可以不相同。
优选地,所述方法还包括步骤S405(未示出)和步骤S406(未示出),其中,在步骤S405中,所述设备1获取分布式计算中待处理的首发请求;在步骤S406中,所述设备1基于所述副本分区的分区响应速度信息确定所述首发请求所对应的副本分区,并将所述首发请求发送至所述首发请求所对应的副本分区。
具体地,在实际的分布式计算中,通过本申请所述的方法,可以对所述任务请求的重发进行优化,优选响应时间较优的副本。进一步,在父请求所对应的各个子请求的首发请求,也可以基于已有的所述副本分区的分区响应速度信息确定所述首发请求所对应的副本分区,并将所述首发请求发送至所述首发请求所对应的副本分区。此时,对比现有方案,可以从源头上减少需要重发的次数,有效地减少了后续因为长响应时间需要重发的请求,降低集群的实际负载。具体的操作过程与重发请求选择对应目标副本分区相同或相似,在此,不再赘述。
图5示出根据本申请一个优选实施例的与现有技术的技术效果对比图。
具体地,基于所模拟的长尾应用场景,图中示出了分布式集群在采用不同技术时对任务请求的响应时间,响应时间越短,技术效果越好。其中,对比于无长尾处理的情况,利用现有技术的长尾优化,集群响应时间会降低13%,而对比于相同的无长尾处理的情况,利用本申请对应的技术方案,可以使集群响应时间降低40%,相比于现有技术,整体上能有了明显提升。此外,进一步对比了计算节点响应时间的方差,通过本方案,计算节点响应时间的方差下降了73%—82%,而方差下降则说明各个计算节点的响应时间趋于均衡,即通过本申请,集群整体负载情况得到均衡和优化,且效果显著。
对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
Claims (20)
1.一种用于在分布式计算中处理重发请求的方法,其中,所述方法包括:
获取分布式计算中待处理的重发请求,其中,所述分布式计算涉及至少一个数据副本,每个数据副本包括一个或多个副本分区;
基于所述副本分区的分区响应时间信息确定所述重发请求所对应的目标副本分区;
将所述重发请求发送至所述目标副本分区。
2.根据权利要求1所述的方法,其中,所述将所述重发请求发送至所述目标副本分区包括:
检测所述重发请求是否满足请求重发条件;
当所述重发请求满足所述请求重发条件,将所述重发请求发送至所述目标副本分区。
3.根据权利要求2所述的方法,其中,所述检测所述重发请求是否满足请求重发条件包括:
根据所述目标副本分区的分区响应时间信息及所述重发请求所对应的最大超时时间,确定所述重发请求是否满足请求重发条件。
4.根据权利要求1至3中任一项所述的方法,其中,该方法还包括:
根据所述副本分区的历史分区响应时间信息和/或当前分区响应时间信息,确定所述副本分区的分区响应速度信息;
其中,所述基于所述副本分区的分区响应时间信息确定所述重发请求所对应的目标副本分区包括:
基于所述副本分区的分区响应速度信息确定所述重发请求所对应的目标副本分区。
5.根据权利要求4所述的方法,其中,所述基于所述副本分区的分区响应时间信息确定所述重发请求所对应的目标副本分区包括:
根据所述重发请求确定一个或多个候选副本分区;
基于所述候选副本分区的分区响应速度信息,确定所述重发请求所对应的目标副本分区。
6.根据权利要求5所述的方法,其中,所述基于所述候选副本分区的分区响应速度信息,确定所述重发请求所对应的目标副本分区包括:
累加前i个所述候选副本分区的分区响应速度信息,直至所得累加和与所有所述候选副本分区的分区响应速度信息之和的比值超过区间(0,1)内的一随机数;将该第i个所述候选副本分区作为所述重发请求所对应的目标副本分区。
7.根据权利要求6所述的方法,其中,所述随机数为实时生成的。
8.根据权利要求4至7中任一项所述的方法,其中,该方法还包括:
获取分布式计算中待处理的首发请求;
基于所述副本分区的分区响应速度信息确定所述首发请求所对应的副本分区,并将所述首发请求发送至所述首发请求所对应的副本分区。
9.根据权利要求4至8中任一项所述的方法,其中,该方法还包括:
接收对应的请求响应结果;
根据所述请求响应结果的响应时间,更新对应副本分区的分区响应速度信息。
10.根据权利要求9所述的方法,其中,所述根据所述请求响应结果的响应时间,更新对应副本分区的分区响应速度信息包括:
根据所述请求响应结果的响应时间,以及对应副本分区的请求最大超时时间,确定所述对应副本分区的请求富余时间信息;
根据所述请求富余时间信息,更新所述对应副本分区的分区响应速度信息。
11.一种用于在分布式计算中处理重发请求的设备,其中,所述设备包括:
第一装置,用于获取分布式计算中待处理的重发请求,其中,所述分布式计算涉及至少一个数据副本,每个数据副本包括一个或多个副本分区;
第二装置,用于基于所述副本分区的分区响应时间信息确定所述重发请求所对应的目标副本分区;
第三装置,用于将所述重发请求发送至所述目标副本分区。
12.根据权利要求11所述的设备,其中,所述第三装置包括:
第一单元,用于检测所述重发请求是否满足请求重发条件;
第二单元,用于当所述重发请求满足所述请求重发条件,将所述重发请求发送至所述目标副本分区。
13.根据权利要求12所述的设备,其中,所述第一单元用于:
根据所述目标副本分区的分区响应时间信息及所述重发请求所对应的最大超时时间,确定所述重发请求是否满足请求重发条件。
14.根据权利要求11至13中任一项所述的设备,其中,该设备还包括:
第四装置,用于根据所述副本分区的历史分区响应时间信息和/或当前分区响应时间信息,确定所述副本分区的分区响应速度信息;
其中,所述第二装置用于:
基于所述副本分区的分区响应速度信息确定所述重发请求所对应的目标副本分区。
15.根据权利要求14所述的设备,其中,所述第二装置包括:
第三单元,用于根据所述重发请求确定一个或多个候选副本分区;
第四单元,用于基于所述候选副本分区的分区响应速度信息,确定所述重发请求所对应的目标副本分区。
16.根据权利要求15所述的设备,其中,所述第四单元用于:
累加前i个所述候选副本分区的分区响应速度信息,直至所得累加和与所有所述候选副本分区的分区响应速度信息之和的比值超过区间(0,1)内的一随机数;将该第i个所述候选副本分区作为所述重发请求所对应的目标副本分区。
17.根据权利要求16所述的设备,其中,所述随机数为实时生成的。
18.根据权利要求14至17中任一项所述的设备,其中,该设备还包括:
第五装置,用于获取分布式计算中待处理的首发请求;
第六装置,用于基于所述副本分区的分区响应速度信息确定所述首发请求所对应的副本分区,并将所述首发请求发送至所述首发请求所对应的副本分区。
19.根据权利要求14至18中任一项所述的设备,其中,该设备还包括:
第七装置,用于接收对应的请求响应结果;
第八装置,用于根据所述请求响应结果的响应时间,更新对应副本分区的分区响应速度信息。
20.根据权利要求19所述的设备,其中,所述第八装置用于:
根据所述请求响应结果的响应时间,以及对应副本分区的请求最大超时时间,确定所述对应副本分区的请求富余时间信息;
根据所述请求富余时间信息,更新所述对应副本分区的分区响应速度信息。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510032434.4A CN105868002B (zh) | 2015-01-22 | 2015-01-22 | 一种用于在分布式计算中处理重发请求的方法与设备 |
TW104128416A TW201627873A (zh) | 2015-01-22 | 2015-08-28 | 用於在分散式計算中處理重發請求的方法與設備 |
PCT/US2016/014364 WO2016118773A1 (en) | 2015-01-22 | 2016-01-21 | Method and apparatus of processing retransmission request in distributed computing |
US15/003,684 US10536514B2 (en) | 2015-01-22 | 2016-01-21 | Method and apparatus of processing retransmission request in distributed computing |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510032434.4A CN105868002B (zh) | 2015-01-22 | 2015-01-22 | 一种用于在分布式计算中处理重发请求的方法与设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105868002A true CN105868002A (zh) | 2016-08-17 |
CN105868002B CN105868002B (zh) | 2020-02-21 |
Family
ID=56417760
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510032434.4A Active CN105868002B (zh) | 2015-01-22 | 2015-01-22 | 一种用于在分布式计算中处理重发请求的方法与设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10536514B2 (zh) |
CN (1) | CN105868002B (zh) |
TW (1) | TW201627873A (zh) |
WO (1) | WO2016118773A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107239550A (zh) * | 2017-06-07 | 2017-10-10 | 中南大学 | 一种在键值存储数据库中高效简单的副本选择方法 |
CN111245559A (zh) * | 2018-11-29 | 2020-06-05 | 阿里巴巴集团控股有限公司 | 信息确定方法、信息判断方法、装置及计算设备 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110166185B (zh) * | 2019-05-15 | 2021-07-09 | 广州视源电子科技股份有限公司 | 音频数据的处理方法、装置、存储介质和处理器 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101009535A (zh) * | 2007-01-26 | 2007-08-01 | 北京航空航天大学 | 基于滑动窗口的soap消息传输方法 |
US7746772B2 (en) * | 2005-11-10 | 2010-06-29 | Canon Kabushiki Kaisha | Information processing apparatus and method |
CN103036717A (zh) * | 2012-12-12 | 2013-04-10 | 北京邮电大学 | 分布式数据的一致性维护系统和方法 |
US20130247044A1 (en) * | 2013-04-30 | 2013-09-19 | Splunk Inc. | Interactive architecture-base presentation of hypervisor performance |
US20130318297A1 (en) * | 2012-05-24 | 2013-11-28 | Netapp, Inc. | Network storage systems having clustered raids for improved redundancy and load balancing |
US20140059312A1 (en) * | 2012-08-27 | 2014-02-27 | Fujitsu Limited | Recording medium, computer, and information processing system |
US20140379846A1 (en) * | 2013-06-20 | 2014-12-25 | Nvidia Corporation | Technique for coordinating memory access requests from clients in a mobile device |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE60035422D1 (de) | 1999-08-13 | 2007-08-16 | Sun Microsystems Inc | Elegante verteilung des lastausgleichs für anwendungs-server |
US7222148B2 (en) | 2002-05-02 | 2007-05-22 | Bea Systems, Inc. | System and method for providing highly available processing of asynchronous service requests |
US7493394B2 (en) | 2003-12-31 | 2009-02-17 | Cisco Technology, Inc. | Dynamic timeout in a client-server system |
US7359919B2 (en) | 2005-03-08 | 2008-04-15 | Microsoft Corporation | Reliable request-response messaging over a request-response transport |
US9009265B2 (en) * | 2005-09-28 | 2015-04-14 | Photobucket Corporation | System and method for automatic transfer of data from one device to another |
US20070168861A1 (en) * | 2006-01-17 | 2007-07-19 | Bell Denise A | Method for indicating completion status of user initiated and system created tasks |
US8260956B2 (en) * | 2008-03-14 | 2012-09-04 | Microsoft Corporation | Data transmission queuing using fault prediction |
US7937619B2 (en) | 2008-05-30 | 2011-05-03 | Red Hat, Inc. | Fine grained failure detection in distributed computing |
WO2011058640A1 (ja) * | 2009-11-12 | 2011-05-19 | 富士通株式会社 | 並列計算用の通信方法、情報処理装置およびプログラム |
US20120124431A1 (en) | 2010-11-17 | 2012-05-17 | Alcatel-Lucent Usa Inc. | Method and system for client recovery strategy in a redundant server configuration |
US9317334B2 (en) | 2011-02-12 | 2016-04-19 | Microsoft Technology Licensing Llc | Multilevel multipath widely distributed computational node scenarios |
US20140089619A1 (en) * | 2012-09-27 | 2014-03-27 | Infinera Corporation | Object replication framework for a distributed computing environment |
US9660874B2 (en) * | 2012-12-13 | 2017-05-23 | Level 3 Communications, Llc | Devices and methods supporting content delivery with delivery services having dynamically configurable log information |
US9720732B1 (en) * | 2013-02-11 | 2017-08-01 | Amazon Technologies, Inc. | Parameter selection for optimization of task execution based on execution history for prior tasks |
US9430280B1 (en) * | 2013-02-11 | 2016-08-30 | Amazon Technologies, Inc. | Task timeouts based on input data characteristics |
US9164786B2 (en) * | 2013-04-30 | 2015-10-20 | Splunk Inc. | Determining performance states of parent components in a virtual-machine environment based on performance states of related child components during a time period |
US8904389B2 (en) * | 2013-04-30 | 2014-12-02 | Splunk Inc. | Determining performance states of components in a virtual machine environment based on performance states of related subcomponents |
US8683467B2 (en) * | 2013-04-30 | 2014-03-25 | Splunk Inc. | Determining performance states of parent components in a virtual-machine environment based on performance states of related child components |
US9348709B2 (en) | 2013-12-27 | 2016-05-24 | Sybase, Inc. | Managing nodes in a distributed computing environment |
US10362434B2 (en) * | 2014-10-31 | 2019-07-23 | Comcast Cable Communications Management, Llc | Methods and systems for communication management |
-
2015
- 2015-01-22 CN CN201510032434.4A patent/CN105868002B/zh active Active
- 2015-08-28 TW TW104128416A patent/TW201627873A/zh unknown
-
2016
- 2016-01-21 WO PCT/US2016/014364 patent/WO2016118773A1/en active Application Filing
- 2016-01-21 US US15/003,684 patent/US10536514B2/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7746772B2 (en) * | 2005-11-10 | 2010-06-29 | Canon Kabushiki Kaisha | Information processing apparatus and method |
CN101009535A (zh) * | 2007-01-26 | 2007-08-01 | 北京航空航天大学 | 基于滑动窗口的soap消息传输方法 |
US20130318297A1 (en) * | 2012-05-24 | 2013-11-28 | Netapp, Inc. | Network storage systems having clustered raids for improved redundancy and load balancing |
US20140059312A1 (en) * | 2012-08-27 | 2014-02-27 | Fujitsu Limited | Recording medium, computer, and information processing system |
CN103036717A (zh) * | 2012-12-12 | 2013-04-10 | 北京邮电大学 | 分布式数据的一致性维护系统和方法 |
US20130247044A1 (en) * | 2013-04-30 | 2013-09-19 | Splunk Inc. | Interactive architecture-base presentation of hypervisor performance |
US20140379846A1 (en) * | 2013-06-20 | 2014-12-25 | Nvidia Corporation | Technique for coordinating memory access requests from clients in a mobile device |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107239550A (zh) * | 2017-06-07 | 2017-10-10 | 中南大学 | 一种在键值存储数据库中高效简单的副本选择方法 |
CN111245559A (zh) * | 2018-11-29 | 2020-06-05 | 阿里巴巴集团控股有限公司 | 信息确定方法、信息判断方法、装置及计算设备 |
Also Published As
Publication number | Publication date |
---|---|
TW201627873A (zh) | 2016-08-01 |
US10536514B2 (en) | 2020-01-14 |
US20160219100A1 (en) | 2016-07-28 |
CN105868002B (zh) | 2020-02-21 |
WO2016118773A1 (en) | 2016-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20190373065A1 (en) | Method and Apparatus for Virtualized Network Function Chaining Management | |
CN102640125B (zh) | 分布式内容存储和取回 | |
EP3531288A1 (en) | Data storage method, device, and system | |
JP6498767B2 (ja) | データベースの口座に関連する取引要求の効率的な処理のためのシステム | |
WO2018113522A1 (en) | Cross–Data Center Hierarchical Consensus Scheme with Geo-Aware Leader Election | |
CN109391655A (zh) | 服务灰度发布方法、装置、系统及存储介质 | |
US6968359B1 (en) | Merge protocol for clustered computer system | |
EP2998883B1 (en) | Data partitioning method and apparatus | |
WO2014101044A1 (zh) | 分布式存储系统中的分区平衡方法、装置及服务器 | |
CN106603692B (zh) | 一种分布式存储系统中的数据存储方法及装置 | |
CN111290699B (zh) | 数据迁移方法、装置及系统 | |
CN105933408A (zh) | 一种Redis通用中间件的实现方法及装置 | |
Kang et al. | Virtual network function allocation to maximize continuous available time of service function chains with availability schedule | |
CN105868002A (zh) | 一种用于在分布式计算中处理重发请求的方法与设备 | |
WO2019000535A1 (zh) | 云平台的构建方法及云平台 | |
CN106952085B (zh) | 一种数据存储与业务处理的方法及装置 | |
Chang et al. | Write-aware replica placement for cloud computing | |
US8316375B2 (en) | Load-balancing of processes based on inertia | |
CN117033004B (zh) | 负载均衡方法、装置、电子设备及存储介质 | |
US20220103500A1 (en) | Method and device for managing group member, and method for processing group message | |
CN106537323B (zh) | 存储设备访问调解 | |
CN110209693A (zh) | 高并发数据查询方法、装置、系统、设备及可读存储介质 | |
CN107040566A (zh) | 业务处理方法及装置 | |
US11061719B2 (en) | High availability cluster management of computing nodes | |
US11507313B2 (en) | Datafall: a policy-driven algorithm for decentralized placement and reorganization of replicated data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |