CN103038718A - 本地化数据亲和性系统和混合方法 - Google Patents

本地化数据亲和性系统和混合方法 Download PDF

Info

Publication number
CN103038718A
CN103038718A CN2011800352607A CN201180035260A CN103038718A CN 103038718 A CN103038718 A CN 103038718A CN 2011800352607 A CN2011800352607 A CN 2011800352607A CN 201180035260 A CN201180035260 A CN 201180035260A CN 103038718 A CN103038718 A CN 103038718A
Authority
CN
China
Prior art keywords
record
group
processor
database
processor group
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
CN2011800352607A
Other languages
English (en)
Other versions
CN103038718B (zh
Inventor
斯科特·C·阿特金斯
约瑟夫·康韦
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.)
US Postal Service (USPS)
Original Assignee
US Postal Service (USPS)
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 US Postal Service (USPS) filed Critical US Postal Service (USPS)
Publication of CN103038718A publication Critical patent/CN103038718A/zh
Application granted granted Critical
Publication of CN103038718B publication Critical patent/CN103038718B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/285Clustering or classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24532Query optimisation of parallel queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24542Plan optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management
    • 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/5033Allocation 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 data affinity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5012Processor sets

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Operations Research (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Multi Processors (AREA)

Abstract

本发明公开了一种用于处理记录的方法、系统和计算机程序。记录关联于记录组。记录组关联于包括一个或多个处理器的处理器组。基于关联于该记录的记录组,该记录被路由至关联的处理器组用于处理。在该处理器组中的处理器上处理该记录。此外,可以建立多种本地化的亲和性。进程亲和性可以将服务器进程与处理器组链接。缓存亲和性可以将数据库缓存与处理器组链接。数据亲和性可以将输入数据链接至处理器组。

Description

本地化数据亲和性系统和混合方法
相关申请的交叉参考
本申请要求于2010年5月17日提交的美国临时专利申请第61/395,704号以及于2011年4月8日提交的美国专利申请第13/083,396号的权益,这两者通过引用全部结合于此作为参考。
技术领域
本公开总体上涉及多处理器计算机系统,并且更具体地涉及用于在多处理器计算机系统中对数据进行路由和处理的方法和系统。
背景技术
多处理器计算机系统允许对多个并行处理进行同时处理。在多处理器计算机系统中,一些应用可以有效地在处理器中并行化。例如,可以通过将不同的任务划分为称为线程的子进程来并行化一些应用。线程可以同时对不同的数据进行操作。然而,有时一个线程需要基于另一线程的中间产物(intermediary)或最终输出来运行。当两个线程需要经常等候其中的另一个来共享信息时,可以说它们具有高数据相关性。相反地,当线程很少需要等候来自其他线程的信息时,可以说它们具有低数据相关性。通常希望在线程间具有低数据相关性的应用,这是因为它们可以并行地处理更多的数据达更长的时段。然而,大量的应用在线程间具有高数据相关性。例如,这可能在每个数据都必须与数据集中的各其他数据进行比较的情况下发生。因此,当数据相关性较高时,在存储器中可能需要相当大部分的数据集是可访问的。因此,对于具有高数据相关性的处理操作,在线程间传输数据的进程可能在很大程度上使计算延时。当每个线程都运行在物理分离的硬盘节点上时(这在多处理器计算机系统中是常见的),该延时通常会加剧。在这种系统中,节点间输入/输出(IO)操作经常会对系统的数据处理速率(也称为吞吐量)构成明显的瓶颈。存储器跳(memory hop)的范围从在使用在本地CPU/存储器组中的非均匀存储器架构(NUMA)时的仅1至2纳秒,到在通过多种网络光纤来访问存储区域网络时的多个毫秒。因为在存储器等待数据的传送时其通常是空闲的,所以吞吐量瓶颈可以表示对时间、能量和金钱的严重浪费。
图1示出了包括通过网络130彼此连接并且连接至共享存储器140的多个节点120的多处理器系统110。节点120可以是表征为分离的存储器系统的逻辑上分立的处理元件。在一些实现方式中,节点120可以是物理分立系统,诸如具有本地存储器存储和处理能力的服务器。在示出的系统110中,有N个节点120。虽然只示出了三个节点,但是可以存在任意数量的节点120。每个节点120都包括至少一个处理器150和缓存160。虽然只示出了一个处理器150,但是每个节点120都可以包括任意数量的处理器150。类似地,处理器150可以包括任意数量的存储器核心(memorystorage,存储磁芯)。处理器核心表示存储器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请求具有长得多的等待时间,通常以毫秒来测量。当在本地缓存中没有找到数据(“缓存不中(cache miss,缓存缺失)”)时,互连的相对速度(其与较慢的存储介质的额外等待时间相结合),经常导致显著的性能降级。因此,大多数系统试图在本地缓存中保存经常访问的信息。
当进程在诸如系统110的多处理器计算机系统上运行时,其通常被调度为在下一个可用的节点120上运行。然而,下一个可用的节点120可能不是该进程上一次在其上运行的同一节点。按照如上所述的层级存储器模型,进程最近访问的数据很可能驻存在该进程上一次在其上运行的节点上的缓存中。这种倾向可以称作缓存连贯性。为了利用在多处理器环境中的缓存连贯性,进程可以被分配对于一个或多个处理器的亲和性。给予了这种亲和性的进程优先地被调度为在特定的处理器上运行。因此,亲和化的进行更可能在已经在其本地缓存中具有重要的处理信息的处理器上运行。然而,亲和性并没有消除缓存不中的问题,尤其是当应用在线程之间具有高数据相关性时。在共享存储器140部分地分布在节点120之中的系统中,缓存不中可能持续存在。该系统的一个示例称为缓存连贯系统,该缓存连贯系统在节点120之中分布的共享内存140之间保持连贯性。在缓存连贯系统中,例如,亲和化的进程可以被编程为将输入数据与早先在另一节点120上处理的数据进行比较。亲和化的进程也可以被编程为修改数据。为了保持存储器的连贯性,数据通常在节点120之间传送。因此,即使大量的待处理数据可能包含在本地缓存160中,但是由于高数据相关性,在节点120之间的数据传送仍然可以表现出明显的吞吐量瓶颈。
通常,诸如上述USPS邮件系统的系统已经使用了可实行的最快的硬件。因此,利用(例如)更快的网络130来消除吞吐量瓶颈是不可行的。类似地,由于在节点120之间出现瓶颈,所以增加额外的节点将不会提供所希望的吞吐量增加。同时,增加输入数据的速率通常也不是可行的选择。例如,对于邮局而言,延迟邮件或相关的报告来适应计算机瓶颈是不被接受的。在这种系统中,存储器的本地性取决于它的“电子距离(electrondistance)”,或电子为了到达存储器而需要在电子路径上传播的距离。例如,访问本地缓存160的处理器150可具有毫米量级的“电子距离”。另一方面,访问位于另一节点120上的存储器或通过SAN来访问存储器的处理器150可具有以米为量级的“电子距离”。因此,希望在系统架构等级解决该瓶颈。为了试图解决该问题,其他人将吞吐量的限制归因于对远程数据访问的需要。然而,在本文中描述的系统和方法能够以意料之外的方式来解决该远程数据访问瓶颈。
发明内容
本发明的系统、方法和设备中的每一个都具有数个方面,它们之中没有一个只表示其所希望的属性。在不限制本公开的范围的条件下,简要描述更加卓越的特征。在考虑了该描述后,尤其是在阅读了标题为“具体实施方式”的一节后,人们将理解本公开所提供的特征如何由于其他的方法和/或设备。
根据一方面,提供了一种处理数据库中的记录的方法。在分组为多个处理器组的多个处理器上处理记录。该方法包括将每个记录与多个记录组中的记录组关联、将每个记录组与处理器组关联、基于关联的记录组将记录路由至处理器组、以及利用该处理器组处理记录。
根据另一方面,提供了一种设备。该设备包括分组为多个处理器组的多个处理器。处理器组被配置为处理数据库中的记录。该设备被配置为将每个记录与多个记录组中的记录组关联、将每个记录组与处理器组关联、基于关联的记录组将记录路由至处理器组、以及处理该记录。
根据另一方面,提供了一种计算机可读非暂态存储介质。该计算机可读非暂态存储介质包括代码,该代码能够使计算机将数据库中的每个记录与多个记录组中的记录组关联、将每个记录组与处理器组关联、基于关联的记录组将记录路由至处理器组、以及处理该记录。
根据另一方面,提供了一种在多处理器环境中将记录插入数据库的方法。该方法包括在路由节点接收记录。该方法还包括在路由节点将记录与多个记录组中的记录组关联。该方法还包括基于关联的记录组将记录路由至多个处理器组中的处理器组。该方法还包括在处理器组针对匹配记录来搜索数据库的一部分。数据库的该部分与处理器组关联。该方法还包括当在数据库的该部分中没找到该记录时,将该记录插入数据库的该部分。
根据另一方面,提供了一种设备。该设备包括路由节点和分组为多个处理器组的多个处理器。处理器组被配置为处理数据库中的记录。该设备被配置为在路由节点接收记录。该设备还被配置为在路由节点将记录与多个记录组中的记录组关联。该设备还被配置为基于关联的记录组将记录路由至多个处理器组的处理器组。该设备还被配置为在处理器组针对匹配记录搜索数据库的一部分,数据库的该部分与处理器组关联。该设备还被配置为当数据库的该部分中没找到该记录时,在处理器组将该记录插入数据库的该部分。
根据另一方面,提供了计算机可读非暂态存储介质。该计算机可读非暂态媒介包括能够使计算机在路由节点接收记录的代码。该代码还能够使计算机在路由节点将记录与多个记录组中的记录组关联。该代码还能够使计算机基于关联的记录组将该记录路由至多个处理器组中的处理器组。该代码还能够使计算机在处理器组针对匹配记录搜索数据库的一部分,数据库的该部分关联于处理器组。该代码还能够使计算机在数据库的该部分没有找到该记录时,在处理器组将记录插入数据库的该部分。
根据一方面,提供了一种用于处理数据库中的记录的系统。该记录在分组为多个处理器组的多个处理器上处理。该系统包括用于将每个记录与多个记录组中的记录组关联的装置、用于将每个记录组与处理器组关联的装置、用于基于关联的记录组将记录路由至处理器组的装置、以及用于利用处理器组处理记录的装置。
附图说明
图1是多处理器计算机系统的框图;
图2是根据实施方式的被配置为处理数据的多处理器计算机系统的框图;
图3是根据另一实施方式的用于处理数据的方法的流程图;
图4是根据另一实施方式的用于将记录插入数据库的方法的流程图;
图5是根据另一实施方式的示出数据处理吞吐量的示图。
具体实施方式
参见图1,在一个实施方式中,实现了本公开的特征的多处理器计算机系统110,包括运行
Figure BDA00002747873800081
TimesTen(500Oracle Parkway,RedwoodShores,CA94065)内存数据库的
Figure BDA00002747873800082
4700(Silicon Graphics,Inc.,46600Landing Parkway,Fremont,CA94538)模块化刀片平台(modularblade platform)。在另一实施方式中,实现了本公开的特征的多处理器计算机系统110,包括
Figure BDA00002747873800083
Ultra
Figure BDA00002747873800084
(Silicon Graphics,Inc.,46600Landing Parkway,Fremont,CA94538)。该平台可以包括任意数量的节点120。每个节点120可以包括任意数量的处理器150。在一个实施方式中,每个节点120有大约1个到大约32个之间的处理器150。在另一实施方式中,每个节点120有大约4个到大约8个之间的处理器150,尤其是每个节点120有大约4个处理器150。虽然本文中的各种实施方式是参考具体的数据集、应用和硬件来描述的,但是本领域的技术人员应当认识到本公开能够适用于不同的配置。
多处理器计算机系统110可以被配置为读取记录并且将这些记录插入数据库,其中,该数据库被配置成具有行和列的表。在一个实施方式中,多处理器计算机系统110被配置为通过读取输入记录、在数据库中搜索该记录以及如果没有在数据库中找到该记录就将该记录插入该数据库,来执行行插入。在另一实施方式中,多处理器计算机系统110还被配置为针对比老化期更旧的记录来搜索数据库,并且移走这些记录。在各种实施方式中,老化期在约5天至约14天之间,特别是在约5天至约7天之间,并且更特别是大约5天。在可替换的实施方式中,多处理器计算机系统110被配置为移走旧记录,从而保持对数据库中的记录数的限制。在又一实施方式中,多处理器计算机系统110被配置为移走旧记录,从而保持对数据库的大小的限制。例如,内存数据库(IMDB)可以包括7.5TB的记录,其表示在180天至6年之间有价值的记录。
转至图2,示出了记录处理系统200。记录处理系统200可以被配置为减少在执行程序(诸如以上关于图1描述的行插入处理)时所需要的高等待时间网络操作的数量。可以利用多处理器计算系统(例如图1中所示的多处理器计算系统110)来实现记录处理系统200。
在记录处理系统200中,输入数据210由亲和性进程220解析从而确定其处理器亲和性。亲和性进程220用于将输入数据210分配至CPU亲和性层230。如以上关于图1描述的,CPU亲和性层230可对应于节点120或处理器150。亲和性进程220可以基于数据特性(例如,记录编号)将输入数据210分配给CPU亲和性层230。在一个实施方式中,输入数据210包括记录编号并且通过对记录编号取模数N(N为系统中CPU亲和性层230的数量),亲和性进程220将输入数据210分配给CPU亲和性层230。在另一实施方式中,亲和性进程220基于数据的哈希值(例如,通过使用安全哈希算法(SHA))来分配输入数据210。数据库缓存240关联于各CPU亲和性层230。
可以对亲和性进程220将输入数据210分配至CPU亲和性层230所依据的标准进行选择,使得对于分配给CPU亲和性层230的输入数据210的处理仅依赖于分配给同一CPU亲和性层230的其他数据。换言之,分配给给定的CPU亲和性层230的输入数据230可以说是本地相关的。因此,处理输入数据210的CPU亲和性层230更可能在本地缓存中找到所需的其他数据。例如,在一个实施方式中,应用可以是上述的行插入处理。在该实施方式中,数据库可以分成N个部分,其中,N是CPU亲和性层230的数量。各数据库部分关联于CPU亲和性层。因此,数据库缓存240只需要包含来自与相应的CPU亲和性层230相关联的数据库部分的记录。在一个实施方式中,数据库缓存240大到足以完全地缓存关联的数据库部分。因此,在数据库缓存240最小也与关联的数据库部分一样大的实施方式中,CPU亲和性层230对全部所需数据的访问都可以具有相对低的等待时间。
此外,通过考虑亲和化处理期间的亲和性层230中的CPU和数据库缓存240之间的“电子距离”,可以减少等待时间。例如,在SGI Altix4700中从CPU到“本地”存储器DIMM(在同一节点上)的跳通常耗时10ns。在同一机架单元的刀片之间的跳通常耗时22ns,在不同机架单元的刀片之间的跳通常耗时在33ns到256ns之间。跨过NUMA到额外的机架的跳通常超过256ns并且可以随着存储器的增加而指数地增加。亲和性进程220可以考虑该“电子距离”从而增加了以下可能性,即,将输入数据210放置在与处理该输入数据的CPU相距较近的“电子距离”的存储器位置的可能性。
可以按照上述的确定性方式将输入数据210记录分配给数据库。由于CPU亲和性层230只需要搜索存储在本地数据缓存240中的数据库部分,所以不必通过网络访问远程存储器。因此,在该实施方式中,输入数据210记录仅为本地相关,其中,针对数据库搜索所访问的任何两个记录都被分配给同一CPU亲和性层230。虽然CPU亲和性层230可能仍然需要进行存储器锁定,但是因为不涉及网络传输,所以本地存储器的锁定很可能比远程存储器的锁定快很多。记录处理系统200的配置方式在图3中示出。
图3示出了根据一个实施方式的处理输入数据(例如,以上关于图2讨论的输入数据210)的方法300。例如,方法300可以如以上关于图1描述的那样,在多处理器计算机系统110上实现。首先,关于框310,系统中的处理器被分组为N个处理器组。因此,每个处理器组包括一个或多个处理器。各处理器组可以对应于节点(例如,以上关于图1描述的节点120)。在一个实施方式中,各处理器组对应于以上关于图2描述的CPU亲和性层230。
继续至框320,数据库被分为N个部分。每个部分都可以是子数据库。根据一个实施方式,各部分是单一数据库中的表。在另一实施方式中,各子数据库可以被配置为保持以下数据,即,该数据至多在处理期间本地相关。例如,在处理功能为行插入的实施方式中,具有偶数记录编号的全部数据可以分配至单一数据库。在一个实施方式中,N在约2至约16之间。在另一实施方式中,N在约4至约8之间,并且更特别地,大约为6。
继续至框330,创建N个数据库缓存。各数据库缓存关联于处理器组。在一个实施方式中,数据库缓存对应于以上关于图2描述的数据库缓存240。有利地,在一个实施方式中,数据库缓存大到足够存储整个的子数据库。因此,所关联的处理器组很少经历缓存不中(如果曾经经历的话)。可以配置数据库缓存使得它们只驻存在与其关联的处理器组的本地存储器中。如上所述,可以关于存储器和处理器之间的“电子距离”来确定本地性。因此,数据库缓存可以被分配给与亲和化处理器相距较短“电子距离”的物理存储位置。
类似地,关于框340,创建N个日志缓存。与上述存储器缓存相似,每个日志缓存关联于处理器组。在一个实施方式中,处理器组中的单个处理器可以被分配为执行至日志缓存的数据库日志(database logging)。在该实施方式中,因为日志本地发生,所以本地处理停止来等待日志缓存不中的概率较小。可以配置日志缓存使得它们只驻存在与它们关联的处理器组的本地存储器中。如上所述,可以根据存储器和处理器之间的“电子距离”来确定本地性。因此,数据库缓存可以被分配给与亲和化处理器相距较短“电子距离”的物理存储位置。
随后,参考框350,通过将M个服务器进程与N个处理器组关联创建处理器亲和性。在各种实施方式中,M可以等于N,可以是N的倍数,或其他一些关系。如上所述,给予了这种亲和性的处理可以被优先地调度在特定的处理器上运行。在一个实施方式中,服务器进程被配置为以输入数据来进行数据库行插入。由于服务器进程被优先地调度为在相关的处理器组上运行,所以在该进程运行的时间期间,很大可能会保存涉及该进程的数据(诸如,进程上下文)。在一个实施方式中,每个服务器进程始终在同一处理器组上运行。因此,由于进程始终在同一处理器组上运行,所以它将始终使用同一数据库缓存和/或日志缓存。该配置可以进一步地减少缓存不中的可能性。
继续至框360,数据被分为N个数据组。在一个实施方式中,数据为上述关于图2所描述的输入数据210。相似地,如以上关于图2中的亲和性进程所描述的,数据可以基于(例如)数据中包含的记录编号的模数而被划分为组。例如,在具有两个处理器组的多处理器计算系统中,含有偶数记录编号的数据可以被分配至第一数据组,含有奇数记录编号的数据可以被分配至第二数据组。各数据组关联于处理器组。如描述的那样,数据可以被划分为数据组,使得对于目标应用而言,数据组之间几乎或完全不存在相关性。
随后,关于框370,数据被路由至关联的处理器组。例如,在包括两个处理器组的多处理器计算系统的实施方式中,含有偶数记录编号的数据可以被路由至第一处理器组,含有奇数记录编号的数据可以被路由至第二处理器组。以这种方式,创建了数据亲和性。此外,通过上述服务器进程和缓存亲和性,各处理器组也关联于至少一个服务器进程和缓存。因此,在服务器进程被配置为执行数据库行插入的实施方式中,服务器进程很可能能够从本地缓存恢复上下文并且仅使用本地数据库缓存对相关子数据库执行行插入。因此,缓存不中的可能性降低,并且数据处理吞吐量增加。
图4是根据另一实施方式的用于将记录插入数据库的方法400的流程图。如以上关于图3所描述的,示出的流程图假设以N=2建立了进程环境。换言之,可用的处理器被分为两个处理器组:处理器组0和处理器组1。相似地,记录据库被分为两个部分:数据库部分0和数据库部分1。此外,存在两个数据库缓存和两个日志缓存。在其他实施方式中,N可以是例如3、4、6、8、16等的任意数字。
开始于框410,路由单元接收记录。在一些实施方式中,记录可以是用于认证邮资的许可标记或基于标记的信息(IBI)。路由单元可以是被分配为管理路由的单一处理器、被调度为基于需求在任何可用的处理器上运行的路由进程、或任何其他配置。记录具有允许其被分为两组以上的可辨识的特征。在示出的实施方式中,记录包括或为奇数或为偶数的编号。
继续至框420,记录关联于两个数据组之一:奇数或偶数。如果记录编号为偶数,那么它被分配至偶数数据组,如果记录编号为奇数,那么它被分配至奇数数据组。如上所述,本领域的技术人员会理解,存在着将记录分配至记录组的多种方法。本文中描述并且在图3中示出的奇数和偶数数据组仅是为了简单而选择的示例。各数据组与处理器组关联。具体地,偶数数据组关联于处理器组0,奇数数据组关联于处理器组1。
移至框430和435,由路由单元将记录路由至与其数据组关联的处理器组。具体地,如果记录为偶数,那么记录在框430被路由至处理器组0。可替换地,如果记录为奇数,那么记录在框435被路由至处理器组1。通过将记录送至与处理器组的一个或多个处理器亲和的处理线程,该记录可以被路由至该处理器组。因此,虽然处理可以被调度在处理器组中的任意处理器上,但是可以保证数据被特定的关联处理器组处理。
随后,在框440和445,被分配处理该记录的关联的处理器组在关联的数据库部分搜索匹配记录。具体地,如果记录为偶数,那么在框440中运行在处理器组0上的进程在数据库部分0搜索匹配记录。可替换地,如果记录为奇数,那么在框445中运行在处理器组1上的进程在数据库部分1中搜索匹配记录。在一个实施方式中,在数据库部分中搜索匹配记录可以包括读取该数据库部分中的每行并且将该行中的记录编号与输入记录相比。在其他的实施方式中,在数据库部分中搜索匹配记录可以包括其他已知搜索技术,诸如二进位检索。由于每个记录都关联于路由至关联的处理器组、用于插入到关联的数据库部分的记录组,所以搜索算法可以假设只有偶数记录存在于数据库部分0,只有奇数记录存在于数据库部分1。因此,运行在处理器组0上的搜索算法只需要搜索数据库部分0而不需要访问数据库部分1(反之亦然)。因此,本文中描述的方法允许处理器组通过只访问本地存储器来有效地搜索位于遍及全部的处理器组的全部数据库部分。
随后,在框450和455中,根据记录是否已经存在于关联的数据库部分来采取适当行动。如果存在,那么在框460中记录被丢弃。在一些实施方式中,可以标记该记录用于更进一步浏览。例如,在预计表示邮资认证的记录是唯一的实施方式中,进程可以对起运计算机发送表示未付邮资的网络消息。然而,如果在关联的数据库部分中未发现该记录,那么在框470和470,记录被插入到关联的数据库。具体地,如果记录为偶数,那么在框470它被插入到数据库部分0。可替换地,如果记录为奇数,那么在框475它被插入到数据库部分1。因为许多数据库都以行和列来组织,所以记录插入到关联的数据库部分中可以称为行插入。可以根据本文中描述的方法来相对较快地执行行插入,这是因为它们都可以在本地数据库缓存上执行。如果本地数据库缓存大到足够保存关联于处理器组的整个数据库部分,那么在不需要远程锁定、网络流量等的条件下可以发生行插入。
图5是示出了使用上述系统和方法的实施方式所实现的数据库行插入吞吐量的示图。使用具有六个数据库缓存的六个处理器组来执行行插入。处理器组被标记为“TRP1-6”。每个处理器组包括四个处理器。每个处理器组还关联于三个数据库插入线程,每个数据库插入线程执行类似于以上关于图4描述的进程。换言之,每个处理器组中的四个处理器中的三个运行软件以执行本文中描述的行插入方法的实施方式。各处理器组中的一个处理器运行数据库日志线程。
如图5中所示,六条线表示每秒由各处理器组TRP1-6执行的行插入的数量。标记为“全部”的额外的线表示遍及全部六个处理器组TRP1-6的每秒的累积行插入。如图中所示,处理器组经历缓存不中(该缓存不中导致了每秒行插入数量的倾斜)的次数相对较少。例如,在15:02:27、16:52:38和17:02:39周围,在全部的每秒行插入中有下降。这些下降很可能表示由于所需数据未存在于本地节点上,处理器组不得不等待遍及节点的导致多次本地等待时间的网络流量或跳的时间。然而,对于绝大部分,每个处理器组的吞吐量是平滑的,这是因为本文中描述的方法基本上避免了在行插入操作期间访问远程数据的需要。
虽然以上将处理和方法描述为包括特定的步骤并且按照一定的顺序,但是需要理解的是,这些处理和方法可以包括额外的步骤或可以省略部分描述的步骤。此外,每个处理的步骤不必按照其被描述的顺序执行。
虽然以上描述被示出、描述以及指出为本发明应用至各个实施方式的新颖特征,但是应当理解的是,在不偏离本发明的精神的情况下,可以由本领域的技术人员对示出的系统或进行的形式和细节进行多种省略、替代和改变。应当理解,因为一些特征可以与其他特征分开使用或实行,所以可以按照未提供所有本文中提出的特征和优点的形式来体现本发明。
结合本文中公开的实施方式所描述的方法或算法的步骤可以直接地以硬件实施,以由处理器执行的软件模块实施或以两者的组合实施。软件模块可以驻存在RAM存储器、闪速存储器、ROM存储器、EPROM存储器、EEROM存储器、寄存器、硬盘、可移除硬盘、CD-ROM或任何其他形式的本领域中已知的存储介质中。示例性存储介质耦接至处理器使得处理器可以从存储介质读取信息并且对存储介质写入信息。可替换地,存储介质可以集成至处理器。处理器和存储介质可以驻存在ASIC中。ASIC可以驻存在用户终端。可选地,处理器和存储介质可以作为分立的组件而驻存在用户终端中。

Claims (27)

1.一种在分组为多个处理器组的多个处理器上处理数据库中的记录的方法,所述方法包括:
在所述多个处理器中的至少一个上将各记录与多个记录组中的记录组关联;
在所述多个处理器中的至少一个上将各记录组与处理器组关联;
基于关联的所述记录组将所述记录路由至处理器组;以及
利用所述处理器组处理所述记录。
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所述的计算机可读非暂态存储介质,还包括能够使计算机进行以下操作的代码:
创建多个服务器进程,其中,每个服务器进程与所述多个处理器组中的处理器组关联;
在每个服务器进程和关联的所述处理器组之间创建亲和性;以及
将每个服务器进程与记录组关联;
其中,每个服务器进程处理关联的所述记录组中的记录。
16.根据权利要求14所述的计算机可读非暂态存储介质,还包括能够使计算机进行以下操作的代码:
将所述数据库分为多个子数据库;
将每个子数据库与处理器组关联;以及
针对与处理器组关联的每个子数据库创建数据库缓存;以及
在每个数据库缓存和关联的所述处理器组之间创建亲和性。
17.根据权利要求14所述的计算机可读非暂态存储介质,还包括能够使计算机基于静态路由表将记录路由至处理组的代码。
18.根据权利要求14所述的计算机可读非暂态存储介质,还包括能够使计算机将记录与记录组关联使得在处理记录时在记录组之间没有数据相关性的代码。
19.一种在多处理器环境中将记录插入数据库的方法,所述方法包括:
在路由节点接收记录;
在所述路由节点将所述记录与多个记录组中的记录组关联;
基于关联的所述记录组将所述记录路由至多个处理器组中的处理器组;
在所述处理器组针对匹配记录搜索所述数据库的一部分,所述数据库的所述部分关联于所述处理器组;以及
当在所述数据库的所述部分中没有找到所述记录时,将所述记录插入所述数据库的所述部分。
20.一种包括路由节点和分组为多个处理器组的多个处理器的设备,所述多个处理器组被配置为处理数据库中的记录,其中,所述设备被配置为:
在路由节点接收记录;
在所述路由节点将所述记录与多个记录组中的记录组关联;
基于关联的所述记录组将所述记录路由至所述多个处理器组中的处理器组;
在所述处理器组针对匹配记录搜索所述数据库的一部分,所述数据库的所述部分关联于所述处理器组;以及
当在所述数据库的所述部分中没有找到所述记录时,在所述路由节点将所述记录插入所述数据库的所述部分。
21.一种计算机可读非暂态存储介质,包括能够使计算机进行以下操作的代码:
在路由节点接收记录;
在所述路由节点将所述记录与多个记录组中的记录组关联;
基于关联的所述记录组将所述记录路由至多个处理器组中的处理器组;
在所述处理器组针对匹配记录搜索所述数据库的一部分,所述数据库的所述部分关联于所述处理器组;以及
当在所述数据库的所述部分中没有找到所述记录时,在所述路由节点将所述记录插入所述数据库的所述部分。
22.一种在分组为多个处理器组的多个处理器上处理数据库中的记录的系统,所述系统包括:
用于在所述多个处理器中的至少一个上将各记录与多个记录组中的记录组关联的装置;
用于在所述多个处理器中的至少一个上将各记录组与处理器组关联的装置;
用于基于关联的所述记录组将所述记录路由至处理器组的装置;以及
用于利用所述处理器组处理所述记录的装置。
23.根据权利要求22所述的系统,还包括:
用于针对所述多个处理器组中的每个处理器组创建日志缓存或用于针对所述多个处理器创建单一日志缓存的装置;
用于在每个日志缓存和关联的处理器组之间创建亲和性的装置;以及
用于分配每个处理器组中的单一处理器从而对数据库事务进行日志记录的装置,
其中,每个处理器组包括多个处理器。
24.根据权利要求22所述的系统,还包括:
用于创建多个服务器进程的装置,其中,每个服务器进程与所述多个处理器组中的处理器组关联;
用于在每个服务器进程和关联的所述处理器组之间创建亲和性的装置;以及
用于将每个服务器进程与记录组关联的装置;
其中,每个服务器进程处理关联的所述记录组中的记录。
25.根据权利要求22所述的系统,还包括:
用于将所述数据库分为多个子数据库的装置;
用于将每个子数据库与处理器组关联的装置;以及
用于针对与处理器组关联的每个子数据库创建数据库缓存的装置;以及
用于在每个数据库缓存和关联的所述处理器组之间创建亲和性的装置。
26.根据权利要求22所述的系统,其中,用于路由记录的装置包括用于基于静态路由表将记录路由至处理组的装置。
27.根据权利要求22所述的系统,其中,用于关联记录的装置包括用于将记录与记录组关联使得在处理记录时在记录组之间没有数据相关性的装置。
CN201180035260.7A 2010-05-17 2011-05-16 本地化数据亲和性系统和混合方法 Active CN103038718B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US39570410P 2010-05-17 2010-05-17
US61/395,704 2010-05-17
US13/083,396 2011-04-08
US13/083,396 US8935248B2 (en) 2010-05-17 2011-04-08 Localized data affinity system and hybrid method
PCT/US2011/036683 WO2011146409A1 (en) 2010-05-17 2011-05-16 Localized data affinity system and hybrid method

Publications (2)

Publication Number Publication Date
CN103038718A true CN103038718A (zh) 2013-04-10
CN103038718B CN103038718B (zh) 2016-06-22

Family

ID=44912655

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180035260.7A Active CN103038718B (zh) 2010-05-17 2011-05-16 本地化数据亲和性系统和混合方法

Country Status (7)

Country Link
US (4) US8935248B2 (zh)
EP (1) EP2572250A4 (zh)
JP (4) JP2013526749A (zh)
CN (1) CN103038718B (zh)
AU (4) AU2011256365B2 (zh)
CA (3) CA3040364A1 (zh)
WO (1) WO2011146409A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11838579B2 (en) 2014-06-30 2023-12-05 Apple Inc. Intelligent automated assistant for TV user interactions

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9558119B2 (en) * 2010-06-23 2017-01-31 International Business Machines Corporation Main memory operations in a symmetric multiprocessing computer
US20150139250A1 (en) * 2013-11-18 2015-05-21 Pica8, Inc. Synchronized network statistics collection
US11275721B2 (en) * 2015-07-17 2022-03-15 Sap Se Adaptive table placement in NUMA architectures
US10599459B2 (en) 2016-02-12 2020-03-24 Nutanix, Inc. Entity database distributed replication
CN107291529B (zh) * 2016-03-30 2020-09-11 华为技术有限公司 一种数据处理方法及装置
US11380376B2 (en) * 2020-08-26 2022-07-05 Micron Technology, Inc. Apparatuses and methods to perform low latency access of a memory

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1239249A (zh) * 1998-06-17 1999-12-22 国际商业机器公司 实现精确的超高速缓存灵敏度的超高速缓存体系结构
US20010052024A1 (en) * 1996-12-23 2001-12-13 Murthy V. Devarakonda Affinity-based router and routing method
US20050165906A1 (en) * 1997-10-06 2005-07-28 Mci, Inc. Deploying service modules among service nodes distributed in an intelligent network
CN101512482A (zh) * 2005-02-08 2009-08-19 思科技术公司 多线程分组处理体系结构
US20090296711A1 (en) * 2008-05-30 2009-12-03 International Business Machines Corporation Affinity-based transaction processing

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69232425T2 (de) * 1991-07-10 2002-10-10 Hitachi, Ltd. Sortierverfahren in einer verteilten Datenbank und Zugangsverfahren dazu
US5555404A (en) 1992-03-17 1996-09-10 Telenor As Continuously available database server having multiple groups of nodes with minimum intersecting sets of database fragment replicas
JP3182224B2 (ja) * 1992-09-03 2001-07-03 三洋電機株式会社 自動設計システム
JP2583010B2 (ja) * 1993-01-07 1997-02-19 インターナショナル・ビジネス・マシーンズ・コーポレイション 多層インデックス構造におけるローカルインデックステーブル及び大域インデックステーブルの間の一貫性を維持する方法
JP3367140B2 (ja) * 1993-04-28 2003-01-14 株式会社日立製作所 データベース管理方法
US5721909A (en) 1994-03-30 1998-02-24 Siemens Stromberg-Carlson Distributed database architecture and distributed database management system for open network evolution
US6658522B1 (en) * 2000-06-16 2003-12-02 Emc Corporation Method to reduce overhead associated with system I/O in a multiprocessor computer system
US7296150B2 (en) * 2000-10-23 2007-11-13 Business-To-Investor, Inc. Database management systems and methods of operating the same
JP4183400B2 (ja) * 2001-06-27 2008-11-19 株式会社日立製作所 データベースシステムとデータベース管理方法およびプログラム
JP4072418B2 (ja) * 2002-10-29 2008-04-09 キヤノン株式会社 情報入力システム、移動端末、移動端末における情報入力方法、情報サーバ、情報サーバが移動端末の入力操作を支援する方法、コンピュータプログラム
US20040181524A1 (en) * 2003-01-16 2004-09-16 Jardin Cary A. System and method for distributed processing in a node environment
US7895191B2 (en) * 2003-04-09 2011-02-22 International Business Machines Corporation Improving performance of database queries
CN101120340B (zh) * 2004-02-21 2010-12-08 数据迅捷股份有限公司 超无共享并行数据库
JP4581500B2 (ja) 2004-06-17 2010-11-17 株式会社日立製作所 ディザスタリカバリシステム、プログラム及びデータベースのリカバリ方法
US7866548B2 (en) 2004-12-01 2011-01-11 Metavante Corporation Account control method and system that allows only eligible and authorized items to be purchased using the account
KR20070110367A (ko) * 2005-02-24 2007-11-16 제라운드 시스템즈 리미티드 데이터 관리 방법 및 장치
US7661146B2 (en) * 2005-07-01 2010-02-09 Privamed, Inc. Method and system for providing a secure multi-user portable database
US7809769B2 (en) * 2006-05-18 2010-10-05 Google Inc. Database partitioning by virtual partitions
US20080071755A1 (en) 2006-08-31 2008-03-20 Barsness Eric L Re-allocation of resources for query execution in partitions
US7779045B2 (en) * 2007-09-27 2010-08-17 Microsoft Corporation Lazy updates to indexes in a database
US20090132469A1 (en) * 2007-11-16 2009-05-21 Urban Mapping, Inc. Geocoding based on neighborhoods and other uniquely defined informal spaces or geographical regions
US8229945B2 (en) 2008-03-20 2012-07-24 Schooner Information Technology, Inc. Scalable database management software on a cluster of nodes using a shared-distributed flash memory

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010052024A1 (en) * 1996-12-23 2001-12-13 Murthy V. Devarakonda Affinity-based router and routing method
US20050165906A1 (en) * 1997-10-06 2005-07-28 Mci, Inc. Deploying service modules among service nodes distributed in an intelligent network
CN1239249A (zh) * 1998-06-17 1999-12-22 国际商业机器公司 实现精确的超高速缓存灵敏度的超高速缓存体系结构
CN101512482A (zh) * 2005-02-08 2009-08-19 思科技术公司 多线程分组处理体系结构
US20090296711A1 (en) * 2008-05-30 2009-12-03 International Business Machines Corporation Affinity-based transaction processing

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11838579B2 (en) 2014-06-30 2023-12-05 Apple Inc. Intelligent automated assistant for TV user interactions

Also Published As

Publication number Publication date
US11113316B2 (en) 2021-09-07
JP7013510B2 (ja) 2022-01-31
JP6759285B2 (ja) 2020-09-23
CA3040363C (en) 2020-12-15
US10509807B2 (en) 2019-12-17
US9613129B2 (en) 2017-04-04
AU2011256365A1 (en) 2012-12-20
JP6746425B2 (ja) 2020-08-26
AU2015213359B2 (en) 2017-03-09
AU2019246894A1 (en) 2019-10-31
AU2015213359A1 (en) 2015-09-03
CA3040363A1 (en) 2011-11-24
JP2018163701A (ja) 2018-10-18
AU2017203845B2 (en) 2019-07-11
CN103038718B (zh) 2016-06-22
AU2011256365B2 (en) 2015-05-14
US20200110763A1 (en) 2020-04-09
US8935248B2 (en) 2015-01-13
JP2020115367A (ja) 2020-07-30
JP2016212910A (ja) 2016-12-15
AU2017203845A1 (en) 2017-06-22
EP2572250A4 (en) 2015-10-28
CA2799787C (en) 2022-01-04
WO2011146409A1 (en) 2011-11-24
EP2572250A1 (en) 2013-03-27
JP2013526749A (ja) 2013-06-24
US20170206246A1 (en) 2017-07-20
CA3040364A1 (en) 2011-11-24
US20150088893A1 (en) 2015-03-26
CA2799787A1 (en) 2011-11-24
US20110282875A1 (en) 2011-11-17

Similar Documents

Publication Publication Date Title
CN103038718A (zh) 本地化数据亲和性系统和混合方法
KR102198680B1 (ko) 확장 가능한 멀티-스테이지 데이터 처리 시스템들에서의 효율적인 데이터 캐싱 관리
CN102483768B (zh) 基于策略的储存结构分布
US20100312749A1 (en) Scalable lookup service for distributed database
US20140181042A1 (en) Information processor, distributed database system, and backup method
CN104679778A (zh) 一种搜索结果的生成方法及装置
US20210165795A1 (en) Policy-based storage structure distribution
Dogra et al. A survey of dynamic replication strategies in distributed systems
Velusamy et al. Inverted indexing in big data using hadoop multiple node cluster
Peng et al. DOS: a spatial system offering extremely high-throughput road distance computations
Meng et al. Optimal reducer placement to minimize data transfer in MapReduce-style processing
Rahman et al. Performance evaluation of different replica placement algorithms
Subramanyam et al. Map-Reduce based Multiple Sub-Graph Enumeration Using Dominating-Set Graph Partition
Shao et al. The method of distribute data storage and location on weights of jump table
Suriarachchi et al. A high-throughput, scalable solution for calculating frequent routes and profitability of New York taxis
CN107329835A (zh) 一种基于“数据追加情况下的平均分段并行”的列式存储并行方法
Kukla et al. Intelligent storage devices for scalable information management systems
CN106909837A (zh) 云环境下MapReduce结果正确性保障机制

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant