本发明专利技术公开了一种基于偏序关系的缓冲区版本产生方法,用在数据库集群系统中。当首次加载数据块到缓冲区时,该数据块为缓冲区版本,数据块的时间戳为缓冲区版本的时间戳;如果后续加载到缓冲区的数据块的时间戳大于缓冲区版本的时间戳,则将该数据块的时间戳作为缓冲区版本新的时间戳;在修改缓冲区完成之后,将数据库集群系统的时间戳更新为该新的时间戳。本发明专利技术可以确保同一个数据块的缓冲区版本在其生命周期内是单调更新的,并且无需为每一次版本的更新再与其它节点进行通讯,从而减少了数据库集群节点间的通信量,改善了数据库集群系统的性能。
【技术实现步骤摘要】
本专利技术涉及一种数据库集群中缓冲区版本的产生方法,尤其涉及一种基于偏序关系实现的数据库集群中缓冲区版本的产生方法,属于数据库集群
技术介绍
随着经济的高速发展,用户数量、数据量呈现爆炸式增长。在用户需求不断增长的应用环境下,对数据库技术提出了严峻的考验。对于所有的数据库而言,除了记录正确的处理结果之外,还面临着以下几方面的挑战如何提高处理速度,实现数据库的负载均衡;如何保证数据库的可用性、数据安全性以及如何实现数据集可扩展性。为了应对上述技术挑战,人们借鉴计算机集群(将一组松散集成的计算机软件和 /或硬件连接起来高度紧密地协作完成计算工作)的技术理念,将多个数据库连接起来组成数据库集群系统。数据库集群系统(Database Cluster System,简称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中,从磁盘中读取数据块到本地缓冲区,完成后跳本文档来自技高网...
【技术保护点】
1.一种基于偏序关系的缓冲区版本产生方法,用在数据库集群系统中,其特征在于:当首次加载数据块到缓冲区时,所述数据块为缓冲区版本,所述数据块的时间戳为缓冲区版本的时间戳;如果后续加载到所述缓冲区的数据块的时间戳大于所述缓冲区版本的时间戳,则将该数据块的时间戳作为所述缓冲区版本新的时间戳;在修改所述缓冲区完成之后,将数据库集群系统的时间戳更新为该新的时间戳。
【技术特征摘要】
【专利技术属性】
技术研发人员:白广超,李祥凯,冯玉,李卫,冷建全,
申请(专利权)人:北京人大金仓信息技术股份有限公司,
类型:发明
国别省市:11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。