CN110427217A - 基于内容的发布订阅系统匹配算法轻量级并行方法和系统 - Google Patents

基于内容的发布订阅系统匹配算法轻量级并行方法和系统 Download PDF

Info

Publication number
CN110427217A
CN110427217A CN201910672885.2A CN201910672885A CN110427217A CN 110427217 A CN110427217 A CN 110427217A CN 201910672885 A CN201910672885 A CN 201910672885A CN 110427217 A CN110427217 A CN 110427217A
Authority
CN
China
Prior art keywords
matching
parallelism
degree
thread
cur
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
CN201910672885.2A
Other languages
English (en)
Other versions
CN110427217B (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.)
Shanghai Jiaotong University
Original Assignee
Shanghai Jiaotong University
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 Shanghai Jiaotong University filed Critical Shanghai Jiaotong University
Priority to CN201910672885.2A priority Critical patent/CN110427217B/zh
Publication of CN110427217A publication Critical patent/CN110427217A/zh
Application granted granted Critical
Publication of CN110427217B publication Critical patent/CN110427217B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3856Reordering of instructions, e.g. using queues or age tags
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Multi Processors (AREA)

Abstract

本发明提供了一种基于内容的发布订阅系统匹配算法轻量级并行方法和系统,令存储数据结构的索引结构进行分层,形成多个层级,每个层级与存储数据结构的存储单元集合相对应,将多个层级分组,每个层级分组同时包含层级和与层级对应的存储单元集合;对每个层级分组设定匹配线程,将匹配事件独立分配给单个匹配线程进行处理,多个匹配线程同时更新一个指示器,所述指示器在更新时执行同步操作。提升匹配性能,根据性能需求动态地调整并行度,从而保证事件快速可靠地分发。使用迭代优化方法来确定最佳并行度,提升线程的任务分配,使得时间开销上非常高效。

Description

基于内容的发布订阅系统匹配算法轻量级并行方法和系统
技术领域
本发明涉及事件分发网络中的匹配算法领域,提出一种基于内容的发布订阅系统匹配算法轻量级并行方法和系统,尤其是提出一种发布/订阅系统中匹配算法的并行化方法。
背景技术
发布/订阅系统提供了一种中间件,用于实现数据从发布者向订阅者的分发,广泛应用于灾害监测、股票更新、社交媒体消息、在线游戏和紧急事件响应等领域。发布/订阅系统在时间、空间和同步方面实现了通信双方的完全解耦,对于大规模的分布式数据分发系统而言具有非常大的吸引力。特别是,基于内容的发布/订阅系统为订阅者提供了表达其兴趣(订阅)的能力,可以支持细粒度的选择性信息分发。
对于基于内容的发布/订阅系统,匹配算法是其关键模块,因为它对整个系统的性能有着非常大的影响。为了提供快速稳定的事件分发服务,在不同数据结构的支持下,研究人员提出了许多高效的匹配算法。此外,利用多核CPU、GPU和FPGA等硬件,研究人员提出了多个并行匹配算法。但是,这些并行匹配算法无法根据动态工作负载的变化情况和性能要求自适应地调整并行度。
与本申请相关的现有技术是专利文献CN101295311B,公开了大规模发布订阅系统的语义匹配算法,包括如下步骤:1)为订阅图建立索引;2)转化事件到特定的数据结构;3)把事件图的数据结构提交给事件匹配器;4)事件匹配器进行事件图同订阅图模式的匹配运算,找出匹配的订阅,由系统把事件分发给匹配的订阅者。降低事件与订阅匹配的时间,提高事件匹配效率,使得随着订阅和发布事件数目的增加,事件匹配效率不会受到严重的影响,系统性能不会恶化。同时,根据匹配服务器的内核体系结构自适应调整匹配算法,充分利用多核技术提高匹配效率。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种基于内容的发布订阅系统匹配算法轻量级并行方法和系统。
根据本发明提供的一种基于内容的发布订阅系统匹配算法轻量级并行方法,包括:
分组并行步骤:令存储数据结构的索引结构进行分层,形成多个层级,每个层级与存储数据结构的存储单元集合相对应,将多个层级分组,每个层级分组同时包含层级和与层级对应的存储单元集合;
匹配分配步骤:对每个层级分组设定匹配线程,将匹配事件独立分配给单个匹配线程进行处理,多个匹配线程同时更新一个指示器,所述指示器在更新时执行同步操作。
优选地,所述的基于内容的发布订阅系统匹配算法轻量级并行方法,还包括匹配调整步骤:动态识别订阅数量,根据订阅数量的变化,使用迭代自适应地调整匹配线程的并行度,使得匹配线程的匹配时间小于设定阈值。
优选地,所述匹配分配步骤包括:
监视步骤:通过监视器收集事件信息,并发送至决策器,所述事件信息包括事件的匹配时间和每个属性索引的谓词数量;
决策步骤:根据当前匹配时间、预期匹配时间的性能要求和可用线程个数做出调整决策,根据调整决策形成匹配线程的并行度;
调节步骤:接收匹配线程的并行度,根据所述并行度进行分配形成多个匹配任务,执行匹配线程的初始化,并启动并行执行匹配任务。
优选地,所述决策步骤包括:
步骤S1:设定一个包含s个事件的时间窗口,计算当前时间窗口中s个事件的平均匹配时间Tcur,并与预期的匹配时间Texp比较;
步骤S2:如果Tcur=Texp,不修改并行度d;
步骤S3:如果Tcur<(1-r)Texp,减少并行度d释放多余的计算资源,r表示匹配算法性能波动幅度(百分比%);
步骤S4:如果Tcur>(1-r)Texp,并且dcur>1,通过以下公式计算下一个窗口内的并行度dnext
满足条件:dnext≤t
其中t表示当前可用的线程个数,dnext、dcur和dlast分别表示下一个窗口、当前窗口和前一个窗口内的并行度,Tcur和Tlast分别表示当前窗口和前一个窗口内s个事件的平均匹配时间,α用于确定并行度调整的方向,即增多或者减少。
优选地,所述调节步骤包括:
任务排序步骤:令形成的多个匹配任务依照工作量进行降序排序,形成降序排序列表;
贪婪分配步骤:依次处理降序排序列表中的每个匹配任务,贪婪地将所述匹配任务分配给当前总负担最小的匹配线程。
根据本发明提供的一种基于内容的发布订阅系统匹配算法轻量级并行系统,包括:
分组并行模块:令存储数据结构的索引结构进行分层,形成多个层级,每个层级与存储数据结构的存储单元集合相对应,将多个层级分组,每个层级分组同时包含层级和与层级对应的存储单元集合;
匹配分配模块:对每个层级分组设定匹配线程,将匹配事件独立分配给单个匹配线程进行处理,多个匹配线程同时更新一个指示器,所述指示器在更新时执行同步操作。
优选地,所述的基于内容的发布订阅系统匹配算法轻量级并行系统,还包括匹配调整模块:动态识别订阅数量,根据订阅数量的变化,使用迭代自适应地调整匹配线程的并行度,使得匹配线程的匹配时间小于设定阈值。
优选地,所述匹配分配模块包括:
监视模块:通过监视器收集事件信息,并发送至决策器,所述事件信息包括事件的匹配时间和每个属性索引的谓词数量;
决策模块:根据当前匹配时间、预期匹配时间的性能要求和可用线程个数做出调整决策,根据调整决策形成匹配线程的并行度;
调节模块:接收匹配线程的并行度,根据所述并行度进行分配形成多个匹配任务,执行匹配线程的初始化,并启动并行执行匹配任务。
优选地,所述决策模块包括:
模块S1:设定一个包含s个事件的时间窗口,计算当前时间窗口中s个事件的平均匹配时间Tcur,并与预期的匹配时间Texp比较;
模块S2:如果Tcur=Texp,不修改并行度d;
模块S3:如果Tcur<(1-r)Texp,减少并行度d释放多余的计算资源,r表示匹配算法性能波动幅度(百分比%);
模块S4:如果Tcur>(1-r)Texp,并且dcur>1,通过以下公式计算下一个窗口内的并行度dnext
满足条件:dnext≤t
其中t表示当前可用的线程个数,dnext、dcur和dlast分别表示下一个窗口、当前窗口和前一个窗口内的并行度,Tcur和Tlast分别表示当前窗口和前一个窗口内s个事件的平均匹配时间,α用于确定并行度调整的方向,即增多或者减少。
优选地,所述调节模块包括:
任务排序模块:令形成的多个匹配任务依照工作量进行降序排序,形成降序排序列表;
贪婪分配模块:依次处理降序排序列表中的每个匹配任务,贪婪地将所述匹配任务分配给当前总负担最小的匹配线程。
与现有技术相比,本发明具有如下的有益效果:
1、针对基于内容的发布/订阅系统在事件匹配操作上的性能瓶颈,提升匹配性能,并且根据性能需求动态地调整并行度,从而保证事件快速可靠地分发。
2、使用迭代优化方法来确定最佳并行度,提升线程的任务分配,使得时间开销上比较高效。
3、针对发布/订阅系统的波动,在并行运行中根据变化的工作负载自适应调整并行度,提升匹配性能并缩小性能波动范围,并同时使得基于内容的发布/订阅系统可以部署在一些时间敏感的场景中。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明的数据结构抽象图;
图2为本发明的基于TAMA数据结构的线程并行化示意图;
图3为本发明的并行化匹配的模块框架图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
根据本发明提供的一种基于内容的发布订阅系统匹配算法轻量级并行方法,包括:
分组并行步骤:令存储数据结构的索引结构进行分层,形成多个层级,每个层级与存储数据结构的存储单元集合相对应,将多个层级分组,每个层级分组同时包含层级和与层级对应的存储单元集合;
匹配分配步骤:对每个层级分组设定匹配线程,将匹配事件独立分配给单个匹配线程进行处理,多个匹配线程同时更新一个指示器,所述指示器在更新时执行同步操作。
具体地,所述的基于内容的发布订阅系统匹配算法轻量级并行方法,还包括匹配调整步骤:动态识别订阅数量,根据订阅数量的变化,使用迭代自适应地调整匹配线程的并行度,使得匹配线程的匹配时间小于设定阈值。
具体地,所述匹配分配步骤包括:
监视步骤:通过监视器收集事件信息,并发送至决策器,所述事件信息包括事件的匹配时间和每个属性索引的谓词数量;
决策步骤:根据当前匹配时间、预期匹配时间的性能要求和可用线程个数做出调整决策,根据调整决策形成匹配线程的并行度;
调节步骤:接收匹配线程的并行度,根据所述并行度进行分配形成多个匹配任务,执行匹配线程的初始化,并启动并行执行匹配任务。
具体地,所述决策步骤包括:
步骤S1:设定一个包含s个事件的时间窗口,计算当前时间窗口中s个事件的平均匹配时间Tcur,并与预期的匹配时间Texp比较;
步骤S2:如果Tcur=Texp,不修改并行度d;
步骤S3:如果Tcur<(1-r)Texp,减少并行度d释放多余的计算资源,r表示匹配算法性能波动幅度(百分比%);
步骤S4:如果Tcur>(1-r)Texp,并且dcur>1,通过以下公式计算下一个窗口内的并行度dnext
满足条件:dnext≤t
其中t表示当前可用的线程个数,dnext、dcur和dlast分别表示下一个窗口、当前窗口和前一个窗口内的并行度,Tcur和Tlast分别表示当前窗口和前一个窗口内s个事件的平均匹配时间,α用于确定并行度调整的方向,即增多或者减少。
具体地,所述调节步骤包括:
任务排序步骤:令形成的多个匹配任务依照工作量进行降序排序,形成降序排序列表;
贪婪分配步骤:依次处理降序排序列表中的每个匹配任务,贪婪地将所述匹配任务分配给当前总负担最小的匹配线程。
根据本发明提供的一种基于内容的发布订阅系统匹配算法轻量级并行系统,包括:
分组并行模块:令存储数据结构的索引结构进行分层,形成多个层级,每个层级与存储数据结构的存储单元集合相对应,将多个层级分组,每个层级分组同时包含层级和与层级对应的存储单元集合;
匹配分配模块:对每个层级分组设定匹配线程,将匹配事件独立分配给单个匹配线程进行处理,多个匹配线程同时更新一个指示器,所述指示器在更新时执行同步操作。
具体地,所述的基于内容的发布订阅系统匹配算法轻量级并行系统,还包括匹配调整模块:动态识别订阅数量,根据订阅数量的变化,使用迭代自适应地调整匹配线程的并行度,使得匹配线程的匹配时间小于设定阈值。
具体地,所述匹配分配模块包括:
监视模块:通过监视器收集事件信息,并发送至决策器,所述事件信息包括事件的匹配时间和每个属性索引的谓词数量;
决策模块:根据当前匹配时间、预期匹配时间的性能要求和可用线程个数做出调整决策,根据调整决策形成匹配线程的并行度;
调节模块:接收匹配线程的并行度,根据所述并行度进行分配形成多个匹配任务,执行匹配线程的初始化,并启动并行执行匹配任务。
具体地,所述决策模块包括:
模块S1:设定一个包含s个事件的时间窗口,计算当前时间窗口中s个事件的平均匹配时间Tcur,并与预期的匹配时间Texp比较;
模块S2:如果Tcur=Texp,不修改并行度d;
模块S3:如果Tcur<(1-r)Texp,减少并行度d释放多余的计算资源,r表示匹配算法性能波动幅度(百分比%);
模块S4:如果Tcur>(1-r)Texp,并且dcur>1,通过以下公式计算下一个窗口内的并行度dnext
满足条件:dnext≤t
其中t表示当前可用的线程个数,dnext、dcur和dlast分别表示下一个窗口、当前窗口和前一个窗口内的并行度,Tcur和Tlast分别表示当前窗口和前一个窗口内s个事件的平均匹配时间,α用于确定并行度调整的方向,即增多或者减少。
具体地,所述调节模块包括:
任务排序模块:令形成的多个匹配任务依照工作量进行降序排序,形成降序排序列表;
贪婪分配模块:依次处理降序排序列表中的每个匹配任务,贪婪地将所述匹配任务分配给当前总负担最小的匹配线程。
对于基于内容的发布/订阅系统而言,匹配算法是系统的核心功能,因为它对整个系统的性能有着非常大的影响。为了提供快速稳定的事件分发服务,在不同数据结构的支持下,研究人员提出了许多高效的匹配算法。在现有工作的基础上,本发明提出了一种针对现有匹配算法的轻量级并行方法,可进一步提升和稳定匹配算法的性能。
通过对常见的匹配算法TAMA、OpIndex和REIN的数据结构进行深入分析,发现它们之间存在共性。抽象地说,这些数据结构主要由三个部分组成:一个分层的索引结构、一组存储单元集合和一组指标器。基于此抽象视图,通过水平分割分层的索引结构,可以有效地将顺序执行的匹配过程并行化为多个并行执行的子过程,从而实现匹配算法的并行化。抽象结构如图1所示,其中分层索引结构包含一个或多个层,每个层构建在某个关键字上,例如属性(TAMA、OpIndex和REIN)、离散化(TAMA)或运算符(OpIndex)。对于最高层的每个级别,都有一组单元来存储谓词。此外,由于订阅中包含的谓词是单独存储的,因此每个订阅都需要一个指示器,匹配算法基于指示器判断订阅是否匹配。指示器实际上维护了属于同一个订阅的谓词的包含关系。对于TAMA和OpIndex,计数器用作每个订阅的指示器,而REIN只使用一个比特位实现谓词与订阅的关联。
本发明中的并行化首先是基于数据结构的抽象视图,在执行事件匹配时,TAMA、OpIndex和REIN依次遍历第一层的每个级别,并评估存储在与级别对应的存储单元中的谓词。由于同一个层的各个级别之间不存在关联关系,匹配操作可以由多个线程并行执行。这样,每个线程负责第一层中的一个或多个级别。
第一层各级别之间存在的独立性为使用多个线程实现事件匹配的并行化成为可能。以图2中所示的TAMA的匹配并行化为例来说明并行化的基本思想。TAMA的索引结构分为两层,第一层是基于属性的,第二层是基于离散化的。对于离散化层中的每个级别,都有一个对应的存储单元集合。由于第一层中的各个级别相对独立,因此可以将它们水平分割为多个组,每组分配给一个线程。在图2所示的TAMA数据结构中,第一层的L个级别被划分为t组。匹配事件时,每个线程独立地执行分配给它的事件匹配任务。由于多个线程需要同时更新一个指示器,为了保证更新的一致性,在指示器更新时需要执行同步操作。
这样,匹配算法就可以根据不断变化的工作负载和性能要求动态调整执行匹配操作的线程个数,即并行度。此外,所有正在运行的线程都基于一个公共的数据结构来执行事件匹配,因此内存消耗较低。
为了量化事件匹配任务,本发明使用存储在每个级别对应存储单元中的谓词数量作为度量指标。例如,在图2所示的TAMA数据结构中,对于每个属性,存储在由该属性索引的存储单元中的谓词数量被用于量化匹配负担的指标。
因此,并行化需要确定并行度,尤其是在一些动态环境中,订阅数量所代表的工作负载会随时间而变化。在这种情况下,通过自适应地调整适当的并行度,可以保证匹配时间不大于给定的阈值,从而保证发布/订阅系统提供稳定的事件分发服务。
这种自适应调整存在两个难点。首先,匹配算法的性能通常在一定范围内波动。换句话说,当对同一组订阅匹配不同的事件时,这些事件的匹配时间会有所不同。一般来说,波动幅度与匹配时间成正比。因此,提高匹配性能可以缩短波动幅度。其次,动态环境中不断变化的工作负载加剧了这个问题。因此,要求自适应调整应该非常有效,以快速响应不断变化的工作负载。
让d表示并行度,并将匹配时间标记为T。直观地,T可以表示为d的函数。因此,将确定并行度的问题转化为在匹配时间不大于阈值的约束下求函数的最小值。但是,匹配时间与并行度的关系受线程个数、计算与同步的成本比、订阅数量、属性个数、属性分布、硬件等诸多因素的影响。因此,即使可能,这个数学函数也是非常复杂的。最重要的是,匹配时间和并行度之间存在着相关性,即增加并行度会在达到极限之前在一定程度上减少匹配时间。
受梯度下降方法的启发,本发明使用迭代优化的方法来确定最优的并行度d。其过程如下:
(1)设定一个包含s个事件的时间窗口;
(2)计算当前时间窗口中s个事件的平均匹配时间Tcur,并与预期的匹配时间Texp比较;
(3)如果Tcur=Texp,不修改并行度d;
(4)如果Tcur<(1-r)Texp,减少并行度d释放多余的计算资源,r表示匹配算法性能波动幅度(百分比%);
(5)如果Tcur>(1-r)Texp,并且dcur>1,通过以下公式计算下一个窗口内的并行度dnext
满足条件:dnext≤t
其中t表示当前可用的线程个数,dnext、dcur和dlast分别表示下一个窗口、当前窗口和前一个窗口内的并行度,Tcur和Tlast分别表示当前窗口和前一个窗口内s个事件的平均匹配时间,α用于确定并行度调整的方向,即增多还是减少。
在计算匹配任务分配方案时,确定并行度d,还需要实现对d个线程匹配任务的最佳分配,这意味着d个线程的匹配负担应该具有最小的标准偏差。这个任务分配问题等价于背包问题,它是NP困难问题。
在本发明所涉及的匹配算法并行化场景中,不需要付出高昂的时间代价来计算最优解。因此,本发明提出了一种贪婪算法(称为CTA)来获得任务分配解决方案,CTA算法流程为:
(1)对所有任务按工作量降序排序。
(2)依次处理降序排序列表中的每个任务,贪婪地将其分配给当前总负担最小的线程。
在并行化实现中,本发明采取模块化的处理方式,在Kafka消息队列中间件上实现TAMA、OpIndex和REIN三个匹配算法,并模块化实现了本发明提出的并行化方法,其功能分解为三个子模块:监视器、决策器和调节器,如图3所示。这些子模块协同工作,实现对REIN、TAMA和OPINDEX匹配算法的并行化。其中,监视器收集系统信息,主要基于历史数据进行分析处理得到一些统计结果,包括事件的匹配时间和每个属性索引的谓词数量。还包括前一个时间窗口和当前时间窗口内的事件平均匹配时间,以及当前工作负载情况。这些信息发送给决策器,决策器根据监视器得到的系统信息、指定的的性能要求(期望的匹配时间)和当前可用的线程数量,确定并行度;并根据当前匹配时间、预期匹配时间的性能要求和可用线程个数做出调整决策。决策器确定调整后的并行度d并将其传给调整器。给定并行度d,调整器通过执行任务分配算法CAT为d个线程计算任务分配解决方案,然后初始化d个匹配线程以并行执行分配的匹配任务。
本发明提出的匹配算法并行化方法的主要工作表现在两个方面。首先,考虑到工作负载的变化情况,第一个问题是如何确定适当的并行度,即匹配线程的数量,以满足指定的性能要求。对于给定的并行度,第二个问题是如何均匀地将事件匹配任务分配给线程?为了解决这些问题,本发明使用迭代优化方法来确定最佳并行度。为了计算线程的任务分配方案,提出了一种贪婪算法,该算法在时间开销方面是高效的。
本发明的主要优点是提高和稳定了匹配算法的性能,对现有匹配算法并行化的方法,可以动态地调整并行度以满足性能的需求,探索了一种进提升和稳定匹配性能的方法。首先,匹配算法的性能会产生波动。本发明提出的并行化方法不仅提升了匹配性能,而且缩小了性能波动范围。其次,本发明提出的并行化方法能够根据变化的工作负载自适应调整并行度,使匹配算法的性能稳定,符合指定要求。有了这个动态调整的特性,基于内容的发布/订阅系统可以部署在一些时间敏感的场景中,例如股票更新,以提供具有QoS保证的事件分发服务。
本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统、装置及其各个模块以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统、装置及其各个模块以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同程序。所以,本发明提供的系统、装置及其各个模块可以被认为是一种硬件部件,而对其内包括的用于实现各种程序的模块也可以视为硬件部件内的结构;也可以将用于实现各种功能的模块视为既可以是实现方法的软件程序又可以是硬件部件内的结构。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。

Claims (10)

1.一种基于内容的发布订阅系统匹配算法轻量级并行方法,其特征在于,包括:
分组并行步骤:令存储数据结构的索引结构进行分层,形成多个层级,每个层级与存储数据结构的存储单元集合相对应,将多个层级分组,每个层级分组同时包含层级和与层级对应的存储单元集合;
匹配分配步骤:对每个层级分组设定匹配线程,将匹配事件独立分配给单个匹配线程进行处理,多个匹配线程同时更新一个指示器,所述指示器在更新时执行同步操作。
2.根据权利要求1所述的基于内容的发布订阅系统匹配算法轻量级并行方法,其特征在于,还包括匹配调整步骤:动态识别订阅数量,根据订阅数量的变化,使用迭代自适应地调整匹配线程的并行度,使得匹配线程的匹配时间小于设定阈值。
3.根据权利要求1所述的基于内容的发布订阅系统匹配算法轻量级并行方法,其特征在于,所述匹配分配步骤包括:
监视步骤:通过监视器收集事件信息,并发送至决策器,所述事件信息包括事件的匹配时间和每个属性索引的谓词数量;
决策步骤:根据当前匹配时间、预期匹配时间的性能要求和可用线程个数做出调整决策,根据调整决策形成匹配线程的并行度;
调节步骤:接收匹配线程的并行度,根据所述并行度进行分配形成多个匹配任务,执行匹配线程的初始化,并启动并行执行匹配任务。
4.根据权利要求3所述的基于内容的发布订阅系统匹配算法轻量级并行方法,其特征在于,所述决策步骤包括:
步骤S1:设定一个包含s个事件的时间窗口,计算当前时间窗口中s个事件的平均匹配时间Tcur,并与预期的匹配时间Texp比较;
步骤S2:如果Tcur=Texp,不修改并行度d;
步骤S3:如果Tcur<(1-r)Texp,减少并行度d释放多余的计算资源,r表示匹配算法性能波动幅度(百分比%);
步骤S4:如果Tcur>(1-r)Texp,并且dcur>1,通过以下公式计算下一个窗口内的并行度dnext
满足条件:dnext≤t
其中t表示当前可用的线程个数,dnext、dcur和dlast分别表示下一个窗口、当前窗口和前一个窗口内的并行度,Tcur和Tlast分别表示当前窗口和前一个窗口内s个事件的平均匹配时间,α用于确定并行度调整的方向,即增多或者减少。
5.根据权利要求3所述的基于内容的发布订阅系统匹配算法轻量级并行方法,其特征在于,所述调节步骤包括:
任务排序步骤:令形成的多个匹配任务依照工作量进行降序排序,形成降序排序列表;
贪婪分配步骤:依次处理降序排序列表中的每个匹配任务,贪婪地将所述匹配任务分配给当前总负担最小的匹配线程。
6.一种基于内容的发布订阅系统匹配算法轻量级并行系统,其特征在于,包括:
分组并行模块:令存储数据结构的索引结构进行分层,形成多个层级,每个层级与存储数据结构的存储单元集合相对应,将多个层级分组,每个层级分组同时包含层级和与层级对应的存储单元集合;
匹配分配模块:对每个层级分组设定匹配线程,将匹配事件独立分配给单个匹配线程进行处理,多个匹配线程同时更新一个指示器,所述指示器在更新时执行同步操作。
7.根据权利要求6所述的基于内容的发布订阅系统匹配算法轻量级并行系统,其特征在于,还包括匹配调整模块:动态识别订阅数量,根据订阅数量的变化,使用迭代自适应地调整匹配线程的并行度,使得匹配线程的匹配时间小于设定阈值。
8.根据权利要求6所述的基于内容的发布订阅系统匹配算法轻量级并行系统,其特征在于,所述匹配分配模块包括:
监视模块:通过监视器收集事件信息,并发送至决策器,所述事件信息包括事件的匹配时间和每个属性索引的谓词数量;
决策模块:根据当前匹配时间、预期匹配时间的性能要求和可用线程个数做出调整决策,根据调整决策形成匹配线程的并行度;
调节模块:接收匹配线程的并行度,根据所述并行度进行分配形成多个匹配任务,执行匹配线程的初始化,并启动并行执行匹配任务。
9.根据权利要求8所述的基于内容的发布订阅系统匹配算法轻量级并行系统,其特征在于,所述决策模块包括:
模块S1:设定一个包含s个事件的时间窗口,计算当前时间窗口中s个事件的平均匹配时间Tcur,并与预期的匹配时间Texp比较;
模块S2:如果Tcur=Texp,不修改并行度d;
模块S3:如果Tcur<(1-r)Texp,减少并行度d释放多余的计算资源,r表示匹配算法性能波动幅度(百分比%);
模块S4:如果Tcur>(1-r)Texp,并且dcur>1,通过以下公式计算下一个窗口内的并行度dnext
满足条件:dnext≤t
其中t表示当前可用的线程个数,dnext、dcur和dlast分别表示下一个窗口、当前窗口和前一个窗口内的并行度,Tcur和Tlast分别表示当前窗口和前一个窗口内s个事件的平均匹配时间,α用于确定并行度调整的方向,即增多或者减少。
10.根据权利要求8所述的基于内容的发布订阅系统匹配算法轻量级并行系统,其特征在于,所述调节模块包括:
任务排序模块:令形成的多个匹配任务依照工作量进行降序排序,形成降序排序列表;
贪婪分配模块:依次处理降序排序列表中的每个匹配任务,贪婪地将所述匹配任务分配给当前总负担最小的匹配线程。
CN201910672885.2A 2019-07-24 2019-07-24 基于内容的发布订阅系统匹配算法轻量级并行方法和系统 Active CN110427217B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910672885.2A CN110427217B (zh) 2019-07-24 2019-07-24 基于内容的发布订阅系统匹配算法轻量级并行方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910672885.2A CN110427217B (zh) 2019-07-24 2019-07-24 基于内容的发布订阅系统匹配算法轻量级并行方法和系统

Publications (2)

Publication Number Publication Date
CN110427217A true CN110427217A (zh) 2019-11-08
CN110427217B CN110427217B (zh) 2021-07-30

Family

ID=68412250

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910672885.2A Active CN110427217B (zh) 2019-07-24 2019-07-24 基于内容的发布订阅系统匹配算法轻量级并行方法和系统

Country Status (1)

Country Link
CN (1) CN110427217B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112100557A (zh) * 2020-09-01 2020-12-18 上海交通大学 基于内容发布订阅的组合匹配系统与方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101295311A (zh) * 2008-06-17 2008-10-29 浙江大学 一种大规模发布订阅系统的语义匹配算法
CN101510213A (zh) * 2009-03-23 2009-08-19 杭州电子科技大学 基于本体的大规模发布订阅流水线匹配方法
US20100049693A1 (en) * 2008-08-25 2010-02-25 Alcatel-Lucent System and method of cache based xml publish/subscribe
CN101667202A (zh) * 2009-10-19 2010-03-10 浙江大学 一种多核架构下基于语义的发布订阅系统中并行匹配方法
CN102158424A (zh) * 2010-02-02 2011-08-17 微软公司 利用发布和订阅机制的消息传输系统
US8201082B1 (en) * 2002-06-17 2012-06-12 Amazon.Com, Inc. Dynamic generation of documents
CN107896230A (zh) * 2017-12-26 2018-04-10 车智互联(北京)科技有限公司 一种支持高并发命令执行通道的系统

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8201082B1 (en) * 2002-06-17 2012-06-12 Amazon.Com, Inc. Dynamic generation of documents
CN101295311A (zh) * 2008-06-17 2008-10-29 浙江大学 一种大规模发布订阅系统的语义匹配算法
US20100049693A1 (en) * 2008-08-25 2010-02-25 Alcatel-Lucent System and method of cache based xml publish/subscribe
CN101510213A (zh) * 2009-03-23 2009-08-19 杭州电子科技大学 基于本体的大规模发布订阅流水线匹配方法
CN101667202A (zh) * 2009-10-19 2010-03-10 浙江大学 一种多核架构下基于语义的发布订阅系统中并行匹配方法
CN102158424A (zh) * 2010-02-02 2011-08-17 微软公司 利用发布和订阅机制的消息传输系统
CN107896230A (zh) * 2017-12-26 2018-04-10 车智互联(北京)科技有限公司 一种支持高并发命令执行通道的系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
S.D.MADHUKUMAR等: "Event Modeling for Content Based Publish/Subscribe Systems", 《2009 INTERNATIONAL CONFERENCE ON ADVANCES IN RECENT TECHNOLOGIES IN COMMUNICATION AND COMPUTING》 *
钱剑锋: "分布式语义发布/订阅系统的若干关键技术研究", 《中国博士学位论文全文数据库,信息科技辑》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112100557A (zh) * 2020-09-01 2020-12-18 上海交通大学 基于内容发布订阅的组合匹配系统与方法

Also Published As

Publication number Publication date
CN110427217B (zh) 2021-07-30

Similar Documents

Publication Publication Date Title
Li et al. MSGD: A novel matrix factorization approach for large-scale collaborative filtering recommender systems on GPUs
Liu et al. Adaptive asynchronous federated learning in resource-constrained edge computing
CN104915407B (zh) 一种基于Hadoop多作业环境下的资源调度方法
CN113064879B (zh) 数据库参数调整方法、装置及计算机可读存储介质
Khorasani et al. Scalable simd-efficient graph processing on gpus
CN1956457B (zh) 用于安排网格计算系统中的网格作业的方法和设备
Bicer et al. Time and cost sensitive data-intensive computing on hybrid clouds
EP3770774B1 (en) Control method for household appliance, and household appliance
Tantalaki et al. Pipeline-based linear scheduling of big data streams in the cloud
CN103345514A (zh) 大数据环境下的流式数据处理方法
CN114610474B (zh) 一种异构超算环境下多策略的作业调度方法及系统
CN106371924B (zh) 一种最小化MapReduce集群能耗的任务调度方法
CN113037800B (zh) 作业调度方法以及作业调度装置
CN110362391A (zh) 资源调度方法、装置、电子设备及存储介质
CN108304253A (zh) 基于缓存感知和数据本地性的map任务调度方法
Perwej The ambient scrutinize of scheduling algorithms in big data territory
Zhang et al. Data-aware task scheduling for all-to-all comparison problems in heterogeneous distributed systems
CN116684420A (zh) 集群资源调度方法、装置、集群系统和可读存储介质
Thamsen et al. Scheduling recurring distributed dataflow jobs based on resource utilization and interference
CN110427217A (zh) 基于内容的发布订阅系统匹配算法轻量级并行方法和系统
Garg et al. Optimal virtual machine scheduling in virtualized cloud environment using VIKOR method
Wang et al. On mapreduce scheduling in hadoop yarn on heterogeneous clusters
Berten et al. Brokering strategies in computational grids using stochastic prediction models
Ghazali et al. CLQLMRS: improving cache locality in MapReduce job scheduling using Q-learning
Li et al. Performance modelling and cost effective execution for distributed graph processing on configurable VMs

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