CN111164587A - 共享存储数据库系统中的路由请求 - Google Patents
共享存储数据库系统中的路由请求 Download PDFInfo
- Publication number
- CN111164587A CN111164587A CN201880061838.8A CN201880061838A CN111164587A CN 111164587 A CN111164587 A CN 111164587A CN 201880061838 A CN201880061838 A CN 201880061838A CN 111164587 A CN111164587 A CN 111164587A
- Authority
- CN
- China
- Prior art keywords
- query
- node
- nodes
- affinity group
- affinity
- 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.)
- Pending
Links
- 238000013507 mapping Methods 0.000 claims abstract description 78
- 238000000034 method Methods 0.000 claims abstract description 40
- 238000000638 solvent extraction Methods 0.000 claims description 8
- 230000004044 response Effects 0.000 claims description 5
- 230000015654 memory Effects 0.000 description 23
- 238000004891 communication Methods 0.000 description 16
- 230000008569 process Effects 0.000 description 9
- 238000013459 approach Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 238000005192 partition Methods 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 230000002085 persistent effect Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 241001522296 Erithacus rubecula Species 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000036316 preload Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000009827 uniform distribution Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/278—Data partitioning, e.g. horizontal or vertical partitioning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本文描述了用于基于查询将查询路由到多节点数据库系统的特定节点的技术。数据库表被分区为多个亲和组。每个亲和组被分配特定的节点作为该亲和组的主节点。将映射发送到查询路由器,该映射指示这多个亲和组中的每个亲和组的主节点。对于特定查询,查询路由器基于映射和该特定查询确定要将该特定查询发送到的目标节点。
Description
技术领域
本发明涉及数据库管理系统,并且具体地涉及用于共享存储数据库系统的路由请求。
背景技术
数据库系统通常在磁盘上存储数据库对象(例如,表、索引等),并根据需要将来自这些数据库对象的数据项加载到易失性存储器中。一旦被加载到易失性存储器中,数据项就可以保持被缓存在易失性存储器中,以便对相同数据项的后续访问不会带来从磁盘访问数据项的开销。
集群共享磁盘数据库系统包括多个节点。如果若干个节点访问相同的数据项,则这些数据项可以被缓存在每个节点的易失性存储器中。但是,需要锁和更新机制来保持不同节点之间的缓存一致性。此外,执行节点间的锁请求以及从其他节点的易失性存储器中获取数据项会对数据库系统的性能和可伸缩性产生负面影响。
一种可能的方法是将数据库对象的副本加载到集群中单个节点的易失性存储器中。为了获得已预加载该对象的好处,可以将与该对象有关的工作运送到预加载该对象的节点。或者,可以将数据从预加载该对象的节点发送到接收该工作的节点。尽管运送工作或接收数据可能比访问磁盘上对象快,但运送工作或请求数据仍需要附加的时间。
另一种可能的方法是将数据库数据进行划分并存储在分别的数据库中。每个数据库都被分配给一个特定的节点。这样可以避免必须保持节点之间的缓存一致性,但是节点不直接访问它们未被分配到的数据库数据。因此,如果一个数据库的被请求的工作需要被存储在其他数据库中的数据项,则该数据库需要更长的时间才能完成该工作。
第三种可能的方法是对数据库应用程序进行硬编码,以将对特定数据库数据的请求路由到特定节点,以便每个节点处理数据的不相交子集。但是,为了继续保持性能,如果访问模式改变、数据集大小改变或可用数据库实例的数量更改,则必须使用新的数据到节点的映射更新应用程序。
本节中描述的方法是可以采用的方法,但不一定是先前已经设想或采用的方法。因此,除非另有说明,否则不应认为本节所述的任何方法仅因其包含在本节中而被视为现有技术。
附图说明
在附图中:
图1是示出了可以实现实施例的数据库系统的框图。
图2是示出了根据实施例的被划分为亲和组的数据库对象的框图;
图3是示出了根据实施例的亲和组映射的框图;
图4是示出了根据实施例的用于确定如何路由请求的步骤的流程图;
图5是示出了可用于实现本文描述的技术的计算机系统的框图。
具体实施方式
在下面的描述中,出于解释的目的,阐述了许多具体细节以便提供对本发明的透彻理解。然而,将显而易见的是,可以在没有这些具体细节的情况下实践本发明。在其他情况下,以框图形式示出了公知的结构和设备,以避免不必要地模糊本发明。
概况
这里描述了用于基于查询将查询路由到多节点数据库系统的特定节点的技术。根据一个实施例,数据库表被分区为多个亲和组。每个亲和组都被分配给多节点数据库系统的特定节点。
特定节点是亲和组的主节点。主节点处理对亲和组的锁请求。如果节点需要针对亲和组中的数据的锁,则该节点向主节点发送锁请求。但是,如果主节点需要针对亲和组的锁,则主节点不需要发送请求。
根据一个实施例,数据库系统生成亲和组映射,亲和组映射指示亲和组到的节点分配。数据库系统将亲和组映射发送到查询源,查询源本地存储该映射。在数据库查询源将查询发送给数据库系统之前,查询源使用该映射来确定数据库系统中要将该查询路由到的目标节点。然后,查询源将查询发送到目标节点。这里描述了示例,其中查询源是在客户端节点上执行的客户端应用程序。然而,查询源可以是数据库系统从其接收查询的任何源。
在一些实施例中,查询路由器确定要将查询路由到的目标节点。查询路由器可以是例如客户端应用程序、连接池、数据库监听器、软件或硬件路由器或网络交换机的服务、功能、应用程序或其他特征件。在一个实施例中,查询路由器接收数据库请求,确定目标节点,并将数据库请求转发到目标节点。替代地,查询路由器可以将目标节点指示给查询源(诸如客户端应用程序)。
系统概况
图1是示出了根据一个实施例的多节点数据库系统的框图。在图1所示的实施例中,数据库系统100包括四个节点102、112、122和132。
节点102、112、122和132分别具有一个或多个处理器108、118、128和138,以及本地易失性存储器104、114、124和134。此外,节点102、112、122和132分别在执行数据库服务器实例106、116、126和136。虽然在所示实施例中,每个节点都在执行单个数据库服务器实例,但是在替代实施例中,单个节点可以执行多于一个的数据库服务器实例。
节点102、112、122和132可以访问相同的数据库160。出于说明的目的,数据库160被示为存储在单个共享磁盘150上,但是在替代实施例中,数据库160可以跨多个磁盘分布,节点102、112、122和132中的每一个都可以访问该多个磁盘。另外,数据库160可以存储在其他类型的计算机可读存储介质(诸如闪存或非易失性存储器)中。数据库160包括表170。节点102、112、122和132中的每一个都能够从驻留在磁盘150上的表170的副本访问来自表170的数据项。
在一些实施例中,数据库160是包括多个数据库的分布式数据库,每个数据库存储在相应的一个或多个存储介质中。每个节点可以访问该多个数据库中的特定数据库,而不是共享访问该多个数据库。在其他实施例中,节点可以共享访问该多个数据库中的一个或多个数据库。例如,第一组节点可以共享访问该多个数据库中的第一数据库,并且第二组节点可以访问该多个数据库中的第二数据库。
查询路由器180被连接到数据库系统100。查询路由器可以是接收查询并确定要将该查询路由到的目标节点的任何硬件或软件。例如,查询路由器可以是例如客户端应用程序、连接池、数据库监听器、软件或硬件路由器或网络交换机的服务、功能、应用程序或其他特征件。在一个实施例中,查询路由器接收数据库请求,确定目标节点,并将数据库请求转发到目标节点。替代地,查询路由器可以将目标节点指示给查询源(诸如客户端应用程序)。
在一个实施例中,查询路由器180是连接到数据库系统100的数据库客户端。客户端180可以包括在客户端节点上运行的数据库应用程序。客户端180通过如下方式来与数据库系统100的实例(诸如,实例106、116、126和136)进行交互:提交使实例对存储在数据库中的数据执行操作的命令。例如,命令可以是访问或修改来自数据库的数据、对数据执行操作和/或将数据返回给客户端的请求。
此外,可以在单个请求中将多个命令从数据库客户端发送到数据库实例以执行工作。数据库实例可以在对在请求中提交的所有命令的单个响应中将结果返回给数据库客户端。作为示例,如下面更详细描述的,数据库客户端可以发送包括特定查询的请求和对亲和组映射的请求。在单个往返请求和响应中处理多个命令可以导致更有效地使用数据库连接。
亲和组
为了将数据库对象的部分分配给特定节点,数据库对象(诸如表170)分区为多个亲和组。亲和组是出于路由点和/或范围查询的目的而被分配给节点的数据库对象的部分。
在一个实施例中,基于数据库表中的数据值将数据库表分区为亲和组。例如,每个亲和组可以对应于数据库表的列中的一个或多个值或值的范围。
出于说明一个清晰的示例的目的,假设“Customers”数据库表存储客户数据并包括“lastName”列。可以基于该“lastName”列中存储的值将“Customers”表分区为亲和组。第一亲和组可以对应于以字母A至D开头的姓氏值,第二亲和组可以对应于以字母E至H开头的姓氏值,第三亲和组可以对应于以字母I至K开头的姓氏值,依此类推。
根据其来对数据库表进行分区的键列(或多个列)在这里被称为“亲和组键”。每个亲和组对应于亲和组键的特定值、特定组值或特定的值范围。
出于亲和组目的使用的分区可能与数据库数据的磁盘上结构相对应,也可能不与其相对应。在其中亲和组分区是基于磁盘上分区的情况的示例中,数据库表可以被存储在多个数据块中。可以基于数据块对数据库表进行分区,使得每个亲和组对应于该多个数据块中的一个或多个数据块。每个亲和组仍可以对应于亲和组键的值的范围。
在一个实施例中,每个亲和组可以对应于相等或接近相等数量的数据块。但是,基于与每个范围相关联的数据量,对于每个亲和组,亲和组键值的范围可能会有所不同。参考上面的示例,第一亲和组可以对应于以字母A至C开头的姓氏值,第二亲和组可以对应于以字母D至K开头的姓氏值,而每个亲和组对应于相似数量的数据块。
数据块是永久存储的单元,并且数据库服务器使用其来存储一个或多个数据库行或行的部分,包括行的一个或多个列。从永久存储中读取行时,包含该行的数据块被复制到数据库服务器的RAM和/或主存储器中的数据块缓冲区中。数据块通常包含多个行,以及描述了该数据块的内容的数据块元数据。
数据块是数据库服务器可以从永久存储设备请求的数据库数据的最小单元。例如,当数据库服务器查找存储在数据块中的行时,数据库服务器可能只能通过读取整个数据块来从永久存储设备读取该行。至少部分地基于存储数据库表的数据块对数据库表进行分区,避免了将不同的节点分配给相同的数据块。
在一个实施例中,数据库表可以是包括多个表分区的分区数据库表。多个亲和组可以对应于多个分区。亲和组键可以是被用于对数据库表进行分区的分区键。例如,每个表分区可以被存储在一个或多个数据块的相应组中。组中的所有数据块可能属于相同的亲和组和/或属于被分配给相同节点的亲和组。
多个亲和组中的每个亲和组被分配给数据库系统中的特定节点。亲和组被分配到的节点是该亲和组的主节点。主节点管理对亲和组的锁请求。如果节点接收到针对存储在该节点为主节点的那个亲和组中的数据的请求,则该节点不必从另一个节点请求锁。这允许节点更快地处理请求。
可以使用用于将数据库对象的部分与特定节点相关联的任何方法,将亲和组分配给数据库系统中的节点。示例方法包括以轮询方式分配;将多个亲和组划分为相等或半相等的组,并将每个组分配给特定的节点;使用函数将亲和组键值映射到节点;等等。
图2示出了表170的示例亲和组。表170被划分为八个亲和组(亲和组202-216)。在所示的示例中,亲和组202和204被分配给节点102,亲和组206和208被分配给节点112,亲和组210和212被分配给节点122,以及亲和组214和216被分配给节点132。
每个节点都是其被分配到的亲和组的主节点。作为示例,如果节点102接收到对亲和组202中的数据的请求,则节点102可以向其自身授予对对应数据块的锁。如果节点102接收到对亲和组208中的数据的请求,则节点102向节点112请求锁,并在访问数据之前等待该锁被授予。
如果一个节点从数据库系统中被删除,则已被分配给该故障节点的每个亲和组被重新分配给数据库系统中的其余节点之一。该节点可能由于节点故障而被从数据库系统中暂时删除(诸如出于维护目的)或永久删除。
可以与上述初始分配过程类似地执行重新分配。在一个实施例中,重新分配不影响其节点没有发生故障的亲和组。作为示例,如果节点112发生故障,则亲和组206和208将各自被重新分配给节点102、122或132中的一个。但是,亲和组202、204、210、212、214和216将不被重新分配,因为他们分配的节点没有发生故障。在其他实施例中,重新确定所有亲和组的节点分配,例如,以保持亲和组到节点的分配的均匀分布。
类似地,如果节点加入或被重新添加到数据库系统,则可以选择一个或多个亲和组以将其重新分配给新节点。如果亲和组少于节点,则没有亲和组被重新分配给新节点。在一个实施例中,仅选择的亲和组被重新分配。在其他实施例中,重新确定所有亲和组的节点分配。
亲和组映射
在将亲和组分配给节点后,数据库系统生成亲和组映射。亲和组映射包括指示每个亲和组的主节点的元数据。亲和组映射被发送到连接到数据库系统的数据库客户端。每个数据库客户端存储亲和组映射的相应副本。在一个实施例中,如果将多个数据库对象划分为亲和组,则为每个数据库对象存储相应的亲和组映射。可以存储附加的元数据,该元数据指示每个数据库对象的相应亲和组映射。
图3示出了表170的示例亲和组映射。在所示示例中,亲和组映射包括亲和组键数据310和表320,亲和组键数据310指示亲和组所基于的亲和组键表320指示每个亲和组的主节点。
表320包括四列:亲和组ID列、节点ID列、亲和组键起始值列和亲和组键结束值列。亲和组ID指示特定的亲和组。节点ID指示特定亲和组的主节点。亲和组键起始值指示亲和组键值范围的下限,以及亲和组键结束值指示特定亲和组的亲和组键值范围的上限。
在一个实施例中,在生成亲和组映射之后,数据库系统向一个或多个数据库客户端发送指示已经生成了亲和组映射的通知。客户端从数据库系统请求亲和组映射。数据库系统中的节点接收请求,并将亲和组映射发送到客户端。可以将对亲和组映射的请求与执行其他工作(诸如查询)的请求相结合。在其他实施例中,数据库系统可以在生成亲和组映射之后将亲和组映射发送给客户端,而无需客户端请求映射。例如,数据库系统不向数据库客户端发送通知,而是发送亲和组映射。
当数据库系统将一个或多个亲和组重新分配给不同的节点时,数据库系统生成更新的亲和组映射。在一个实施例中,数据库系统向客户端发送指示更新的亲和组映射可用的通知。客户端可以从数据库系统请求新的亲和组映射。替代地,数据库系统可以使用通知或代替通知来发送亲和组映射。
请求路由
数据库客户端可以基于亲和组映射和查询将查询路由到特定节点。图4示出了查询路由器确定如何路由特定查询的示例过程。
在步骤400处,查询路由器确定是否为特定查询所针对的数据库表存储了亲和组映射。如果不存在亲和组映射,则查询路由器将特定查询发送到数据库系统,而不使用亲和组映射。数据库系统可以选择特定节点来处理查询,而不考虑特定查询的内容。例如,数据库系统可以使用负载均衡技术从可用于处理请求的一个或多个节点中选择特定节点,或者数据库系统可以随机地选择特定节点。
如果为数据库表存储了亲和组映射,则该方法前进到步骤402处。例如,假设数据库客户端180接收到查询:
SELECT*from Customers WHERE lastName=’Smith’
查询路由器180确定是否为“Customers”表存储了亲和组映射。出于说明一个清晰的示例的目的,假设查询路由器180正在为“Customers”表存储亲和组映射,如图3所示。
在步骤402处,查询路由器确定是否可以使用亲和组映射来路由查询。在一个实施例中,如果查询包括基于亲和组键的谓词,则可以基于亲和组映射来路由查询。参考上面的示例,“Customers”表的亲和组键为“lastName”。由于查询包含基于亲和组键“lastName”的谓词“WHERE lastName='Smith'”,因此查询路由器180确定可以基于亲和组映射来路由查询。
以特定亲和组键值为目标的查询(诸如示例中所示的查询)被称为点查询。以值范围为目标的查询被称为范围查询。在一个实施例中,可以使用亲和组映射来仅路由点查询。在其他实施例中,查询路由器还可以基于由查询指定的值的范围,使用亲和组映射来路由范围查询。
查询还可以包括关于多个列的多个谓词。多个列中的每个列可以属于不同的表。在一个实施例中,指定了特定的表,并且基于该特定表的亲和组映射来路由查询。例如,查询路由器可以被配置为基于特定表的亲和组映射来路由查询。作为另一示例,该查询指定了特定表以及尚未划分为亲和组的一个或多个其他表。
在一些实施例中,如果若干表已经被划分为亲和组,则如果每个表被划分为有关的亲和组,则可以路由指定了两个或更多个表的查询。例如,第一表和第二表可各自包括“customer name”列,并且第一表和第二表都基于“customer name”亲和组键被划分为亲和组。在其他实施例中,查询路由器可以配置有表层次结构,该表层次结构指示应该使用一组表的亲和组映射来路由查询的顺序。例如,如果查询指定“orders”表和“customers”表,但“customers”表在层次结构中较高,则可以基于与“customers”表相关联的亲和组映射来路由查询。
如果不能使用亲和组映射路由查询,则查询路由器将特定查询发送到数据库系统,而不使用亲和组映射进行路由,如上所述。如果查询路由器确定可以使用亲和组映射路由查询,则该方法前进到步骤404处。
在步骤404处,查询路由器基于查询和亲和组映射来确定查询应被路由到的节点。如果查询是点查询,则查询路由器确定查询指定的亲和组键值所属的特定亲和组。目标节点是特定亲和组的主节点。查询路由器基于亲和组映射确定主节点。
在一个实施例中,如果查询是关于值的范围,则查询路由器确定值的范围是否落在特定的亲和组内。如果值的范围落入特定的亲和组内,则目标节点是该特定亲和组的主节点。
在一些实施例中,如果值的范围落入若干个亲和组内,则查询路由器确定哪个亲和组包括最大的值范围,并选择该亲和组的主节点作为目标节点。附加地或替代地,查询路由器可以选择多个目标节点,并且查询可以被路由到该多个目标节点中的特定节点。可以基于例如节点之间的负载均衡工作来选择特定节点。
在一个实施例中,如果查询未指定特定值或值的范围,则查询路由器确定哪个亲和组包括最大的亲和组键值范围,并选择该亲和组的主节点作为目标节点。
参考以上示例,亲和组214与从“S”到“U”的值的范围相关联。因此,亲和组214包括查询所指定的姓氏值“Smith”。亲和组映射表320指示亲和组214的主节点是节点132。基于该亲和组映射,查询路由器180选择节点132作为目标节点。
在一个实施例中,查询路由器可以接收与查询相关联的亲和组键值。可以基于接收到的亲和组键值而不是查询的内容来选择目标节点。
在步骤406处,查询路由器将查询发送到目标节点。目标节点接收并处理查询。如果未选择任何目标节点,则查询路由器将查询发送到数据库系统中的任何节点。数据库系统可以从多个可用节点中选择一个节点以接收查询。在当前示例中,查询路由器180将查询发送到节点132。
在一个实施例中,如果目标节点不可用,则数据库系统将查询发送到另一节点。例如,如果节点发生故障,但是查询路由器存储的亲和组映射尚未被更新,则查询路由器可以选择故障节点作为目标节点。数据库系统接收将查询发送到该故障节点的请求,并将查询路由到不同可用节点。
如果目标节点不再是亲和组的主节点,则目标节点仍可以处理接收到的查询。例如,如果亲和组被重新分配了一个不同的主节点,但查询路由器存储的亲和组映射尚未被更新,则查询路由器可以选择不是主节点的节点作为目标节点。但是,在从当前主节点获取必要的锁之后,目标节点仍可以通过从数据库访问请求的数据来处理查询。
在一个实施例中,除了查询之外,查询路由器还包括对亲和组映射或更新的亲和组映射的请求。接收查询的节点除了发送查询请求的任何数据外,还可以向查询路由器发送亲和组映射。例如,如果查询路由器先前从数据库系统接收到指示亲和组映射可用的通知,则查询路由器可以等待直到它发送查询以发送对亲和组映射的请求。
硬件概况
根据一个实施例,这里描述的技术由一个或多个专用计算设备实现。专用计算设备可以硬连线以执行这些技术,也可以包括数字电子设备,诸如一个或多个专用集成电路(ASIC)或被永久编程以执行该技术的现场可编程门阵列(FPGA),或者可以包括一个或多个通用硬件处理器,其被编程为根据固件、存储器、其他存储器或组合中的程序指令来执行该技术。这样的专用计算设备还可以将定制的硬连线逻辑、ASIC(多个)或FPGA(多个)与定制的编程结合起来以实现该技术。专用计算设备可以是台式计算机系统、便携式计算机系统、手持式设备、网络设备或结合了硬连线和/或程序逻辑以实现该技术的任何其他设备。
例如,图5是示出了可以在其上实现本发明的实施例的计算机系统500的框图。计算机系统500包括总线502或用于传达信息的其他通信机制,以及与总线502耦合以用于处理信息的硬件处理器504。硬件处理器504可以是例如通用微处理器。
计算机系统500还包括主存储器506(诸如随机存取存储器(RAM)或其他动态存储设备),其被耦合到总线502,用于存储信息和要由处理器504执行的指令。主存储器506也可以被用于在执行要由处理器504执行的指令期间存储临时变量或其他中间信息。当这样的指令被存储在处理器504可访问的非暂时性存储介质中时,这样的指令使计算机系统500成为被定制成执行指令中指定的操作的专用机器。
计算机系统500还包括只读存储器(ROM)508或耦合到总线502的其他静态存储设备,用于存储处理器504的静态信息和指令。提供存储设备510(诸如磁盘、光盘或固态驱动器)并将其耦合到总线502,用于存储信息和指令。
计算机系统500可以经由总线502被耦合到显示器512(诸如阴极射线管(CRT)),以向计算机用户显示信息。包括字母数字键和其他键的输入设备514被耦合到总线502,用于将信息和命令选择传达给处理器504。另一种类型的用户输入设备是光标控件516,诸如鼠标、跟踪球或光标方向键,用于将方向信息和命令选择传达给处理器504,并用于控制显示器512上的光标移动。该输入设备通常在两个轴(第一轴(例如,x)和第二轴(例如,y))上具有两个自由度,其允许设备指定平面中的位置。
计算机系统500可使用与计算机系统结合使计算机系统500成为或将计算机系统500编程为专用机器的定制的硬接线逻辑、一个或更多个ASIC或FPGA、固件和/或程序逻辑,来实现这里描述的技术。根据一个实施例,这里的技术由计算机系统500响应于处理器504执行包含在主存储器506中的一个或多个指令的一个或多个序列来执行。这样的指令可以从另一存储介质(诸如存储设备510)被读入主存储器506。主存储器506中包含的指令序列的执行使处理器504执行这里描述的处理步骤。在替代实施例中,可以使用硬连线电路代替软件指令或与软件指令结合使用。
如这里所用的术语“存储介质”是指存储使机器以具体方式操作的数据和/或指令的任何非暂时性介质。这样的存储介质可以包括非易失性介质和/或易失性介质。非易失性介质包括例如光盘、磁盘或固态驱动器,诸如存储设备510。易失性介质包括动态存储器,诸如主存储器506。存储介质的常见形式包括例如软、软磁盘、硬盘、固态驱动器、磁带或任何其他磁性数据存储介质、CD-ROM、任何其他光学数据存储介质,带孔图案的任何物理介质、RAM、PROM和EPROM、FLASH-EPROM、NVRAM、任何其他存储器芯片或盒式磁带。
存储介质与传输介质不同,但可以与传输介质结合使用。传输介质参与存储介质之间的信息传输。例如,传输介质包括同轴电缆、铜线和光纤,包括构成总线502的导线。传输介质还可以采用声波或光波的形式,诸如在无线电波和红外数据通信期间生成的声波或光波。
在将一个或多个指令的一个或多个序列传送到处理器504以执行时,可能涉及各种形式的介质。例如,指令最初可以被承载在远程计算机的磁盘或固态驱动器上。远程计算机可以将指令加载到其动态存储器中,然后使用调制解调器通过电话线发送指令。计算机系统500本地的调制解调器可以接收电话线上的数据,并使用红外发射器将数据转换为红外信号。红外检测器可以接收红外信号中承载的数据,并且适当的电路可以将数据置于总线502上。总线502将数据传送到主存储器506,处理器504从该主存储器506中检索并执行指令。由主存储器506接收的指令可以可选地在处理器504执行之前或之后被存储在存储设备510上。
计算机系统500还包括被耦合到总线502的通信接口518。通信接口518提供耦合到被连接到局域网522的网络链路520的双向数据通信。例如,通信接口518可以是综合业务数字网络(ISDN)卡、电缆调制解调器、卫星调制解调器或提供到对应类型的电话线的数据通信连接的调制解调器。作为另一个示例,通信接口518可以是提供到兼容LAN的数据通信连接的局域网(LAN)卡。无线链路也可以被实现。在任何这样的实现中,通信接口518发送和接收承载表示各种类型的信息的数字数据流的电、电磁或光信号。
网络链路520通常提供通过一个或多个网络到其他数据设备的数据通信。例如,网络链路520可以提供通过本地网络522到主机计算机524或由因特网服务提供商(ISP)526操作的数据设备的连接。ISP526进而通过现在通常被称为“因特网”528的全球分组数据通信网络提供数据通信服务。本地网络522和因特网528都使用承载数字数据流的电、电磁或光信号。通过各种网络的信号以及网络链路520上的和通过通信接口518的信号是传输介质的示例形式,该信号将数字数据传送到计算机系统500并从计算机系统500传送数字数据)。
计算机系统500可以通过(一个或多个)网络、网络链路520和通信接口518发送消息并接收数据,包括程序代码。在因特网示例中,服务器530可以通过因特网528、ISP 526、本地网络522和通信接口518发送所请求的应用程序代码。
接收到的代码可以在其被接收到时由处理器504执行,和/或被存储在存储设备510或其他非易失性存储器中,用于以后执行。
在前述说明书中,已经参考可能随实施方式而变化的许多具体细节描述了本发明的实施例。因此,说明书和附图应被认为是说明性的而不是限制性的。本发明范围的唯一且排他性的指示,以及申请人希望作为本发明范围的指示,是根据本申请授权公告的权利要求按这样的权利要求授权公告的具体形式(包括任何后续修改)的字面意义和等效范围。
Claims (24)
1.一种方法,包括:
将被永久存储在一个或多个非暂时性计算机可读介质上的数据库表分区为多个亲和组;
其中,所述数据库表由包括多个节点的多节点数据库管理系统(DBMS)管理;
其中,所述多个节点中的每个节点正在执行数据库服务器实例;
其中,所述多个节点中的每个节点上的所述数据库服务器实例共享访问所述一个或多个非暂时性计算机可读介质上的所述数据库表;
对于所述多个亲和组中的每个亲和组,将所述多个节点中的特定节点分配为所述亲和组的主节点;
向与所述多个节点分离并相对于所述多个节点远程执行的查询路由器发送指示所述多个亲和组中的每个亲和组的所述主节点的映射;
将所述映射存储在所述查询路由器处;
在将需要来自所述数据库表的数据的特定查询发送给所述DBMS之前,所述查询路由器基于所述特定查询和所述映射确定所述特定查询的目标节点;以及
将所述特定查询发送到所述目标节点。
2.如权利要求1所述的方法,其中,所述查询路由器是在客户端节点上执行的客户端应用程序。
3.如权利要求1所述的方法,还包括:
在发送所述特定查询之前,基于所述特定查询,确定是否应基于所述映射来路由所述特定查询;
其中,响应于确定应基于所述映射来路由所述特定查询来执行确定所述目标节点。
4.如权利要求3所述的方法,其中,所述特定查询是第一查询,所述方法还包括:
在将需要来自所述数据库表的数据的第二查询发送给所述DBMS之前,基于所述第二查询确定不应基于所述映射来路由所述特定查询;以及
从所述多个节点中选择在不考虑所述映射的情况下要将第二查询发送到的节点。
5.如权利要求4所述的方法,其中,所述第一查询被发送到的节点与所述第二查询被发送到的节点不同。
6.如权利要求3所述的方法,其中,将所述数据库表分区为所述多个亲和组基于亲和组键,并且其中,确定是否应基于所述映射来路由所述特定查询基于所述特定查询是否具有基于所述亲和组键的谓词。
7.如权利要求6所述的方法,其中,每个亲和组对应于所述亲和组键的一个或多个范围,并且其中,选择所述目标节点包括确定哪个亲和组对应于所述特定查询中指定的亲和组键值落入的范围。
8.如权利要求7所述的方法,其中,选择所述目标节点包括确定哪个亲和组对应于包括所述特定查询中指定的亲和组键值的范围的范围。
9.如权利要求7所述的方法,其中选择所述目标节点包括确定哪个亲和组对应于一个或多个范围,所述一个或多个范围共同包括所述特定查询中指定的亲和组值范围的最大部分。
10.如权利要求1所述的方法,还包括:
检测何时移除了被分配给所述多个亲和组中的一个或多个亲和组的节点;
为所述一个或多个亲和组的每个亲和组分配不同的特定节点作为所述亲和组的所述主节点;以及
向所述查询路由器发送更新的映射,所述更新的映射指示所述多个亲和组中的每个亲和组的所述主节点。
11.如权利要求1所述的方法,还包括:
检测何时添加了附加节点;
为所述多个亲和组中的一个或多个亲和组分配所述附加节点作为所述亲和组的所述主节点;以及
向所述查询路由器发送更新的映射,所述更新的映射指示所述多个亲和组中的每个亲和组的所述主节点。
12.如权利要求1所述的方法,还包括:
其中,所述多节点DBMS包括第二多个节点;
其中,所述第二多个节点中的每个节点正在执行数据库服务器实例;
其中,所述第二多个节点中的每个节点上的所述数据库服务器实例共享访问由所述多节点DBMS管理的第二数据库表;
其中,所述第二多个节点的每个节点上的所述数据库服务器实例不共享访问所述数据库表,并且其中所述多个节点的每个节点上的所述数据库服务器实例不共享访问所述第二数据库表;
将所述第二数据库表分区为第二多个亲和组。
对于所述第二多个亲和组中的每个亲和组,将所述第二多个节点中的特定节点分配为所述亲和组的主节点;
向所述查询路由器发送第二映射,所述第二映射指示所述第二多个亲和组中的每个亲和组的所述主节点。
13.一个或多个非暂时性计算机可读介质,其存储指令,所述指令当由一个或多个硬件处理器执行时,使得:
将被永久存储在一个或多个非暂时性计算机可读介质上的数据库表分区为多个亲和组;
其中,所述数据库表由包括多个节点的多节点数据库管理系统(DBMS)管理;
其中,所述多个节点中的每个节点正在执行数据库服务器实例;
其中,所述多个节点中的每个节点上的所述数据库服务器实例共享访问所述一个或多个非暂时性计算机可读介质上的所述数据库表;
对于所述多个亲和组中的每个亲和组,将所述多个节点中的特定节点分配为所述亲和组的所述主节点;
向与所述多个节点分离并相对于所述多个节点远程执行的查询路由器发送指示所述多个亲和组中的每个亲和组的所述主节点的映射;
将所述映射存储在所述查询路由器处;
在将需要来自所述数据库表的数据的特定查询发送到所述DBMS之前,所述查询路由器基于所述特定查询和所述映射确定所述特定查询的目标节点;以及
将所述特定查询发送到所述目标节点。
14.如权利要求13所述的一个或多个非暂时性计算机可读介质,其中,所述查询路由器是在客户端节点上执行的客户端应用程序。
15.如权利要求13所述的一个或多个非暂时性计算机可读介质,所述指令还包括当由所述一个或多个硬件处理器执行时使得以下操作被执行的指令:
在发送所述特定查询之前,基于所述特定查询,确定是否应基于所述映射来路由所述特定查询;
其中,响应于确定应基于所述映射来路由所述特定查询来执行确定所述目标节点。
16.如权利要求15所述的一个或多个非暂时性计算机可读介质,其中,所述特定查询是第一查询,并且所述指令还包括当由所述一个或多个硬件处理器执行时使得以下操作被执行的指令:
在将需要来自所述数据库表的数据的第二查询发送给所述DBMS之前,基于所述第二查询确定不应基于所述映射来路由所述特定查询;以及
从所述多个节点中选择在不考虑所述映射的情况下要将第二查询发送到的节点。
17.如权利要求16所述的一个或多个非暂时性计算机可读介质,其中,所述第一查询被发送到的节点与所述第二查询被发送到的节点不同。
18.如权利要求13所述的一个或多个非暂时性计算机可读介质,其中,将所述数据库表分区为所述多个亲和组基于亲和组键,并且其中,确定是否应基于所述映射来路由所述特定查询基于所述特定查询是否具有基于所述亲和组键的谓词。
19.如权利要求18所述的一个或多个非暂时性计算机可读介质,其中,每个亲和组对应于所述亲和组键的一个或多个范围,并且其中,选择所述目标节点包括确定哪个亲和组对应于所述特定查询中指定的亲和组键值落入的范围。
20.如权利要求19所述的一个或多个非暂时性计算机可读介质,其中,每个亲和组对应于所述亲和组键的一个或多个范围,并且其中,选择所述目标节点包括确定哪个亲和组对应于包括所述特定查询中指定的亲和组键值的范围的范围。
21.如权利要求19所述的一个或多个非暂时性计算机可读介质,其中,每个亲和组对应于所述亲和组键的一个或多个范围,并且其中,选择所述目标节点包括确定哪个亲和组对应于一个或多个范围,所述一个或多个范围共同包括所述特定查询中指定的亲和组值范围的最大部分。
22.根据权利要求13所述的一个或多个非暂时性计算机可读介质,所述指令还包括指令,当所述指令由所述一个或多个硬件处理器执行时,使得:
检测何时移除了被分配给所述多个亲和组中的一个或多个亲和组的节点;
为所述一个或多个亲和组的每个亲和组分配不同的特定节点作为所述亲和组的所述主节点;以及
向所述查询路由器发送更新的映射,所述更新的映射指示所述多个亲和组中的每个亲和组的所述主节点。
23.如权利要求13所述的一个或多个非暂时性计算机可读介质,所述指令还包括当由所述一个或多个硬件处理器执行时使得以下操作被执行的指令:
检测何时添加了附加节点;
为所述多个亲和组中的一个或多个亲和组分配所述附加节点作为所述亲和组的所述主节点;以及
向所述查询路由器发送更新的映射,所述更新的映射指示所述多个亲和组中的每个亲和组的所述主节点。
24.如权利要求13所述的一个或多个非暂时性计算机可读介质,所述指令还包括当由所述一个或多个硬件处理器执行时使得以下操作被执行的指令:
其中,所述多节点DBMS包括第二多个节点;
其中,所述第二多个节点中的每个节点正在执行数据库服务器实例;
其中,所述第二多个节点中的每个节点上的所述数据库服务器实例共享访问由所述多节点DBMS管理的第二数据库表;
其中,所述第二多个节点的每个节点上的所述数据库服务器实例不共享访问所述数据库表,并且其中所述多个节点的每个节点上的所述数据库服务器实例不共享访问所述第二数据库表;
将所述第二数据库表分区为第二多个亲和组。
对于所述第二多个亲和组中的每个亲和组,将所述第二多个节点中的特定节点分配为所述亲和组的所述主节点;
向所述查询路由器发送第二映射,所述第二映射指示所述第二多个亲和组中的每个亲和组的所述主节点。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762566158P | 2017-09-29 | 2017-09-29 | |
US62/566,158 | 2017-09-29 | ||
US15/845,747 US11954117B2 (en) | 2017-09-29 | 2017-12-18 | Routing requests in shared-storage database systems |
US15/845,747 | 2017-12-18 | ||
PCT/US2018/047354 WO2019067106A1 (en) | 2017-09-29 | 2018-08-21 | ROUTING REQUESTS IN SHARED MEMORIZED DATABASE SYSTEMS |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111164587A true CN111164587A (zh) | 2020-05-15 |
Family
ID=65896699
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880061838.8A Pending CN111164587A (zh) | 2017-09-29 | 2018-08-21 | 共享存储数据库系统中的路由请求 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11954117B2 (zh) |
EP (1) | EP3688621A1 (zh) |
CN (1) | CN111164587A (zh) |
WO (1) | WO2019067106A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11636114B2 (en) | 2019-02-22 | 2023-04-25 | Snowflake Inc. | Multi-level data for database systems |
CN116431677A (zh) * | 2023-06-15 | 2023-07-14 | 南方电网数字电网研究院有限公司 | 基于内存数据库的数据路由方法、系统和可读存储介质 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7179487B2 (ja) * | 2018-05-10 | 2022-11-29 | キヤノン株式会社 | サーバ装置、制御方法及びプログラム |
US11140036B2 (en) * | 2019-01-16 | 2021-10-05 | International Business Machines Corporation | Identifying groups of related nodes in an integration flow |
US11188671B2 (en) * | 2019-04-11 | 2021-11-30 | Bank Of America Corporation | Distributed data chamber system |
US11409781B1 (en) * | 2019-09-30 | 2022-08-09 | Amazon Technologies, Inc. | Direct storage loading for adding data to a database |
CN111026771B (zh) * | 2019-11-19 | 2023-11-07 | 拉货宝网络科技有限责任公司 | 一种保证缓存与数据库数据一致的方法 |
US20220027369A1 (en) * | 2020-07-06 | 2022-01-27 | Instant Labs, Inc. | Query-based routing of database requests |
US20230030168A1 (en) * | 2021-07-27 | 2023-02-02 | Dell Products L.P. | Protection of i/o paths against network partitioning and component failures in nvme-of environments |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104471585A (zh) * | 2012-06-05 | 2015-03-25 | 甲骨文国际公司 | 用于数据访问控制实施的基于sql转换的优化技术 |
US20160026667A1 (en) * | 2014-07-22 | 2016-01-28 | Oracle International Corporation | Memory-aware joins based in a database cluster |
US20160026684A1 (en) * | 2014-07-22 | 2016-01-28 | Oracle International Corporation | Framework for volatile memory query execution in a multi node cluster |
US20160062694A1 (en) * | 2013-02-21 | 2016-03-03 | Netapp, Inc. | Object store architecture for distributed data processing system |
Family Cites Families (70)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5909570A (en) | 1993-12-28 | 1999-06-01 | Webber; David R. R. | Template mapping system for data translation |
US5721909A (en) | 1994-03-30 | 1998-02-24 | Siemens Stromberg-Carlson | Distributed database architecture and distributed database management system for open network evolution |
US6134549A (en) | 1995-03-31 | 2000-10-17 | Showcase Corporation | Client/server computer system having personalizable and securable views of database data |
US6272523B1 (en) | 1996-12-20 | 2001-08-07 | International Business Machines Corporation | Distributed networking using logical processes |
US6131119A (en) | 1997-04-01 | 2000-10-10 | Sony Corporation | Automatic configuration system for mapping node addresses within a bus structure to their physical location |
US20010034814A1 (en) | 1997-08-21 | 2001-10-25 | Michael D. Rosenzweig | Caching web resources using varied replacement sttrategies and storage |
GB2332809A (en) | 1997-12-24 | 1999-06-30 | Northern Telecom Ltd | Least cost routing |
US6405198B1 (en) * | 1998-09-04 | 2002-06-11 | International Business Machines Corporation | Complex data query support in a partitioned database system |
US6393415B1 (en) * | 1999-03-31 | 2002-05-21 | Verizon Laboratories Inc. | Adaptive partitioning techniques in performing query requests and request routing |
US6609131B1 (en) | 1999-09-27 | 2003-08-19 | Oracle International Corporation | Parallel partition-wise joins |
JP2001297026A (ja) | 2000-04-11 | 2001-10-26 | Hitachi Ltd | 複数のデータベースマネージメントシステムを有する計算機システム |
US7225240B1 (en) | 2000-05-20 | 2007-05-29 | Ciena Corporation | Decoupling processes from hardware with logical identifiers |
US6523036B1 (en) * | 2000-08-01 | 2003-02-18 | Dantz Development Corporation | Internet database system |
US20020146129A1 (en) | 2000-11-09 | 2002-10-10 | Kaplan Ari D. | Method and system for secure wireless database management |
US20020087798A1 (en) | 2000-11-15 | 2002-07-04 | Vijayakumar Perincherry | System and method for adaptive data caching |
US7162467B2 (en) | 2001-02-22 | 2007-01-09 | Greenplum, Inc. | Systems and methods for managing distributed database resources |
US8473568B2 (en) | 2001-03-26 | 2013-06-25 | Microsoft Corporation | Methods and systems for processing media content |
US6880002B2 (en) | 2001-09-05 | 2005-04-12 | Surgient, Inc. | Virtualized logical server cloud providing non-deterministic allocation of logical attributes of logical servers to physical resources |
US6873694B2 (en) | 2001-10-30 | 2005-03-29 | Hewlett-Packard Development Company, L.P. | Telephony network optimization method and system |
US8271530B2 (en) * | 2002-04-08 | 2012-09-18 | Oracale International Corporation | Method and mechanism for managing and accessing static and dynamic data |
US6850942B2 (en) | 2002-04-26 | 2005-02-01 | International Business Machines Corporation | System and method for providing multiple virtual database connections in a relational database system |
US6925541B2 (en) | 2002-06-12 | 2005-08-02 | Hitachi, Ltd. | Method and apparatus for managing replication volumes |
US20040030801A1 (en) | 2002-06-14 | 2004-02-12 | Moran Timothy L. | Method and system for a client to invoke a named service |
CN1777893A (zh) | 2003-03-17 | 2006-05-24 | 罗伯特·丹特 | 基于网络的数据库通信系统 |
JP2004302751A (ja) | 2003-03-31 | 2004-10-28 | Hitachi Ltd | 計算機システムの性能管理方法、および、記憶装置の性能を管理する計算機システム |
US7599948B2 (en) | 2003-10-10 | 2009-10-06 | Oracle International Corporation | Object relational mapping layer |
US20050114309A1 (en) | 2003-11-24 | 2005-05-26 | International Business Machines Corporation | Method for invoking and integrating multiple functional modules |
US7657508B2 (en) | 2006-12-29 | 2010-02-02 | Teradata Us, Inc. | Automated block size management for database objects |
JP4631301B2 (ja) | 2004-03-31 | 2011-02-16 | 株式会社日立製作所 | 記憶装置のキャッシュ管理方法 |
US7177878B2 (en) | 2004-04-13 | 2007-02-13 | International Business Machines Corporation | Simple persistence mechanism for server based web applications |
US20060064478A1 (en) | 2004-05-03 | 2006-03-23 | Level 3 Communications, Inc. | Geo-locating load balancing |
US7805407B1 (en) | 2004-06-16 | 2010-09-28 | Oracle America, Inc. | System and method for dynamic configuration of replicated database servers |
US7809690B2 (en) | 2004-07-13 | 2010-10-05 | Oracle International Corporation | Performance metric-based selection of one or more database server instances to perform database recovery |
US7313570B2 (en) | 2004-08-05 | 2007-12-25 | International Business Machines Corporation | Mapping Enterprise Java Bean attributes to database schema |
US7483918B2 (en) | 2004-08-10 | 2009-01-27 | Microsoft Corporation | Dynamic physical database design |
US9262490B2 (en) | 2004-08-12 | 2016-02-16 | Oracle International Corporation | Adaptively routing transactions to servers |
US8458467B2 (en) | 2005-06-21 | 2013-06-04 | Cisco Technology, Inc. | Method and apparatus for adaptive application message payload content transformation in a network infrastructure element |
US7493400B2 (en) | 2005-05-18 | 2009-02-17 | Oracle International Corporation | Creating and dissolving affinity relationships in a cluster |
US8037169B2 (en) | 2005-05-18 | 2011-10-11 | Oracle International Corporation | Determining affinity in a cluster |
JP4611830B2 (ja) | 2005-07-22 | 2011-01-12 | 優 喜連川 | データベース管理システム及び方法 |
US7814065B2 (en) | 2005-08-16 | 2010-10-12 | Oracle International Corporation | Affinity-based recovery/failover in a cluster environment |
US8527473B1 (en) | 2005-10-20 | 2013-09-03 | Teradata Us, Inc. | Identifying database request sources in multi-database systems |
JP2007206913A (ja) | 2006-02-01 | 2007-08-16 | Nec Corp | データベースアクセスシステム、アプリケーションサーバノード、データベースアクセス方法及びプログラム |
US7774329B1 (en) | 2006-12-22 | 2010-08-10 | Amazon Technologies, Inc. | Cross-region data access in partitioned framework |
US20090182718A1 (en) | 2007-05-08 | 2009-07-16 | Digital River, Inc. | Remote Segmentation System and Method Applied To A Segmentation Data Mart |
NL1034027C2 (nl) | 2007-06-22 | 2008-12-23 | Stork Pmt | Inrichting en werkwijze voor het in positie brengen en het aanbrengen van een borstkap van een geslacht gevogelte op een productdrager. |
US8391295B2 (en) | 2007-07-31 | 2013-03-05 | Oracle International Corporation | Temporal affinity-based routing of workloads |
US20100174863A1 (en) | 2007-11-30 | 2010-07-08 | Yahoo! Inc. | System for providing scalable in-memory caching for a distributed database |
US20090144338A1 (en) | 2007-11-30 | 2009-06-04 | Yahoo! Inc. | Asynchronously replicated database system using dynamic mastership |
US20090198736A1 (en) | 2008-01-31 | 2009-08-06 | Jinmei Shen | Time-Based Multiple Data Partitioning |
US20090216438A1 (en) | 2008-02-21 | 2009-08-27 | Microsoft Corporation | Facility map framework |
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 |
GB2459354A (en) | 2008-04-25 | 2009-10-28 | Ibm | Emulating a plurality of databases using a single physical database |
US8145806B2 (en) | 2008-09-19 | 2012-03-27 | Oracle International Corporation | Storage-side storage request management |
US8285710B2 (en) * | 2008-10-09 | 2012-10-09 | International Business Machines Corporation | Automated query path reporting in distributed databases |
US8117488B2 (en) | 2009-10-23 | 2012-02-14 | Oracle International Corporation | Cluster neighborhood event advisory |
US8510334B2 (en) | 2009-11-05 | 2013-08-13 | Oracle International Corporation | Lock manager on disk |
US9589029B2 (en) | 2010-12-28 | 2017-03-07 | Citrix Systems, Inc. | Systems and methods for database proxy request switching |
EP2729883B1 (en) * | 2011-07-08 | 2021-12-29 | Yale University | Query execution systems and methods |
US9575272B2 (en) * | 2012-09-07 | 2017-02-21 | Commscope Technologies Llc | Manufacturing and using ferrule-less multi-fiber connectors |
US8838535B2 (en) | 2012-10-05 | 2014-09-16 | Oracle International Corporation | Providing services across systems that manage distributed replicas |
KR101544356B1 (ko) * | 2012-10-31 | 2015-08-13 | 삼성에스디에스 주식회사 | 메타데이터 및 트랜잭션 발생량을 고려한 동적 샤딩 기능을 지원하는 분산 데이터베이스 관리 방법 및 그 구성 노드 |
US9507843B1 (en) * | 2013-09-20 | 2016-11-29 | Amazon Technologies, Inc. | Efficient replication of distributed storage changes for read-only nodes of a distributed database |
US9767178B2 (en) * | 2013-10-30 | 2017-09-19 | Oracle International Corporation | Multi-instance redo apply |
US9723054B2 (en) * | 2013-12-30 | 2017-08-01 | Microsoft Technology Licensing, Llc | Hierarchical organization for scale-out cluster |
US10089307B2 (en) * | 2014-12-31 | 2018-10-02 | International Business Machines Corporation | Scalable distributed data store |
US10331634B2 (en) | 2015-10-07 | 2019-06-25 | Oracle International Corporation | Request routing and query processing in a sharded database |
JP6333796B2 (ja) * | 2015-11-25 | 2018-05-30 | ファナック株式会社 | 複数のcpuコアで最適な負荷配分を行う数値制御装置 |
US10650017B1 (en) * | 2016-08-29 | 2020-05-12 | Amazon Technologies, Inc. | Tiered storage for data processing |
US11281706B2 (en) * | 2016-09-26 | 2022-03-22 | Splunk Inc. | Multi-layer partition allocation for query execution |
-
2017
- 2017-12-18 US US15/845,747 patent/US11954117B2/en active Active
-
2018
- 2018-08-21 WO PCT/US2018/047354 patent/WO2019067106A1/en active Search and Examination
- 2018-08-21 CN CN201880061838.8A patent/CN111164587A/zh active Pending
- 2018-08-21 EP EP18773005.6A patent/EP3688621A1/en active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104471585A (zh) * | 2012-06-05 | 2015-03-25 | 甲骨文国际公司 | 用于数据访问控制实施的基于sql转换的优化技术 |
US20160062694A1 (en) * | 2013-02-21 | 2016-03-03 | Netapp, Inc. | Object store architecture for distributed data processing system |
US20160026667A1 (en) * | 2014-07-22 | 2016-01-28 | Oracle International Corporation | Memory-aware joins based in a database cluster |
US20160026684A1 (en) * | 2014-07-22 | 2016-01-28 | Oracle International Corporation | Framework for volatile memory query execution in a multi node cluster |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11636114B2 (en) | 2019-02-22 | 2023-04-25 | Snowflake Inc. | Multi-level data for database systems |
CN116431677A (zh) * | 2023-06-15 | 2023-07-14 | 南方电网数字电网研究院有限公司 | 基于内存数据库的数据路由方法、系统和可读存储介质 |
CN116431677B (zh) * | 2023-06-15 | 2023-11-21 | 南方电网数字电网研究院有限公司 | 基于内存数据库的数据路由方法、系统和可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US20190102408A1 (en) | 2019-04-04 |
EP3688621A1 (en) | 2020-08-05 |
US11954117B2 (en) | 2024-04-09 |
WO2019067106A1 (en) | 2019-04-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111164587A (zh) | 共享存储数据库系统中的路由请求 | |
US10275184B2 (en) | Framework for volatile memory query execution in a multi node cluster | |
US10002148B2 (en) | Memory-aware joins based in a database cluster | |
US11734307B2 (en) | Caching systems and methods | |
US9875259B2 (en) | Distribution of an object in volatile memory across a multi-node cluster | |
US11003664B2 (en) | Efficient hybrid parallelization for in-memory scans | |
US11175832B2 (en) | Thread groups for pluggable database connection consolidation in NUMA environment | |
US9645928B2 (en) | Distributed directory service for in-memory compression unit home location | |
US11586641B2 (en) | Method and mechanism for efficient re-distribution of in-memory columnar units in a clustered RDBMs on topology change | |
CN109716321B (zh) | N路散列连接 | |
US10534765B2 (en) | Assigning segments of a shared database storage to nodes | |
CN109844723B (zh) | 使用基于服务的统计信息进行主控建立的方法和系统 | |
US10353920B2 (en) | Efficient mirror data re-sync | |
KR20200069977A (ko) | 분산 파일 시스템의 동작 방법 | |
CN115757470A (zh) | 元数据访问方法、装置、电子设备及存储介质 | |
JP2000347912A (ja) | データベース管理方法およびシステム |
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 |