CN102314506B - 基于动态索引的分布式缓冲区管理方法 - Google Patents

基于动态索引的分布式缓冲区管理方法 Download PDF

Info

Publication number
CN102314506B
CN102314506B CN201110263655.4A CN201110263655A CN102314506B CN 102314506 B CN102314506 B CN 102314506B CN 201110263655 A CN201110263655 A CN 201110263655A CN 102314506 B CN102314506 B CN 102314506B
Authority
CN
China
Prior art keywords
data block
node
buffer
buffer zone
manager
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
Application number
CN201110263655.4A
Other languages
English (en)
Other versions
CN102314506A (zh
Inventor
白广超
李祥凯
冯玉
李卫
冷建全
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Kingbase Information Technologies Co Ltd
Original Assignee
Beijing Kingbase Information Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Kingbase Information Technologies Co Ltd filed Critical Beijing Kingbase Information Technologies Co Ltd
Priority to CN201110263655.4A priority Critical patent/CN102314506B/zh
Publication of CN102314506A publication Critical patent/CN102314506A/zh
Application granted granted Critical
Publication of CN102314506B publication Critical patent/CN102314506B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种基于动态索引的分布式缓冲区管理方法,用在数据库集群系统中。其中,数据库集群系统的每个节点设置独立的缓冲区;当数据块被某个节点首次加载到该节点的缓冲区时,首先将该数据块的信息加入到全局缓冲区管理器的动态索引表中,并将缓冲区的属性设置为本地资源,由该节点持有;当其它节点需要访问该数据块时,首先向全局缓冲区管理器查询,在通过动态索引表得知该数据块已经被加载、并被某个节点持有的情况下,修改该缓冲区的属性为全局资源,并向持有该数据块的节点申请传送该数据块以供访问。本发明通过动态索引机制实现了数据块的多版本访问控制,减少了磁盘I/O,提高了数据库集群系统的整体性能。

Description

基于动态索引的分布式缓冲区管理方法
技术领域
本发明涉及一种数据库集群系统中分布式缓冲区的管理方法,尤其涉及一种基于动态索引机制实现的分布式缓冲区管理方法,属于数据库集群系统技术领域。
背景技术
随着经济的高速发展,用户数量、数据量呈现爆炸式增长。在用户需求不断增长的应用环境下,对数据库技术提出了严峻的考验。对于所有的数据库而言,除了记录正确的处理结果之外,还面临着以下几方面的挑战:如何提高处理速度,实现数据库的负载均衡;如何保证数据库的可用性、数据安全性以及如何实现数据集可扩展性。
为了应对上述技术挑战,人们借鉴计算机集群(将一组松散集成的计算机软件和/或硬件连接起来高度紧密地协作完成计算工作)的技术理念,将多个数据库连接起来组成数据库集群系统。数据库集群系统(Database Cluster System,简称DBCS)将集群技术与数据库系统相结合,是一组完整的、自治的计算处理单元(节点),每个节点均有独自的CPU、内存以及磁盘等硬件资源,运行独立的操作系统和自治的数据库系统。各个节点通过高速专用网络或者商业通用网络互连,彼此协同计算,作为统一的数据库系统提供并行事务处理服务。
在数据库系统中,使用缓冲区的目标是减少磁盘和存储器之间传输的数据块的数目,即减少磁盘访问次数。在单机数据库系统中,缓冲区的应用技术已经十分成熟,但在数据库集群系统中,由于集群系统属于分布式系统,传统的缓冲区技术已经不能适应这种复杂的分布式系统。分布式缓冲区管理不仅要求将数据块缓存到缓冲区中,还必须保证多个数据库节点对相同数据块的并发访问,并且保证数据库节点可以访问到正确的数据块版本。
在专利号为ZL200710099762.1的中国发明专利中,公开了一种嵌入式数据库的存储管理方法,包括如下步骤:(1)数据在内存存储策略为:逻辑、物理结构相一致,分为系统区、主存数据库区、用户工作区、日志区和预留区;数据在外存存储策略为:逻辑结构分为:数据库表、段、数据库块;物理结构包括物理文件和物理块;(2)数据库物理文件组织为:将数据字典放在首部,其后为用户表;(3)数据字典在外存的存储管理为:物理文件的描述信息存储在文件头,外延定义类和属性定义类采用三段式的存储方式;数据字典在内存采用页式存储管理方法;(4)采用T树存取常驻内存数据,采用B+树存取常驻外存数据;采用扩展的段页式存储管理方法对数据本身及其索引进行管理。该方法提高了存储空间的利用率,加快了数据访问的速度。但是,该方法并不适合在数据库集群系统中使用。
发明内容
针对现有技术所存在的不足,本发明所要解决的技术问题在于提供一种基于动态索引的分布式缓冲区管理方法。使用该方法可以提高数据库集群系统的整体性能。
为实现上述的发明目的,本发明采用下述的技术方案:
一种基于动态索引的分布式缓冲区管理方法,用在数据库集群系统中,其特征在于:
所述数据库集群系统的每个节点设置独立的缓冲区;
当数据块被某个节点首次加载到该节点的缓冲区时,首先将该数据块的信息加入到全局缓冲区管理器的动态索引表中,并将缓冲区的属性设置为本地资源,由该节点持有;
当其它节点需要访问该数据块时,首先向所述全局缓冲区管理器查询,在通过动态索引表得知该数据块已经被加载、并被某个节点持有的情况下,修改该缓冲区的属性为全局资源,并向持有该数据块的节点申请传送该数据块以供访问。
其中,当缓冲区被修改后,该节点向全局缓冲区管理器申请更新动态索引表,并修改所述缓冲区的状态。
所述缓冲区的状态包括持有节点和资源属性。
当某个节点需要查找某数据块时,首先查询本地的缓冲区,判断该缓冲区中是否存在该数据块,若存在且该缓冲区的属性为本地资源则直接使用;否则查询所述全局缓冲区管理器的动态索引表,若其它节点的缓冲区存在该数据块,则向其它节点申请传送该数据块并相应修改本地的缓冲区。
若该数据块存在且缓冲区的属性不是本地资源,则向所述全局缓冲区管理器查询该数据块是否是最新版本,若该数据块是最新版本则直接访问该数据块,若该数据块不是最新版本则向持有最新版本的数据块的节点请求传送数据块并相应修改本地的缓冲区。
若所述全局缓冲区管理器的动态索引表没有该数据块的信息,则从数据库集群系统的磁盘中读取该数据块到本地的缓冲区,并将该数据块的信息添加到所述动态索引表中,更新所述全局缓冲区管理器中的持有节点和资源属性信息,并将缓冲区的属性设置为本地资源。
在需要进行缓冲区内容置换的情况下,首先选择当前节点中最近最少使用的缓冲区,检查该缓冲区的属性;若该缓冲区的属性为本地资源,则将数据块直接写入磁盘,移除所述全局缓冲区管理器中对该缓冲区的索引,释放该缓冲区;若该缓冲区的属性为全局资源,则通过所述全局缓冲区管理器查询数据块的版本,若该数据块不是最新版本,则直接释放该缓冲区;若该数据块是最新版本,则将该数据块写入磁盘中,并通知其它持有该数据块的节点释放缓冲区,然后移除所述全局缓冲区管理器中对该缓冲区的索引,释放该缓冲区。
在该数据块是最新版本的情况下,通知其它持有该数据块的节点该数据块被设置为无效。
本发明通过动态索引机制实现了数据块的多版本访问控制,减少了磁盘I/O,提高了数据库集群系统的整体性能;同时由于数据块的多版本访问控制,在发生单节点故障时减少了数据丢失,提高了单点故障时系统恢复的效率。
附图说明
下面结合附图和具体实施方式对本发明作进一步的详细说明。
图1为本发明所提供的分布式缓冲区管理方法中,访问缓冲区数据块的操作流程图;
图2为本发明所提供的分布式缓冲区管理方法中,进行缓冲区置换的操作流程图。
具体实施方式
下面结合附图和具体实施例对本发明的具体实施步骤作进一步说明,但该实施例并不能理解为对本发明的限定。
在某个基于共享磁盘的数据库集群系统中,包括4个数据库节点和1个全局资源管理节点。其中,数据库节点是指提供数据库服务的服务器,用于接受用户的数据库查询请求,并返回结果。它属于数据库集群系统的组成部分,可以有一个或多个。全局资源管理节点是指提供数据库集群系统共享资源管理服务的节点。它是数据库集群系统的核心组件,其中包括用于管理缓冲区的全局缓冲区管理器。该全局缓冲区管理器可以实现对各节点缓冲区的内容索引、版本管理和属性修改等功能。对于数据库领域的一般技术人员而言,以软件或者固件方式实现该全局缓冲区管理器并不是一项困难的工作,在此就不详细赘述了。
在上述数据库集群系统中,每个节点都有其独立的本地缓冲区(简称缓冲区)。该缓冲区的资源分配可以由节点自行管理。每个数据块都有一个属性来标识数据块的版本。当数据块加载到缓冲区时,即成为缓冲区的版本。在数据库集群系统中,可以存在包含相同数据块的多个版本缓冲区。
缓冲区的属性分为本地资源和全局资源两种。当数据块被某个节点首次加载到该节点的缓冲区时,将该数据块的信息加入到全局缓冲区管理器的动态索引表中,并将缓冲区的属性设置为本地资源,由该节点持有。此后该节点对此缓冲区的所有操作都不再与全局缓冲区管理器进行通讯,即都为本地操作。若该节点需要更新缓冲区中的数据块(即修改缓冲区),则在更新完成后,向全局缓冲区管理器申请更新动态索引表,将其指向本节点,并修改缓冲区的状态,包括持有节点和资源属性等信息。在此过程中,全局缓冲区管理器中的动态索引表是动态变化的,相同数据块的缓冲区在不同时刻的索引并不相同。
当某个节点需要查找某数据块时,首先查询本地缓冲区,判断本地缓冲区中是否存在该数据块。若存在该数据块且缓冲区属性为本地资源则可以直接使用;否则需要查询全局缓冲区管理器的动态索引表。若其它节点的缓冲区存在该数据块,则向其它节点申请访问该数据块,否则该节点使用原有的缓冲区或直接从磁盘中读取数据块到缓冲区。
在某个节点向其它节点申请传送某数据块(即其它节点申请访问某缓冲区的数据块)时,首先需要向全局缓冲区管理器查询,通过动态索引表得知该数据块已经被加载,并被某个节点持有,则修改该缓冲区的属性为全局资源,并向持有该数据块的节点申请传送该数据块以供访问。
下面,以图1为例详细说明访问缓冲区数据块的操作过程。
在步骤101中,某个节点产生访问缓冲区数据块事件;在步骤102中,该节点首先判断本地缓冲区是否存在该数据块:若存在该数据块,则跳转步骤103;若不存在该数据块,则跳转步骤109;在步骤103中,该节点定位包含该数据块的本地缓冲区,并判断该缓冲区的属性是否为本地资源:若该缓冲区为本地资源,则跳转步骤104;若不是本地资源,则跳转步骤105。
在步骤104中,该节点访问本地缓冲区中的数据块,完成后跳转至步骤114,完成对该数据块的访问。在步骤105中,向全局缓冲区管理器查询本地缓冲区中的数据块是否是最新版本:若是最新版本,则跳转步骤106;若不是最新版本,则跳转步骤110。
在步骤106中,该节点访问本地缓冲区中的数据块;在步骤107中,若该节点未修改该数据块,则跳转至步骤114,完成对该数据块的访问;若该节点已经修改该数据块,则跳转步骤108。在步骤108中,通知全局缓冲区管理器修改持有节点和资源属性等信息,完成后跳转步骤114,完成对该数据块的访问。
在步骤109中,判断全局缓冲区管理器的动态索引表中是否存在该数据块的信息,若存在则跳转步骤110,若不存在跳转步骤111。在步骤110中,该节点向持有最新版本的数据块的节点请求传送该数据块并相应更新到本地缓冲区,然后跳转回步骤106。
在步骤111中,该节点从数据库集群系统的磁盘中读取数据块到本地缓冲区。在步骤112中,该节点将该数据块的信息添加到全局缓冲区管理器的动态索引表中,然后在步骤113中,更新全局缓冲区管理器中的持有节点和资源属性等信息,并将缓冲区属性设置为本地资源,完成后跳转至步骤114。
在步骤114中,完成访问数据块的全部过程。
在数据库集群系统的缓冲区中,有时会出现缓冲区空间不足的情况。在这种情况下,需要进行缓冲区内容的置换。具体操作如下:首先选择当前节点中最近最少使用的缓冲区,检查缓冲区的属性。若是本地资源,则将数据块直接写入磁盘,移除全局缓冲区管理器中对此缓冲区的索引,然后释放该缓冲区;若是全局资源,则通过全局缓冲区管理器查询数据块的版本,若该数据块不是最新版本,则直接释放缓冲区;否则将其写入磁盘中,并通知其它持有该数据块的节点释放缓冲区,然后移除全局缓冲区管理器中对此缓冲区的索引,释放该缓冲区。
下面,以图2为例详细说明缓冲区置换操作的具体过程。
在步骤201中,某个节点发起缓冲区置换请求;在步骤202中,判断缓冲区的属性是否为本地资源:若是本地资源,则跳转步骤203;若不是本地资源,则跳转步骤206;在步骤203中,将该数据块写入磁盘,接下来进入步骤204,从全局缓冲区管理器的动态索引表中移除对该数据块的索引,进入步骤205,释放缓冲区的资源,完成后跳转至步骤209。
在步骤206中,向全局缓冲区管理器查询该数据块是否为最新版本,若是最新版本,则跳转步骤207;若不是最新版本,则跳转步骤205。在步骤207中,通知其它节点该数据块被设置为无效。在缓冲区中的数据块被设置为无效的情况下,可以将置为无效的缓冲区加入到剩余可用缓冲区资源表中。在步骤208中,其它节点释放包含该数据块的缓冲区,完成后跳转步骤203。
在步骤209中,完成缓冲区置换的全部过程。
以上对本发明所提供的基于动态索引的分布式缓冲区管理方法进行了详细的说明。对本领域的技术人员而言,在不背离本发明实质精神的前提下对它所做的任何显而易见的改动,都将构成对本发明专利权的侵犯,将承担相应的法律责任。

Claims (6)

1.一种基于动态索引的分布式缓冲区管理方法,用在数据库集群系统中,其特征在于:
所述数据库集群系统的每个节点设置独立的缓冲区;
当数据块被某个节点首次加载到该节点的缓冲区时,首先将该数据块的信息加入到全局缓冲区管理器的动态索引表中,并将缓冲区的属性设置为本地资源,由该节点持有;
当其它节点需要访问该数据块时,首先向所述全局缓冲区管理器查询,在通过动态索引表得知该数据块已经被加载、并被某个节点持有的情况下,修改该缓冲区的属性为全局资源,并向持有该数据块的节点申请传送该数据块以供访问;
在需要进行缓冲区内容置换的情况下,首先选择当前节点中最近最少使用的缓冲区,检查该缓冲区的属性:若该缓冲区的属性为本地资源,则将数据块写入磁盘中,移除所述全局缓冲区管理器中对该缓冲区的索引,释放该缓冲区;若该缓冲区的属性为全局资源,则通过所述全局缓冲区管理器查询数据块的版本,若该数据块不是最新版本,则直接释放该缓冲区;若该数据块是最新版本,则将该数据块写入磁盘中,并通知其它持有该数据块的节点释放本地缓冲区,然后移除所述全局缓冲区管理器中对该缓冲区的索引,释放该缓冲区;
当缓冲区被修改后,该节点向所述全局缓冲区管理器申请更新动态索引表,并修改所述缓冲区的状态。
2.如权利要求1所述的分布式缓冲区管理方法,其特征在于:
所述缓冲区的状态包括持有节点和资源属性。
3.如权利要求1所述的分布式缓冲区管理方法,其特征在于:
当某个节点需要查找某数据块时,首先查询本地缓冲区,判断该缓冲区中是否存在该数据块,若存在且该缓冲区的属性为本地资源则直接使用;否则查询所述全局缓冲区管理器的动态索引表,若其它节点的缓冲区存在该数据块,则向其它节点申请传送该数据块并相应修改本地缓冲区。
4.如权利要求3所述的分布式缓冲区管理方法,其特征在于:
若该数据块存在且缓冲区的属性不是本地资源,则向所述全局缓冲区管理器查询该数据块是否是最新版本,若该数据块是最新版本则直接访问该数据块,若该数据块不是最新版本则向持有最新版本的数据块的节点请求传送数据块并相应修改本地缓冲区。
5.如权利要求3所述的分布式缓冲区管理方法,其特征在于:
若所述全局缓冲区管理器的动态索引表没有该数据块的信息,则从数据库集群系统的磁盘中读取该数据块到本地缓冲区,并将该数据块的信息添加到所述动态索引表中,更新所述全局缓冲区管理器中的持有节点和资源属性信息,并将缓冲区的属性设置为本地资源。
6.如权利要求1所述的分布式缓冲区管理方法,其特征在于:
在该数据块是最新版本的情况下,通知其它持有该数据块的节点该数据块被设置为无效。
CN201110263655.4A 2011-09-07 2011-09-07 基于动态索引的分布式缓冲区管理方法 Active CN102314506B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110263655.4A CN102314506B (zh) 2011-09-07 2011-09-07 基于动态索引的分布式缓冲区管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110263655.4A CN102314506B (zh) 2011-09-07 2011-09-07 基于动态索引的分布式缓冲区管理方法

Publications (2)

Publication Number Publication Date
CN102314506A CN102314506A (zh) 2012-01-11
CN102314506B true CN102314506B (zh) 2015-09-09

Family

ID=45427671

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110263655.4A Active CN102314506B (zh) 2011-09-07 2011-09-07 基于动态索引的分布式缓冲区管理方法

Country Status (1)

Country Link
CN (1) CN102314506B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103106286B (zh) * 2013-03-04 2017-02-01 曙光信息产业(北京)有限公司 元数据的管理方法和装置
CN103714009B (zh) * 2013-12-20 2016-07-27 华中科技大学 一种GPU上基于内存统一管理的MapReduce实现方法
CN105022743A (zh) * 2014-04-24 2015-11-04 中兴通讯股份有限公司 一种管理索引的方法及装置
CN106095832B (zh) * 2016-06-01 2020-02-18 东软集团股份有限公司 分布式并行数据处理方法以及装置
CN106446273A (zh) * 2016-10-21 2017-02-22 天津海量信息技术股份有限公司 基于rpc实现的ES全局数据消重方法
WO2018209574A1 (zh) * 2017-05-16 2018-11-22 深圳中兴力维技术有限公司 一种告警数据查询方法及装置
CN108965155A (zh) * 2018-07-03 2018-12-07 厦门日辰科技有限公司 分布式网络的数据处理方法及计算机可读存储介质
CN112148202B (zh) * 2019-06-26 2023-05-26 杭州海康威视数字技术股份有限公司 训练样本读取方法及装置
CN114968539A (zh) * 2021-02-22 2022-08-30 华为技术有限公司 数据处理方法、计算机系统和中间设备
CN113867820B (zh) * 2021-09-29 2024-05-28 深圳市智微智能软件开发有限公司 一种动态修改framebuffer的方法、装置、设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101188544A (zh) * 2007-12-04 2008-05-28 浙江大学 分布式文件服务器基于缓冲区的文件传输方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7457796B2 (en) * 2004-07-08 2008-11-25 International Business Machines Corporation Method using virtual replicated tables in a cluster database management system
CN101196890B (zh) * 2006-12-08 2010-06-16 国际商业机器公司 聚合数据库运行时信息和分析应用性能的方法及装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101188544A (zh) * 2007-12-04 2008-05-28 浙江大学 分布式文件服务器基于缓冲区的文件传输方法

Also Published As

Publication number Publication date
CN102314506A (zh) 2012-01-11

Similar Documents

Publication Publication Date Title
CN102314506B (zh) 基于动态索引的分布式缓冲区管理方法
CN102591970B (zh) 一种分布式键-值查询方法和查询引擎系统
US11175832B2 (en) Thread groups for pluggable database connection consolidation in NUMA environment
US7581025B2 (en) System and method for synchronizing copies of data in a computer system
US7325041B2 (en) File distribution system in which partial files are arranged according to various allocation rules associated with a plurality of file types
US7814065B2 (en) Affinity-based recovery/failover in a cluster environment
US7707337B2 (en) Object-based storage device with low process load and control method thereof
CN102708165B (zh) 分布式文件系统中的文件处理方法及装置
CN104050249A (zh) 分布式查询引擎系统和方法及元数据服务器
CN102088484B (zh) 一种分布式文件系统的写锁定方法及系统
CN104050250A (zh) 一种分布式键-值查询方法和查询引擎系统
CN102053982A (zh) 一种数据库信息管理方法和设备
CN102541990A (zh) 利用虚拟分区的数据库重新分布方法和系统
WO2014180232A1 (zh) 请求响应方法、装置及分布式文件系统
US20180039628A1 (en) System and method for providing dynamic relocation of tenants in a multi-tenant database environment
CN102937964A (zh) 基于分布式系统的智能数据服务方法
CN109656886B (zh) 基于键值对的文件系统实现方法、装置、设备和存储介质
CN106960011A (zh) 分布式文件系统元数据管理系统及方法
US9348847B2 (en) Data access control apparatus and data access control method
US20050267888A1 (en) Method for process substitution on a database management system
CN102314505B (zh) 基于偏序关系的缓冲区版本产生方法
CN111680069B (zh) 数据库访问方法及装置
CN109522308B (zh) 一种连接句柄管理方法和装置
CN116049320B (zh) 一种基于本地化访问的分布式数据库设计方法及系统
US11853298B2 (en) Data storage and data retrieval methods and devices

Legal Events

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