基于无碎片回收的数据库多版本并发控制系统技术方案

技术编号:23399938 阅读:15 留言:0更新日期:2020-02-22 12:13
本发明专利技术提供了一种基于无碎片回收的数据库多版本并发控制系统,包括事务信息记录模块、事务数据管理模块、数据可见性优化模块、内存优化提速模块和多版本回收模块。本发明专利技术利用定长文件的文件组或定长逻辑段的方式设计回滚段,提供了一套MVCC实现机制和回滚段回收清理的方法,并结合内存访问优化来提高访问响应时间,从而避免了回滚段回收时造成显著的系统开销,且避免造成磁盘的碎片化;同时,可配置的回滚段在有足够磁盘的情况下可以保证没有对并发运行事务个数和事务长短的限制;另外,内存与磁盘相结合的设计可以满足绝大多数情况下避免或减少磁盘访问,从而保证系统的访问性能。

Multi version concurrent control system of database based on non fragment recovery

【技术实现步骤摘要】
基于无碎片回收的数据库多版本并发控制系统
本专利技术涉及系统优化
,尤其是涉及一种基于无碎片回收的数据库多版本并发控制系统。
技术介绍
传统的数据库在支持并发事务访问时,通常会提供不同的数据访问隔离级别来满足应用对数据的使用。目前主要有两种实现方式:基于事务锁的机制和基于多版本并发控制机制。前者最大的弊端是会出现读写互斥从而降低系统的并发性。所以后者逐渐成为目前的主流实现方式。其原理是在数据变更或删除时在数据结构后部追加新数据版本,且在系统中保留原有版本的数据版本。同时,每次生成数据时要记录一个递增的版本号标识,这样在查询时可以根据查询事务开始时的标识可以确定使用哪一个版本的数据。基于多版本并发控制机制最大的问题就是需要耗费额外的存储空间。所有基于多版本并发控制机制实现的数据库都需要实现一套空间回收机制,释放不再需要的版本。在实践中,这些回收过程会带来额外的CPU开销、磁盘的读写操作和内存操作,回收操作触发过程中系统处理能力受到极大影响,稳定性大幅下降。回收后还会造成磁盘碎片化,降低了磁盘访问效率。
技术实现思路
本专利技术实施例所要解决的技术问题在于,提供一种基于无碎片回收的数据库多版本并发控制系统,能够通过采用一套简单有效的、不会给系统带来太大影响的存储回收机制,从而给多版本并发控制的数据库性能带来极大的提升。为了解决上述技术问题,本专利技术实施例提供了一种基于无碎片回收的数据库多版本并发控制系统,包括:事务信息记录模块,用于对数据库中的各个事务分配唯一标识,并对系统中的最老未提交事务、以及发起于所述最老未提交事务之后的事务信息进行记录;事务数据管理模块,用于利用回滚段空间对事务以及记录数据进行操作管理和访问优化;其中,所述回滚段由一个文件或一组定长文件组成;数据可见性优化模块,用于利用记录排他锁以对事务的访问操作进行写写互斥约束;根据事务对记录锁的读锁结果,对记录的版本信息进行访问优化处理;根据事务初始日志顺序号和记录初始日志顺序号的比较结果,对老版本记录的可见性进行约束;内存优化提速模块,用于将系统中最近的一个老版本记录缓存到非磁盘内存结构中;其中,所述非磁盘内存结构包括哈希桶;多版本回收模块,用于区分回滚段空间中的复用文件和非复用文件,对所述非复用文件进行清除,并对所述复用文件进行回收。进一步地,所述事务信息包括事务ID、提交状态信息、提交时的时间戳。进一步地,所述事务数据管理模块包括:事务访问管理单元,用于利用回滚段空间对事务进行操作管理;其中,事务对记录的操作包括创建操作、修改操作和删除操作;回滚段空间管理单元,用于对回滚段中的记录版本进行存储和访问管理。进一步地,所述回滚段空间由哈希表和磁盘文件组成;其中,所述磁盘文件的数量为一个或一组;当所述回滚段空间由一组磁盘文件组成时,所述磁盘文件的每个文件均为定长文件。进一步地,所述数据可见性优化模块,包括:事务访问操作约束单元,用于利用记录排他锁以对事务的访问操作进行写写互斥约束;记录版本信息访问优化单元,用于根据事务对记录锁的读锁结果,对记录的版本信息进行访问优化处理;其中,所述读锁结果包括读锁申请成功和读锁申请失败;老版本记录访问约束单元,用于根据事务初始日志顺序号和记录初始日志顺序号的比较结果,对老版本记录的访问可见性进行约束。进一步地,所述多版本回收模块,包括:回滚段文件区分单元,用于根据事务初始日志顺序号对回滚段文件与最老未提交事务进行新老比较,并根据比较的结果区分回滚段空间中的复用文件和非复用文件;回滚段文件清除单元,用于对回滚段空间中的非复用文件进行清除;回滚段文件回收单元,用于对回滚段空间中的复用文件进行回收,作为循环利用文件。进一步地,所述多版本回收模块对回滚段空间的清除和回收操作的触发方式包括:根据预设的时间间隔进行触发;或,根据预设的回滚段文件使用次数阈值进行触发。与现有技术相比,本专利技术具有如下有益效果:1.回滚段回收简单,没有显著的系统开销,没有系统性能抖动,也不会造成磁盘的碎片化;2.可配置的回滚段在有足够磁盘的情况下可以保证没有对并发运行事务个数和事务长短的限制;3.内存与磁盘相结合的设计可以满足绝大多数情况下(短事务)避免或减少磁盘访问,从而保证系统的访问性能。附图说明图1是本专利技术一实施例提供的基于无碎片回收的数据库多版本并发控制系统的结构示意图;图2是本专利技术一实施例提供的回滚段访问的应用举例示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。相比于现有技术,本专利技术采用定长数据段来存储链式结构下的多版本数据记录,并在数据段的元数据中保留本段中最后更新的数据版本。在老数据回收时,根据数据段中元数据判断该段多版本记录是否全部老于当前数据库系统活跃的事务范围来决定是否整段数据需要被回收。这种大块的数据回收的机制可以保证回收效率,不会造成磁盘碎片,同时有效减少了对系统的开销。以下为本专利技术实施例中的术语解释:事务(Transaction):是由一系列对系统中数据进行访问与更新的操作所组成的一个程序执行逻辑单元。事务具有原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Duration),简称ACID。事务日志记录(LR,LogRecord):数据库系统中额外的记录,用于记录针对数据库的任何变更,以保证事务回滚时数据可以被恢复到更新前的状态。隔离级别(Isolationlevel):在标准SQL规范中,定义了4个事务隔离级别,不同的隔离级别对事务的处理不同。4个隔离级别分别是:读未提及(READ_UNCOMMITTED)、读已提交(READ_COMMITTED)、可重复读(REPEATABLE_READ)、顺序读(SERIALIZABLE)。多版本并发控制(MVCC):数据库里的一种并发控制机制,用以解决数据的幻读问题,从而在不阻塞读的情况下实现可重复读。最老的未提交事务(lowTran):系统中最早开始的且尚未提交的事务。日志顺序号(LSN,LogSequenceNumber):事件发生时对应日志中的递增顺序号。事务ID(TID,TransactionID):事务的唯一标识号。事务开始LSN(TBLSN,TransactionBeginLSN):事务开始时的LSN。由于LSN的唯一性,可以使用TBLSN来标识一个事务。本专利技术中优选地可使用TBLSN来替代TID。记录ID(RID):一条记录的唯一标识,通常包含定位一条记录的信息,本文档来自技高网...

【技术保护点】
1.一种基于无碎片回收的数据库多版本并发控制系统,其特征在于,包括:/n事务信息记录模块,用于对数据库中的各个事务分配唯一标识,并对系统中的最老未提交事务、以及发起于所述最老未提交事务之后的事务信息进行记录;/n事务数据管理模块,用于利用回滚段空间对事务以及记录数据进行操作管理和访问优化;其中,所述回滚段由一个文件或一组定长文件组成;/n数据可见性优化模块,用于利用记录排他锁以对事务的访问操作进行写写互斥约束;根据事务对记录锁的读锁结果,对记录的版本信息进行访问优化处理;根据事务初始日志顺序号和记录初始日志顺序号的比较结果,对老版本记录的可见性进行约束;/n内存优化提速模块,用于将系统中最近的一个老版本记录缓存到非磁盘内存结构中;其中,所述非磁盘内存结构包括哈希桶;/n多版本回收模块,用于区分回滚段空间中的复用文件和非复用文件,对所述非复用文件进行清除,并对所述复用文件进行回收。/n

【技术特征摘要】
1.一种基于无碎片回收的数据库多版本并发控制系统,其特征在于,包括:
事务信息记录模块,用于对数据库中的各个事务分配唯一标识,并对系统中的最老未提交事务、以及发起于所述最老未提交事务之后的事务信息进行记录;
事务数据管理模块,用于利用回滚段空间对事务以及记录数据进行操作管理和访问优化;其中,所述回滚段由一个文件或一组定长文件组成;
数据可见性优化模块,用于利用记录排他锁以对事务的访问操作进行写写互斥约束;根据事务对记录锁的读锁结果,对记录的版本信息进行访问优化处理;根据事务初始日志顺序号和记录初始日志顺序号的比较结果,对老版本记录的可见性进行约束;
内存优化提速模块,用于将系统中最近的一个老版本记录缓存到非磁盘内存结构中;其中,所述非磁盘内存结构包括哈希桶;
多版本回收模块,用于区分回滚段空间中的复用文件和非复用文件,对所述非复用文件进行清除,并对所述复用文件进行回收。


2.根据权利要求1所述的基于无碎片回收的数据库多版本并发控制系统,其特征在于,所述事务信息包括事务ID、提交状态信息、提交时的时间戳。


3.根据权利要求1所述的基于无碎片回收的数据库多版本并发控制系统,其特征在于,所述事务数据管理模块包括:
事务访问管理单元,用于利用回滚段空间对事务进行操作管理;其中,事务对记录的操作包括创建操作、修改操作和删除操作;
回滚段空间管理单元,用于对回滚段中的记录版本进行存储和访问管理。


4.根据权利要求3所述的基于无碎片回收的数据库...

【专利技术属性】
技术研发人员:陈元熹许建辉王涛
申请(专利权)人:深圳巨杉数据库软件有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1