CN103353891B - 数据库管理系统及其数据处理方法 - Google Patents
数据库管理系统及其数据处理方法 Download PDFInfo
- Publication number
- CN103353891B CN103353891B CN201310281873.XA CN201310281873A CN103353891B CN 103353891 B CN103353891 B CN 103353891B CN 201310281873 A CN201310281873 A CN 201310281873A CN 103353891 B CN103353891 B CN 103353891B
- Authority
- CN
- China
- Prior art keywords
- data
- relief area
- static
- tuple
- updating
- 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.)
- Active
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据库管理系统及其数据处理方法,该数据库管理系统的数据缓冲区包括:静态数据缓冲区和更新数据缓冲区;所述静态数据缓冲区用于查询静态数据;所述更新数据缓冲区用于进行数据更新操作,记录及查询更新数据。本发明充分利用了现代计算机多CPU多核和大内存的特点,提高了数据库管理系统的性能和事务处理的吞吐量。
Description
技术领域
本发明涉及计算机中的数据库技术领域,尤其涉及数据库管理系统及其数据处理方法。
背景技术
在传统的数据库管理系统架构中,数据库实例是由一个共享数据缓冲区和多个后台进程组成,在对数据库中的数据进行增、删、改和查询操作时,首先查看要进行操作的数据是否在共享数据缓冲区中,如果在,则进行相关的操作,如果不在,则需要把要操作的数据读到共享数据缓冲区中,然后直接在数据上进行操作。共享数据缓冲区存在的目的是为了当同一数据被多次操作时,则缓存在内存中,从而减少数据库管理系统的I/O(Input/Output,输入/输出),提高数据库管理系统的效率。当数据缓冲区充满,则采用LRU(LeastRecently Used,近期最少使用算法)等淘汰策略,置换出最近可能不使用的缓存块。然而,在该方案中数据库管理系统性能和事务处理的吞吐量仍然不高。
发明内容
本发明实施例提供一种数据库管理系统,用以充分利用目前计算机硬件的多CPU(Central Processing Unit,中央处理器)多核和大内存的特性,提高数据库管理系统的性能和事务处理的吞吐量,该数据库管理系统的数据缓冲区包括:
静态数据缓冲区和更新数据缓冲区;
所述静态数据缓冲区用于查询静态数据;
所述更新数据缓冲区用于进行数据更新操作,记录及查询更新数据;
在所述更新数据缓冲区进行数据更新操作,记录更新数据,包括:
对于数据库的插入操作,将新元组存入所述更新数据缓冲区中;
数据库中的每一元组具有一唯一标识;
在所述更新数据缓冲区进行数据更新操作,记录更新数据,包括:
对于数据库的修改操作,在所述更新数据缓冲区记录修改元组的标识和对应的新元组;
对于数据库的删除操作,在所述更新数据缓冲区记录删除元组的标识。
本发明实施例还提供一种上述数据库管理系统的数据处理方法,用以提高数据库管理系统的性能和事务处理的吞吐量,该方法包括:
在所述静态数据缓冲区查询静态数据;
在所述更新数据缓冲区进行数据更新操作,记录及查询更新数据;
在所述更新数据缓冲区进行数据更新操作,记录更新数据,包括:
对于数据库的插入操作,将新元组存入所述更新数据缓冲区中;
数据库中的每一元组具有一唯一标识;
在所述更新数据缓冲区进行数据更新操作,记录更新数据,包括:
对于数据库的修改操作,在所述更新数据缓冲区记录修改元组的标识和对应的新元组;
对于数据库的删除操作,在所述更新数据缓冲区记录删除元组的标识。
一个实施例中,对于数据库的查询操作:
在所述静态数据缓冲区查询静态数据,以及在所述更新数据缓冲区查询更新数据之后,将所述静态数据缓冲区的查询结果与所述更新数据缓冲区的查询结果合并,形成最终的查询结果。
一个实施例中,数据库中的每一元组具有一唯一标识;
将所述静态数据缓冲区的查询结果与所述更新数据缓冲区的查询结果合并,包括:
在所述更新数据缓冲区的查询结果中包括静态数据的元组标识时,根据该元组标识,将所述静态数据缓冲区的查询结果与所述更新数据缓冲区的查询结果合并。
一个实施例中,并行执行:在所述静态数据缓冲区查询静态数据;以及,在所述更新数据缓冲区查询更新数据。
一个实施例中,所述的数据处理方法还包括:
所述数据库管理系统的合并线程定期将所述更新数据缓冲区中的更新数据合并至数据库中的静态数据,形成新的静态数据。
一个实施例中,所述的数据处理方法还包括:
在所述更新数据缓冲区即将充满时,所述数据库管理系统的合并线程将所述更新数据缓冲区中的更新数据合并至数据库中的静态数据,形成新的静态数据。
一个实施例中,所述的数据处理方法还包括:
在所述更新数据缓冲区释放已被合并的更新数据所占用的内存。
本发明实施例中,数据库管理系统的数据缓冲区包括静态数据缓冲区和更新数据缓冲区,在静态数据缓冲区查询静态数据,在更新数据缓冲区进行数据更新操作,记录及查询更新数据,充分利用了现代计算机多CPU多核和大内存的特点,提高了数据库管理系统的性能和事务处理的吞吐量。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为本发明实施例中数据库管理系统的示意图;
图2为本发明实施例中数据库管理系统的数据处理方法的流程示例图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
为了提高数据库管理系统的性能和事务处理的吞吐量,充分利用现代计算机多CPU多核和大内存的特点,提高数据库管理系统的性能和事务处理的吞吐量,本发明实施例提供一种在多CPU多核大内存环境下新型的数据库管理系统架构及其数据处理方法。在本发明实施例的数据库管理系统中,数据缓冲区包括:静态数据缓冲区和更新数据缓冲区;其中,静态数据缓冲区用于查询静态数据,更新数据缓冲区用于进行数据更新操作,记录及查询更新数据。
图1为本发明实施例中数据库管理系统的示意图。图1中示出了数据库管理系统的数据缓冲区(数据库管理系统实例的系统全局区(SGA:System Global Area)控制结构)是包括静态数据缓冲区和更新数据缓冲区。图1中还示出了对于数据库管理系统实例的清理、合并、统计及其它可操作方式,以及用户进程、服务线程、磁盘文件与数据库管理系统实例之间的交互,其中磁盘文件可以包括数据文件、控制文件、日志文件、参数文件和更新数据缓冲区快照文件。
本发明实施例的数据库管理系统的数据处理方法包括:在静态数据缓冲区查询静态数据;以及,在更新数据缓冲区进行数据更新操作,记录及查询更新数据。具体实施时,在数据库实例启动时,初始化静态数据缓冲区和更新数据缓冲区,对数据的更新操作都记录在更新数据缓冲区,其中的更新操作可以包括增、删、改等操作,这样可以充分利用大内存进行数据的增删改操作,提高数据库管理系统的事务处理能力。
具体的,对于数据库的插入操作(INSERT语句),可以将生成的新元组存入更新数据缓冲区中。实施时数据库中的每一元组可具有一唯一标识。对于数据库的修改操作(UPDATE语句),可以在更新数据缓冲区记录修改元组的标识和对应的新元组。例如可以先在静态数据缓冲区查询需要修改的老元组,然后生成更新后的新元组,在更新数据缓冲区记录修改元组的标识和对应的新元组。对于数据库的删除操作(DELETE语句),可以在更新数据缓冲区记录删除元组的标识。例如可以先在静态数据缓冲区查询需要删除的老元组,如果存在,则在更新数据缓冲区中记录删除元组的标识。
具体的,对于数据库的查询操作(SELECT语句),可以在静态数据缓冲区查询静态数据,以及在更新数据缓冲区查询更新数据之后,将静态数据缓冲区的查询结果与更新数据缓冲区的查询结果合并,形成最终的查询结果。其中在静态数据缓冲区中查询出的静态数据可以是数据库的基线数据,在更新数据缓冲区中查询出的更新数据可以是这些基线数据的更新版本,将在这两个数据缓冲区中查询出的结果集进行合并,形成最终的查询结果。
实施时,在数据库中的每一元组具有一唯一标识的情况下,在更新数据缓冲区的查询结果中可以包括静态数据的元组标识。此时,可以根据该元组标识,将静态数据缓冲区的查询结果与更新数据缓冲区的查询结果进行合并。
实施时,在静态数据缓冲区查询静态数据,和在更新数据缓冲区查询更新数据可以并行执行,这样可以充分利用现代计算机多CPU多核的特点,提高系统响应时间。
具体实施时,静态数据缓冲区可以采用常规的缓冲区淘汰策略(例如LRU等)进行缓冲区管理。对于更新数据缓冲区,可以由数据库管理系统的合并线程定期(例如在数据库管理系统空闲时)将更新数据缓冲区中的更新数据合并至数据库中的静态数据,形成新的静态数据。或者,也可以在更新数据缓冲区即将充满时,由数据库管理系统的合并线程将更新数据缓冲区中的更新数据合并至数据库中的静态数据,形成新的静态数据。进一步的,当更新数据缓冲区中的更新数据被合并后,还可以在更新数据缓冲区释放已被合并的更新数据所占用的内存,以节省资源。
图2为本发明实施例中数据库管理系统的数据处理方法的流程示例图。如图2所示,本例中数据库管理系统的数据处理方法可以包括:
接收SQL(Structured Query Language,结构化查询语言)字符串;进行SQL语法解析;生成执行计划;判断是否为SELECT语句,若是SELECT语句,则在静态数据缓冲区中查询,在更新数据缓冲区中查询,把两个缓冲区的结果集合并,将执行结果返回给客户;若不是SELECT语句,则判断是否为INSERT语句,若是INSERT语句,则生成新元组,插入到更新数据缓冲区,将执行结果返回给客户;若不是INSERT语句,则判断是否为DELETE语句,若是DELETE语句,则查询需要删除的元组,在更新数据缓冲区中记录删除元组的标识,将执行结果返回给客户;若不是DELETE语句,则判断是否为UPDATE语句,若是UPDATE语句,则查询需要修改的元组,生成新元组,在更新数据缓冲区记录修改元组的标识和对应的新元组,将执行结果返回给客户。
下面使用一个具体的数据库操作实例,对本发明实施例的数据库管理系统及其数据处理方法进一步说明:
假设数据库中有表A,A中有三个元组(1,1,1),(2,2,2),(3,3,3),假设第一列是表中元组的唯一标识;
数据库管理系统启动时,初始化两个缓冲区:ReadBuffer(静态数据缓冲区)和UpdateBuffer(更新数据缓冲区),ReadBuffer用于查询静态数据,UpdateBuffer用于进行数据更新操作,记录及查询更新数据;
当用户查询A表时,表A的三个元组从磁盘读到ReadBuffer,从ReadBuffer中查询到3条元组,然后查询UpdateBuffer,无A表的元组,则返回给用户三条元组;
当用户向A表插入新元组(4,4,4)时,新元组插入到UpdateBuffer;
当用户把A表中的元组(1,1,1)修改成(1,2,2),则新元组(1,2,2)插入到UpdateBuffer;
当用户删除A表中的元组(2,2,2),则在UpdateBuffer中插入一条特殊元组(2,del);
当用户再次查询A表时,从ReadBuffer中查询到三条元组(1,1,1),(2,2,2),(3,3,3),从UpdateBuffer中查询到三条元组(4,4,4),(1,2,2),(2,del),把两个结果集合并,可以得到结果集(1,2,2),(3,3,3),(4,4,4)返回给用户。
综上所述,本发明实施例中,数据库管理系统的数据缓冲区包括静态数据缓冲区和更新数据缓冲区,在静态数据缓冲区查询静态数据,在更新数据缓冲区进行数据更新操作,记录及查询更新数据,充分利用了现代计算机多CPU多核和大内存的特点,提高了数据库管理系统的性能和事务处理的吞吐量。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种数据库管理系统,其特征在于,所述数据库管理系统的数据缓冲区包括:
静态数据缓冲区和更新数据缓冲区;
所述静态数据缓冲区用于查询静态数据;
所述更新数据缓冲区用于进行数据更新操作,记录及查询更新数据;
在所述更新数据缓冲区进行数据更新操作,记录更新数据,包括:
对于数据库的插入操作,将新元组存入所述更新数据缓冲区中;
数据库中的每一元组具有一唯一标识;
在所述更新数据缓冲区进行数据更新操作,记录更新数据,包括:
对于数据库的修改操作,在所述更新数据缓冲区记录修改元组的标识和对应的新元组;
对于数据库的删除操作,在所述更新数据缓冲区记录删除元组的标识。
2.一种权利要求1所述数据库管理系统的数据处理方法,其特征在于,包括:
在所述静态数据缓冲区查询静态数据;
在所述更新数据缓冲区进行数据更新操作,记录及查询更新数据;
在所述更新数据缓冲区进行数据更新操作,记录更新数据,包括:
对于数据库的插入操作,将新元组存入所述更新数据缓冲区中;
数据库中的每一元组具有一唯一标识;
在所述更新数据缓冲区进行数据更新操作,记录更新数据,包括:
对于数据库的修改操作,在所述更新数据缓冲区记录修改元组的标识和对应的新元组;
对于数据库的删除操作,在所述更新数据缓冲区记录删除元组的标识。
3.如权利要求2所述的数据处理方法,其特征在于,对于数据库的查询操作:
在所述静态数据缓冲区查询静态数据,以及在所述更新数据缓冲区查询更新数据之后,将所述静态数据缓冲区的查询结果与所述更新数据缓冲区的查询结果合并,形成最终的查询结果。
4.如权利要求3所述的数据处理方法,其特征在于,数据库中的每一元组具有一唯一标识;
将所述静态数据缓冲区的查询结果与所述更新数据缓冲区的查询结果合并,包括:
在所述更新数据缓冲区的查询结果中包括静态数据的元组标识时,根据该元组标识,将所述静态数据缓冲区的查询结果与所述更新数据缓冲区的查询结果合并。
5.如权利要求3所述的数据处理方法,其特征在于,并行执行:在所述静态数据缓冲区查询静态数据;以及,在所述更新数据缓冲区查询更新数据。
6.如权利要求2至5任一项所述的数据处理方法,其特征在于,还包括:
所述数据库管理系统的合并线程定期将所述更新数据缓冲区中的更新数据合并至数据库中的静态数据,形成新的静态数据。
7.如权利要求2至5任一项所述的数据处理方法,其特征在于,还包括:
在所述更新数据缓冲区即将充满时,所述数据库管理系统的合并线程将所述更新数据缓冲区中的更新数据合并至数据库中的静态数据,形成新的静态数据。
8.如权利要求7所述的数据处理方法,其特征在于,还包括:
在所述更新数据缓冲区释放已被合并的更新数据所占用的内存。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310281873.XA CN103353891B (zh) | 2013-07-05 | 2013-07-05 | 数据库管理系统及其数据处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310281873.XA CN103353891B (zh) | 2013-07-05 | 2013-07-05 | 数据库管理系统及其数据处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103353891A CN103353891A (zh) | 2013-10-16 |
CN103353891B true CN103353891B (zh) | 2017-03-29 |
Family
ID=49310263
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310281873.XA Active CN103353891B (zh) | 2013-07-05 | 2013-07-05 | 数据库管理系统及其数据处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103353891B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106156070B (zh) * | 2015-03-31 | 2019-07-12 | 华为技术有限公司 | 一种查询方法、文件合并方法与相关装置 |
CN110309138B (zh) * | 2018-03-01 | 2023-04-07 | 阿里巴巴集团控股有限公司 | 数据合并方法、基于fpga的合并器及数据库系统 |
CN110457350A (zh) * | 2019-07-24 | 2019-11-15 | 阿里巴巴集团控股有限公司 | 用于在查询数据库中进行聚合查询的方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1564158A (zh) * | 2004-04-12 | 2005-01-12 | 南京大学 | 实时数据库建模、存储和访问方法 |
CN101068237A (zh) * | 2006-08-28 | 2007-11-07 | 腾讯科技(深圳)有限公司 | 数据访问系统以及数据访问方法 |
CN101266547A (zh) * | 2008-04-11 | 2008-09-17 | 北京泰得思达科技发展有限公司 | 一种基于gis地图的环境自动监测网络集成系统的信息监测软件 |
CN101918918A (zh) * | 2007-10-18 | 2010-12-15 | 未来波英国有限公司 | 数据提供设备 |
CN102375884A (zh) * | 2011-10-21 | 2012-03-14 | 北京百度网讯科技有限公司 | 一种用于对页面访问对象进行数据压缩的方法及设备 |
-
2013
- 2013-07-05 CN CN201310281873.XA patent/CN103353891B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1564158A (zh) * | 2004-04-12 | 2005-01-12 | 南京大学 | 实时数据库建模、存储和访问方法 |
CN101068237A (zh) * | 2006-08-28 | 2007-11-07 | 腾讯科技(深圳)有限公司 | 数据访问系统以及数据访问方法 |
CN101918918A (zh) * | 2007-10-18 | 2010-12-15 | 未来波英国有限公司 | 数据提供设备 |
CN101266547A (zh) * | 2008-04-11 | 2008-09-17 | 北京泰得思达科技发展有限公司 | 一种基于gis地图的环境自动监测网络集成系统的信息监测软件 |
CN102375884A (zh) * | 2011-10-21 | 2012-03-14 | 北京百度网讯科技有限公司 | 一种用于对页面访问对象进行数据压缩的方法及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN103353891A (zh) | 2013-10-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11762882B2 (en) | System and method for analysis and management of data distribution in a distributed database environment | |
US10838940B1 (en) | Balanced key range based retrieval of key-value database | |
US9665609B2 (en) | Garbage collection of multi-version concurrency control (MVCC) data blocks | |
CN105989194B (zh) | 表数据比较的方法和系统 | |
Larson et al. | Enhancements to SQL server column stores | |
EP3170106B1 (en) | High throughput data modifications using blind update operations | |
EP2790113B1 (en) | Aggregate query-caching in databases architectures with a differential buffer and a main store | |
US9298774B2 (en) | Changing the compression level of query plans | |
US10657116B2 (en) | Create table for exchange | |
US9529881B2 (en) | Difference determination in a database environment | |
EP3026580A1 (en) | Set-oriented visibility state retrieval scheme | |
Ahn et al. | ForestDB: A fast key-value storage system for variable-length string keys | |
Vilaça et al. | An effective scalable SQL engine for NoSQL databases | |
Tang et al. | Deferred lightweight indexing for log-structured key-value stores | |
Sherkat et al. | Page as you go: Piecewise columnar access in SAP HANA | |
US20170116280A1 (en) | Compression units in an index block | |
KR101549220B1 (ko) | 데이터베이스 관리 방법, 시스템 및 데이터베이스 트리 구조 | |
CN103353891B (zh) | 数据库管理系统及其数据处理方法 | |
Yassien et al. | RDBMS, NoSQL, Hadoop: a performance-based empirical analysis | |
US10558636B2 (en) | Index page with latch-free access | |
US9275091B2 (en) | Database management device and database management method | |
US9558221B2 (en) | Multi-pass, parallel merge for partitioned intermediate pages | |
Riegger et al. | Efficient data and indexing structure for blockchains in enterprise systems | |
Arnold et al. | HRDBMS: Combining the best of modern and traditional relational databases | |
Gupta et al. | Pragamana: performance comparison and programming alpha-miner algorithm in relational database query language and NoSQL column-oriented using apache phoenix |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |