CN111797092A - 在数据库系统内提供次级索引的方法和系统 - Google Patents
在数据库系统内提供次级索引的方法和系统 Download PDFInfo
- Publication number
- CN111797092A CN111797092A CN201911279653.7A CN201911279653A CN111797092A CN 111797092 A CN111797092 A CN 111797092A CN 201911279653 A CN201911279653 A CN 201911279653A CN 111797092 A CN111797092 A CN 111797092A
- Authority
- CN
- China
- Prior art keywords
- partition
- secondary index
- changes
- columns
- replication protocol
- 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
Links
- 238000000034 method Methods 0.000 title claims description 30
- 238000005192 partition Methods 0.000 claims abstract description 244
- 230000010076 replication Effects 0.000 claims description 73
- 230000001360 synchronised effect Effects 0.000 claims description 10
- 238000000638 solvent extraction Methods 0.000 claims description 6
- 238000012545 processing Methods 0.000 description 23
- 230000009471 action Effects 0.000 description 12
- 238000004590 computer program Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 12
- 230000004044 response Effects 0.000 description 11
- WVCHIGAIXREVNS-UHFFFAOYSA-N 2-hydroxy-1,4-naphthoquinone Chemical compound C1=CC=C2C(O)=CC(=O)C(=O)C2=C1 WVCHIGAIXREVNS-UHFFFAOYSA-N 0.000 description 7
- 238000005457 optimization Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000002955 isolation Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000000644 propagated effect Effects 0.000 description 3
- 238000013138 pruning Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000003362 replicative effect Effects 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 230000000007 visual effect Effects 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
-
- 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)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开的实现方式包含:在数据库系统的节点的集合中的每个节点处提供多个表格分区中的表格分区,多个表格分区是通过使用主键分区表格提供,在数据库系统的节点的集合中的每个节点处提供多个次级索引分区中的次级索引分区,每个次级索引分区包含表格的至少一部分的复制表格,多个次级索引分区是通过使用一个或多个次键分区表格提供的,以及对于对表格分区执行的至少一个操作,执行复制协议,以将至少一个操作复制在对应于该表格分区的次级索引分区上。
Description
背景技术
数据库系统用于储存数据并允许执行对储存的数据的查询。例如,用户可以向数据库系统递交查询,数据库系统处理查询以提供查询结果,查询结果包含数据库系统内储存的响应于查询的数据。典型地,数据储存在数据库系统内的表格中。在一些示例中,表格可以包含主索引,主索引将表格的字段(列)索引,其必然不含有复制,并且包含唯一的主键。
在一些实例中,数据库系统可以是分布式的并且可以包含多个节点,表格可以在多个节点之上分区。例如,表格(T)可以使用作为分区键的主键(例如,分区的表格的列)分区为多个分区(T,P1;T,P2)。每个分区储存在相应的节点中。在这样的系统中,查询可以指示主键,其被交叉引用到表格的主索引,以确定搜索哪个分区来提供对查询的响应(例如,适当分区储存在哪个节点中)。在一些实例中,然而,查询可以包含非主键(也称为次键),其可以视为不是主键的任意其他键。在一些示例中,非主键可以包含所谓的外部(foreign)键。更特别地,外部键可以描述为限定在第二分区(表格)中并且引用第一分区(表格)的主键。
为了在查询分区的表格中允许使用次键,可以提供次级索引。次级索引允许使用次键对分区的数据库中的记录的高效访问。然而,实现和维护次级索引就技术资源而言可能是低效的。例如,分区的表格中的数据记录上的改变需要更新次级索引。
发明内容
本公开的实现方式包含计算机实现的方法,其用于支持分布式数据库系统中的可缩放次级索引。更特别地,本公开的实现方式涉及使用复制引擎来支持分布式数据库系统中的可缩放次级索引。
在一些实现方式中,动作包含在数据库系统的节点的集合中的每个节点处,提供多个表格分区中的表格分区,多个表格分区是通过使用主键分区表格提供的,在数据库系统的节点的集合中的每个节点处,提供多个次级索引分区中的次级索引分区,每个次级索引分区包含表格的至少一部分的复制表格,多个次级索引分区通过使用一个或多个次键分区表格提供的,以及对于对表格分区执行的至少一个操作,执行复制协议以将至少一个操作复制在对应于表格分区的次级索引分区上。其他实现方式包含对应的系统、设备,和计算机程序,其配置为进行编码在计算机储存装置上的方法的动作。
这些和其他的实现方式可以各自可选地包含一个或多个以下特征:第一次级索引分区包含表格的列的第一集合,并且第二次级索引分区包含表格的列的第二集合,列的第一集合不同于列的第二集合;复制协议包含不含多阶段提交的异步复制协议,多阶段提交用于提交由对表格分区和对应于表格分区的次级索引分区的至少一个操作导致的对表格分区的一个或多个改变;复制协议在提交对表格分区和对应于表格分区的次级索引分区的一个或多个改变之前执行一个或多个改变的异步复制;复制协议包含同步复制协议,同步复制协议确保在提交对表格分区和对应于表格分区的次级索引分区的一个或多个改变之前在对应于表格分区的次级索引分区中表示一个或多个改变;复制协议执行多阶段提交,以提交对表格分区和对应于表格分区的次级索引分区的一个或多个改变;以及,多个次级索引分区中的次级索引分区共同地限定表格的全局次级索引。
本公开还提供一个或多个非瞬态计算机可读储存介质,其耦接到一个或多个处理器并且在其上具有储存的指令,当指令由一个或多个处理器执行时,使一个或多个处理器进行根据本文中所提供的方法的实现方式的操作。
本公开还提供用于实现本文中所提供的方法的系统。系统包含一个或多个处理器,以及耦接到一个或多个处理器且在其上具有储存的指令的计算机可读储存介质,当指令由一个或多个处理器执行时,使一个或多个处理器进行根据本文中所提供的方法的实现方式的操作。
应理解,根据本公开的方法可以包含本文中所描述的方面和特征的任意组合。即,根据本公开的方法不限于本文中所具体描述的方面和特征的组合,而也包含所提供的方面和特征的任意组合。
一个或多个本公开的实现方式的细节伴随附图和以下说明书提出。本公开的其他细节和优点将从说明书和附图并从权利要求变得明显。
附图说明
图1绘示了可以用于执行本公开的实现方式的示例性环境。
图2绘示了根据本公开的实现方式的示例性概念架构。
图3A-3C绘示了示例性索引架构。
图4绘示了根据本公开的实现方式的示例性索引架构。
图5A和图5B绘示了根据本公开的实现方式的用于维护分布式次级索引的表示相应的复制协议的示例性信号流。
图6绘示了可以根据本公开的实现方式执行的示例性过程。
图7是可以用于执行本公开的实现方式的示例性计算机系统的示意性图示。
相同附图标记在各附图中指示相同元件。
具体实施方式
本公开的实现方式包含用于支持分布式数据库系统中的可缩放次级索引的计算机实现的方法。更特别地,本公开的实现方式涉及使用复制引擎来支持分布式数据库系统中的可缩放次级索引。在一些实现方式中,动作包含在数据库系统的节点的集合中的每个节点处,提供多个表格分区中的表格分区,多个表格分区是通过使用主键分区表格提供的,在数据库系统的节点的集合中的每个节点处,提供多个次级索引分区中的次级索引分区,每个次级索引分区包含表格的至少部分的复制表格,多个次级索引分区是通过使用一个或多个次键分区表格提供的,以及对于对表格分区执行的至少一个操作,执行复制协议以将至少一个操作复制在对应于表格分区的次级索引分区上。
图1绘示了根据本公开的实现方式的示例性架构100。在绘示的示例中,示例性架构100包含客户端装置102、网络106,以及服务器系统104。服务器系统104包含一个或多个服务器装置和数据库108(例如,处理器、存储器)。在绘示的示例中,用户112与客户端装置102交互。
在一些示例中,客户端装置102可以在网络106上与服务器系统104通信。在一些示例中,客户端装置102包含任意适当类型的计算装置,诸如桌面式计算机、膝上式计算机、手持计算机、平板计算机、个人数字助理(PDA)、蜂窝电话、网络器材、相机、智能电话、增强型通用分组无线业务(EGPRS)移动电话、媒体播放器、导航装置、电邮装置、游戏控制台,或这些装置或其他数据处理装置中的两个或更多个的适当组合。在一些实现方式中,网络106可以包含大型计算机网络,诸如局域网络(LAN)、广域网络(WAN)、互联网、蜂窝网络、电话网络(例如,PSTN)或其连接任意数目的通信装置、移动计算装置、固定计算装置和服务器系统的适当组合。
在一些实现方式中,服务器系统104包含至少一个服务器和至少一个数据储存体。在图1的示例中,服务器系统104意图表示各种形式的服务器,包含但不限于网络服务器、应用服务器、代理服务器、网络服务器,和/或服务器池。总体上,服务器系统接受对应用服务的请求,并且将这样的服务提供至任意数目的客户端装置(例如,网络106上的客户端装置102)。
根据本公开的实现方式,并且如上所述,服务器系统104可以托管内存内(in-memory)数据库系统,其将主存储器用作数据储存体。主存储器可以包含一个或多个类型的存储器(例如,DRAM、NVM),其在存储器总线上与一个或多个处理器(例如,(多个)CPU)通信。内存内数据库系统可以与采用磁盘储存机制的数据库管理系统对比。在一些示例中,内存内数据库系统可以比磁盘储存数据库更快,因为内部优化算法可以更简单并执行更少的CPU指令。在一些示例中,访问内存内数据库系统中的数据可以减少或消除查询数据时的搜寻时间,提供比磁盘储存数据库更快和更可预测的性能。内存内数据库可以包含面向行(row-oriented)的数据库,其中数据储存在任意数目的行或记录中。内存内数据库还可以包含面向列(column-oriented)的内存内数据库,其中数据表格储存为数据的列的区段(而非作为数据的行)。示例性内存内数据库系统是由德国Walldorf的SAP SE提供的SAP HANA。
本文参考作为示例性内存内数据库系统的SAP HANA更详细地描述了本公开的实现方式。然而,可以设想,本公开的实现方式可以用适当内存内数据库系统实现。
图2绘示了根据本公开的实现方式的示例性概念架构200。示例性概念架构200表示以上介绍的SAP HANA分布式内存内数据库系统的简化视图。在一些示例中,示例性概念架构200遵循所谓的无共享(shared-nothing)分区数据库架构。总体上,无共享是指被分区并分布在数据库系统内的数据。出于增加总计算资源和/或总内存内数据库空间的目的,示例性概念架构200利用多个独立数据库节点202,其在商业网络204上彼此互连。每个数据库节点202包含各自的数据储存体206,其储存相应的节点202的日志和检查点。在绘示的示例中,一个或多个应用程序208与数据库节点202中的一个或多个交互。在一些示例中,每个应用程序208可以视作查询内存内数据库并且包含数据库客户端库210的客户端。
在一些实现方式中,多个数据库节点202属于相同数据库模式(schema),并且每个数据库节点202的表格可以分布在数据库节点202上。在一些示例中,单个表格可以水平地分区为多个分区,每个分区含有表格的记录的不连贯的(disjoint)集合。每个分区可以独立地分布在多个数据库节点202上。在一些实现方式中,为了分区表格,为表格指定主键以及分区函数。示例性分区函数可以包含但不限于散列(hash)、范围(range),或其组合。在一些示例中,主键或其子集选择为表格的分区键。
无论表格如何分区和分布,多个数据库节点202都属于相同的事务域(transaction domain)。以此方式,确保严格原子性(atomicity)、一致性、隔离以及耐久性(ACID)性质,即使对于跨节点事务。为此,整合两阶段提交和分布式快照隔离(distributedsnapshot isolation)。尽管(例如,由应用程序208递交的)查询可以被客户端库210直接路由到任何数据库节点202,但客户端库210找到给定查询的最优目标数据库节点。在一些示例中,这通过查找相应的编译查询执行计划(QEP)而实现,其在客户端库210中透明地缓存和刷新。当QEP的执行涉及多个节点202时,服务器侧查询执行引擎通过交换中间查询结果来协调分布式查询处理。中间查询结果可以被组合以提供查询结果。
在一些示例中,对于用分区键谓词(predicate)的查询,拥有匹配记录的目标数据库节点202可以通过调用分区函数而识别。另一方面,用非分区键谓词的查询(例如,用次键(外部键)谓词的查询)要求在表格所分布的全部节点202进行全表扫描。为更高效地处理这种类型的查询,维护次级索引是必要的。在传统数据库系统中,次级索引可以以各种方式实现,包含但不限于局部次级索引、全局次级索引以及分区全局次级索引,其中每一者在本文中更详细描述。
图3A绘示了使用局部次级索引的示例性架构300。示例性架构300表示创建具有跨多个节点302分布的分区304的分区表格的次级索引的相对直接的方式。在图3A的示例中,为每个节点302维护每个表格分区的分开的局部索引(称为局部次级索引)。
在图3A的示例中,表格T1通过将主键作为其分区键而分区为三个表格分区(T1.P1,T1.P2,T1.P3)304。三个表格分区中的每一个具有其自身的局部次级索引(A2)306,局部次级索引(A2)306跨越属于共位的表格分区的记录。借此,可以避免表格扫描。然而,对于次键访问查询,应访问数据库节点302,因为分区键和次键按照定义彼此不匹配。因此,随着表格分布的节点302的数目增大,次键访问查询的成本在总体系统中的网络资源消耗和CPU资源消耗方面成比例地增大。尽管响应时间自身可以通过并行地进行多个局部索引访问优化,但访问的节点302的数目不变。
图3B绘示了使用全局次级索引的示例性架构320。与维护多个局部索引不同,如以上关于图3A所讨论,在节点322中提供全局索引(A2)326,如图3B中所示。全局索引322跨全部分区304。该方案可以将访问的节点302、322的数目减少为至多两个,而无论表格的分区的数目。然而,该方案造成写入事务的资源方面的成本。这是因为表格分区处的更新可能涉及更新位于远处节点中的对应的全局索引条目。此外,因为全局索引326的大小可能比单个每分区局部索引(例如,图3A的局部索引306)的大小相对更大,拥有全局索引326的节点322将要求更大的空间。此外,索引渡越时间(traversal time)由于增加的索引高度可能更长。
图3C绘示了使用分区全局次级索引的示例性架构340。在图3C的示例中,由次键分区全局索引,以提供每个节点302处的各自的局部全局索引分区336。因此,局部全局索引分区336可以指向远处表格分区304中的记录。与非分区全局索引(例如,图3A的索引306)相比,使用局部全局索引分区336减小每节点索引大小,并且改善每节点索引查找性能。然而,当事务更新表格分区304的多个记录时,可能导致更新多个局部全局索引分区336。这要求使用多个远处节点302的资源昂贵的两阶段提交。虽然存在异步地维护远处全局索引分区的选项,牺牲事务一致性在特定目标应用领域中是不可接受的。
相应地,图3A-3C中表示的上述方案都不能容易地符合涉及分区表格的大量的并发次键访问和并发写入操作的应用领域中的给定性能要求。
鉴于此,并且如本文中更详细描述的,本公开的实现方式涉及使用复制引擎来支持分布式数据库系统中的可缩放次级索引。本公开的实现方式通过在每个节点包含全局索引分区提供全局索引,每个全局索引分区被提供为表格(被分区的原始表格)的副本表格。在一些实现方式中,副本表格可以与原始表格不同地分区。如本文中更详细描述的,在原始表格分区处的数据操纵语言(DML)操作上,DML操作的结果将以事务一致的方式自动地传播并应用于对应的全局索引分区。
在一些示例中,对于单个数据库表格,可以存在多个次级索引。例如,对于包含列{A,B,C,D}的表格,主键建立在列A上,三个次级索引分别用于列B、C和D。对于B上的全局次级索引(GSI-B),全局索引副本不需要包含{A,C,D}。这节省存储器并且使复制更加资源高效。相似地,对于C上的全局次级索引(GSI-C),全局索引副本不需要包含{A,B,D},并且对于D上的全局次级索引(GSI-D),全局索引副本不需要包含{A,B,C}。
在一些实现方式中,并且如本文中更详细描述的,可以提供全局次级索引的多个拷贝。例如,可以提供GSI-B的多个拷贝,并且可以分布到不同数据库节点。在一些实现方式中,分开的局部索引可以在全局次级索引之上创建。例如,在由列B分区GSI-B之后,对于GSI-B的分区中的每一个,可以创建列B上的局部索引,以加速GSI-B的每个特定分区内的局部查询处理。
图4绘示了根据本公开的实现方式的示例性索引架构400。在图4的示例中,提供节点402,源表格(原始表格T1)的分区(T1.P1,T1.P2,T1.P3)404跨节点402分布。源表格使用主键分区。在一些实现方式中,对每个分区404在每个节点402处提供次级索引406。根据本公开的实现方式,每个次级索引406被提供为源表格的分区。更特别地,源表格(T1)的副本(T1’)被提供并被使用次键分区,以提供多个分区(T1’.P1,T1’.P2,T1’.P3)。在一些示例中,每个分区包含源表格的列的子集。每个分区在相应的节点402处储存为次级索引406。
根据本公开的实现方式,每个次级索引406被提供作为原始源表格的至少一部分的副本表格。更特别地,每个副本表格包含原始源表格的列的子集,列的子集包含一个或多个列。在一些实现方式中,第一节点处的第一次级索引包含列的第一子集,并且第二节点处的第二次级索引包含列的第二子集,列的第一子集不同于列的第二子集。更清楚地说,每个次级索引406可以包含源表格的复制列,其不同于其他次级索引406中提供的复制列。
如本文中详细描述的,本公开的实现方式通过应用表格复制中可用的优化来最小化由写入事务导致的性能开销。例如,SAP HANA实现HANA表格复制,其通过最小化初级表格与初级表格的副本之间的传播延迟而允许操作数据的可缩放和实时报告。根据本公开的实现方式,进行复制协议以将表格上的操作(例如,DML操作)传播至作为副本表格提供的相应的次级索引。
更详细地,表格复制的特征包含支持仅指定的表格的集合的复制(而不是复制整个数据库)。当实现分布式次级索引时,可以仅对需要的表格创建副本。表格复制的另一特征包含支持跨格式复制。为了最大化在线事务处理(OLTP)/在线分析处理(OLAP)混合工作负荷的性能,可以创建面向行的源表格的面向列的副本表格。为此,以储存无关逻辑格式(storage-neutral logical format)定义DML复制日志。这提供与原始源表格的分区键不同地分区全局索引分区(副本表格)的基础。
表格复制的另一特征包含使用优化以最小化初级与副本之间的传播延迟。示例性优化包含但不限于基于所谓的记录版本ID(RVID)和早期日志传送机制的依记录排序的无锁并行日志回放。这些优化降低维护写入事务的全局索引的性能开销。
表格复制的另一特征包含支持惰性复制(lazy replication)和主动复制(eagerreplication)模式两者。这些在HANA中分别称为异步表格复制(ATR)和乐观同步表格复制(OSTR)。在一些示例中,OSTR确保初级和各自的副本上的事务一致性,而没有任何可见性延迟。因此,本公开的实现方式将OSTR用于对全局索引分区的复制。此外,因为OSTR支持同步事务提交,而没有ATR所要求的昂贵两阶段提交,同步地更新写入事务上的全局索引的性能开销可以降低。
图5A和图5B绘示示例性信号流500、500’,其表示根据本公开的实现方式的维护分布式次级索引的相应的复制协议。图5A绘示了基于同步DML传播和两阶段提交(2PC)的示例性复制协议。图5B绘示了基于OSTR的示例性复制协议。虽然图5A和图5B是参考初级表格504和次级索引506描述为进行某些动作,可设想到在节点内执行的事务和/或计算机可执行程序在初级表格504和/或在次级索引506进行这样的动作。
特别参考图5A,示例性信号流500包含客户端502(例如,执行与数据库系统交互的应用程序的服务器)、初级表格504(例如,储存在数据库系统内的多个节点之一中的表格分区)和次级索引506。根据本公开的实现方式,次级索引506被提供为初级表格504的副本表格并且与初级表格504一起储存在节点上。
在绘示的示例中,客户端502在数据库系统中进行事务,事务包含多个DML操作(例如,更新、插入、删除)。例如,客户端在初级表格504上发起510DML操作。DML操作被复制512到次级索引506。例如,节点上操作的复制引擎可以将DML操作复制到次级索引506。提供响应514、516以通知DML操作在初级表格504上执行并且复制到次级索引506。在绘示的示例中,客户端502发起520初级表格504上的另一DML操作(例如,更新、插入、删除)。DML操作被复制522到次级索引506。例如,节点上操作的复制引擎可以将DML操作复制到次级索引506。提供响应524、526以通知DML操作在初级表格504上执行并且复制到次级索引506。在绘示的示例中,客户端502在初级表格504上发起530查询(例如,选择数据),并且提供响应532到客户端502。
在图5A的示例中,执行两阶段提交以提交DML操作到初级表格504和次级索引506两者。在一些示例中,执行提交以使自事务开始以来的所有数据修改成为数据库系统的永久部分(例如,由DML操作导致的修改)。客户端502发起540以初级表格504的提交,其发起542以次级索引506的提交。次级索引506写入544提交前日志,并且对初级表格504响应546。初级表格504写入548提交日志并通知550次级索引506。次级索引506写入提交后日志552并且对初级表格504响应,其响应于客户端502指示提交已经执行。
特别参考图5B,示例性信号流500’包含客户端502(例如,执行与数据库系统交互的应用程序的服务器)、初级表格504(例如,储存在数据库系统内的多个节点之一中的表格分区)和次级索引506,其被提供作为初级表格504的副本表格并且被与初级表格504一起储存在节点上。在绘示的示例中,客户端502在数据库系统中进行事务,包含多个DML操作,如以上参考图5A所描述。然而,对于每个DML操作,用次级索引506触发相应的异步复制560、562。与图5A相似,客户端502发起530初级表格504上的查询(例如,选择数据),并且响应532被提供到客户端502。
在图5B的示例中,执行提交以将DML操作提交到初级表格504和次级索引506两者。在一些示例中,执行提交以使自事务开始以来的所有数据修改成为数据库系统的永久部分(例如,由DML操作导致的修改)。客户端502发起540以初级表格504的提交,其发起542以次级索引506的提交。次级索引506等待直到DML回放完成并且在发送响应546之前预提交564。与此同时,初级表格504写入提交日志568。事务信令通知(signal)570以在次级索引506处写入572提交后日志。
在一些实现方式中,图5B中所表示的OSTR确保从事务角度,副本数据库状态与其初级表格维持一致,同时最小化对初级写入事务施加的性能开销。通过比较图5A的示例性信号流500和图5B的示例性信号流500’,可见整合在OSTR中的优化。在一些示例中,OSTR采取组合异步DML复制和同步事务提交的混合方案。即,DML日志条目在DML时间生成,但其到副本的传播被异步地发起,而不影响DML响应时间。在事务提交时间,事务在等待之后继续提交处理,直到其全部的先前DML日志条目成功应用于副本。尽管在图5A的示例性信号流500中,每个DML都涉及去往副本的同步网络往返(round trip),但在图5B的示例性信号流500’中,DML操作处存在很小延迟或没有延迟。此外,考虑到多语句事务在许多企业数据库应用程序中是常见的,图5B中表示的混合协议将DML日志处理与其他初级侧事务操作(例如,查询)交错。这还导致最小化事务提交时间的延迟。
在一些示例中,对于DML日志回放,OSTR采用无锁并行回放机制,其提供副本表格(例如,次级索引)处的可缩放日志回放性能。借此,尽管初级侧写入事务的并发性提高,但副本处的DML回放时间可以维持在最小级别。这还允许提交时间延迟被最小化。并行回放机制通过使用记录级版本控制(versioning)而不是就地更新来重放所有DML日志条目,来利用多版本并发控制(MVCC)和RVID的特性。
在一些示例中,在事务提交阶段处,OSTR可以在单个网络往返和一个日志IO操作之后提交事务,其可以彼此交错。这可以与图5A中表示的示例性复制协议对比,图5A中表示的示例性复制协议导致两个网络往返和三个日志IO操作。相应地,OSTR利用作为表格副本的次级索引可以视为从各自的初级表格推导的数据结构的事实。如果OSTR事务提交阶段的中间发生故障,则可以通过与初级重新同步(即,事实的单个点)而将副本恢复为最近提交的状态。可以注意到,当并发查询试图访问处于中间状态的记录版本时,版本访问被推迟,直到记录版本的状态被最终确定为提交后或终止。
相应地,并且如本文中所描述,全局索引被作为副本表格创建和维护,该副本表格被次键(或其子集)分区为多个副本表格分区,各自为次级全局索引分区(次级索引)。为实现此,表格复制被扩展以在来自初级表格的不同分区方案中支持副本表格的分区。当DML操作在初级表格进行时,其目标副本分区通过对改变的记录进行分区修剪(pruning)功能而动态地确定。相应地,单个源分区的记录的集合可以被映射到多个副本分区。然而,从记录的角度,单个源记录被映射到给定全局索引的单个副本记录。在恢复副本分区的时间,副本分区被与源表格的对应的部分比较,其可以通过在次键列上进行分区修剪功能来选择。应注意到,HANA内存内列储存固有地支持对这样的列扫描的高效处理。
为了降低全局索引分区(副本分区)的内存消耗,表格复制被扩展以支持列式、子表格复制。借此,仅源表格的声明的列的集合在对应的次级全局索引分区处被复制并维护(副本)。以此方式,可以出于全局索引的目的仅将次键列声明为复制的列。内部地,为了维护给定副本记录的源信息,在副本处创建RVID列,并且相同值与其源记录一起储存。该RVID列用于并行日志回放和副本恢复期间的记录级别排序。此外,当在访问次级全局索引之后应取回对应的源记录时,RVID列值可以用作连接键(join key)。在一些示例中,当存在足够量的存储器空间时,复制全部源列可以仍是可选项,以直接取回所需记录,而没有全局索引表格与原始源表格之间的附加跨节点连接操作。
在本公开的基于OSTR的全局索引管理,上述优化可以应用于全局索引。例如,从源表格到全局索引分区(副本分区)的更新传播异步地进行,同时确保跨源和全局索引的原子(atomic)事务提交,而不涉及昂贵的两阶段提交。通过创建单个源表格的多个副本表格,还支持维护单个表格的多个全局索引。当为表格限定多个全局索引时,可以为单个DML或单个提交请求进行多个网络请求,但它们并行地进行。应注意到,可以为每个全局索引副本表格创建局部索引,以避免全局索引的单个分区内的扫描操作。
图6绘示了可以根据本公开的实现方式执行的示例性过程600。在一些实现方式中,可以使用一个或多个计算机可执行程序进行示例性过程600,一个或多个计算机可执行程序使用一个或多个计算装置执行。可以为维护数据库系统内的分布式表格而执行示例性过程600。
在数据库系统的节点的集合中的每个节点提供表格分区(602)。例如,提供多个表格分区,每个表格分区通过使用主键分区表格提供。在数据库系统的节点的集合中的每个节点处提供次级索引分区(604)。例如,提供多个次级索引分区,每个次级索引分区生成为表格的至少一部分的复制表格。在一些示例中,多个次级索引分区是通过使用一个或多个次键分区表格提供的。在一些示例中,多个次级索引分区中的次级索引分区共同地限定表格的全局次级索引。在一些示例中,多个次级索引分区的第一次级索引分区包含表格的列的第一集合,并且多个次级索引分区的第二次级索引分区包含表格的列的第二集合,列的第一集合不同于列的第二集合。
确定是否接收到查询(606)。例如,数据库系统可以接收对储存在数据库系统中(例如,储存在表格分区之一中)的数据的查询。如果已经接收到查询,则确定查询是否包含次键(608)。如果查询不包含次键,则使用主索引处理查询(610)。如果查询包含次键,则基于次级全局索引处理查询(612)。即,使用次级索引分区中的一个或多个处理查询。提供查询结果(614),并且示例性过程600回路返回。
如果尚未接收查询,则确定是否在表格分区上执行操作(610)。如果不在表格分区上执行操作,则示例性过程600回路返回。如果在表格分区上执行操作,则执行复制协议(618),并且示例性过程600回路返回。例如,执行复制协议,以在对应于表格分区的次级索引分区上复制操作。在一些示例中,复制协议包含不含多阶段提交的异步复制协议(例如,OSTR),多阶段提交用于提交由对表格分区和对应于表格分区的次级索引分区的操作造成的对表格分区的一个或多个改变。在一些示例中,在提交对表格分区和对应于表格分区的次级索引分区的一个或多个改变之前,复制协议执行一个或多个改变的异步复制。在一些示例中,复制协议包含同步复制协议,同步复制协议确保在提交对表格分区和对应于表格分区的次级索引分区的一个或多个改变之前,在对应于表格分区的次级索引分区中表示一个或多个改变。在一些示例中,复制协议执行多阶段提交,以提交对表格分区和对应于表格分区的次级索引分区的一个或多个改变。
现参考图7,提供了示例性计算系统700的示意图。系统700可以用于关于本文中描述的实现方式而描述的操作。例如,系统700可以被包含在本文中所讨论的任意或全部服务器组件中。系统700包含处理器710、存储器720、储存装置730、以及输入/输出装置740。组件710、720、730、740使用系统总线750互连。处理器710能够处理在系统700内执行的指令。在一些实现方式中,处理器710是单线程处理器。在一些实现方式中,处理器710是多线程处理器。处理器710能够处理储存在存储器720中或储存装置730上的指令,以显示用于输入/输出装置740上的用户界面的图形信息。
存储器720在系统700内存储信息。在一些实现方式中,存储器720是计算机可读介质。在一些实现方式中,存储器720是易失性存储器单元。在一些实现方式中,存储器720是非易失性存储器单元。存储装置730能够为系统700提供大容量存储。在一些实现方式中,存储装置730是计算机可读介质。在一些实现方式中,存储装置730可以是软盘装置、硬盘装置、光盘装置或磁带装置。输入/输出装置740为系统700提供输入/输出操作。在一些实现方式中,输入/输出装置740包括键盘和/或指向装置。在一些实现方式中,输入/输出装置740包括用于显示图形用户界面的显示单元。
本说明书中描述的主题以及动作和操作可以实现在数字电子电路中,在有形实施的计算机软件或固件中,在计算机硬件中,包含本说明书中公开的结构及其等效结构,或其中一种或多种的组合。本说明书中描述的主题的实现方式可以实现为一个或多个计算机程序,例如计算机程序指令的一个或多个模块,被编码在计算机程序载体上,以由数据处理执行或控制数据处理的操作。载体可以是有形的非瞬态计算机存储介质。替代地或附加地,载体可以是人工产生的传播信号,例如机器产生的电、光或电磁信号,其被产生以对信息进行编码以传输到合适的接收器设备,以由数据处理设备执行。该计算机存储介质可以是机器可读储存装置、机器可读存储基板、随机或串行访问存储装置或它们中的一个或多个的组合,或者是它们的一部分。计算机存储介质不是传播的信号。
术语“数据处理设备”涵盖用于处理数据的各种设备、装置和机器,例如包含可编程处理器、计算机或多个处理器或计算机。数据处理设备可以包含专用逻辑电路,例如FPGA(现场可编程门阵列),ASIC(专用集成电路)或GPU(图形处理单元)。除硬件之外,设备还可以包含为计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或他们中的一种或多种的组合的代码。
计算机程序,也可以被称为或描述为程序、软件、软件应用程序、app、模块、软件模块、引擎、脚本或代码,可以以任何形式编写编程语言,包括编译或解释语言,或声明性或程序性语言;并且可以以任何形式进行部署,包括作为独立程序或作为适合在计算环境中执行的模块、组件、引擎、子例程或其他单元,该环境可以包括一台计算机或在一个或多个位置的通过数据通信互连的多台计算机。
计算机程序可以但不必对应于文件系统中的文件。计算机程序可以存储在保存其他程序或数据的文件的一部分中,例如存储在标记语言文档中的一个或多个脚本,专用于所讨论程序的单个文件中或多个协调文件中,例如,存储一个或多个模块、子程序或部分代码的文件。
本说明书中描述的过程和逻辑流程可以由执行一个或多个计算机程序以通过对输入数据进行操作并生成输出来执行操作的一个或多个计算机来执行。所述过程和逻辑流程还可通过专用逻辑电路(例如,FPGA,ASIC或GPU)或通过专用逻辑电路和一个或多个编程计算机的组合来执行。
适用于执行计算机程序的计算机可以基于通用或专用微处理器或两者,或者基于任何其他种类的中央处理单元。通常,中央处理单元将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的元件可以包括用于执行指令的中央处理单元和用于存储指令和数据的一个或多个存储装置。中央处理单元和存储器可以由专用逻辑电路补充或并入专用逻辑电路中。
通常,计算机还将包括或可操作地耦合以从一个或多个大容量存储装置接收数据或向一个或多个大容量存储装置传输数据。大容量存储装置可以是例如磁盘、磁光盘或光盘,或固态驱动器。但是,计算机不必具有此类装置。此外,计算机可以被嵌入到另一个装置中,例如,移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏机、全球定位系统(GPS)接收器或便携式存储装置,例如通用串行总线(USB)闪存驱动器,仅举几例。
为了提供与用户的交互,本说明书中描述的主题的实现可以在具有显示装置(例如,LCD(液晶显示器)监视器)的计算机上实现或配置为与之通信,以用于向用户显示信息,以及用户可以通过其向计算机提供输入的输入设备,例如键盘和指向装置,例如鼠标、轨迹球或触摸板。其他种类的设备也可以用于提供与用户的交互。例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声音、语音或触觉输入。另外,计算机可以通过向用户使用的设备发送文档以及从用户使用的设备接收文档来与用户进行交互。例如,通过响应从网络浏览器收到的请求,将网页发送到用户装置上的网络浏览器,或与用户装置(例如智能手机或电子平板计算机)上运行的应用程序进行交互。而且,计算机可以通过将文本消息或其他形式的消息发送到个人装置(例如,运行消息收发应用程序的智能手机)并从用户接收响应消息来与用户交互。
本说明书关于系统、设备和计算机程序组件使用术语“配置为”。对于一个或多个要配置为进行特定操作或动作的计算机的系统,意味着该系统已在其上安装了软件、固件、硬件或它们的组合,这些软件、固件、硬件或它们的组合在操作中导致系统进行这些操作或动作。对于将被配置为进行特定操作或动作的一个或多个计算机程序,意味着该一个或多个程序包括指令,该指令在由数据处理设备执行时使该设备执行该操作或动作。对于将被配置为执行特定操作或动作的专用逻辑电路,意味着该电路具有执行该操作或动作的电子逻辑。
虽然本说明书包含许多具体的实施细节,但是这些不应被解释为对所要求保护的范围的限制,该范围由权利要求本身定义,而是作为对特定实现方式可能特定的特征的描述。在本说明书中单独的实现方式的上下文中描述的某些特征也可以在单个实现方式中组合实现。相反,在单个实现方式的上下文中描述的各种特征也可以分别在多个实现方式中或以任何合适的子组合来实现。而且,尽管以上可以将特征描述为以某些组合起作用,并且甚至最初是这样要求保护的,但是在某些情况下可以从组合中剔除所要求保护的组合的一个或多个特征,并且权利要求可以针对子组合或子组合的变型。
类似地,尽管以特定顺序在附图中示出了操作并在权利要求中对其进行了叙述,但这不应理解为要求以所示的特定顺序或以连续的顺序执行这样的操作,或者应执行所有图示的操作,以获得期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,在上述实现中的各种系统模块和组件的分离不应被理解为在所有实现中都需要这种分离,并且应当理解,所描述的程序组件和系统通常可以集成在单个软件产品中或打包成多个软件产品。
已经描述了本主题的特定实现方式。其他实现方式在所附权利要求的范围内。例如,权利要求中记载的动作可以以不同的顺序执行并且仍然实现期望的结果。作为一个示例,附图中描绘的过程不一定需要所示的特定顺序或连续顺序来实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。
Claims (20)
1.一种计算机实现的方法,用于在数据库系统内提供次级索引,所述方法包括:
在所述数据库系统的节点的集合中的每个节点处,提供多个表格分区中的表格分区,所述多个表格分区是通过使用主键分区表格提供的;
在所述数据库系统的节点的集合中的每个节点处,提供多个次级索引分区中的次级索引分区,每个次级索引分区包括所述表格的至少一部分的复制表格,所述多个次级索引分区是通过使用一个或多个次键分区所述表格提供的;以及
对于在表格分区上执行的至少一个操作,执行复制协议,以将所述至少一个操作复制在对应于所述表格分区的次级索引分区上。
2.如权利要求1所述的方法,其中第一次级索引分区包含所述表格的列的第一集合,并且第二次级索引分区包含所述表格的列的第二集合,所述列的第一集合不同于所述列的第二集合。
3.如权利要求1所述的方法,其中所述复制协议包括不含多阶段提交的异步复制协议,所述多阶段提交用于提交将由对所述表格分区和对应于所述表格分区的所述次级索引分区的至少一个操作导致的所述表格分区的一个或多个改变。
4.如权利要求3所述的方法,其中所述复制协议在提交对所述表格分区和对应于所述表格分区的所述次级索引分区的一个或多个改变之前执行所述一个或多个改变的异步复制。
5.如权利要求1所述的方法,其中所述复制协议包括同步复制协议,所述同步复制协议确保在提交对所述表格分区和对应于所述表格分区的所述次级索引分区的一个或多个改变之前在对应于所述表格分区的所述次级索引分区中表示所述一个或多个改变。
6.如权利要求5所述的方法,其中所述复制协议执行多阶段提交,所述多阶段提交用于提交对所述表格分区和对应于所述表格分区的所述次级索引分区的一个或多个改变。
7.如权利要求1所述的方法,其中所述多个次级索引分区中的次级索引分区共同地限定所述表格的全局次级索引。
8.一种非瞬态计算机可读储存介质,耦接到一个或多个处理器并且其上具有储存的指令,当由所述一个或多个处理器执行所述指令时,使所述一个或多个处理器进行在数据库系统内提供次级索引的操作,所述操作包括:
在所述数据库系统的节点的集合中的每个节点处提供多个表格分区中的表格分区,所述多个表格分区是通过使用主键分区表格提供的;
在所述数据库系统的节点的集合中的每个节点处,提供多个次级索引分区中的次级索引分区,每个次级索引分区包括所述表格的至少一部分的复制表格,所述多个次级索引分区是通过使用一个或多个次键分区所述表格提供的;以及
对于对表格分区执行的至少一个操作,执行复制协议,以将所述至少一个操作复制在对应于所述表格分区的次级索引分区上。
9.如权利要求8所述的计算机可读储存介质,其中第一次级索引分区包含所述表格的列的第一集合,并且第二次级索引分区包含所述表格的列的第二集合,所述列的第一集合不同于所述列的第二集合。
10.如权利要求8所述的计算机可读储存介质,其中所述复制协议包括不含多阶段提交的异步复制协议,所述多阶段提交用于提交由对所述表格分区和对应于所述表格分区的所述次级索引分区的至少一个操作导致的对所述表格分区的一个或多个改变。
11.如权利要求10所述的计算机可读储存介质,其中所述复制协议在提交对所述表格分区和对应于所述表格分区的所述次级索引分区的一个或多个改变之前执行所述一个或多个改变的异步复制。
12.如权利要求8所述的计算机可读储存介质,其中所述复制协议包括同步复制协议,所述同步复制协议确保在提交对所述表格分区和对应于所述表格分区的所述次级索引分区的一个或多个改变之前在对应于所述表格分区的所述次级索引分区中表示所述一个或多个改变。
13.如权利要求12所述的计算机可读储存介质,其中所述复制协议执行多阶段提交,所述多阶段提交用于提交对所述表格分区和对应于所述表格分区的所述次级索引分区的一个或多个改变。
14.如权利要求8所述的计算机可读储存介质,其中所述多个次级索引分区中的次级索引分区共同地限定所述表格的全局次级索引。
15.一种系统,包括:
一个或多个计算机;以及
计算机可读储存装置,耦接到所述计算装置并且其上具有储存的指令,当所述指令由所述计算装置执行时,使所述计算装置进行用于在数据库系统内提供次级索引的操作,所述操作包括:
在所述数据库系统的节点的集合中的每个节点处,提供多个表格分区中的表格分区,所述多个表格分区是通过使用主键分区表格提供的;
在所述数据库系统的节点的集合中的每个节点处,提供多个次级索引分区中的次级索引分区,每个次级索引分区包括所述表格的至少一部分的复制表格,所述多个次级索引分区是通过使用一个或多个次键分区所述表格提供的;以及
对于对表格分区执行的至少一个操作,执行复制协议,以将所述至少一个操作复制在对应于所述表格分区的次级索引分区上。
16.如权利要求15所述的系统,其中第一次级索引分区包含所述表格的列的第一集合,并且第二次级索引分区包含所述表格的列的第二集合,所述列的第一集合不同于所述列的第二集合。
17.如权利要求15所述的系统,其中所述复制协议包括不含多阶段提交的异步复制协议,所述多阶段提交用于提交由对所述表格分区和对应于所述表格分区的所述次级索引分区的至少一个操作导致的对所述表格分区的一个或多个改变。
18.如权利要求17所述的系统,其中所述复制协议在提交对所述表格分区和对应于所述表格分区的所述次级索引分区的一个或多个改变之前执行所述一个或多个改变的异步复制。
19.如权利要求15所述的系统,其中所述复制协议包括同步复制协议,所述同步复制协议确保在提交对所述表格分区和对应于所述表格分区的所述次级索引分区的一个或多个改变之前在对应于所述表格分区的所述次级索引分区中表示所述一个或多个改变。
20.如权利要求19所述的系统,其中所述复制协议执行多阶段提交,所述多阶段提交用于提交对所述表格分区和对应于所述表格分区的所述次级索引分区的一个或多个改变。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/372,644 US11347705B2 (en) | 2019-04-02 | 2019-04-02 | Supporting scalable distributed secondary index using replication engine for high-performance distributed database systems |
US16/372,644 | 2019-04-02 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111797092A true CN111797092A (zh) | 2020-10-20 |
CN111797092B CN111797092B (zh) | 2024-05-28 |
Family
ID=
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113704361A (zh) * | 2021-10-28 | 2021-11-26 | 腾讯科技(深圳)有限公司 | 事务执行方法、装置、计算设备及存储介质 |
Citations (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5515531A (en) * | 1992-05-29 | 1996-05-07 | Hitachi, Ltd. | Parallel database processing system and retrieval method using secondary key |
US20040148293A1 (en) * | 2003-01-27 | 2004-07-29 | International Business Machines Corporation | Method, system, and program for managing database operations with respect to a database table |
US8572091B1 (en) * | 2011-06-27 | 2013-10-29 | Amazon Technologies, Inc. | System and method for partitioning and indexing table data using a composite primary key |
CN105069151A (zh) * | 2015-08-24 | 2015-11-18 | 用友网络科技股份有限公司 | HBase二级索引构建装置和方法 |
US20150339350A1 (en) * | 2014-05-23 | 2015-11-26 | International Business Machines Corporation | Data-partitioned secondary index (dpsi) partition level join |
CN105404676A (zh) * | 2015-11-20 | 2016-03-16 | 中国科学院计算技术研究所 | 一种基于HFile的HBase二级索引更新方法及系统 |
CN106462591A (zh) * | 2014-03-27 | 2017-02-22 | 微软技术许可有限责任公司 | 使用存储器中的智能索引的分区过滤 |
US20170075949A1 (en) * | 2011-06-27 | 2017-03-16 | Amazon Technologies, Inc. | System and method for conditionally updating an item with attribute granularity |
US20170193041A1 (en) * | 2016-01-05 | 2017-07-06 | Sqrrl Data, Inc. | Document-partitioned secondary indexes in a sorted, distributed key/value data store |
CN106991113A (zh) * | 2015-12-18 | 2017-07-28 | Sap欧洲公司 | 数据库环境中的表格复制 |
US20170308621A1 (en) * | 2016-04-25 | 2017-10-26 | Oracle International Corporation | Hash-based efficient secondary indexing for graph data stored in non-relational data stores |
CN107451154A (zh) * | 2016-05-31 | 2017-12-08 | 华为技术有限公司 | 一种数据表的处理方法、装置及系统 |
US20180004777A1 (en) * | 2016-04-15 | 2018-01-04 | Brian J. Bulkowski | Data distribution across nodes of a distributed database base system |
US20180203874A1 (en) * | 2017-01-18 | 2018-07-19 | International Business Machines Corporation | Space-efficient secondary indexing on distributed data stores |
US20180203913A1 (en) * | 2017-01-19 | 2018-07-19 | International Business Machines Corporation | Parallel replication of data table partition |
US20180253467A1 (en) * | 2017-03-01 | 2018-09-06 | Sap Se | In-memory row storage architecture |
US20180267735A1 (en) * | 2016-12-09 | 2018-09-20 | Amazon Technologies, Inc. | Pre-forking replicas for efficient scaling of a distributed data storage system |
US10135703B1 (en) * | 2015-09-18 | 2018-11-20 | Amazon Technologies, Inc. | Generating creation performance metrics for a secondary index of a table |
US10146814B1 (en) * | 2015-09-18 | 2018-12-04 | Amazon Technologies, Inc. | Recommending provisioned throughput capacity for generating a secondary index for an online table |
Patent Citations (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5515531A (en) * | 1992-05-29 | 1996-05-07 | Hitachi, Ltd. | Parallel database processing system and retrieval method using secondary key |
US20040148293A1 (en) * | 2003-01-27 | 2004-07-29 | International Business Machines Corporation | Method, system, and program for managing database operations with respect to a database table |
US8572091B1 (en) * | 2011-06-27 | 2013-10-29 | Amazon Technologies, Inc. | System and method for partitioning and indexing table data using a composite primary key |
US20170075949A1 (en) * | 2011-06-27 | 2017-03-16 | Amazon Technologies, Inc. | System and method for conditionally updating an item with attribute granularity |
CN106462591A (zh) * | 2014-03-27 | 2017-02-22 | 微软技术许可有限责任公司 | 使用存储器中的智能索引的分区过滤 |
US20150339350A1 (en) * | 2014-05-23 | 2015-11-26 | International Business Machines Corporation | Data-partitioned secondary index (dpsi) partition level join |
CN105069151A (zh) * | 2015-08-24 | 2015-11-18 | 用友网络科技股份有限公司 | HBase二级索引构建装置和方法 |
US10135703B1 (en) * | 2015-09-18 | 2018-11-20 | Amazon Technologies, Inc. | Generating creation performance metrics for a secondary index of a table |
US10146814B1 (en) * | 2015-09-18 | 2018-12-04 | Amazon Technologies, Inc. | Recommending provisioned throughput capacity for generating a secondary index for an online table |
CN105404676A (zh) * | 2015-11-20 | 2016-03-16 | 中国科学院计算技术研究所 | 一种基于HFile的HBase二级索引更新方法及系统 |
CN106991113A (zh) * | 2015-12-18 | 2017-07-28 | Sap欧洲公司 | 数据库环境中的表格复制 |
US20170193041A1 (en) * | 2016-01-05 | 2017-07-06 | Sqrrl Data, Inc. | Document-partitioned secondary indexes in a sorted, distributed key/value data store |
US20180004777A1 (en) * | 2016-04-15 | 2018-01-04 | Brian J. Bulkowski | Data distribution across nodes of a distributed database base system |
US20170308621A1 (en) * | 2016-04-25 | 2017-10-26 | Oracle International Corporation | Hash-based efficient secondary indexing for graph data stored in non-relational data stores |
CN107451154A (zh) * | 2016-05-31 | 2017-12-08 | 华为技术有限公司 | 一种数据表的处理方法、装置及系统 |
US20180267735A1 (en) * | 2016-12-09 | 2018-09-20 | Amazon Technologies, Inc. | Pre-forking replicas for efficient scaling of a distributed data storage system |
US20180203874A1 (en) * | 2017-01-18 | 2018-07-19 | International Business Machines Corporation | Space-efficient secondary indexing on distributed data stores |
US20180203913A1 (en) * | 2017-01-19 | 2018-07-19 | International Business Machines Corporation | Parallel replication of data table partition |
US20180253467A1 (en) * | 2017-03-01 | 2018-09-06 | Sap Se | In-memory row storage architecture |
Non-Patent Citations (2)
Title |
---|
乔彦克: ""基于HBase的交通数据处理优化技术研究"", 《中国优秀硕士学位论文全文数据库 工程科技Ⅱ辑》, no. 08, pages 034 - 173 * |
朱松杰 等: ""基于协处理器的HBase内存索引机制的研究"", 《计算机工程与应用》, vol. 56, no. 01, pages 98 - 105 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113704361A (zh) * | 2021-10-28 | 2021-11-26 | 腾讯科技(深圳)有限公司 | 事务执行方法、装置、计算设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
EP3719665A1 (en) | 2020-10-07 |
US20200320051A1 (en) | 2020-10-08 |
EP3719665B1 (en) | 2024-05-08 |
US11347705B2 (en) | 2022-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11347705B2 (en) | Supporting scalable distributed secondary index using replication engine for high-performance distributed database systems | |
US10078682B2 (en) | Differentiated secondary index maintenance in log structured NoSQL data stores | |
US10552372B2 (en) | Systems, methods, and computer-readable media for a fast snapshot of application data in storage | |
US11068501B2 (en) | Single phase transaction commits for distributed database transactions | |
US9146934B2 (en) | Reduced disk space standby | |
US9996427B2 (en) | Parallel backup for distributed database system environments | |
Kuznetsov et al. | NoSQL data management systems | |
EP2653986B1 (en) | Client-side caching of a database transaction token. | |
US9218405B2 (en) | Batch processing and data synchronization in cloud-based systems | |
US10990608B2 (en) | Transferring connections in a multiple deployment database | |
US20120158650A1 (en) | Distributed data cache database architecture | |
JP7263297B2 (ja) | ハイブリッドクラウド弾性スケーリングおよび高性能データ仮想化のためのリアルタイムクロスシステムデータベースレプリケーション | |
AU2016280884A1 (en) | Techniques for resource description framework modeling within distributed database systems | |
US9075858B2 (en) | Non-disruptive data movement and node rebalancing in extreme OLTP environments | |
EP2562657B1 (en) | Management of update transactions and crash recovery for columnar database | |
Waqas et al. | Transaction management techniques and practices in current cloud computing environments: A survey | |
CN112334891A (zh) | 用于搜索服务器的集中式存储 | |
CN111797092B (zh) | 在数据库系统内提供次级索引的方法和系统 | |
US11789971B1 (en) | Adding replicas to a multi-leader replica group for a data set | |
Verma | Understanding the technological trends and quantitative analysis of NewSQL databases | |
US11467926B2 (en) | Enhanced database recovery by maintaining original page savepoint versions | |
US20230014029A1 (en) | Local indexing for metadata repository objects | |
Thereska et al. | Multi-structured Redundancy. | |
Gessert et al. | Caching in Research and Industry | |
JP2024510137A (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 | ||
GR01 | Patent grant |