首页> 中国专利> 用于负载平衡以处理大型数据集的系统、方法和计算机程序产品

用于负载平衡以处理大型数据集的系统、方法和计算机程序产品

摘要

提供用于负载平衡以处理大型数据集的系统、方法和计算机程序产品。所述方法包括:识别区段数目和包括多个交易的交易数据的交易数据集,所述多个交易中的每个交易的交易数据包括交易价值;基于所述多个交易中的每个交易的交易价值确定所述交易数据集的熵;基于所述交易数据集的熵将所述交易数据集分割成所述区段数目,并且平衡区段数目中的每个区段的相应熵;以及将与所述区段数目中的每个区段相关联的处理任务分配到多个处理器中的至少一个处理器,以处理每个相应区段中的每个交易。

著录项

  • 公开/公告号CN113168414A

    专利类型发明专利

  • 公开/公告日2021-07-23

    原文格式PDF

  • 申请/专利权人 维萨国际服务协会;

    申请/专利号CN201980066645.6

  • 发明设计人 保罗·马克斯·佩顿;

    申请日2019-10-09

  • 分类号G06F16/33(20060101);G06F16/35(20060101);G06F16/43(20060101);G06F16/45(20060101);

  • 代理机构11112 北京天昊联合知识产权代理有限公司;

  • 代理人张娜;李荣胜

  • 地址 美国加利福尼亚州

  • 入库时间 2023-06-19 11:55:48

说明书

本申请要求2018年10月11日提交的名称为“System,Method,and ComputerProgram Product for Load Balancing to Process Large Data Sets(用于负载平衡以处理大型数据集的系统、方法和计算机程序产品)”的第16/157,543号美国专利申请的优先权,该申请的全部公开内容通过引用并入本文中。

技术领域

本公开涉及负载平衡处理任务,并且在非限制性实施例或方面中,涉及用于负载平衡以处理大型数据集的系统、方法和计算机程序产品。

背景技术

包括交易数据集在内的大型数据集通常偏斜,使得数据分布不均匀。例如,对于多个交易的交易数据,通常存在与小部分交易相关联的大量账户标识符,例如个人账号(PAN),以及与大部分交易相关联的少数账户标识符。同样,对于每个交易的交易价值,通常存在大量账户标识符,与之相关联的交易价值相对低于与少量账户标识符相关联的交易价值。

为了处理大型交易数据集,交易可按PAN或按每个PAN的总支出进行分组。这使得每组数据的处理时间不均匀,这是因为,举例而言,与被分配相对较少交易的PAN的交易数据的处理单元相比,被分配与众多交易相关联的PAN的交易数据的处理任务的处理单元将花费更长的时间来处理其各自的任务。例如,相对很少交易的PAN的交易记录可能需要处理几秒或几分钟,而这方面的另一极端是相对更多交易的PAN的交易记录将需要处理数小时或更长时间。这导致诸如存储器和处理单元的计算资源的低效使用。

发明内容

根据非限制性实施例或方面,提供了一种用于负载平衡以处理大型数据集的计算机实施的方法,所述方法包括:用至少一个处理器识别区段数目和包括多个交易的交易数据的交易数据集,所述多个交易中的每个交易的交易数据包括交易价值;用至少一个处理器基于所述多个交易中的每个交易的交易价值确定所述交易数据集的熵;用至少一个处理器基于所述交易数据集的熵将所述交易数据集分割成所述区段数目,并平衡所述区段数目中的每个区段的相应熵;以及用至少一个处理器将与所述区段数目中的每个区段相关联的处理任务分配到多个处理器中的至少一个处理器以处理每个相应区段中的每个交易。

在非限制性实施例中,所述交易数据集包括在数据结构中排序的多个交易价值,所述数据结构存储在计算机系统的存储器中。在非限制性实施例中,所述数据结构包括阵列,并且所述多个交易价值作为浮点值存储在所述阵列中。在非限制性实施例中,所述多个处理器包括至少一个处理器的多个核心,并且每个区段分配到所述至少一个处理器的核心。在非限制性实施例中,平衡所述区段数目中的每个区段的相应熵包括基于与至少一个相邻区段的至少一个熵的比较来调整每个区段的范围,使得每个区段的相应熵在所述至少一个相邻区段的至少一个熵的预定义公差内。

根据另一非限制性实施例,提供了一种用于基于熵进行负载平衡以处理大型数据集的计算机实施的方法,所述方法包括:(a)用至少一个处理器识别区段数目和要处理的多个交易的交易数据集,所述交易数据集包括分布在每个交易的交易价值和至少一个其它参数上的数据;(b)用至少一个处理器确定所述交易数据集的熵;(c)用至少一个处理器,基于所述交易数据集的熵以及成对交易数据集中每个个别交易数据集的相应熵之间的最接近匹配,将所述交易数据集分割成相应各对交易数据集;(d)针对由分割形成的每个交易数据集重复步骤(c),直到交易数据集总数达到所述区段数目;以及(e)用至少一个处理器将与所述区段数目中的每个区段相关联的处理任务分配到多个处理器中的至少一个处理器以处理每个相应区段中的每个交易。

在非限制性实施例中,所述交易数据集包括在数据结构中排序的多个交易价值,所述数据结构存储在计算机系统的存储器中。在非限制性实施例中,所述数据结构包括阵列,并且所述多个交易价值作为浮点值存储在所述阵列中。在非限制性实施例中,所述多个处理器包括至少一个处理器的多个核心,并且每个区段分配到所述至少一个处理器的核心。在非限制性实施例中,平衡所述区段数目中的每个区段的相应熵包括基于与至少一个相邻区段的至少一个熵的比较来调整每个区段的范围,使得每个区段的相应熵在所述至少一个相邻区段的至少一个熵的预定义公差内。

根据另一非限制性实施例,提供了一种用于负载平衡以处理大型数据集的计算机程序产品,其包括至少一个非瞬态计算机可读介质,所述非瞬态计算机可读介质包括程序指令,所述程序指令在由至少一个处理器执行时使所述至少一个处理器:识别区段数目和包括多个交易的交易数据的交易数据集,所述多个交易中的每个交易的交易数据包括交易价值;基于所述多个交易中的每个交易的交易价值确定所述交易数据集的熵;基于所述交易数据集的熵将交易数据集分割成所述区段数目,并平衡区段数目中的每个区段的相应熵;以及将与所述区段数目中的每个区段相关联的处理任务分配到多个处理器中的至少一个处理器以处理每个相应区段中的每个交易。

在非限制性实施例中,所述交易数据集包括在数据结构中排序的多个交易价值,所述数据结构存储在计算机系统的存储器中。在非限制性实施例中,所述数据结构包括阵列,并且所述多个交易价值作为浮点值存储在所述阵列中。在非限制性实施例中,所述多个处理器包括至少一个处理器的多个核心,并且每个区段分配到所述至少一个处理器的核心。在非限制性实施例中,平衡所述区段数目中的每个区段的相应熵包括基于与至少一个相邻区段的至少一个熵的比较来调整每个区段的范围,使得每个区段的相应熵在所述至少一个相邻区段的至少一个熵的预定义公差内。

根据另一非限制性实施例,提供了一种用于基于熵进行负载平衡以处理大型数据集的计算机程序产品,该计算机程序产品包括至少一个非瞬态计算机可读介质,所述非瞬态计算机可读介质包括程序指令,所述程序指令在由至少一个处理器执行时使所述至少一个处理器:(a)识别区段数目和要处理的多个交易的交易数据集,所述交易数据集包括分布在每个交易的交易价值和至少一个其它参数上的数据;(b)确定所述交易数据集的熵;(c)基于所述交易数据集的熵以及成对交易数据集中的每个个别交易数据集的相应熵之间的最接近匹配,将所述交易数据集分割成相应各对交易数据集;(d)针对由分割形成的每个交易数据集重复步骤(c),直到交易数据集总数达到所述区段数目;以及(e)将与所述区段数目中的每个区段相关联的处理任务分配到多个处理器中的至少一个处理器以处理每个相应区段中的每个交易。

在非限制性实施例中,所述交易数据集包括在数据结构中排序的多个交易价值,所述数据结构存储在计算机系统的存储器中。在非限制性实施例中,所述数据结构包括阵列,并且所述多个交易价值作为浮点值存储在所述阵列中。在非限制性实施例中,所述多个处理器包括至少一个处理器的多个核心,并且每个区段分配到所述至少一个处理器的核心。在非限制性实施例中,平衡所述区段数目中的每个区段的相应熵包括基于与至少一个相邻区段的至少一个熵的比较来调整每个区段的范围,使得每个区段的相应熵在所述至少一个相邻区段的至少一个熵的预定义公差内。

根据另一非限制性实施例,提供了一种用于负载平衡以处理大型数据集的系统,包括:包括交易数据的多个数据存储阵列;和与所述多个数据存储阵列通信的至少一个处理器,所述至少一个处理器编程或配置为:从所述交易数据识别区段数目和多个交易的交易数据集,所述多个交易中的每个交易的交易数据包括交易价值;基于所述多个交易中的每个交易的交易价值确定所述交易数据集的熵;基于所述交易数据集的熵将所述交易数据集分割成所述区段数目,并平衡区段数目中的每个区段的相应熵;以及将与所述区段数目中的每个区段相关联的处理任务分配到多个处理器中的至少一个处理器以处理每个相应区段中的每个交易。

在所述系统的非限制性实施例中,所述交易数据集包括在数据结构中排序的多个交易价值,所述数据结构存储在计算机系统的存储器中。在非限制性实施例中,所述数据结构包括阵列,并且所述多个交易价值作为浮点值存储在所述阵列中。在非限制性实施例中,所述多个处理器包括至少一个处理器的多个核心,并且每个区段分配到所述至少一个处理器的核心。在非限制性实施例中,平衡所述区段数目中的每个区段的相应熵包括基于与至少一个相邻区段的至少一个熵的比较来调整每个区段的范围,使得每个区段的相应熵在所述至少一个相邻区段的至少一个熵的预定义公差内。

根据另一非限制性实施例,提供了一种用于负载平衡以处理大型数据集的系统,包括:包括交易数据的多个数据存储阵列;和与所述多个数据存储阵列通信的至少一个处理器,所述至少一个处理器编程或配置为:(a)从所述交易数据识别区段数目和多个交易的交易数据集,所述交易数据集包括分布在每个交易的交易价值和至少一个其它参数上的数据;(b)确定所述交易数据集的熵;(c)基于所述交易数据集的熵以及成对交易数据集中的每个个别交易数据集的相应熵之间的最接近匹配,将所述交易数据集分割成相应各对交易数据集;(d)针对由分割形成的每个交易数据集重复步骤(c),直到交易数据集总数达到所述区段数目;以及(e)将与所述区段数目中的每个区段相关联的处理任务分配到多个处理器中的至少一个处理器以处理每个相应区段中的每个交易。

在以下编号的条款中阐述其它实施例或方面:

条款1:一种用于负载平衡以处理大型数据集的计算机实施的方法,所述方法包括:用至少一个处理器识别区段数目和包括多个交易的交易数据的交易数据集,所述多个交易中的每个交易的交易数据包括交易价值;用至少一个处理器基于所述多个交易中的每个交易的交易价值确定所述交易数据集的熵;用至少一个处理器基于所述交易数据集的熵将所述交易数据集分割成所述区段数目,并平衡所述区段数目中的每个区段的相应熵;以及用至少一个处理器将与所述区段数目中的每个区段相关联的处理任务分配到多个处理器中的至少一个处理器以处理每个相应区段中的每个交易。

条款2:根据条款1所述的方法,其中所述交易数据集包括在数据结构中排序的多个交易价值,所述数据结构存储在计算机系统的存储器中。

条款3:根据条款1或2所述的方法,其中所述数据结构包括阵列,并且其中所述多个交易价值作为浮点值存储在所述阵列中。

条款4:根据条款1-3中任一项所述的方法,其中所述多个处理器包括至少一个处理器的多个核心,并且其中每个区段分配到所述至少一个处理器的核心。

条款5:根据条款1-4中任一项所述的方法,其中平衡所述区段数目中的每个区段的相应熵包括基于与至少一个相邻区段的至少一个熵的比较来调整每个区段的范围,使得每个区段的相应熵在所述至少一个相邻区段的至少一个熵的预定义公差内。

条款6:一种用于基于熵进行负载平衡以处理大型数据集的计算机实施的方法,所述方法包括:(a)用至少一个处理器识别区段数目和要处理的多个交易的交易数据集,所述交易数据集包括分布在每个交易的交易价值和至少一个其它参数上的数据;(b)用至少一个处理器确定所述交易数据集的熵;(c)用至少一个处理器,基于所述交易数据集的熵以及成对交易数据集中每个个别交易数据集的相应熵之间的最接近匹配,将所述交易数据集分割成相应各对交易数据集;(d)针对由分割形成的每个交易数据集重复步骤(c),直到交易数据集总数达到所述区段数目;以及(e)用至少一个处理器将与所述区段数目中的每个区段相关联的处理任务分配到多个处理器中的至少一个处理器以处理每个相应区段中的每个交易。

条款7:根据条款6所述的方法,其中所述交易数据集包括在数据结构中排序的多个交易价值,所述数据结构存储在计算机系统的存储器中。

条款8:根据条款6或7所述的方法,其中所述数据结构包括阵列,并且其中所述多个交易价值作为浮点值存储在所述阵列中。

条款9:根据条款6-8中任一项所述的方法,其中所述多个处理器包括至少一个处理器的多个核心,并且其中每个区段分配到所述至少一个处理器的核心。

条款10:根据条款6-9中任一项所述的方法,其中平衡所述区段数目中的每个区段的相应熵包括基于与至少一个相邻区段的至少一个熵的比较来调整每个区段的范围,使得每个区段的相应熵在所述至少一个相邻区段的至少一个熵的预定义公差内。

条款11:一种用于负载平衡以处理大型数据集的计算机程序产品,其包括至少一个非瞬态计算机可读介质,所述非瞬态计算机可读介质包括程序指令,所述程序指令在由至少一个处理器执行时使所述至少一个处理器:识别区段数目和包括多个交易的交易数据的交易数据集,所述多个交易中的每个交易的交易数据包括交易价值;基于所述多个交易中的每个交易的交易价值确定所述交易数据集的熵;基于所述交易数据集的熵将交易数据集分割成所述区段数目,并平衡所述区段数目中的每个区段的相应熵;以及将与所述区段数目中的每个区段相关联的处理任务分配到多个处理器中的至少一个处理器以处理每个相应区段中的每个交易。

条款12:根据条款11所述的计算机程序产品,其中所述交易数据集包括在数据结构中排序的多个交易价值,所述数据结构存储在计算机系统的存储器中。

条款13:根据条款11或12所述的计算机程序产品,其中所述数据结构包括阵列,并且其中所述多个交易价值作为浮点值存储在所述阵列中。

条款14:根据条款11-13中任一项所述的计算机程序产品,其中所述多个处理器包括至少一个处理器的多个核心,并且其中每个区段分配到所述至少一个处理器的核心。

条款15:根据条款11-14中任一项所述的计算机程序产品,其中平衡所述区段数目中的每个区段的相应熵包括基于与至少一个相邻区段的至少一个熵的比较来调整每个区段的范围,使得每个区段的相应熵在所述至少一个相邻区段的至少一个熵的预定义公差内。

条款16:一种用于基于熵进行负载平衡以处理大型数据集的计算机程序产品,该计算机程序产品包括至少一个非瞬态计算机可读介质,所述非瞬态计算机可读介质包括程序指令,所述程序指令在由至少一个处理器执行时使所述至少一个处理器:(a)识别区段数目和要处理的多个交易的交易数据集,所述交易数据集包括分布在每个交易的交易价值和至少一个其它参数上的数据;(b)确定所述交易数据集的熵;(c)基于所述交易数据集的熵以及成对交易数据集中的每个个别交易数据集的相应熵之间的最接近匹配,将所述交易数据集分割成相应各对交易数据集;(d)针对由分割形成的每个交易数据集重复步骤(c),直到交易数据集总数达到所述区段数目;以及(e)将与所述区段数目中的每个区段相关联的处理任务分配到多个处理器中的至少一个处理器以处理每个相应区段中的每个交易。

条款17:根据条款16所述的计算机程序产品,其中所述交易数据集包括在数据结构中排序的多个交易价值,所述数据结构存储在计算机系统的存储器中。

条款18:根据条款16或17所述的计算机程序产品,其中所述数据结构包括阵列,并且其中所述多个交易价值作为浮点值存储在所述阵列中。

条款19:根据条款16-18中任一项所述的计算机程序产品,其中所述多个处理器包括至少一个处理器的多个核心,并且其中每个区段分配到所述至少一个处理器的核心。

条款20:根据条款16-19中任一项所述的计算机程序产品,其中平衡所述区段数目中的每个区段的相应熵包括基于与至少一个相邻区段的至少一个熵的比较来调整每个区段的范围,使得每个区段的相应熵在所述至少一个相邻区段的至少一个熵的预定义公差内。

条款21:一种用于负载平衡以处理大型数据集的系统,包括:包括交易数据的多个数据存储阵列;和与所述多个数据存储阵列通信的至少一个处理器,所述至少一个处理器编程或配置为:从所述交易数据识别区段数目和多个交易的交易数据集,所述多个交易中的每个交易的交易数据包括交易价值;基于所述多个交易中的每个交易的交易价值确定所述交易数据集的熵;基于所述交易数据集的熵将所述交易数据集分割成所述区段数目,并平衡所述区段数目中的每个区段的相应熵;以及将与所述区段数目中的每个区段相关联的处理任务分配到多个处理器中的至少一个处理器以处理每个相应区段中的每个交易。

条款22:根据条款21所述的系统,其中所述交易数据集包括在数据结构中排序的多个交易价值,所述数据结构存储在计算机系统的存储器中。

条款23:根据条款21或22所述的系统,其中所述数据结构包括阵列,并且其中所述多个交易价值作为浮点值存储在所述阵列中。

条款24:根据条款21-23中任一项所述的系统,其中所述多个处理器包括至少一个处理器的多个核心,并且其中每个区段分配到所述至少一个处理器的核心。

条款25:根据条款21-24中任一项所述的系统,其中平衡所述区段数目中的每个区段的相应熵包括基于与至少一个相邻区段的至少一个熵的比较来调整每个区段的范围,使得每个区段的相应熵在所述至少一个相邻区段的至少一个熵的预定义公差内。

条款26:一种用于负载平衡以处理大型数据集的系统,包括:包括交易数据的多个数据存储阵列;和与所述多个数据存储阵列通信的至少一个处理器,所述至少一个处理器编程或配置为:(a)从所述交易数据识别区段数目和多个交易的交易数据集,所述交易数据集包括分布在每个交易的交易价值和至少一个其它参数上的数据;(b)确定所述交易数据集的熵;(c)基于所述交易数据集的熵以及成对交易数据集中的每个个别交易数据集的相应熵之间的最接近匹配,将所述交易数据集分割成相应各对交易数据集;(d)针对由分割形成的每个交易数据集重复步骤(c),直到交易数据集总数达到所述区段数目;以及(e)将与所述区段数目中的每个区段相关联的处理任务分配到多个处理器中的至少一个处理器以处理每个相应区段中的每个交易。

在参考附图考虑以下描述和所附权利要求书时,本公开的这些和其它特征和特性以及相关结构元件和各部分的组合的操作方法和功能以及制造经济性将变得更加显而易见,所有附图形成本说明书的部分,其中相似附图标号在各图中标示对应部分。然而,应明确地理解,各图仅用于说明和描述目的,并非旨在作为本公开的限制的定义。如在说明书中和权利要求书中所用,除非上下文另外明确规定,否则单数形式“一”和“所述”包括复数指示物。

附图说明

下文参考在附图和附录中示出的示范性实施例更详细地解释额外优势和细节,附图中:

图1A是根据非限制性实施例的用于负载平衡以处理大型数据集的系统的示意图;

图1B是根据非限制性实施例的用于负载平衡以处理大型数据集的系统的示意图;

图2是根据非限制性实施例的计算机装置的示例性部件的示意图;

图3是根据非限制性实施例的用于负载平衡以处理大型数据集的方法的流程图;以及

图4是根据非限制性实施例的示例数据分布图,其示出了待处理的偏斜交易数据。

具体实施方式

为了进行以下描述,术语“端”、“上”、“下”、“右”、“左”、“竖直”、“水平”、“顶部”、“底部”、“橫向”、“纵向”和其派生词应与实施例在附图中的定向相关。然而,应理解,实施例可采用各种替代变化和步骤顺序,除了明确指定为相反的情况之外。还应理解,附图中所说明的以及在以下说明中描述的特定装置和过程仅仅是本公开的示例性实施例或方面。因此,与本文公开的实施例或方面有关的特定尺寸和其它物理特性不应被视为限制。

如本文所使用,术语“通信(communication/communicate)”是指接收或传达一个或多个信号、消息、命令或其它类型的数据。对于要与另一单元通信的一个单元(例如,任何装置、系统或其组件)意味着所述一个单元能够直接或间接从另一单元接收数据和/或将数据传输到另一单元。这可指本质上有线和/或无线的直接或间接连接。另外,尽管所传输的数据可在第一单元与第二单元之间被修改、处理、中继和/或路由,但这两个单元也可彼此通信。例如,尽管第一单元被动地接收数据且不会主动地将数据传输到第二单元,但第一单元也可与第二单元通信。作为另一示例,如果中间单元处理来自一个单元的数据且将经处理数据传输到第二单元,则第一单元可与第二单元通信。应了解,可能有许多其它布置。

如本文所使用,术语“交易服务提供商”可指从商家或其它实体接收交易授权请求并且在一些情况下通过交易服务提供商与发行方机构之间的协定来提供支付保证的实体。术语“交易服务提供商”和“交易处理系统”还可指由交易服务提供商或代表交易服务提供商操作的一个或多个计算机系统,例如执行一个或多个软件应用程序的交易处理服务器。交易处理服务器可以包括一个或多个处理器,并且在一些非限制性实施例中,可以由交易服务提供商或代表交易服务提供商操作。

如本文所使用,术语“账户标识符”可包括一个或多个主账号(PAN)、令牌或与顾客账户相关联的其它标识符。术语“令牌”可指用作PAN等原始账户标识符的替代或替换标识符的标识符。账户标识符可以是文字数字的,或是字符和/或符号的任何组合。令牌可与PAN或一个或多个数据库中的其它原始账户标识符相关联,使得可在不直接使用原始账户标识符的情况下使用令牌进行交易。在一些实例中,例如PAN的原始账户标识符可与用于不同个人或目的的多个令牌相关联。发行方机构可以与银行标识号或在其它发行方机构当中唯一地标识其的其它唯一标识符相关联。

如本文所使用,术语“发行方机构”可以指向客户提供用于进行支付交易,例如发起信用和/或借记支付的账户的一个或多个实体,例如银行。例如,发行方机构可向客户提供唯一地标识与该客户相关联的一个或多个账户的账户标识符,例如PAN。账户标识符可在支付卡等物理金融工具上实施,和/或可以是电子的并且用于电子支付。术语“发行方机构”、“发行方银行”和“发行方系统”还可以指由发行方机构或代表发行方机构操作的一个或多个计算机系统,例如执行一个或多个软件应用程序的服务器计算机。例如,发行方系统可包括用于授权支付交易的一个或多个授权服务器。

如本文所使用,术语“商家”可以指基于例如支付交易的交易向客户提供商品和/或服务或者对商品和/或服务的访问的个人或实体。术语“商家”或“商家系统”还可以指由商家或代表商家操作的一个或多个计算机系统,例如执行一个或多个软件应用程序的服务器计算机。如本文所使用的“销售点(POS)系统”可指由商家用来与客户进行支付交易的一个或多个计算机和/或外围装置,包括一个或多个读卡器、近场通信(NFC)接收器、RFID接收器和/或其它非接触收发器或接收器、基于接触的接收器、支付终端、计算机、服务器、输入装置和/或可用于发起支付交易的其它类似装置。

如本文所使用,术语“计算装置”可以指配置成处理数据的一个或多个电子装置,例如处理器(例如,CPU、GPU、微控制器等)。在一些示例中,计算装置可以包括接收、处理和输出数据的必要部件,例如显示器、处理器、存储器、输入装置和网络接口。计算装置可以是移动装置。作为示例,移动装置可以包括蜂窝电话(例如,智能电话或标准蜂窝电话)、便携式计算机、可穿戴装置(例如,手表、眼镜、镜片、衣物等)、个人数字助理(PDA)和/或其它类似装置。计算装置可以是移动装置、台式计算机和/或任何其它类似装置。如本文所使用,术语“处理器”可以表示任何类型的处理单元,例如具有一个或多个核心的单个处理器、一个或多个处理器的一个或多个核心、各自具有一个或多个核心的多个处理器、和/或处理单元的其它布置和组合。

如本文所使用,术语“服务器”可指或包括由互联网等网络环境中的多方操作或促进所述多方的通信和处理的一个或多个计算装置,但应了解,可通过一个或多个公共或专用网络环境促进通信,并且可能有各种其它布置。此外,在网络环境中直接或间接通信的多个计算装置(例如服务器、移动装置等)可构成“系统”。如本文所使用,对“服务器”或“处理器”的提及可以指陈述为执行先前步骤或功能的先前所述服务器和/或处理器、不同的服务器和/或处理器,和/或服务器和/或处理器的组合。举例来说,如在说明书和权利要求书中所使用,陈述为执行第一步骤或功能的第一服务器和/或第一处理器可以指代陈述为执行第二步骤或功能的相同或不同服务器和/或处理器。

如本文所使用,术语“账户数据”是指关于一个或多个用户的一个或多个账户的任何数据。账户数据可以包括例如一个或多个账户标识符、用户标识符、交易历史、余额、信用额度、发行方机构标识符等。

本文所述的非限制性实施例涉及一种用于用多个处理单元进行负载平衡以处理大型数据集的系统、方法和计算机程序产品。处理大型数据集,例如由用于多个发行方、商家和消费者的交易处理系统处理的交易数据使用大量计算资源,例如处理周期和存储器。本文所述的非限制性实施例利用配置了分配算法的分配处理器来对大型数据集分段(例如,分箱(bin)),以便在多个交易处理器(例如,一个或多个处理器和/或核心)上负载平衡相关联的处理任务,以提高计算系统的速度并优化计算资源的使用。通过利用配置了分配算法的分配处理器基于数据集的分布熵和个别区段来对交易数据分段,获得对计算资源的高效使用,允许均匀地(例如,使得处理器同时或时间接近地完成其相应任务)和更高效地(例如,使得可以在更短的时间段内处理更多交易)处理交易。此外,在非限制性实施例中,基于浮点值,例如交易价值,而不是PAN或其它离散值参数来对交易数据集排序。通过基于浮点值而不是离散值进行排序和分段,可以允许一致且高效的并行处理的均匀方式对数据集分段。

现在参考图1A,示出了根据非限制性实施例的负载平衡以处理大型数据集的系统1000。系统1000包括分配处理器102、包括一个或多个数据存储装置110、111、112的存储阵列108,以及包括一个或多个交易处理器103、104、105的处理堆栈101。分配处理器102和交易处理器103、104、105可以是一个或多个处理器,例如交易处理器103、104、105表示处理器的核心的一个处理器。在其它非限制性实施例中,分配处理器102和交易处理器103、104、105可以表示物理上独立的处理器。应当理解,各种布置是可能的,并且本文中对“处理器”的提及可以表示任何类型的处理单元,例如具有一个或多个核心的单个处理器、一个或多个处理器的一个或多个核心、各自具有一个或多个核心的多个处理器、和/或处理单元的其它布置和组合。例如,在非限制性实施例中,数据的每个区段被指派给多个处理器中的一个或多个指定核心103、104、105以完成相关联的处理任务。

继续参考图1A,分配处理器102可通过并行数据处理系统,例如但不限于Hadoop框架的实施,与存储阵列108通信。应当理解,可以使用各种数据处理系统。在一些非限制性实施例中,可以在分配处理器102和存储阵列108之间布置单独的处理器以检索存储在存储阵列108中的交易数据。交易处理系统(图1A中未示出)可以与存储阵列108通信,使得传送到交易处理系统的交易数据存储在存储阵列108中。在一些非限制性实例中,交易处理系统可包括分配处理器102和交易处理器103、104、105,但应了解,分配处理器102和交易处理器103、104、105中的一个或多个可在交易处理系统外部操作。

继续参考图1A,分配处理器102从存储阵列108识别待处理的交易数据集。交易数据集可包括多个交易记录,其中每个交易记录包含交易数据参数,例如但不限于账户标识符(例如,PAN或令牌)、商家标识符、交易价值、交易标识符、交易时间、忠诚度数据和/或与交易相关的其它参数。分配处理器102还可以识别将交易数据集分割成的区段(例如,分箱)数目。所述区段数目可以是预定的,或者在其它实例中,可基于交易数据集的大小、可用处理器103、104、105的数目、分配给特定堆栈(例如,Hadoop堆栈)的处理器的数目、给定系统中的处理器的总数目,或以任何其它方式来确定。

仍参考图1A,分配处理器102根据一个或多个算法并基于交易数据的一个或多个关键字段对交易数据集中的交易记录进行排序。例如,分配处理器102可以基于每个交易记录的交易价值对交易记录进行排序,使得关键字段是与每个交易相关联的交易价值。出于排序的目的,交易记录可以是简化的交易记录,例如包括交易标识符和交易价值的数据结构。排序值可以作为阵列中的浮点值存储在存储器中。应当理解,各种参数可以用作关键字段,并且可以利用各种数据结构和排序算法。

继续参考图1A,分配处理器102将每个区段分配给交易处理器103、104、105以进行处理。在一些实例中,分配处理器102可以在交易处理器103、104、105之间分配区段,使得每个区段的处理同时或接近同时完成。例如,区段的分配可以用并行数据处理系统,例如Hadoop执行或结合并行数据处理系统执行。在利用Hadoop的非限制性实例中,可以使用平台的Map/Reduce框架。“Map”框架可以用来使用第一关键字段(例如,交易价值)将数据集分割成(例如,分箱或分区)区段以供处理,从而产生数据输出。“Reduce”框架可用于基于第二关键字段采集数据输出,所述第二关键字段可与第一关键字段相同或不同,利用第二关键字段处理输出,并生成最终输出。在一些实例中,可以将两个处理器(例如,两个核心)分配到一个区段,使得一个处理器用于“Map”框架,而另一个处理器用于“Reduce”框架。应当理解,不同数据处理系统和框架可以有各种其它布置。

在非限制性实施例中,可以基于可用处理器的数目来确定区段数目。例如,Hadoop环境具有固定数量的处理器(例如,个别处理器或处理器的核心)。区段数目可以是处理器的固定数目或处理器的固定数目的倍数。在400个处理器可用(例如,多个处理器的400个核心)的示例性实施例中,可能期望有200个区段,使得200个处理器分配为映射器(mapper)(例如,以处理上述框架的“Map”方面),200个处理器分配为减少器(reducer)(例如,以处理上述框架的“Reduce”方面),以便在单个周期中完成所有处理。在400个处理器可用的示例性实施例中,可能期望有1000个区段,使得每个处理器运行五个数据周期。应了解,可能有各种其它布置。

现在参考图1B,示出了根据非限制性实施例的负载平衡以处理大型数据集的系统1001。在此实例中,分配处理器102是交易处理系统100的一部分。交易处理系统100通过收单方系统116或支付网关与商家系统114通信。交易处理系统100还与一个或多个发单方系统118通信。以此方式,交易处理系统采集交易数据,例如来自交易请求、授权请求、授权响应和/或在系统1001内传送的其它类似数据包或消息的交易数据。交易数据可以由交易处理系统100存储在存储阵列108中。以该方式,并且如关于图1A中所示的系统1000所描述,分配处理器102可以访问存储阵列108中的交易数据,对交易数据分段,并向每个区段分配交易处理器。

在非限制性实施例中,可以更新或修改每个交易记录以包括区段号(例如,分箱号)作为参数。可以定期执行该流程,以用分配给记录的区段号更新每条记录。此过程的输出产生区段列表,其中,每个区段与区段号、交易价值下限和交易价值上限相关联。区段的列表可以存储在任何类型的数据结构中,例如但不限于表、阵列等。一旦识别了区段的列表,就可以根据分段处理完整的交易数据集。例如,区段列表可用作每个交易记录的查找表,以确定每个交易分配到哪个区段(以及哪个处理器)。在非限制性实施例中,每个区段指派给处理器的核心,使得交易记录接着可以传送到对应的处理单元。

现在参考图3,示出了根据非限制性实施例的用于负载平衡以处理大型数据集的方法。图3中所示的方法包括用于将数据集分割成多个区段的分配算法,以用于控制将处理任务分配到多个处理器。在第一步骤300处,识别数据集。可以通过用户输入、基于数据的存储位置自动地、通过搜索数据自动地识别数据集和/或其它方式识别数据集。应了解,系统的部件,例如分配处理器,可以任何其它方式识别数据集。在一些非限制性实例中,数据集可以是某时间段的交易数据集,其表示在该时间段内请求的多个交易。在其它非限制性实例中,数据集可以是预定大小的交易数据集,使得每个数据集基于大小分批处理。应当理解,数据集可以包括任何类型的数据,并且可以具有任何大小。

继续参考图3,在步骤302处,基于数据集的一个或多个参数对数据集进行排序。例如,在非限制性实施例中,数据集可以包括具有一个或多个参数的多个记录,所述参数例如记录标识符参数(例如,交易标识符)。数据集可以存储在存储器中以待排序。例如,在非限制性实施例中,数据集可以存储在阵列中,其中一个或多个参数值存储为浮点值。可能有各种其它布置。一个或多个排序算法,例如但不限于快速排序、气泡排序、合并排序、插入排序等,可用于基于一个或多个参数的值对数据集进行排序。在非限制性实施例中,数据集代表交易数据,并且每个记录至少包括交易标识符和交易价值。数据集可以基于每个交易的交易价值进行排序。

在图3中所示的方法的步骤304处,确定数据集的熵。在非限制性实施例中,数据集或区段的熵通过以下等式确定:

在以上等式中,b是所使用的对数的底数,并且b的通常值可包括二(2)、Euler数(e)和十(10),其各自产生熵的不同单位。例如,使用底数二(2),熵的单位是bit(位),使用底数e,熵的单位是nat/nit/nepit(纳特),使用底数十(10),熵的单位是ban/hartley/dit。应当理解,可以使用熵的各种单位和度量。此外,上述等式中的P表示特定值或数据集将在特定区段中出现的概率。

在图3中所示的方法的步骤306处,基于数据集的熵将数据集分成两个区段。例如,数据集可以分成两个区段,使得每个区段具有完整数据集的熵的一半。因此,每个区段可具有相等或接近相等的熵值。应了解,由于被分割的数据集的熵可能不可被二除尽,因此相应的熵可能不相等。

仍参考图3,在步骤308处,确定每个单独区段的熵。该值可能已在步骤306处识别,并且在此类实例中,步骤306、308可以是单个步骤。在其它实例中,可针对每个区段单独地确定每个区段的熵。在步骤310处,基于区段的熵将每个区段分成两个区段。每个区段可以是由步骤306或者步骤308到312的后续重复产生的两个区段中的一个区段。例如,每个区段可以分成两个区段,使得两个新区段中的每个区段具有原始区段的熵的一半。因此,每个所得区段可具有相等或接近相等的熵值。

在步骤312处,确定是否已达到区段数目。例如,期望的区段数目可以是预定的、由用户输入的、基于数据集动态地确定的等等。在其它实例中,区段数目可基于数据集的初始大小。可能有各种其它布置。在满足区段数目之前,所述方法可以通过返回步骤308在步骤312处循环。以此方式,一些非限制性实施例递归地操作以继续分割数据集和每个区段。一旦在步骤312处满足区段数目,所述方法前进到步骤314。

继续参考图3,在步骤314处,将每个交易记录指派给多个处理器中的处理器(例如,个别处理器或一个或多个处理器的核心)。例如,多个区段中的每个区段可以指派给多个可用交易处理器中的可用交易处理器。可以例如从处理器的总数(例如,个别处理器或处理器的核心)、处理器的预定数目、可用处理器的数目、当前待决或排队处理作业等确定可用的交易处理器。如上文所解释的,在非限制性实施例中,最初可通过按交易价值对交易记录进行第一排序来确定区段。可以静态方式(例如,特定处理器核心分配给特定区段号)或动态方式(例如,基于当前可用性或其它因素将处理器分配给区段号)将处理器分配给每个区段。因此,在某些非限制性实例中,步骤314可包括分析每个单独的交易数据记录,基于该记录的交易价值和每个区段的交易价值范围确定数据记录应分配给哪个区段,更新数据记录以识别区段数,并将数据记录分配给相应的处理器。

尽管图3中所示的方法说明为在步骤308到312处包括循环以递归地处理和划分每个区段,直到达到区段数目为止,但应了解,分配算法还可以使用一个或多个非递归方法来将数据集分割成多区段。例如,在步骤302处对交易记录进行排序以及在步骤304处确定数据集的熵之后,分配算法可以基于确定在经排序的交易记录范围内的范围或值确定将数据集划分为多区段。划分可以由二(2)的幂决定,例如在递归实例中,或者基于所需的区段数由任何其它幂决定。每个区段的熵可在分段过程期间存储在存储器中,以确保每个区段的相应熵平衡。例如,数据集的熵可以除以区段总数以确定每个区段的平均熵。然后,交易记录的排序数据结构可以划分成单独的数据结构,例如单独阵列或阵列内的子阵列,其中每个新区段的熵等于或接近等于(例如,在公差范围内)每个区段的平均熵。在非限制性实施例中,可基于与相邻区段的至少一个其它熵的比较来调整每个区段的范围(例如,来自经排序的交易价值阵列的交易价值范围),使得相应相邻区段的熵相等或彼此在预定公差内。

图4示出具有偏斜值的交易数据集的示例数据分布图400。具体地,图表400示出了由伽玛函数产生的值的严重偏斜分布,这是交易处理中见到的直方图的典型类型。水平轴或x轴指示值的指标(例如,以字母数字顺序排序的账户标识符,例如,PAN或通过增加美元金额排序的交易的美元金额)。竖直轴或y轴指示该特定值的基数(即,在数据集中观察到该值的次数)。此分布的向左偏斜表明,大多数值以较小的指标值存在,是支付交易的美元值的典型特征。仅基于指标值的相等范围(例如,0-200、200-400等)来拆分此分布将导致值偏斜地分配到处理器。这种偏斜分配将导致一些处理器的超负荷工作和其它处理器的负荷不足。因此,将数据集分配到计算资源在这种布置中将是次优的,从而产生不必要的占用比所需的时间更多时间的作业。本文所述的非限制性实施例采用熵度量的使用来细分将价值分配到区段中,以便将基础数据分区成大块。通过这种布置,可用处理资源被赋予相当的处理负荷,这使得公平分配处理负荷,并确保在有多个核心可供使用的环境中最小化特定数据集所需的总处理时间。

现在参考图2,示出根据非限制性实施例的装置200的示例组件的图。装置200可以对应于图1A、1B中所示的系统1000、1001的一个或多个装置,例如交易处理系统100和分配处理器102。在一些非限制性实施例中,交易处理系统100和/或分配处理器102可包括至少一个装置200和/或装置200的至少一个部件。图2中所示的组件的数量和布置作为示例提供。在一些非限制性实施例中,装置200可以包括与图2中所示的那些相比额外的组件、更少的组件、不同的组件,或不同地布置的组件。另外或替代地,装置200的一组组件(例如,一个或多个组件)可以执行被描述为由装置200的另一组组件执行的一个或多个功能。

如图2所示,装置200可包括总线202、处理器204、存储器206、存储组件208、输入组件210、输出组件212和通信接口214。总线202可以包括准许装置200的组件之间的通信的组件。在一些非限制性实施例中,处理器204可以硬件、固件,或硬件和软件的组合实施。例如,处理器204可包括处理器(例如中央处理单元(CPU)、图形处理单元(GPU)、加速处理单元(APU)等)、微处理器、数字信号处理器(DSP)和/或可被编程以执行功能的任何处理组件(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)。存储器206可包括随机存取存储器(RAM)、只读存储器(ROM),和/或存储供处理器204使用的信息和/或指令的另一类型的动态或静态存储装置(例如,快闪存储器、磁存储器、光学存储器等)。

继续参考图2,存储组件208可存储与装置200的操作和使用相关的信息和/或软件。例如,存储组件208可包括硬盘(例如磁盘、光盘、磁光盘、固态磁盘等)和/或另一类型的计算机可读介质。输入组件210可以包括准许装置200例如经由用户输入(例如,触摸屏显示器、键盘、小键盘、鼠标、按钮、开关、麦克风等)接收信息的组件。另外或替代地,输入组件210可以包括用于感测信息的传感器(例如,全球定位系统(GPS)组件、加速度计、陀螺仪、致动器等)。输出组件212可以包括提供来自装置200的输出信息的组件(例如,显示器、扬声器、一个或多个发光二极管(LED)等)。通信接口214可以包括收发器式组件(例如,收发器、独立的接收器和传输器等),所述收发器式组件使装置200能够例如经由有线连接、无线连接,或有线连接和无线连接的组合与其它装置通信。通信接口214可以准许装置200接收来自另一装置的信息和/或向另一装置提供信息。例如,通信接口214可以包括以太网接口、光学接口、同轴接口、红外接口、射频(RF)接口、通用串行总线(USB)接口、

装置200可以执行本文所描述的一个或多个过程。装置200可基于处理器204执行由例如存储器206和/或存储组件208的计算机可读介质存储的软件指令来执行这些过程。计算机可读介质可包括任何非瞬态存储器装置。存储器装置包括位于单个物理存储装置内的存储器空间或跨多个物理存储装置扩展的存储器空间。软件指令可以经由通信接口214从另一计算机可读介质或从另一装置读取到存储器206和/或存储组件208中。当执行时,存储在存储器206和/或存储组件208中的软件指令可以使处理器204执行本文中所描述的一个或多个过程。另外或替代地,硬接线电路系统可以替代或结合软件指令使用以执行本文中所描述的一个或多个过程。因此,本文所描述的实施例不限于硬件电路系统和软件的任何特定组合。如本文所使用,术语“被编程或配置”是指一个或多个装置上的软件、硬件电路系统或其任何组合的布置。

尽管已出于说明的目的而基于当前被认为是最实用和优选的实施例详细描述了本发明,但应理解,此类细节仅用于所述目的,且本发明不限于所公开实施例,而相反,旨在涵盖在所附权利要求书的精神和范围内的修改和等效布置。例如,应理解,本发明预期,在可能的范围内,任何实施例的一个或多个特征可以与任何其它实施例的一个或多个特征组合。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号