CN102314505B - 基于偏序关系的缓冲区版本产生方法 - Google Patents
基于偏序关系的缓冲区版本产生方法 Download PDFInfo
- Publication number
- CN102314505B CN102314505B CN201110263513.8A CN201110263513A CN102314505B CN 102314505 B CN102314505 B CN 102314505B CN 201110263513 A CN201110263513 A CN 201110263513A CN 102314505 B CN102314505 B CN 102314505B
- Authority
- CN
- China
- Prior art keywords
- buffer zone
- timestamp
- version
- data block
- base cluster
- 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
本发明公开了一种基于偏序关系的缓冲区版本产生方法,用在数据库集群***中。当首次加载数据块到缓冲区时,该数据块为缓冲区版本,数据块的时间戳为缓冲区版本的时间戳;如果后续加载到缓冲区的数据块的时间戳大于缓冲区版本的时间戳,则将该数据块的时间戳作为缓冲区版本新的时间戳;在修改缓冲区完成之后,将数据库集群***的时间戳更新为该新的时间戳。本发明可以确保同一个数据块的缓冲区版本在其生命周期内是单调更新的,并且无需为每一次版本的更新再与其它节点进行通讯,从而减少了数据库集群节点间的通信量,改善了数据库集群***的性能。
Description
技术领域
本发明涉及一种数据库集群中缓冲区版本的产生方法,尤其涉及一种基于偏序关系实现的数据库集群中缓冲区版本的产生方法,属于数据库集群技术领域。
背景技术
随着经济的高速发展,用户数量、数据量呈现***式增长。在用户需求不断增长的应用环境下,对数据库技术提出了严峻的考验。对于所有的数据库而言,除了记录正确的处理结果之外,还面临着以下几方面的挑战:如何提高处理速度,实现数据库的负载均衡;如何保证数据库的可用性、数据安全性以及如何实现数据集可扩展性。
为了应对上述技术挑战,人们借鉴计算机集群(将一组松散集成的计算机软件和/或硬件连接起来高度紧密地协作完成计算工作)的技术理念,将多个数据库连接起来组成数据库集群***。数据库集群***(DatabaseClusterSystem,简称DBCS)将集群技术与数据库***相结合,是一组完整的、自治的计算处理单元(节点),每个节点均有独自的CPU、内存以及磁盘等硬件资源,运行独立的操作***和自治的数据库***。各个节点通过高速专用网络或者商业通用网络互连,彼此协同计算,作为统一的数据库***提供并行事务处理服务。
在数据库集群***中,由于多个数据库节点(简称节点)并行运行,会导致多个节点都会读取或修改同一数据块,从而形成在整个数据库集群***中存在同一数据块的多个版本。为了保证多个版本的数据块得到有效管理,防止节点访问过时的数据块,人们通常为数据块添加一个新的属性,即数据块版本属性。当数据块加载到缓冲区后,即称为缓冲区版本。为了保证多节点之间缓冲区版本的一致性,各节点在产生缓冲区版本的过程中必须与其它节点通信,以产生内容完全一致的缓冲区版本。在现有技术中,普遍采用集中控制的方法产生缓冲区版本,即由一个版本控制器来统一管理缓冲区版本的产生,各个节点向版本控制器申请新的缓冲区版本。这种方式的缺点在于一是通信的开销比较大,二是版本控制器本身可能成为数据库集群***的性能瓶颈。
发明内容
针对现有技术所存在的不足,本发明所要解决的技术问题在于提供一种基于偏序关系的缓冲区版本产生方法。使用该方法可以显著减少数据库集群***中各节点之间的通信量。
为实现上述的发明目的,本发明采用下述的技术方案:
一种基于偏序关系的缓冲区版本产生方法,用在数据库集群***中,其中,
当首次加载数据块到缓冲区时,所述数据块为缓冲区版本,所述数据块的时间戳为缓冲区版本的时间戳;
如果后续加载到所述缓冲区的数据块的时间戳大于所述缓冲区版本的时间戳,则将该数据块的时间戳作为所述缓冲区版本新的时间戳;
在修改所述缓冲区完成之后,将数据库集群***的时间戳更新为该新的时间戳。
当数据库集群***中的节点读取所述缓冲区版本时,首先检查所述缓冲区版本的时间戳,如果所述缓冲区版本的时间戳大于所述数据库集群***当前的时间戳,则将所述缓冲区版本的时间戳设置为所述数据库集群***新的时间戳。
当传送所述缓冲区版本到其它节点时,比较所述缓冲区版本的时间戳与接收节点的时间戳,取其中较大者作为所述缓冲区版本新的时间戳。
如果所述缓冲区版本的时间戳大于所述接收节点的时间戳,则将所述缓冲区版本的时间戳作为所述接收节点新的时间戳。
本发明利用不同缓冲区版本之间的偏序关系,确保了同一个数据块的缓冲区版本在其生命周期内是单调更新的,并且无需为每一次版本的更新再与其它节点进行通讯,从而减少了数据库集群节点间的通信量,改善了数据库集群***的性能。
附图说明
下面结合附图和具体实施方式对本发明作进一步的详细说明。
图1为本发明所提供的缓冲区版本产生方法中,确保缓冲区版本偏序关系的操作流程图。
具体实施方式
在本发明所提供的缓冲区版本产生方法中,首先为每个数据块添加一个新的属性,即数据块版本属性。该数据块版本属性用时间戳来表示。数据库集群***中的每个节点都可以设置自己的时间戳。每个节点分别维护自己的时间戳,该时间戳随时间的变化而不断增大。同一数据块的缓冲区版本单调增长,但不同数据块的缓冲区版本之间没有关系。在整个数据库集群***中,可以存在多个不同版本的数据块缓冲区。其中,版本最大的缓冲区是最新版本,其它版本的缓冲区是过期版本。过期版本可用于实现缓冲区的回朔操作。
当缓冲区只与单一节点的操作有关时,可以取该节点的当前时间戳作为数据块的时间戳。当数据块首次被加载到缓冲区时,该数据块即成为缓冲区版本,数据块的时间戳也成为缓冲区版本的时间戳。当后续加载数据块到缓冲区时,若后续加载的数据块的时间戳大于缓冲区版本当前的时间戳,则将该数据块的时间戳作为缓冲区版本新的时间戳。在缓冲区修改完成后,更新其时间戳为数据库集群***当前的时间戳。当发生各个节点之间缓冲区的交换时,需要校正时间戳,防止新的缓冲区版本时间戳小于旧的缓冲区版本时间戳,从而导致访问过期的缓冲区。
为了解决这一问题,本发明引入了数学中的偏序关系概念。在数学上,设R为非空集合A上的关系,如果R是自反的、反对称的和传递的,则称R为A上的偏序关系。在本发明中,偏序关系可以理解为两个缓冲区版本的时间戳之间“大于或等于”或者“小于或等于”之类的顺序关系。因此,不同缓冲区版本在时间戳上存在偏序关系。
下面结合附图和具体实施例对本发明的具体实施步骤作进一步说明,但该实施例并不能理解为对本发明的限定。
在某个基于共享磁盘的数据库集群***中,包括4个数据库节点和一个全局资源管理节点。其中,数据库节点指提供数据库服务的服务器,接受用户的数据库查询请求,并返回结果,它属于数据库集群***的组成部分,可以有一个或多个;全局资源管理节点是指提供数据库集群***共享资源管理服务的节点,它是数据库集群***的核心组件。
当数据库集群***中的节点从磁盘缓冲区中读取缓冲区版本时,首先检查缓冲区版本的时间戳。若缓冲区版本的时间戳大于当前数据库集群***的时间戳时,则将缓冲区版本的时间戳设置为数据库集群***新的时间戳。当传送缓冲区版本到其它节点时,比较该缓冲区版本的时间戳与接收节点的时间戳,取其中较大者作为缓冲区版本新的时间戳,并将其作为接收节点新的时间戳。
下面以图1为例,详细说明访问数据块的过程中缓冲区版本的变化情况。
在步骤101中,节点产生数据块访问事件,提出某一数据块(即缓冲区版本)访问请求。在步骤102中,判断本地缓冲区中是否存在此数据块:若存在包含此数据块的缓冲区,则跳转步骤103;若不存在包含此数据块的缓冲区,则跳转步骤107;在步骤103,通过时间戳判断此缓冲区版本是否是最新版本:若是最新版本,则跳转步骤104;若不是最新版本,则跳转步骤108。
在步骤104中,进行访问数据块的相关操作;在步骤105中,判断所访问的数据块是否被修改:若被修改,则跳转步骤106;若未修改,则跳转步骤112;在步骤106中,鉴于此时的缓冲区版本为最新版本,设置缓冲区版本的时间戳为数据库集群***当前的时间戳,跳转至步骤112,完成缓冲区的访问操作。
另一方面,在步骤107中,判断其它节点是否有此数据块:若存在,则跳转步骤108;若不存在,则跳转步骤110。在步骤108中,向其它节点请求传送最新版本的数据块,并接收到本地缓冲区;然后转入步骤109。在步骤109中,判断缓冲区版本的时间戳是否大于数据库集群***当前的时间戳:若大于数据库集群***当前的时间戳,则跳转步骤111;否则跳转回步骤104。在步骤110中,从磁盘中读取数据块到本地缓冲区,完成后跳转回步骤109。在步骤111中,将缓冲区版本的时间戳设置为数据库集群***新的时间戳,完成后跳转回步骤104。
通过上述的操作步骤,可以保证同一个数据块的缓冲区版本在其生命周期内是单调更新的(满足偏序关系的要求),并且无需为每一次版本的更新再与其它节点进行通讯,只需要在传送页面时通讯一次即可。
以上对本发明所提供的基于偏序关系的缓冲区版本产生方法进行了详细的说明。对本领域的技术人员而言,在不背离本发明实质精神的前提下对它所做的任何显而易见的改动,都将构成对本发明专利权的侵犯,将承担相应的法律责任。
Claims (2)
1.一种基于偏序关系的缓冲区版本产生方法,用在数据库集群***中,其特征在于:
当首次加载数据块到缓冲区时,所述数据块为缓冲区版本,所述数据块的时间戳为缓冲区版本的时间戳;
当数据库集群***中的节点读取所述缓冲区版本时,检查所述缓冲区版本的时间戳:如果所述缓冲区版本的时间戳大于所述数据库集群***的时间戳,则将所述缓冲区版本的时间戳设置为所述数据库集群***新的时间戳;如果加载到所述缓冲区的数据块的时间戳大于所述缓冲区版本的时间戳,则将该数据块的时间戳作为所述缓冲区版本新的时间戳,在修改所述缓冲区版本之后,将数据库集群***的时间戳更新为该新的时间戳;
当传送所述缓冲区版本到其它节点时,比较所述缓冲区版本的时间戳与接收节点的时间戳,取其中较大者作为所述缓冲区版本新的时间戳。
2.如权利要求1所述的缓冲区版本产生方法,其特征在于:
如果所述缓冲区版本的时间戳大于所述接收节点的时间戳,则将所述缓冲区版本的时间戳作为所述接收节点新的时间戳。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110263513.8A CN102314505B (zh) | 2011-09-07 | 2011-09-07 | 基于偏序关系的缓冲区版本产生方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110263513.8A CN102314505B (zh) | 2011-09-07 | 2011-09-07 | 基于偏序关系的缓冲区版本产生方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102314505A CN102314505A (zh) | 2012-01-11 |
CN102314505B true CN102314505B (zh) | 2016-04-13 |
Family
ID=45427670
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110263513.8A Active CN102314505B (zh) | 2011-09-07 | 2011-09-07 | 基于偏序关系的缓冲区版本产生方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102314505B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108897761B (zh) | 2014-05-27 | 2023-01-13 | 华为技术有限公司 | 一种聚簇存储方法及装置 |
CN106940699B (zh) * | 2016-01-05 | 2021-02-05 | 创新先进技术有限公司 | 一种内存数据的同步处理方法、装置、服务器及*** |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1524239A (zh) * | 2001-06-01 | 2004-08-25 | ���Ĺ��ʹ�˾ | 在分布式数据库环境中的一致性读取 |
CN101110706A (zh) * | 2007-07-23 | 2008-01-23 | 中兴通讯股份有限公司 | 一种配置数据同步方法 |
CN101188566A (zh) * | 2007-12-13 | 2008-05-28 | 沈阳东软软件股份有限公司 | 一种集群环境下数据缓存同步的方法及*** |
-
2011
- 2011-09-07 CN CN201110263513.8A patent/CN102314505B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1524239A (zh) * | 2001-06-01 | 2004-08-25 | ���Ĺ��ʹ�˾ | 在分布式数据库环境中的一致性读取 |
CN101110706A (zh) * | 2007-07-23 | 2008-01-23 | 中兴通讯股份有限公司 | 一种配置数据同步方法 |
CN101188566A (zh) * | 2007-12-13 | 2008-05-28 | 沈阳东软软件股份有限公司 | 一种集群环境下数据缓存同步的方法及*** |
Also Published As
Publication number | Publication date |
---|---|
CN102314505A (zh) | 2012-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10949447B2 (en) | Blockchain-based data synchronizing and data block parsing method and device | |
CN111338766B (zh) | 事务处理方法、装置、计算机设备及存储介质 | |
US10891267B2 (en) | Versioning of database partition maps | |
CN111597015B (zh) | 事务处理方法、装置、计算机设备及存储介质 | |
US9817703B1 (en) | Distributed lock management using conditional updates to a distributed key value data store | |
KR101863398B1 (ko) | 다중-서버 예약 시스템 상의 동기화 메커니즘 시스템 및 방법 | |
CN107391758B (zh) | 数据库切换方法、装置及设备 | |
CN102314506B (zh) | 基于动态索引的分布式缓冲区管理方法 | |
US10275347B2 (en) | System, method and computer program product for managing caches | |
CN102088484B (zh) | 一种分布式文件***的写锁定方法及*** | |
US9020949B2 (en) | Method and system for centralized issue tracking | |
JP2023546249A (ja) | トランザクション処理方法、装置、コンピュータ機器及びコンピュータプログラム | |
US11314717B1 (en) | Scalable architecture for propagating updates to replicated data | |
US20180004777A1 (en) | Data distribution across nodes of a distributed database base system | |
US8626765B2 (en) | Processing database operation requests | |
US20110225121A1 (en) | System for maintaining a distributed database using constraints | |
US20070118572A1 (en) | Detecting changes in data | |
CN101183379A (zh) | 用于检索数据的方法和*** | |
JP2009522660A (ja) | 検索可能なデータサービスのための方法及び装置 | |
CN103473696A (zh) | 一种收集、分析和分发网络商业信息的方法和*** | |
US10747739B1 (en) | Implicit checkpoint for generating a secondary index of a table | |
WO2020024903A1 (zh) | 用于搜索区块链数据的方法、设备及计算机可读存储介质 | |
JP2023541298A (ja) | トランザクション処理方法、システム、装置、機器、及びプログラム | |
CN110825704A (zh) | 一种读数据方法、写数据方法及服务器 | |
US20110225120A1 (en) | System for maintaining a distributed database using leases |
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 |