【技术实现步骤摘要】
应用于数据库的数据处理方法、装置及计算机存储介质
[0001]本专利技术数据库存储
,具体的涉及应用于数据库的数据处理方法、装置及计算机存储介质。
技术介绍
[0002]当用B+树做数据库时,数据库随着不断地写入,数据库容量会不断增大,但即使有大量的删除操作,数据库容量也不会随之减小。这样,数据压缩应运而生,数据压缩过程是个数据重建的过程,新起一个B+数据库,扫描所有的数据,写入到新数据库中,这样保证写入的都是有用的数据,删除的会被丢弃。
[0003]数据库工作时,会持续不断有更新操作。设想一个场景,在做数据压缩时,针对某个key的更新操作仍然会写到未压缩的B+树文件中。但压缩时,这个key对应的原始va l ue可能已经写入到新的数据库中,那么读取未压缩的B+树文件和新的B+树文件,会读取到两个不相同的va l ue,也就是数据压缩过程中产生了数据不一致的情况。这是本专利技术专利所要解决的第一个技术问题。
[0004]再看快照,数据库经常不是一个实例就能扛住所有的读写,数据库的备份是数据库系统的一部分,快照是一种数据库备份的方案,目的是快速生成可工作的备份数据库。
[0005]快照是一个全量备份的过程,用来创建备份数据库的。全量备份过程分为两步,第一步是基于某个检查点生成全量快照,该全量快照包含的是这个检查点之前的所有数据;第二步是基于这个检查点之后的增量数据,这部分是备份数据库使用全量快照之后缺失的部分,需要补充完整才是一个可用的备份数据库。其中,使用快照备份时,通常需要知晓我们备份 ...
【技术保护点】
【技术特征摘要】
1.应用于数据库的数据处理方法,其特征在于,包括:数据存储引擎针对所述数据库执行数据压缩事务/快照事务过程中,将工作数据库切换为临时数据库,用于承接数据压缩事务/快照事务执行期间的数据更新操作;当所述数据压缩事务和/或快照事务执行完成后,将工作数据库切换为压缩数据库/原始数据库,所述的压缩数据库由数据压缩事务创建,所述的原始数据库为快照事务的目标数据库。2.根据权利要求1所述的应用于数据库的数据处理方法,其特征在于,所述数据库的单个存储引擎内部具有交换锁swapLock,所述存储引擎在执行工作数据库的切换操作之前,进行交换锁swapLock加锁操作。3.根据权利要求2所述的应用于数据库的数据处理方法,其特征在于,所述数据库的单个存储引擎内部具有任务锁tasklock,所述的数据压缩事务的执行流程包括:数据存储引擎进行任务锁tasklock加锁操作,将工作数据库切换为临时数据库;针对当前数据库执行数据压缩操作,数据压缩操作完成后将数据压缩创建的压缩数据库作为当前数据库;切换工作数据库为当前数据库,解锁任务锁tasklock。4.根据权利要求3所述的应用于数据库的数据处理方法,其特征在于,所述将工作数据库切换为临时数据库包括:数据存储引擎进行交换锁swapLock加锁操作,将工作数据库切换为临时数据库,切换完成后,解锁所述交换锁swapLock;所述切换工作数据库为当前数据库包括:数据存储引擎进行交换锁swapLock加锁操作,将工作数据库切换为当前数据库,切换完成后,解锁所述交换锁swapLock。5.根据权利要求2所述的应用于数据库的数据处理方法,其特征在于,所述数据库的单个数据存储引擎内部具有尝试获取锁tryLock,所述快照事务的执行流程包括:数据存储引擎调用所述尝试获取锁tryLock针对任务锁tasklock尝试进行加锁;判断所述临时数据库中是否含有数据,若判断结果为是,则解锁获取锁tryLock并返回失败,若判断结果为否,则进行任务锁tasklock加锁操作;调用尝试获取锁tryLock针对交换锁swapLock尝试进行加锁,并在所述交换锁swapLock加锁成功后,将工作数据库切换为临时数据库;针对当前数据库执行快照操作,快照完成后,解锁任务锁tasklock。6.根据权利要求5所述的应用于数据库的数据处理方法,其特征在于,所述调用尝试获取锁tryLock针对交换锁swapLock尝试进行加锁包括:调用尝试获取锁tryLock,获取交换锁swapLock的当前状态;若所述交换锁swapLock当前处于加锁状态,则尝试获取锁tryLock尝试加锁失败并返回错误,若所述交换锁swapLock当前处于解锁状态,则针对交换锁swapLock进行加锁;所述尝试获取锁tryLock尝试加锁失败后,每隔一定时间再次执行尝试加锁操作,直至尝试加锁对象加锁成功,或者快照操作被撤销。7.根据权利要求5所述的应用于数据库的数据处理方法,其特征在于,当单个所述数据库包含多个数据存储引擎实例时,基于所有数据存储...
【专利技术属性】
技术研发人员:幸福,徐锐波,卢文伟,刘方,
申请(专利权)人:北京云思智学科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。