本地化数据亲和性系统和混合方法技术方案

技术编号:8567298 阅读:164 留言:0更新日期:2013-04-12 00:17
本发明专利技术公开了一种用于处理记录的方法、系统和计算机程序。记录关联于记录组。记录组关联于包括一个或多个处理器的处理器组。基于关联于该记录的记录组,该记录被路由至关联的处理器组用于处理。在该处理器组中的处理器上处理该记录。此外,可以建立多种本地化的亲和性。进程亲和性可以将服务器进程与处理器组链接。缓存亲和性可以将数据库缓存与处理器组链接。数据亲和性可以将输入数据链接至处理器组。

【技术实现步骤摘要】
【国外来华专利技术】
本公开总体上涉及多处理器计算机系统,并且更具体地涉及用于在多处理器计算机系统中对数据进行路由和处理的方法和系统。
技术介绍
多处理器计算机系统允许对多个并行处理进行同时处理。在多处理器计算机系统中,一些应用可以有效地在处理器中并行化。例如,可以通过将不同的任务划分为称为线程的子进程来并行化一些应用。线程可以同时对不同的数据进行操作。然而,有时一个线程需要基于另一线程的中间产物(intermediary)或最终输出来运行。当两个线程需要经常等候其中的另一个来共享信息时,可以说它们具有高数据相关性。相反地,当线程很少需要等候来自其他线程的信息时,可以说它们具有低数据相关性。通常希望在线程间具有低数据相关性的应用,这是因为它们可以并行地处理更多的数据达更长的时段。然而,大量的应用在线程间具有高数据相关性。例如,这可能在每个数据都必须与数据集中的各其他数据进行比较的情况下发生。因此,当数据相关性较高时,在存储器中可能需要相当大部分的数据集是可访问的。因此,对于具有高数据相关性的处理操作,在线程间传输数据的进程可能在很大程度上使计算延时。当每个线程都运行在物理分离的硬盘节点上时(这在多处理器计算机系统中是常见的),该延时通常会加剧。在这种系统中,节点间输入/输出(IO)操作经常会对系统的数据处理速率(也称为吞吐量)构成明显的瓶颈。存储器跳(memory hop)的范围从在使用在本地CPU/存储器组中的非均匀存储器架构(NUMA)时的仅I至2纳秒,到在通过多种网络光纤来访问存储区域网络时的多个毫秒。因为在存储器等待数据的传送时其通常是空闲的,所以吞吐量瓶颈可以表示对时间、能量和金钱的严重浪费。图1示出了包括通过网络130彼此连接并且连接至共享存储器140的多个节点120的多处理器系统110。节点120可以是表征为分离的存储器系统的逻辑上分立的处理元件。在一些实现方式中,节点120可以是物理分立系统,诸如具有本地存储器存储和处理能力的服务器。在示出的系统110中,有N个节点120。虽然只示出了三个节点,但是可以存在任意数量的节点120。每个节点120都包括至少一个处理器150和缓存160。虽然只示出了一个处理器150,但是每个节点120都可以包括任意数量的处理器150。类似地,处理器150可以包括任意数量的存储器核心(memory storage,存储磁芯)。处理器核心表示存储器150中可以独立地读取和执行指令的那部分。因此,在一个示例中,两个处理器核心可以同时运行两个处理线程。在一些实现方式中,节点120可以包括总共四个处理器核心。在一些实现方式中,节点120可以包括总共八个以上的处理器核心。诸如多处理器系统110的多处理器系统通常用于处理巨量数据的操作。例如,在2007年,峰值物理邮件量每年接近多于2120亿封的美国邮政服务(US Postal Service),是世界上最大的大量数据处理的用户之一。每封物理邮件都在自动化设备上处理多次,并且每次自动化事件都产生数据扫描记录。即使当物理邮件数量减少时,额外的跟踪和性能度量增加了每封物理邮件的邮件跟踪扫描的数量。因此,每天的邮件扫描量最多可以多于40亿个记录。这些记录中的每一个都由诸如系统110的多处理器系统处理。当处理邮件记录时,系统通过比较直到多个月之久的几十亿个早先记录来检测重复的记录。该系统也负责寻找最早的邮件记录并且在达到存储容量时将其删除,查询邮件记录用于生成报告以及其他类似的任务。这个示例说明了在诸如多处理器系统110的系统中有效处理数据记录的问题的重要性。多处理器系统中的处理可以包括行插入操作。常规地,行插入可以执行如下基于例如负载平衡的标准将输入记录平行于节点120或特定处理器150进行路由。例如,按照一个负载平衡方法,基于循环将输入记录路由至从一组可用的处理器中选出的处理器150,而不考虑诸如相关记录的位置的因素。此外,数据库插入处理会在处理器150上进行调度。在接收到输入记录时,处理器150就会随后在数据库中搜索该记录。该搜索可能需要访问未存储在本地缓存160中的数据。这种搜索可包括存储区域网络(SAN)。因此,处理器150可以在远程节点上定位所需的数据并且通过网络130将数据传输至本地节点用于比较。在一些实现方式中,处理器150可以将输入记录与数据库中的每个记录进行比较。因此,处理器150会通过网络130将大量的数据传送至本地节点。如果没有发现匹配,处理器150会将该记录插入数据库。然而,与此同时,另一节点120的另一处理器150会对不同的记录同时执行相同的任务。因此可能的是,对两个匹配记录进行操作的两个处理器150可能同时试图对同一存储器位置的插入。这可以称为竞态条件,并且可以如下发生首先,第一处理器确定第一记录没有匹配。随后,第二处理器确定第二记录没有匹配。应注意,虽然第一记录和第二记录可能匹配或可能不匹配,但是两者都没有成功地插入数据库。随后,第一处理器将第一记录插入数据库。最后,已经确定不存在匹配记录的第二处理器将第二记录插入数据库。为了保证竞态条件不会导致将同样的记录插入数据库,每个处理器150都可以经由诸如锁定的机制来获得对插入存储器位置的排他访问。在本领域中,已知多个不同的锁定机制。建立和释放存储器锁定其本身可能需要通过网络130的数据传输。因此,随着存储块被锁定、解锁以及通过相对缓慢的网络130来回传递,可能浪费相当大量的处理时间。多处理器系统110可以结合多个技术来改善效率和成本有效性。例如,共享存储器140可以被分层地组织。分层的存储器组织可以允许系统110利用具有不同的性能和成本特性的存储介质的混合。因此,系统110可以同时少量的快速且昂贵的存储器用于高优先级任务,而将大量的较慢且便宜的存储器用于其他任务。因此,可以利用可能分布在多个位置的数个不同的存储介质来物理地实现共享存储器140。例如,处理器150可以将不经常使用的数据存储在存储区域网络(SAN,未示出)中的相对便宜且缓慢的磁盘驱动上。同时,共享存储器140也可以部分分布在节点120之间。缓存160可以将数据的本地拷贝(缓存)包括在共享存储器140中。处理器150可以将数据本地地缓存在相对快速且昂贵的动态随机存取存储器(DRAM,未示出)中。DRAM可以由处理模块上的其他处理器共享。通常,当处理器150需要更多的数据时,它将首先在本地缓存160中查看,这通常具有相对较低的等待时间。例如,DRAM的等待时间通常以纳米来测量。如果查找的数据不是位于本地缓存中,则存储器管理器可能需要通过网络130从SAN检索数据。由于SAN可能位于较远的位置,所以存储器管理器可能需要通过诸如以太网的相对较慢的互连来请求数据。SAN请求具有长得多的等待时间,通常以毫秒来测量。当在本地缓存中没有找到数据(“缓存不中(cachemiss,缓存缺失)”)时,互连的相对速度(其与较慢的存储介质的额外等待时间相结合),经常导致显著的性能降级。因此,大多数系统试图在本地缓存中保存经常访问的信息。当进程在诸如系统110的多处理器计算机系统上运行时,其通常被调度为在下一个可用的节点120上运行。然而,下一个可用的节点120可能不是该进程上一次在其上运行的同一节点。按照如上所述的层级本文档来自技高网...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】2010.05.17 US 61/395,704;2011.04.08 US 13/083,3961.一种在分组为多个处理器组的多个处理器上处理数据库中的记录的方法,所述方法包括 在所述多个处理器中的至少一个上将各记录与多个记录组中的记录组关联; 在所述多个处理器中的至少一个上将各记录组与处理器组关联; 基于关联的所述记录组将所述记录路由至处理器组;以及 利用所述处理器组处理所述记录。2.根据权利要求1所述的方法,还包括 针对所述多个处理器组中的每个处理器组创建日志缓存,或针对所述多个处理器创建单一日志缓存; 在每个日志缓存和关联的处理器组之间创建亲和性;以及 分配每个处理器组中的单一处理器以对数据库事务进行日志记录, 其中,每个处理器组包括多个处理器。3.根据权利要求1所述的方法,还包括 创建多个服务器进程,其中,每个服务器进程与所述多个处理器组中的处理器组关联; 在每个服务器进程和关联的所述处理器组之间创建亲和性;以及 将每个服务器进程与记录组关联; 其中,每个服务器进程处理关联的所述记录组中的记录。4.根据权利要求1所述的方法,还包括 将所述数据库分为多个子数据库; 将每个子数据库与处理器组关联;以及 针对与处理器组关联的每个子数据库创建数据库缓存;以及 在每个数据库缓存和关联的所述处理器组之间创建亲和性。5.根据权利要求1所述的方法,其中,路由记录包括基于静态路由表将记录路由至处理组。6.根据权利要求1所述的方法,其中,关联纪录包括将记录与记录组关联使得在处理记录时在记录组之间没有数据相关性。7.一种包括分组为多个处理器组的多个处理器的设备,所述多个处理器组被配置为处理数据库中的记录,其中,所述设备被配置为 将每个记录与多个记录组中的记录组关联; 将每个记录组与处理器组关联; 基于关联的所述记录组将所述记录路由至处理器组;以及 处理所述记录。8.根据权利要求7所述的设备,其中,所述设备还被配置为 针对所述多个处理器组中的每个处理器组创建日志缓存,或针对所述多个处理器创建单一日志缓存; 在每个日志缓存和关联的处理器组之间创建亲和性;以及 分配每个处理器组中的单一处理器以对数据库事务进行日志记录, 其中,每个处理器组包括多个处理器。9.根据权利要求7所述的设备,其中,所述设备还被配置为 创建多个服务器进程,其中,每个服务器进程与所述多个处理器组中的处理器组关联; 在每个服务器进程和关联的所述处理器组之间创建亲和性;以及 将每个服务器进程与记录组关联; 其中,每个服务器进程处理关联的所述记录组中的记录。10.根据权利要求7所述的设备,其中,所述设备还被配置为 将所述数据库分为多个子数据库; 将每个子数据库与处理器组关联;以及 针对与处理器组关联的每个子数据库创建数据库缓存;以及 在每个数据库缓存和关联的所述处理器组之间创建亲和性。11.根据权利要求7所述的设备,其中,所述设备还被配置为基于静态路由表将记录路由至处理组。12.根据权利要求7所述的设备,其中,所述设备还被配置为将记录与记录组关联使得在处理记录时在记录组之间没有数据相关性。13.—种包括代码的计算机可读非暂态存储介质,所述代码能够使计算机进行以下操作 将数据库中的每个记录与多个记录组中的记录组关联; 将每个记录组与处理器组关联; 基于关联的所述记录组将所述记录路由至处理器组;以及处理所述记录。14.根据权利要求14所述的计算机可读非暂态存储介质,还包括能够使计算机进行以下操作的代码 针对所述多个处理器组中的每个处理器组创建日志缓存,或针对所述多个处理器创建单一日志缓存; 在每个日志缓存和关联的处理器组之间创建亲和性;以及 分配每个处理器组中的单一处理器以对数据库事务进行日志记录, 其中,每个处理器组包括多个处理器。15.根据权利要求14所述的计算机可读非暂态存储介质,还包括能够使计算机进行以下操作的代码 创建多个服务器进程,其中,每个服务器进程与...

【专利技术属性】
技术研发人员:斯科特·C·阿特金斯约瑟夫·康韦
申请(专利权)人:美国邮政服务公司
类型:
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1