CN109416682A - 用于管理数据库的系统和方法 - Google Patents
用于管理数据库的系统和方法 Download PDFInfo
- Publication number
- CN109416682A CN109416682A CN201680087361.1A CN201680087361A CN109416682A CN 109416682 A CN109416682 A CN 109416682A CN 201680087361 A CN201680087361 A CN 201680087361A CN 109416682 A CN109416682 A CN 109416682A
- Authority
- CN
- China
- Prior art keywords
- database
- thread
- memory
- core
- access
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- 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/2453—Query optimisation
- G06F16/24532—Query optimisation of parallel queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0284—Multiple user address space allocation, e.g. using different base addresses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
-
- 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/23—Updating
- G06F16/2379—Updates performed during online database operations; commit processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- 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/2455—Query execution
- G06F16/24552—Database cache management
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90339—Query processing by using parallel associative memories or content-addressable memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/16—General purpose computing application
- G06F2212/163—Server or database system
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
提供一种数据库管理系统,包括:多核心处理器、共享存储器、分区存储器和数据库引擎,所述数据库引擎用于执行管理使用缓存一致性机构的所述共享存储器中的事务状态和数据库索引的至少一个事务工作线程,并执行用于处理由所述至少一个事务工作线程提交的数据库访问动作以访问所述分区存储器中的数据库的至少一个分区管理器线程,所述缓存一致性机构在所述分区存储器中停用;其中在所述多核心处理器上同时执行所述至少一个事务工作线程和所述至少一个分区管理器线程。
Description
背景技术
本发明在其一些实施例中涉及数据库管理系统(database management system,DBMS),并且更确切地但非排他地,涉及用于管理内存数据库的系统和方法。
已经将不同的系统设计成提高检索存储在数据库中的数据例如以对存储数据执行查询的效率。内存数据库引擎是使用用于存储数据库的主存储器的数据库管理系统的部分。与访问存储在主控于磁盘等外部存储装置上的数据库中的数据的时间相比,访问存储在主存储器中的数据库中的数据的时间更快。
在包含大量核心和大型存储器的多核心处理器中,高效地执行数据库引擎是一项困难的任务。已经出现尝试和利用可用核心以访问内存数据库的不同方法。
发明内容
本发明的一个目标是提供一种用于管理内存数据库的设备、系统、计算机程序产品、方法和多核心处理器。
前述和其它目标通过独立权利要求的特征实现。另外的实施形式通过附属权利要求项、描述以及图式显而易见。
根据第一方面,数据库管理系统包括:多核心处理器;共享存储器;分区存储器;以及数据库引擎,所述数据库引擎用于:执行管理使用缓存一致性机构的共享存储器中的事务状态和数据库索引的至少一个事务工作线程,以及执行用于处理由至少一个事务工作线程提交的数据库访问动作以访问分区存储器中的数据库的至少一个分区管理器线程,所述缓存一致性机构在分区存储器中停用;其中在多核心处理器上同时执行所述至少一个事务工作线程和所述至少一个分区管理器线程。
数据库管理系统被设计成当部署在多核心处理器上时扩展,任选地,当部署在多核心NUMA处理器上时扩展。多核心处理器包含大量核心,例如,至少1000个核心。对分区存储器停用缓存一致性机构减少了过程功率消耗和/或总线竞争,这改进了数据库管理系统的总体性能。对共享存储器选择性地启动缓存一致性机构防止或降低了针对大量核心可能出现的不利处理器性能影响。例如,相比于在所有核心上启动缓存一致性机构从而限制了可使用的核心数目的方法,实施缓存一致性机构的选择性启动和停用增加了可供数据库管理系统使用的核心的总数目。例如,在多核心处理器的所有数千个核心上启动的缓存一致性机构严重降低了性能。
在根据第一方面的设备的第一可能实施方案中,多核心处理器包括:第一处理单元,其可操作地耦合到共享存储器并被指派执行至少一个事务工作线程,以及第二处理单元,其各自可操作地耦合到单核心缓存单元中的一个并被指派执行至少一个分区管理器线程。
在根据第一方面的第一实施方案的设备的第二可能实施方案中,数据库引擎用于再分区,根据所监测的多核心处理器的运行时工作负载而将独立处理单元动态地划分成第一处理单元和第二处理单元。
动态再分区允许在相应的核心上选择性地启用和/或停用缓存一致性机构,这可用于控制计算性能和功率消耗之间的权衡。例如,增加具有停用缓存一致性机构的核心的数目减少了总体功率消耗和总线竞争,但是核心间消息传递增加。
在同样根据第一方面的设备的第三可能实施方案中,至少一个分区管理器线程包括分区管理器线程;其中数据库引擎用于映射分区存储器中的数据库的逻辑分区;其中逻辑分区中的每一个供分区管理器线程中的另一个使用。
逻辑分区通过考虑可用分区处理单元的目前状态来提高数据库管理系统的计算效率。
在根据第一方面的第三实施方案的设备的第四可能实施方案中,逻辑分区是大小相等的物理分区。
在根据第一方面的第三和/或第四实施方案的设备的第五可能实施方案中,数据库引擎根据散列分区机构的输出而映射逻辑分区,所述散列分区机构的输出作为包括行而与逻辑分区中的每一个有关,所述行各自具有在固定范围内的全局散列值。
散列值将数据库行均匀地分布到分区,这促使了随机存储器数据访问,从而可减少或避免动态负载平衡和再分区机构,因此改进计算性能。
在根据第一方面的第五实施方案的设备的第六可能实施方案中,通过级联其中驻留有相应行的表格的表格识别符和主键值来组成全局散列值。
根据第二方面,一种管理数据库访问动作的方法包括:执行管理使用缓存一致性机构的共享存储器中的事务状态和数据库索引的至少一个事务工作线程,以及执行用于处理由至少一个事务工作线程提交的数据库访问动作以访问分区存储器中的数据库的至少一个分区管理器线程,所述缓存一致性机构在分区存储器中停用;其中在多核心处理器上同时执行所述至少一个事务工作线程和所述至少一个分区管理器线程。
根据第三方面,一种具有用于执行事务线程的独立处理单元的多核心处理器,所述独立处理单元包括:第一处理单元,其可操作地耦合到共享存储器并使用缓存一致性机构,所述第一处理单元被指派处理事务线程的事务状态和数据库索引;以及第二处理单元,其各自可操作地耦合到单核心缓存单元中的一个,并被指派处理由事务线程提交的数据库访问动作以访问分区存储器中的数据库,所述缓存一致性机构在分区存储器中停用。
在根据第三方面的多核心处理器的第一可能实施方案中,第一处理单元和第二处理单元通过核心间消息传递而与彼此通信。
在同样根据第三方面或根据第一方面的先前实施形式中的任一种的多核心处理器的第二可能实施形式中,单核心缓存单元中的每一个的最小分配大小是缓存行大小。
在同样根据第三方面或根据第一方面的先前实施形式中的任一种的多核心处理器的第三可能实施形式中,多核心处理器是多核心非均匀存储访问(Non-UniformMemoryAccess,NUMA)处理器。
除非另外定义,否则本文中所用的所有技术和/或科学术语都具有与本发明所涉及的领域的技术人员通常所理解相同的含义。尽管在本发明的实施例的实践或测试中可以使用与本文所述的方法和材料类似或等效的材料和方法,但下文描述示例性方法和/或材料。倘若有冲突,本说明书(包含定义)将为主。另外,材料、方法和实例仅为说明性的且并不意图为必定限制性的。
附图说明
此处仅作为示例,结合附图描述了本发明的一些实施例。现在具体结合附图,需要强调的是所示的项目作为示例,为了说明性地讨论本发明的实施例。这样,根据附图说明,可如何实践本发明实施例对本领域技术人员而言是显而易见的。
在图式中:
图1是根据本发明的一些实施例的数据库管理系统的框图,所述数据库管理系统包含数据库引擎,所述数据库引擎同时执行与使用启动的缓存一致性机构的共享存储器相关联的事务工作线程,以及与分区存储器相关联的分区管理器线程,针对所述分区存储器,停用缓存一致性机构;
图2是根据本发明的一些实施例的通过同时执行事务工作线程和分区管理器线程来管理数据库访问动作的方法的流程图;
图3是描绘基于各自在单独的核心上运行的多个事务线程的对称DBMS架构的实例的框图,以帮助理解本发明的一些实施例;
图4是描绘基于数据库被划分成共享存储器的多个分区的分区DBMS架构的实例的框图,以帮助理解本发明的一些实施例;
图5是描绘根据本发明的一些实施例的散列机构的示意图,所述散列机构将分区处理单元映射到存储在分区存储器中的数据库的逻辑分区;
图6是根据本发明的一些实施例的用于帮助理解处理架构的可扩展性的示意图;
图7是描绘根据本发明的一些实施例的数据库管理系统的示意图,所述数据库管理系统被设计成通过部分停用缓存一致性机构而在多核心多套接字架构中扩展;
图8是根据本发明的一些实施例的数据库管理系统的另一示意性表示;
图9是描绘根据本发明的一些实施例的使用NUMA处理架构实施方案实施数据库管理系统的示意图;
图10是描绘根据本发明的一些实施例的使用NUMA处理架构实施方案实施数据库管理系统的实例示意图;以及
图11是描绘根据本发明的一些实施例的数据库管理系统的组件之间的逻辑通信的数据流图。
具体实施方式
本发明在其一些实施例中涉及数据库管理系统(database management system,DBMS),并且,更确切地但非排他地,涉及用于管理内存数据库的系统和方法。
本发明的一些实施例的方面涉及用于管理数据库的数据库管理系统,其包含多核心处理器,任选地包含多核心NUMA(非均匀存储访问)处理器。多核心处理器可包含大量核心,例如,至少100个核心,或至少500个核心,或至少1000个核心。数据库管理系统包含同时执行事务工作线程和分区管理器线程的数据库引擎。事务工作线程管理使用缓存一致性机构的共享存储器中的事务状态和数据库索引。分区管理器线程处理由事务工作线程提交的数据库访问动作以访问存储在分区存储器中的数据库,而不需使用缓存一致性机构(例如,缓存一致性机构在分区存储器中停用)。如本文所使用,术语核心和处理单元可互换地使用。
任选地,多核心处理器包含被指派执行事务工作线程和访问共享存储器的一组核心(处理单元)。所述组中的处理单元在本文中被称作共享处理单元。可替代地或另外,多核心处理器包含另一组处理单元,其在本文中被称作分区处理单元,且被指派执行分区管理线程和访问分区存储器。任选地根据多核心处理器的运行时工作负载,可动态地执行多核心处理器的独立处理单元(在本文中也被称作核心)到共享和分区处理单元组的划分和指派。
数据库管理系统被设计成当部署在多核心处理器上时扩展,任选地,当部署在多核心NUMA处理器上时扩展。多核心处理器包含大量核心,例如,至少1000个核心。对分区存储器停用缓存一致性机构减少了过程功率消耗和/或总线竞争,这改进了数据库管理系统的总体性能。对共享存储器选择性地启动缓存一致性机构防止或降低了针对大量核心可能出现的不利处理器性能影响。例如,相比于在所有核心上启动缓存一致性机构从而限制了可使用的核心数目的方法,实施缓存一致性机构的选择性启动和停用增加了可供数据库管理系统使用的核心的总数目。例如,在多核心处理器的所有数千个核心上启动的缓存一致性机构严重降低了性能。
本发明的一些实施例的方面涉及一种管理数据库访问动作(例如,在数据库管理系统上执行)的方法,所述管理通过执行事务工作线程并同时执行分区管理器线程来进行,事务工作线程管理使用缓存一致性机构的共享存储器中的事务状态和数据库索引,分区管理器线程处理由事务工作线程提交的数据库访问动作以访问存储在分区存储器中的数据库。缓存一致性机构在分区存储器中停用。
本发明的一些实施例的方面涉及一种包含设计成同时执行事务线程的独立处理单元(即,核心)的多核心处理器(例如,包含在数据库管理系统中)。
在详细解释本发明的至少一个实施例之前,应理解,本发明在其应用中不必限于在以下描述中阐述和/或在附图和/或实例中所说明的组件和/或方法的结构以及布置的细节。本发明能够具有其它实施例或以各种方式实践或实行。
本发明可以是一种系统、方法和/或计算机程序产品。计算机程序产品可以包含计算机可读存储媒体,其上具有计算机可读程序指令以使处理器实行本发明的方面。
计算机可读存储媒体可以是有形装置,其可以保持和存储指令以供指令执行装置使用。计算机可读存储媒体可以是,例如但不限于:电子存储装置、磁性存储装置、光学存储装置、电磁存储装置、半导体存储装置或前述各者的任何合适组合。
本文中所描述的计算机可读程序指令可以从计算机可读存储媒体下载到相应计算/处理装置,或通过因特网、局域网、广域网和/或无线网络等网络下载到外部计算机或外部存储装置。
计算机可读程序指令可完全在用户的计算机上执行、部分地在用户的计算机上执行、作为独立软件包执行、部分地在用户的计算机上且部分地在远程计算机上执行,或完全在远程计算机或服务器上执行。在后一种场景中,远程计算机可以通过包含局域网(localarea network,LAN)或广域网(wide area network,WAN)的任何类型的网络连接到用户的计算机,或者可以对外部计算机进行连接(举例来说,通过使用因特网服务提供方的因特网)。在一些实施例中,包含例如可编程逻辑电路、现场可编程门阵列(field-programmablegate array,FPGA)或可编程逻辑阵列(programmablelogic array,PLA)的电子电路可以通过利用计算机可读程序指令的状态信息将电子电路个人化而执行计算机可读程序指令,以便执行本发明的方面。
本文参考根据本发明的实施例的方法、设备(系统)和计算机程序产品的流程图说明和/或框图来描述本发明的方面。应理解,可以通过计算机可读程序指令实施流程图说明和/或框图中的每一块,以及流程图说明和/或框图中的块的组合。
图中的流程图和框图说明根据本发明的各种实施例的系统、方法和计算机程序产品的可能实施方案的架构、功能性和操作。就此而言,流程图或框图中的每一块可以表示模块、区段或指令的部分,其包括用于实施指定逻辑功能的一个或多个可执行指令。在一些替代实施方案中,各个块中提及的功能可以不按图中所提及的次序发生。例如,根据所涉及的功能性,连续示出的两个方框实际上可以大体上同时执行,或所述方框有时可能以相反次序执行。还将注意到,框图和/或流程图说明中的每个块,以及框图和/或流程图说明中的块的组合可以通过专用的基于硬件的系统实施,所述系统执行指定功能或动作,或实行专用硬件和计算机指令的组合。
现在参考图1,图1是根据本发明的一些实施例的包含数据库引擎102的数据库管理系统100的框图,所述数据库引擎102在多核心处理器104上同时执行将访问共享存储器与已启动缓存一致性机构相关联的事务工作线程和将访问分区存储器与已停用缓存一致性机构相关联的分区管理器线程。数据库引擎102使用多核心处理器104来管理数据库108A,所述数据库可以是内存数据库,所述多核心处理器104可包含大量独立处理单元(在本文中也被称作核心)112。数据库引擎102通过改进使用大量核心的能力来提高处理数据库相关命令(例如,搜索、添加、删除、查询)的效率,如本文中所描述。应注意,如本文所使用,术语内存是指整个数据库都位于快速访问时间存储器内的数据库。
数据库管理系统100相比于其它方法提供了在大量核心上改进的计算效率(例如,在减少的处理时间方面),所述其它方法随着核心数目增加而经历计算效率降低。
例如,数据库引擎102可实施为由多核心处理器执行的代码、由另一处理器执行的代码,和/或以硬件形式实施。例如,用于数据库引擎102的指令可存储在主存储器中、存储在存储装置上,或其它实施方案。
现在参考图2,图2是根据本发明的一些实施例的通过同时执行事务工作线程和分区管理器线程来管理数据库访问动作的方法的流程图。将核心划分成两组:共享和分区(图2的框202)。针对共享存储器和分区存储器,将存储器任选地划分成两个连续地址空间(图2的框204)。图2的方法可通过数据库引擎102在图1的数据库管理系统100的多核心处理器104上执行。
为了帮助理解数据库管理系统100的架构和/或操作,将提供对对称DMBS架构和分区DMBS架构的论述。
现在参考图3,图3是描绘基于各自在单独的核心304上运行的多个事务线程302的对称DBMS架构300的实例的框图,以帮助理解本发明的一些实施例。每个事务线程302能够访问存储在共享存储器308中的整个数据库306。共享存储器308由所有核心304共享。所有核心304都启用缓存一致性。事务线程302合作性地维持数据库引擎的状态,包含数据库306、数据库索引310和事务状态表312。数据库引擎管理事务串行性。多核心处理器管理核心的缓存一致性。
现在参考图4,图4是描绘基于数据库被划分成共享存储器402的多个分区的分区DBMS架构400的实例的框图,以帮助理解本发明的一些实施例。每个分区404由专用核心406管理。分区拥有其相应的分区数据和相应的分区索引408。集中式路由表410有助于将事务路由到分区。通过在核心之间迁移事务来执行多分区事务。所有分区驻留在启用缓存一致性的共享存储器中。
参考图3到4描述的对称和分区DBMS架构(即,内存)限制了它们能有效利用的核心的数目(因此不能很好地进行扩展),这是因为它们需要横跨所有处理器核心启动缓存一致性。在参考图3到4描述的对称和分区DBMS架构中,所有核心上启用缓存一致性导致随着核心数目的增加而增加复杂度,最终达到额外核心并不提高计算效率的极限。额外数目的核心实际上可能降低计算效率。例如,参考图3到4描述的对称和分区DBMS架构无法利用超过1000个核心进行合理操作。
现返回参考图1,相比之下,如本文中所描述,数据库管理系统100的架构实现在核心的数目增加的情况下提高了计算效率。如本文中所描述,选择性地停用缓存一致性机构,这防止或降低了与针对许多核心启用缓存一致性机构相关联的复杂度(如上文所论述)。在存在不相干硬件套接字的情况下(即,某些核心停用了缓存一致性机构),数据库管理系统100改进了多核心可扩展性,如本文中所描述。应注意,在存在不相干处理器套接字的情况下,参考图3到4描述的对称和分区DBMS架构不可操作。
数据库管理系统100可实施在计算单元150内,例如,网络服务器、web服务器、计算云、本地服务器、远程服务器、客户端终端运行代码、移动装置、静止装置、服务器、智能手机、笔记本电脑、平板电脑、可穿戴计算装置、眼镜计算装置、手表计算装置、台式电脑,以及查询一体机。计算单元150可实施为单个计算装置、计算装置网络、互连节点的分布式系统,或其它架构。
每个核心112(即,共享群组114和分区群组116的每个核心)与专用于相应核心的核心缓存118相关联。核心缓存118可以是单层或多层缓存,例如,包含L1、L1和L2,或更高层级。
当多核心处理器104包含多个套接字,每个套接字具有多个核心112(例如,NUMA处理器)时,共享群组114和分区群组116中的核心可包含一个或多个套接字。
数据库管理系统100包含共享存储器106,针对所述共享存储器106启用缓存一致性机构110。缓存一致性机构110保持共享群组114的核心的核心缓存118和共享存储器106之间的一致性。数据库管理系统100包含分区存储器108,其停用缓存一致性机构110。在分区群组116的核心的核心缓存118和分区存储器108之间停用缓存一致性机构110。例如,根据性能权衡和/或多核心处理器工作负载和/或其它因素,例如,如本文中所描述的因素,可针对每一核心和/或每一套接字(任选地通过数据库引擎102)动态地启用和停用缓存一致性机构。
动态再分区允许在相应的核心上选择性地启用和/或停用缓存一致性机构,这可用于控制计算性能和功率消耗之间的权衡。例如,增加具有停用缓存一致性机构的核心的数目减少了总体功率消耗和总线竞争,但是核心间消息传递增加。
任选地,共享存储器106和/或分区存储器108在随机存取存储器(random accessmemory,RAM)中实施,任选地用作主存储器。数据库108A可存储在RAM中,例如,作为内存数据库实施方案。数据库引擎102可进一步改进内存数据库的性能。
任选地,共享存储器106和分区存储器108两者都包含存储器页的连续群组(例如,连续物理和/或虚拟地址空间)。例如,单个(或更多)物理存储器被划分成两个部分,即表示为共享存储器106的第一部分以及表示为分区存储器108的邻近部分。共享存储器106和分区存储器108的地址空间不重叠。
多核心处理器104包含独立处理单元112(在本文中也被称作核心)。每个核心112可执行事务线程(在本文中也被称作事务工作线程)。每个处理单元112被指派(或组织)到共享处理单元群组114(在本文中也被称作共享群组),或分区处理单元群组116(在本文中也被称作分区群组)。任选地,当多核心处理器104被布置为套接字,其中每个套接字包含多个核心时,每个套接字的所有核心被表示成共享处理单元114或分区处理单元116。多核心处理器104可实施为多核心非均匀存储访问(Non-Uniform Memory Access,NUMA)处理器,或对称多处理器(symmetric multiprocessor,SMP)。多核心处理器104可包含不相干硬件套接字。
独立处理单元112可为均匀的,或非均匀的。每个独立处理单元112可实施为例如,中央处理单元(central processing unit,CPU)、图形处理单元(graphics processingunit,GPU)、现场可编程门阵列(field programmable gate array,FPGA)、数字信号处理器(digital signal processor,DSP),和专用集成电路(application specific integratedcircuit,ASIC)。
共享处理单元114访问共享存储器106。共享处理单元114被指派执行事务工作线程,所述事务工作线程管理存储在使用缓存一致性机构110的共享存储器106中的事务状态106A和数据库索引106B。数据库索引106B可包含映射到数据库中的一个或多个条目的标识符。例如,关键词映射到包含所述关键词的文件。数据库可由用户通过向索引应用查询来查询。
应注意,分区处理单元116管理存储在数据库108A中的数据实例,例如,存储为表格实施方案中的行的数据条目。分区存储器108可根据存储数据库108A的物理存储器的页或根据多核心处理器104的缓存118行的大小进行分区。共享处理单元114管理数据库108A的数据库索引106B(存储在共享存储器106中)。
数据库108A可存储数据实例。每个数据实例可包含一个或多个数据条目。数据实例可包含文本类文档,例如,文档、电子邮件、文字处理文档、演示、电子数据表、应用程序确定的数据库条目、记录、医疗记录和便携式文档格式(portable document format,PDF)文件。数据实例可包含文件,例如,图像、音乐文件、其它音频文件、视频、应用程序限定的文件,以及其它数据。数据条目可以是例如词、段落、元数据、页,以及相关文件。
通过维持共享处理单元114的本地缓存和共享存储器106之间的一致性,缓存一致性机构110(例如,实施为由多核心处理器104执行的代码和/或实施为硬件)管理缓存一致性。示例性缓存一致性机构110包含:目录式(数据在保持相干性的共同目录中的适当位置处共享)、侦听式(snooping)(每个缓存监测对于其数据在本地高速缓存的共享存储器的存储位置的地址线)、强制更新(snarfing)(缓存控制器查看地址空间和数据以更新其自身对存储位置的复本)。可实施一致性协议,例如,释放一致性模型、弱一致性模型、顺序一致性模型,或其它协议。
每个分区核心(处理单元)116访问分区存储器108。分区存储器108被逻辑地划分成逻辑数据库分区,其中每个逻辑数据库分区由专用分区核心116管理。给定的分区核心116可管理一个或多个逻辑数据库分区。每个分区核心116被指派执行分区管理器线程,所述分区管理器线程处理由事务工作线程提交的数据库访问动作以访问存储在分区存储器108中的数据库108A。每个分区管理器线程管理被指派到相应的分区管理器线程的逻辑分区,例如,在多版本并发控制(multiversion concurrency control,MVCC)情况下的数据访问、锁定和/或视觉可见性。相应的分区处理单元116可包含支持所实施的并发控制机构的功能。
分区管理器(例如,过程,未示出)为每个单代码缓存单元118分配来自分区存储器108的存储器。任选地,单核心缓存单元118中的每一个的最小分配大小是缓存行大小,或存储器页。分配可在缓存行边界上进行对准,使得相同数据不由不同分区管理器高速缓存。分区管理器可从最近套接字分配存储器,其可最小化NUMA影响(例如,在高度竞争下的锁定不足、本地处理单元击败远程处理单元)。
每个分区处理单元116管理存储在分区存储器108中的数据库108A的逻辑分区。每个分区处理单元116可针对整个分区存储器108停用缓存一致性机构110。
共享处理单元114和分区处理单元116通过经由核心间通信机构120的核心间消息传递而与彼此通信。任选地,核心间通信机构120被设计成用于进行极其快速的通信。
用户可使用用户界面152来进入搜索查询以在整个数据库108A中搜索,或对数据库108A执行其它功能,例如添加额外行、添加额外列、去除行、去除列、添加新的数据实例、去除现有的数据实例,和/或对数据执行其它查询和/或操作。结果可在用户界面210(或另一用户界面)上向用户显示。示例性用户界面152(其可与显示器或其它输出装置集成,或实施为单独装置)包含以下各项中的一个或多个:触摸屏、键盘、鼠标,以及使用扬声器和麦克风操作的语音启动软件。
返回参看图2,在202处,数据库引擎102可通过将核心112动态地划分(和/或重划分)成共享处理单元群组114和分区处理单元群组116来执行再分区。所述划分可根据所监测的多核心处理器104的运行时工作负载来执行。例如,具有256个核心112的多核心处理器104可被划分成64个共享核心114和192个分区核心116。
所监测的运行时工作负载可包含对独立处理单元的利用和/或套接字的利用的分析。所述分析可识别一个或多个处理单元何时具有相对于其它处理单元更高(或更低)的性能,这可表明可通过动态重划分改进的瓶颈问题。可进行分析的示例性度量包含以下各项中的一个或多个:利用率、吞吐量、执行时间、响应时间、存储器带宽、存储器时延和功率。
所述划分可由操作员例如基于运行时工作负载所呈现的结果来手动执行,和/或由代码自动执行。
在204处,将存储器划分成共享存储器106和分区存储器108。所述划分可基于核心的划分而执行。例如,基于分区存储器108的逻辑划分,从而确保分区存储器108的每个分配部分对应于被指派到分区群组116的核心的缓存118的大小。
在206处,执行管理事务状态和数据库索引(存储在共享存储器106中)的事务工作线程。共享群组中的每个核心114可执行单个事务工作线程。
事务工作线程可与用户进入的查询或数据库动作(例如,使用用户界面152进入)相关联,和/或与对数据库执行动作的自动过程相关联,所述过程例如搜索、对数据实例的操作、数据实例的添加和/或删除,或其它数据库相关操作。针对共享存储器106启用缓存一致性机构110。
在208处,执行分区管理器线程,所述分区管理器线程用于处理由事务工作线程提交的数据库访问动作以访问存储在分区存储器108中的数据库108A。分区群组中的每个核心116可执行单个分区工作线程。
分区存储器108停用缓存一致性机构110。例如,当搜索查询(例如,用户进入的查询,例如,搜索存储在数据库中的文档的关键词)识别数据库索引和存储在数据库中的数据之间的匹配(例如,找到包含所述关键词的一个或多个文档)时,分区管理器线程可根据索引和数据库之间的映射来访问数据库中的数据实例(例如,获取所述文档)。
在多核心处理器104上同时执行参考框206和208描述的动作,例如,并行地执行索引搜索和数据库访问动作(例如,与共同查询相关联,或与不同查询相关联)。同时执行提高了核心的利用率。可替代地或另外,可任选地针对每个查询循序地执行框206和208的动作,并针对不同查询并行地执行框206和208的动作,例如,事务工作线程首先搜索索引,然后分区管理器线程访问数据。
在210处,数据库引擎102可映射数据库108A(存储在分区存储器108中)的逻辑分区。逻辑分区可被映射到分区处理单元116。每个分区管理器线程可被指派唯一ID,以便于将逻辑数据库分区映射到分区管理器线程(即,映射到共享群组中的相应核心116)。分区存储器108可同时由分区群组核心116访问,例如,由分区群组中的所有核心访问。在一些实施方案中,数据库108A被逻辑地分区成N个逻辑数据库分区,其中N表示分区群组中的核心116的数目。可能存在其它划分架构。
通过考虑可用分区处理单元116的目前状态,逻辑分区提高了数据库管理系统100的计算效率。可通过核心112的划分(或重划分)重新执行或更新、触发逻辑分区。例如,动态划分可产生大量可用分区处理单元116,或相比于先前划分更少的可用分区处理单元116。现有的逻辑分区可映射到不存在的分区处理单元116(其已重新指派到共享处理单元114),或额外的可用分区处理单元116可用于映射。逻辑分区是基于更新后的可用分区处理单元116。
逻辑分区中的每一个供分区管理器线程中的另一个使用,任选地,供相应的所映射的分区处理单元116中的另一个使用。任选地,逻辑分区是大小相等的物理分区。任选地,每个数据库分区被映射到单个分区处理单元116。例如,分区和/或映射可存储在由数据库引擎102维持和/或管理的分区映射表中。
事务工作线程可与分区管理器访问表格数据通信。可查询分区映射表以访问所映射的分区处理单元116上的分区管理器。
任选地,数据库引擎102根据散列分区机构的输出映射逻辑分区,所述散列分区机构的输出作为行与逻辑分区中的每一个有关,所述行各自具有在固定范围内的全局散列值。散列分区机构将数据库的逻辑分区映射到分区处理单元。
通过级联其中驻留有相应行的表格的表格识别符和主键值来组成全局散列值。示例性散列函数包含循环冗余检查(例如,CRC64)、XXHash(可自http://wwwdotxxhashdotcom/获得)。
应注意,可使用其它映射机构。术语散列分区机构应被理解为不一定限于基于散列的方法的示例性实施方案。如本文所使用,术语散列分区机构包含用于将具有任意大小的数据(例如,数据库)映射到具有固定大小的数据(例如,所使用的分区处理单元的数目)的方法。
散列值将数据库行均匀地分布到分区,这促使了随机存储器数据访问,从而可减少或避免动态负载平衡和再分区机构,因此改进计算性能。
在数据集108A表示为表格的一些实施方案中,数据库的行分散在整个分配存储器中。具有共同散列值的行形成逻辑数据库分区。每个逻辑数据库分区可被指派到单个分区管理器。某一分区管理器可管理一个或多个逻辑数据库分区。
在212处,针对共享群组的核心114和/或共享存储器106启用缓存一致性机构110,而针对分区群组的核心116和/或分区存储器108停用缓存一致性机构110,如本文中所描述。应注意,可与框202和/或210同时和/或并行地执行框206,例如,作为将核心划分成共享和分区群组的过程的部分。
现在参考图5,图5是描绘根据本发明的一些实施例的散列502机构的示意图,所述散列502机构将分区处理单元504映射到存储在分区存储器中的数据库的逻辑分区506。
现在参考图6,图6是根据本发明的一些实施例的用于帮助理解处理架构的可扩展性的示意图。可将单个核心602包含为多核心架构604内的组件,例如,对称多处理系统(symmetric multiprocessing system,SMP)。NUMA架构606包含多套接字多核心(即,具有到存储器的直接管道的核心集合)。套接字还可被称作硬件岛,或管芯。
现在参考图7,图7是描绘根据本发明的一些实施例的数据库管理系统的示意图,所述数据库管理系统被设计成通过部分停用缓存一致性机构702而在多核心(即,大量核心)多套接字架构中扩展,具体来说,缓存一致性机构702被描绘为在套接字704之间停用。
现在参考图8,图8是根据本发明的一些实施例的数据库管理系统(例如,图1的系统100)的另一示意性表示800。表示800描绘与共享存储器806相关联的共享处理单元814,以及各自与存储数据库的分区存储器808的分区相关联的分区处理单元804,如本文中所描述。共享处理单元814使用核心间通信机构820与分区处理单元804通信,从而执行访问数据库中的数据的事务。分区映射850存储存储器分区808和分区处理单元804之间的分区和/或映射。
现在参考图9到10,图9到10是描绘根据本发明的一些实施例的在使用多处理器104的NUMA处理架构实施方案中实施数据库管理系统100的示意图。图9描绘在实施本文中所描述的数据库引擎102之前(即,在包含于如本文中所描述的数据库管理系统100内之前)的示例性NUMA处理器架构902。NUMA处理器902包含任意数目(即,N)个套接字904。每个套接字904包含多个处理单元(即,核心)906。作为实例实施方案,示出了每一套接字904四个核心906(可包含更多或更少个核心)。每个套接字904包含供相应套接字的核心906使用的套接字存储器908(具有任意大小X千兆字节(GB))。套接字904可使用虚拟处理器存储器910,其可具有基于套接字存储器908的组合大小(即N×XGB)的大小。套接字使用套接字连接912而与彼此通信。
图10描绘供数据库引擎102用作数据库管理系统100的部分而实施的NUMA处理器1002(基于图9的NUMA处理器902),如本文中所描述。NUMA处理器1002包含组织在套接字1004A内的共享处理单元(即,S-核心)1006A和组织在套接字1004B内的分区处理单元(即,P-核心)1006B,它们如本文中所描述地任选地进行划分。每个套接字1004A-B包含相应的例如具有4GB大小的套接字存储器1008。S-核心1006A访问共享存储器1010A,如本文中所描述。共享存储器1010A可具有基于套接字1004A的套接字存储器1008的大小。P-核心1006B访问分区存储器1010B,如本文中所描述。分区存储器1010B可具有基于套接字1004B的组合套接字存储器1008的大小(从两个4GB存储器得出的8GB)。
现在参考图11,图11是描绘根据本发明的一些实施例的数据库管理系统(例如,图1的100)的组件之间的逻辑通信的数据流图1102(例如,从软件角度)。事务工作线程1104由相应的共享处理单元1106(S-核心)执行,从而管理存储在共享存储器1108中的事务状态1110和数据库索引1112。针对共享存储器1108启用缓存一致性机构。
分区映射表1114将数据库的逻辑分区(即,LP)映射到分区处理单元(即,P-核心)。分区管理器线程1116由相应的P-核心执行,以访问存储在分区存储器1120中的数据库1118的相应部分。分区存储器1120停用缓存一致性机构。
已出于说明的目的呈现本发明的各种实施例的描述,但所述描述并不意图为详尽的或限于所公开的实施例。在不脱离所描述实施例的范围和精神的情况下,对所属领域的技术人员而言多个修改和变化将是显而易见的。本文中所使用的术语经选择以最佳解释实施例的原理、实际应用或对市场中发现的技术的技术改进,或使所属领域的一般技术人员能够理解本文所公开的实施例。
预计在专利从此申请案开始成熟的有效期期间,将研发出许多相关数据库和多核心处理器,因此术语数据库和多核心处理器的范围意图先验地包含所有此类新技术。
如本文所使用,术语“大约”指代±10%。
术语“包括”、“包含”以及“有”表示“包含但不限于”。这个术语涵盖了术语“由……组成”以及“基本上由……组成”。
短语“基本上由……组成”意指组成物或方法可以包含额外成分和/或步骤,但前提是所述额外成分和/或步骤不会实质上改变所要求的组成物或方法的基本和新颖特性。
除非上下文中另有明确说明,否则此处使用的单数形式“一个”和“所述”包括复数含义。例如,术语“化合物”或“至少一个化合物”可以包含多个化合物,包含其混合物。
此处使用的词“示例性”表示“作为一个实例、例子或说明”。描述为“示例性”的任何实施例不一定解释为比其它实施例优选或有利,和/或排除来自其它实施例的特征的并入。
此处使用的词语“任选地”表示“在一些实施例中提供且在其他实施例中没有提供”。本发明的任意特定的实施例可以包含多个“任选的”特征,除非这些特征相互矛盾。
在整个本申请中,本发明的各种实施例可以范围格式呈现。应理解,范围格式中的描述仅为了方便和简洁起见,并且不应该被解释为对本发明范围的固定限制。因此,范围的描述应被认为是已经确切地公开了所有可能的子范围以及所述范围内的单个数字值。例如,对例如从1到6的范围的描述应被认为是已经具体地公开子范围,例如从1到3、从1到4、从1到5、从2到4、从2到6、从3到6等,以及所述范围内的单个数字,例如1、2、3、4、5和6。不管范围的宽度如何,这都适用。
当此处指出一个数字范围时,表示包含了在指出的这个范围内的任意所列举的数字(分数或整数)。短语在第一个所指示的数和第二个所指示的数范围内和从第一个所指示的数到第二个所指示的数范围内在本文中互换地使用,表示包含第一个和第二个所指示的数以及二者之间所有的分数和整数。
应了解,本发明的某些特征也可以在单个实施例中以组合形式提供,出于清晰性起见,这些特征在单独实施例的上下文中加以描述。相反地,本发明的各个特征还可以单独地提供、以任何合适的子组合形式提供,或作为在本发明的任何其它所述实施例中合适的形式提供,出于简洁性起见,这些特征在单个实施例的上下文中加以描述。不可认为各个实施例的上下文中所描述的某些特征是这些实施例的必要特征,除非没有这些元素,该实施例无效。
此处,本说明书中提及的所有出版物、专利和专利说明书都通过引用本说明书而并入在本说明书中,同样,每个单独的出版物、专利或专利说明书也具体且单独地并入在此。此外,对本申请的任何参考的引用或识别不应被解释为允许这样的参考在现有技术中优先于本发明。就使用节标题而言,不应该将节标题理解成必要的限定。
Claims (12)
1.一种数据库管理系统,其特征在于,包括:
多核处理器;
共享存储器;
分区存储器;以及
数据库引擎,其用于:
使用缓存一致性机构执行至少一个事务工作线程管理所述共享存储器中的事务状态和数据库索引,以及
执行至少一个分区管理器线程,用于处理由所述至少一个事务工作线程提交的多个数据库访问动作,以访问所述分区存储器中的数据库,所述缓存一致性机构在所述分区存储器中停用;
其中所述至少一个事务工作线程和所述至少一个分区管理器线程,在所述多核处理器上同时执行。
2.根据权利要求1所述的系统,其特征在于,所述多核处理器包括:
多个第一处理单元,其可操作地耦合到所述共享存储器并被分配用于执行所述至少一个事务工作线程,以及
多个第二处理单元,其各自可操作地耦合到多个单核缓存单元中的一个,并被分配用于执行所述至少一个分区管理器线程。
3.根据权利要求2所述的系统,其特征在于,所述数据库引擎用于再分区,根据所监测的所述多核处理器的运行时工作负载,将多个独立处理单元动态地划分成所述多个第一处理单元和所述多个第二处理单元。
4.根据权利要求1所述的系统,其特征在于,所述至少一个分区管理器线程包括多个分区管理器线程;其中所述数据库引擎用于映射所述分区存储器中的所述数据库的多个逻辑分区;其中每一个所述多个逻辑分区被另一个所述多个分区管理器线程使用。
5.根据权利要求4所述的系统,其特征在于,所述多个逻辑分区是大小相等的物理分区。
6.根据权利要求4到5中任一权利要求所述的系统,其特征在于,所述数据库引擎根据哈希分区机构的输出,映射所述多个逻辑分区,所述哈希分区机构的输出与每一个所述多个逻辑分区中的一个有关,所述哈希分区机构的输出包括多个行,所述多个行各自具有在固定范围内的全局哈希值。
7.根据权利要求6所述的系统,其特征在于,通过级联其中驻留有相应的所述行的表格的表格识别符和主键值来组成所述全局哈希值。
8.一种管理数据库访问动作的方法,其特征在于,包括:
使用缓存一致性机构至少一个事务工作线程管理共享存储器中的事务状态和数据库索引,以及执行至少一个分区管理器线程,用于处理由所述至少一个事务工作线程提交的多个数据库访问动作,以访问分区存储器中的数据库,所述缓存一致性机构在所述分区存储器中停用;
其中所述至少一个事务工作线程和所述至少一个分区管理器线程在多核处理器上同时执行。
9.一种具有用于执行多个事务线程的多个独立处理单元的多核处理器,其特征在于,所述多个独立处理单元包括:
多个第一处理单元,其可操作地耦合到共享存储器并使用缓存一致性机构,所述多个第一处理单元被分配用于处理所述多个事务线程的事务状态和数据库索引;以及
多个第二处理单元,其各自可操作地耦合到多个单核缓存单元中的一个,并被分配用于处理由所述多个事务线程提交的多个数据库访问动作以访问分区存储器中的数据库,所述缓存一致性机构在所述分区存储器中停用。
10.根据权利要求9所述的系统,其特征在于,所述多个第一处理单元和所述多个第二处理单元通过核心间消息传递而与彼此通信。
11.根据权利要求9到10中任一权利要求所述的系统,其特征在于,所述多个单核缓存单元中的每一个的最小分配大小是缓存行大小。
12.根据权利要求9到11中任一权利要求所述的系统,其特征在于,所述多核处理器是多核非均匀存储访问(Non-Uniform Memory Access,NUMA)处理器。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/EP2016/065400 WO2018001495A1 (en) | 2016-06-30 | 2016-06-30 | Systems and methods for managing databases |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109416682A true CN109416682A (zh) | 2019-03-01 |
CN109416682B CN109416682B (zh) | 2020-12-15 |
Family
ID=56404083
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680087361.1A Active CN109416682B (zh) | 2016-06-30 | 2016-06-30 | 用于管理数据库的系统和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11354307B2 (zh) |
EP (1) | EP3443471B1 (zh) |
CN (1) | CN109416682B (zh) |
WO (1) | WO2018001495A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111949439A (zh) * | 2019-05-17 | 2020-11-17 | 中国移动通信集团河南有限公司 | 基于数据库的数据文件更新方法和装置 |
WO2022002128A1 (zh) * | 2020-06-30 | 2022-01-06 | 华为技术有限公司 | 一种读数据的方法、写数据的方法、设备和系统 |
CN114174768A (zh) * | 2019-05-31 | 2022-03-11 | 兰迪斯+盖尔创新有限公司 | 以耦合到应用处理器的计量处理器为特征的多处理器公用服务计量表 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11086840B2 (en) | 2018-12-07 | 2021-08-10 | Snowflake Inc. | Transactional streaming of change tracking data |
US11609845B2 (en) * | 2019-05-28 | 2023-03-21 | Oracle International Corporation | Configurable memory device connected to a microprocessor |
CN111190735B (zh) * | 2019-12-30 | 2024-02-23 | 湖南大学 | 一种基于Linux的片上CPU/GPU流水化计算方法及计算机系统 |
WO2021192184A1 (ja) * | 2020-03-26 | 2021-09-30 | 日本電気株式会社 | メモリ制御方法 |
US20220121667A1 (en) * | 2020-10-15 | 2022-04-21 | Salesforce.Com, Inc. | Database virtual partitioning |
US20220179861A1 (en) * | 2020-12-08 | 2022-06-09 | International Business Machines Corporation | Scheduling query execution plans on a relational database |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6438562B1 (en) * | 1999-08-24 | 2002-08-20 | Oracle Corporation | Parallel index maintenance |
CN101802790A (zh) * | 2007-09-21 | 2010-08-11 | 美普思科技公司 | 对多个一致域的支持 |
US20100274972A1 (en) * | 2008-11-24 | 2010-10-28 | Boris Babayan | Systems, methods, and apparatuses for parallel computing |
US20120011108A1 (en) * | 2010-07-12 | 2012-01-12 | Christian Bensberg | Hash-join in parallel computation environments |
US20120066474A1 (en) * | 2010-09-13 | 2012-03-15 | International Business Machines Corporation | Real Address Accessing in a Coprocessor Executing on Behalf of an Unprivileged Process |
CN102947807A (zh) * | 2010-06-14 | 2013-02-27 | 富士通株式会社 | 多核处理器系统、缓存一致性控制方法以及缓存一致性控制程序 |
CN103109279A (zh) * | 2010-06-22 | 2013-05-15 | 富士通株式会社 | 多核处理器系统,控制程序以及控制方法 |
CN103299281A (zh) * | 2010-11-15 | 2013-09-11 | 先进微装置公司 | 防止硬件事务存储器系统非故意丢失事务数据 |
US20140188906A1 (en) * | 2012-12-28 | 2014-07-03 | Ingo Tobias MÜLLER | Hash Table and Radix Sort Based Aggregation |
US20140344530A1 (en) * | 2013-03-15 | 2014-11-20 | Sunil Sayyaparaju | Method and system of implementing a database index in shared memory |
CN104572505A (zh) * | 2015-02-03 | 2015-04-29 | 济南大学 | 一种保证海量数据缓存最终一致性的系统及方法 |
CN105009111A (zh) * | 2012-12-13 | 2015-10-28 | 微软技术许可有限责任公司 | 使用键值存储系统的分布式sql查询处理 |
CN105190623A (zh) * | 2013-03-15 | 2015-12-23 | 亚马逊科技公司 | 日志记录管理 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5835755A (en) * | 1994-04-04 | 1998-11-10 | At&T Global Information Solutions Company | Multi-processor computer system for operating parallel client/server database processes |
JP3849951B2 (ja) * | 1997-02-27 | 2006-11-22 | 株式会社日立製作所 | 主記憶共有型マルチプロセッサ |
US6295598B1 (en) * | 1998-06-30 | 2001-09-25 | Src Computers, Inc. | Split directory-based cache coherency technique for a multi-processor computer system |
US6356983B1 (en) * | 2000-07-25 | 2002-03-12 | Src Computers, Inc. | System and method providing cache coherency and atomic memory operations in a multiprocessor computer architecture |
US7681020B2 (en) * | 2007-04-18 | 2010-03-16 | International Business Machines Corporation | Context switching and synchronization |
US8417889B2 (en) * | 2009-07-24 | 2013-04-09 | International Business Machines Corporation | Two partition accelerator and application of tiered flash to cache hierarchy in partition acceleration |
US8515945B2 (en) * | 2010-11-16 | 2013-08-20 | Sybase, Inc. | Parallel partitioning index scan |
-
2016
- 2016-06-30 EP EP16736820.8A patent/EP3443471B1/en active Active
- 2016-06-30 CN CN201680087361.1A patent/CN109416682B/zh active Active
- 2016-06-30 WO PCT/EP2016/065400 patent/WO2018001495A1/en active Application Filing
-
2018
- 2018-03-21 US US15/927,731 patent/US11354307B2/en active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6438562B1 (en) * | 1999-08-24 | 2002-08-20 | Oracle Corporation | Parallel index maintenance |
CN101802790A (zh) * | 2007-09-21 | 2010-08-11 | 美普思科技公司 | 对多个一致域的支持 |
US20100274972A1 (en) * | 2008-11-24 | 2010-10-28 | Boris Babayan | Systems, methods, and apparatuses for parallel computing |
CN102947807A (zh) * | 2010-06-14 | 2013-02-27 | 富士通株式会社 | 多核处理器系统、缓存一致性控制方法以及缓存一致性控制程序 |
CN103109279A (zh) * | 2010-06-22 | 2013-05-15 | 富士通株式会社 | 多核处理器系统,控制程序以及控制方法 |
US20120011108A1 (en) * | 2010-07-12 | 2012-01-12 | Christian Bensberg | Hash-join in parallel computation environments |
US20120066474A1 (en) * | 2010-09-13 | 2012-03-15 | International Business Machines Corporation | Real Address Accessing in a Coprocessor Executing on Behalf of an Unprivileged Process |
CN103299281A (zh) * | 2010-11-15 | 2013-09-11 | 先进微装置公司 | 防止硬件事务存储器系统非故意丢失事务数据 |
CN105009111A (zh) * | 2012-12-13 | 2015-10-28 | 微软技术许可有限责任公司 | 使用键值存储系统的分布式sql查询处理 |
US20140188906A1 (en) * | 2012-12-28 | 2014-07-03 | Ingo Tobias MÜLLER | Hash Table and Radix Sort Based Aggregation |
US20140344530A1 (en) * | 2013-03-15 | 2014-11-20 | Sunil Sayyaparaju | Method and system of implementing a database index in shared memory |
CN105190623A (zh) * | 2013-03-15 | 2015-12-23 | 亚马逊科技公司 | 日志记录管理 |
CN104572505A (zh) * | 2015-02-03 | 2015-04-29 | 济南大学 | 一种保证海量数据缓存最终一致性的系统及方法 |
Non-Patent Citations (1)
Title |
---|
朱阅岸 等: ""多核处理器下事务型数据库性能优化技术综述"", 《计算机学报》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111949439A (zh) * | 2019-05-17 | 2020-11-17 | 中国移动通信集团河南有限公司 | 基于数据库的数据文件更新方法和装置 |
CN111949439B (zh) * | 2019-05-17 | 2023-08-01 | 中国移动通信集团河南有限公司 | 基于数据库的数据文件更新方法和装置 |
CN114174768A (zh) * | 2019-05-31 | 2022-03-11 | 兰迪斯+盖尔创新有限公司 | 以耦合到应用处理器的计量处理器为特征的多处理器公用服务计量表 |
CN114174768B (zh) * | 2019-05-31 | 2023-01-10 | 兰迪斯+盖尔创新有限公司 | 以耦合到应用处理器的计量处理器为特征的多处理器公用服务计量表 |
WO2022002128A1 (zh) * | 2020-06-30 | 2022-01-06 | 华为技术有限公司 | 一种读数据的方法、写数据的方法、设备和系统 |
Also Published As
Publication number | Publication date |
---|---|
WO2018001495A1 (en) | 2018-01-04 |
CN109416682B (zh) | 2020-12-15 |
EP3443471A1 (en) | 2019-02-20 |
US20180268027A1 (en) | 2018-09-20 |
US11354307B2 (en) | 2022-06-07 |
EP3443471B1 (en) | 2021-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109416682A (zh) | 用于管理数据库的系统和方法 | |
US11120022B2 (en) | Processing a database query using a shared metadata store | |
US10565199B2 (en) | Massively parallel processing database middleware connector | |
US9081837B2 (en) | Scoped database connections | |
US10803066B2 (en) | Methods and systems for hardware acceleration of database operations and queries for a versioned database based on multiple hardware accelerators | |
Stonebraker et al. | Intel" big data" science and technology center vision and execution plan | |
Erling et al. | Towards web scale RDF | |
US11698893B2 (en) | System and method for use of lock-less techniques with a multidimensional database | |
WO2016150183A1 (en) | System and method for parallel optimization of database query using cluster cache | |
US11507590B2 (en) | Techniques for in-memory spatial object filtering | |
Chrysafis et al. | Foundationdb record layer: A multi-tenant structured datastore | |
Tatemura et al. | Microsharding: a declarative approach to support elastic OLTP workloads | |
da Silva et al. | Big Data Analytics Technologies and Platforms: A Brief Review. | |
Valduriez et al. | Distributed database systems: The case for NewSQL | |
Morari et al. | Scaling semantic graph databases in size and performance | |
Yan et al. | G-thinker: a general distributed framework for finding qualified subgraphs in a big graph with load balancing | |
US9684685B2 (en) | Using message-passing with procedural code in a database kernel | |
Ranichandra et al. | Architecture for distributed query processing using the RDF data in cloud environment | |
US20180067859A1 (en) | Selective allocation of cpu cache slices to database objects | |
Bui et al. | Fast distributed evaluation of stateful attribute-based access control policies | |
Wang et al. | Parallel processing SPARQL theta join on large scale RDF Graphs | |
US11734308B2 (en) | Autonomous caching for views | |
Peng et al. | Improving the performance of aggregate queries with cached tuples in MapReduce | |
Vasile et al. | The Art of In-Memory Computing for Big Data Processing | |
Dhaka et al. | The use and industrial importance of virtual databases |
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 | ||
GR01 | Patent grant |