基于LSM树的Oracle数据库数据处理方法技术

技术编号:21832513 阅读:23 留言:0更新日期:2019-08-10 17:57
本发明专利技术公开了一种基于LSM树的Oracle数据库数据处理方法,包括如下步骤:S1:写数据,将增加或更新的数据有序的写入LSM内存缓冲区;S2:数据持久化,将LSM内存缓冲区中的数据定时或者按照固定大小持久化到LSM磁盘;S3:数据合并,对LSM磁盘中的文件进行数据合并;S4:读数据,从LSM内存缓冲区数据开始访问,然后从LSM磁盘查找数据;S5:删除数据,在进行数据合并时,删除标记数据。本发明专利技术以追加的方式写磁盘文件,实现了顺序写磁盘,响应快,稳定性高,有效提高了并发量;Oracle LSM存储方式只有随机读盘没有随机写盘,只需使用读密集型固态盘,降低了成本;将数据划分为基线数据和修改增量,修改增量在内存缓存中进行,实现读写分离,事务处理性能高。

Data Processing Method of Oracle Database Based on LSM Tree

【技术实现步骤摘要】
基于LSM树的Oracle数据库数据处理方法
本专利技术涉及一种数据处理方法,尤其涉及一种基于LSM树的Oracle数据库数据处理方法。
技术介绍
数据库有三种基本的存储方式:1、哈希表,支持增、删、改以及随机读取操作,但不支持顺序扫描,对应的存储系统为key-value存储系统。对于key-value的插入以及查询,哈希表的复杂度都是O(1),明显比树的操作O(n)快,如果不需要有序的遍历数据,哈希表就是不错的选择;2、B+树,支持单条记录的增、删、读、改操作,还支持顺序扫描(B+树的叶子节点之间的指针),对应的存储系统就是关系数据库(Mysql等);3、LSM树(Log-StructuredMergeTree),LSM树和B树一样,同样支持增、删、读、改、顺序扫描操作,而且通过批量存储技术规避磁盘随机写入问题。LSM树和B+树相比,LSM树牺牲了部分读性能,用来大幅提高写性能;基于LSM树实现的数据库如LevelDB、HBase等。LSM树是将数据的修改增量保持在内存中,达到指定的大小限制后将这些修改操作批量写入磁盘,不过读取的时候稍微麻烦,需要合并磁盘中历史数据和内存中最近修改操作,所以写入性能大大提升,读取时可能需要先看是否保存在内存中,则需要访问较多的磁盘文件。因此,LSM-树比较适合的应用场景是:写入数据量大,读数据量和更新数据量不高且读一般针对最新数据。在大并发插入数据的业务场景下,随机写需要大量的磁盘随机IO,意味着大量的磁盘寻道次数,影响业务响应速度。B+树最大的性能问题是会产生大量的随机IO,随着新数据的插入,叶子节点会慢慢分裂,逻辑上连续的叶子节点在物理上往往并不连续,甚至分离地很远,会产生大量的随机读写IO,低下的磁盘寻道速度严重影响性能。目前的Oracle数据库对于大批量的日志写入数据库场景,数据库写入效率依然是技术瓶颈,因此将LSM树原理应用于Oracle数据库中,利用LSM树的特点,提升数据入库的执行效率是非常有必要的。
技术实现思路
本专利技术要解决的技术问题是提供一种基于LSM树的Oracle数据库数据处理方法,将随机写转换成顺序写,在读写之间取得平衡,保证稳定的数据插入速率。本专利技术为解决上述技术问题而采用的技术方案是提供一种基于LSM树的Oracle数据库数据处理方法,包括如下步骤:S1:写数据,将增加或者更新的数据有序的写入LSM内存缓冲区;S2:数据持久化,将LSM内存缓冲区中的数据定时或者按照固定大小持久化到LSM磁盘;S3:数据合并,对LSM磁盘中的文件进行数据合并,消除冗余数据;S4:读数据,先从LSM内存缓冲区数据开始访问,然后按顺序逐层从LSM磁盘查找数据;S5:删除数据,在需要删除的数据上打上删除标记,在进行数据合并时,将有删除标记的数据丢弃。进一步的,所述LSM树的存储系统为key-value存储系统,所述LSM内存缓冲区的存储空间是存储的Level-0层,保存了所有最近写入的(key,value)数据,所述LSM内存缓冲区中存储的数据有序且随时原地更新,同时支持数据查询读取。进一步的,所述LSM磁盘存储空间是数据存储的Level-1到Level-n层,每一层存储的数据都是一个在key上有序的数据结构。进一步的,所述LSM内存缓冲区中设有LSM日志,所述LSM日志记录客户端的操作请求,并将写入LSM内存缓冲区中的数据追加写入LSM日志文件,当LSM内存缓冲区中的数据持久化到LSM磁盘上时,清空LSM日志文件;所述LSM内存缓冲区的数据发生丢失时,则通过LSM日志文件恢复数据。进一步的,所述LSM内存缓冲区中的数据持久化到LSM磁盘的过程中产生持久化文件,当因进程退出造成数据丢失时,则在重启进程后通过持久化文件进行数据恢复。进一步的,所述LSM内存缓冲区中的数据持久化到LSM磁盘时,通过顺序的IO操作将LSM内存缓冲区中数据以块数据的形式刷到LSM磁盘,不更新LSM磁盘上的已有文件,LSM磁盘上的已有文件不可写且有序。进一步的,所述步骤S3中数据合并为异步合并操作,在异步合并操作触发后,将LSM内存缓冲区中的数据和LSM磁盘中的数据合并成新的LSM磁盘数据;数据合并和内存数据的写入采用交替合并的方式;当一个内存缓冲区被触发合并时,新的写入请求被指向另一个内存缓冲区,写数据操作和合并指向不同的内存缓冲区,进行隔离操作。本专利技术对比现有技术有如下的有益效果:本专利技术提供的基于LSM树的Oracle数据库数据处理方法,实现了顺序写磁盘,其以追加的方式写磁盘文件,响应快,稳定性高,有效提高了高并发量;OracleLSM存储方式只有随机读盘没有随机写盘,只需使用读密集型固态盘,降低了成本;将数据划分为基线数据和修改增量,基线数据持久化到物理磁盘文件,而修改增量在内存缓存中进行,热点数据和事务操作都发生在内存缓存中,事务处理性能高;实现读写分离,获得接近内存数据库的事务处理性能。附图说明图1为本专利技术实施例中基于LSM树的Oracle数据库数据处理方法流程图;图2为本专利技术实施例中基于LSM树的Oracle数据库数据处理方法架构图;图3为本专利技术实施例中数据持久化原理图;图4为本专利技术实施例中数据合并原理图。具体实施方式下面结合附图和实施例对本专利技术作进一步的描述。图1为本专利技术实施例中基于LSM树的Oracle数据库数据处理方法流程图。请参见图1,本专利技术实施例的基于LSM树的Oracle数据库数据处理方法,包括如下步骤:S1:写数据,将增加或者更新的数据有序的写入LSM内存缓冲区;S2:数据持久化,将LSM内存缓冲区中的数据定时或者按照固定大小持久化到LSM磁盘;S3:数据合并,对LSM磁盘中的文件进行数据合并,消除冗余数据;S4:读数据,先从LSM内存缓冲区数据开始访问,然后按顺序逐层从LSM磁盘查找数据;由于文件本身有序,并且定期的合并减少了磁盘文件个数,因而查找过程相对较快速,在客户端会话看来数据存储文件的位置是透明的;S5:删除数据,在需要删除的数据上打上删除标记,在进行数据合并时,将有删除标记的数据丢弃。请参见图2,本专利技术实施例的基于LSM树的Oracle数据库数据处理方法,LSM存储引擎是一个多层结构,就像一个树一样从小到大。LSM内存缓冲区为存储的Level-0层,保存了所有最近写入的数据,这个内存结构是有序的,并且可以随时原地更新,同时支持随时读操作;剩下的Level-1到Level-n层都在LSM磁盘上,每一层都是一个有序的结构。当有增量写入操作或修改更新操作时,写入LSM内存缓冲区中(buffercache),LSM内存缓冲区中通过某种数据结构(如skiplist)保持key有序,所有动态修改都在LSM内存缓冲区中完成;LSM内存缓冲区没有寻道速度的问题,随机写的性能相比较磁盘得到大幅提升;为了防止进程突然挂掉导致LSM内存缓冲区的数据丢失,一般会将数据追加写到日志文件后才写入LSM内存缓冲区中,以备必要时能从日志恢复数据;每次客户端会话的操作请求都会写入该日志,只有写入成功才会继续执行对业务数据的操作请求。当内存缓冲区中的数据持久化到物理磁盘文件上时,就可以清空相应的LSM日志。请同时参见图3,本专利技术实施例的基于LSM树的Oracle数据库数据处理方法本文档来自技高网
...

【技术保护点】
1.一种基于LSM树的Oracle数据库数据处理方法,其特征在于,包括如下步骤:S1:写数据,将增加或者更新的数据有序的写入LSM内存缓冲区;S2:数据持久化,将LSM内存缓冲区中的数据定时或者按照固定大小持久化到LSM磁盘;S3:数据合并,对LSM磁盘中的文件进行数据合并,消除冗余数据;S4:读数据,先从LSM内存缓冲区数据开始访问,然后按顺序逐层从LSM磁盘查找数据;S5:删除数据,在需要删除的数据上打上删除标记,在进行数据合并时,将有删除标记的数据丢弃。

【技术特征摘要】
1.一种基于LSM树的Oracle数据库数据处理方法,其特征在于,包括如下步骤:S1:写数据,将增加或者更新的数据有序的写入LSM内存缓冲区;S2:数据持久化,将LSM内存缓冲区中的数据定时或者按照固定大小持久化到LSM磁盘;S3:数据合并,对LSM磁盘中的文件进行数据合并,消除冗余数据;S4:读数据,先从LSM内存缓冲区数据开始访问,然后按顺序逐层从LSM磁盘查找数据;S5:删除数据,在需要删除的数据上打上删除标记,在进行数据合并时,将有删除标记的数据丢弃。2.如权利要求1所述的基于LSM树的Oracle数据库数据处理方法,其特征在于,所述LSM树的存储系统为key-value存储系统,所述LSM内存缓冲区的存储空间为数据存储的第Level-0层,保存所有最近写入的(key,value)数据,所述LSM内存缓冲区存储的数据有序且随时原地更新,同时支持数据查询读取。3.如权利要求1所述的基于LSM树的Oracle数据库数据处理方法,其特征在于,所述LSM磁盘的存储空间为数据存储的第Level-1到第Level-n层,每一层存储的数据都是一个在key上有序的数据结构。4.如权利要求1所述的基于LSM树的Oracle数据库数据处理方法,其特征在于,所述LSM内存缓冲区中设有LSM日志...

【专利技术属性】
技术研发人员:程永新孙玉颖崔京梦
申请(专利权)人:上海新炬网络技术有限公司
类型:发明
国别省市:上海,31

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

1