CN110109927A - 基于LSM树的Oracle数据库数据处理方法 - Google Patents

基于LSM树的Oracle数据库数据处理方法 Download PDF

Info

Publication number
CN110109927A
CN110109927A CN201910338628.5A CN201910338628A CN110109927A CN 110109927 A CN110109927 A CN 110109927A CN 201910338628 A CN201910338628 A CN 201910338628A CN 110109927 A CN110109927 A CN 110109927A
Authority
CN
China
Prior art keywords
data
lsm
disk
core buffer
tree
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.)
Pending
Application number
CN201910338628.5A
Other languages
English (en)
Inventor
程永新
孙玉颖
崔京梦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SHANGHAI NEW CENTURY NETWORK Co Ltd
Original Assignee
SHANGHAI NEW CENTURY NETWORK Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by SHANGHAI NEW CENTURY NETWORK Co Ltd filed Critical SHANGHAI NEW CENTURY NETWORK Co Ltd
Priority to CN201910338628.5A priority Critical patent/CN110109927A/zh
Publication of CN110109927A publication Critical patent/CN110109927A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

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

Description

基于LSM树的Oracle数据库数据处理方法
技术领域
本发明涉及一种数据处理方法,尤其涉及一种基于LSM树的Oracle数据库数据处理方法。
背景技术
数据库有三种基本的存储方式:1、哈希表,支持增、删、改以及随机读取操作,但不支持顺序扫描,对应的存储系统为key-value存储系统。对于key-value的插入以及查询,哈希表的复杂度都是O(1),明显比树的操作O(n)快,如果不需要有序的遍历数据,哈希表就是不错的选择;2、B+树,支持单条记录的增、删、读、改操作,还支持顺序扫描(B+树的叶子节点之间的指针),对应的存储系统就是关系数据库(Mysql等);3、LSM树(Log-StructuredMerge Tree),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数据库数据处理方法,实现了顺序写磁盘,其以追加的方式写磁盘文件,响应快,稳定性高,有效提高了高并发量;Oracle LSM存储方式只有随机读盘没有随机写盘,只需使用读密集型固态盘,降低了成本;将数据划分为基线数据和修改增量,基线数据持久化到物理磁盘文件,而修改增量在内存缓存中进行,热点数据和事务操作都发生在内存缓存中,事务处理性能高;实现读写分离,获得接近内存数据库的事务处理性能。
附图说明
图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内存缓冲区中(buffer cache),LSM内存缓冲区中通过某种数据结构(如skiplist)保持key有序,所有动态修改都在LSM内存缓冲区中完成;LSM内存缓冲区没有寻道速度的问题,随机写的性能相比较磁盘得到大幅提升;为了防止进程突然挂掉导致LSM内存缓冲区的数据丢失,一般会将数据追加写到日志文件后才写入LSM内存缓冲区中,以备必要时能从日志恢复数据;每次客户端会话的操作请求都会写入该日志,只有写入成功才会继续执行对业务数据的操作请求。当内存缓冲区中的数据持久化到物理磁盘文件上时,就可以清空相应的LSM日志。
请同时参见图3,本发明实施例的基于LSM树的Oracle数据库数据处理方法,数据保存到LSM内存缓冲区后,内存中的数据定时或按固定大小地持久化到LSM磁盘,更新操作只不断地写到内存,并不更新磁盘上已有文件;内存中的数据以块数据形式刷到磁盘,是顺序的IO操作;随着越来越多写操作,磁盘上积累的文件也越来越多,这些文件不可写且有序。
请同时参见图4,本发明实施例的基于LSM树的Oracle数据库数据处理方法,内存缓冲区持久化形成的磁盘文件越来越多,当内存中的修改量超过某个阀值时或者经历一个特定的时间后,读的性能会越来越差,因此需要在适当的时候,对小的磁盘文件进行合并,提高读的性能。在异步的合并操作被触发后,合并操作将内存和磁盘数据合并成新的磁盘数据;为了避免合并操作对业务的影响,本发明可以采用交替合并的方式进行;当一个内存缓冲区(比如LSM buffer 0)被触发合并时,应用会话新的写入请求被指向另一个内存缓冲区(LSM buffer 1),这样应用写数据操作和合并指向的是不同的内存缓冲区,可以隔离彼此影响。定时对文件进行合并操作(compaction),消除冗余数据,减少文件数量;文件有序,保证读取操作相对快速。
具体的,本发明实施例的基于LSM树的Oracle数据库数据处理方法,当有读(select)操作时,先从Level-0层内存数据开始访问,如果在内存中访问不到,再按顺序逐层一个个从磁盘文件(Level-0到Level-n)中查找,由于文件本身有序,并且定期的合并减少了磁盘文件个数,因而查找过程相对较快速。在客户端会话看来数据存储文件的位置是透明的。删除(delete)是一种特殊的更改,被客户端删除的数据打上删除标记,查找会跳过这些删除的数据,当合并时,有删除标记的数据会被丢弃。
综上所述,本发明提供的基于LSM树的Oracle数据库数据处理方法,实现了顺序写磁盘,其以追加的方式写磁盘文件,响应快,稳定性高,有效提高了高并发量;Oracle LSM存储方式只有随机读盘没有随机写盘,只需使用读密集型固态盘,降低了成本;将数据划分为基线数据和修改增量,基线数据持久化到物理磁盘文件,而修改增量在内存缓存中进行,热点数据和事务操作都发生在内存缓存中,事务处理性能高;实现读写分离,获得接近内存数据库的事务处理性能。
虽然本发明已以较佳实施例揭示如上,然其并非用以限定本发明,任何本领域技术人员,在不脱离本发明的精神和范围内,当可作些许的修改和完善,因此本发明的保护范围当以权利要求书所界定的为准。

Claims (7)

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日志,所述LSM日志记录客户端的操作请求,并将写入LSM内存缓冲区中的数据追加写入LSM日志文件,当LSM内存缓冲区中的数据持久化到LSM磁盘上时,清空LSM日志文件;所述LSM内存缓冲区的数据发生丢失时,通过LSM日志文件恢复数据。
5.如权利要求1所述的基于LSM树的Oracle数据库数据处理方法,其特征在于,所述LSM内存缓冲区中的数据持久化到LSM磁盘文件的过程中产生持久化文件,当因进程退出造成数据丢失时,则在重启进程后通过持久化文件进行数据恢复。
6.如权利要求1所述的基于LSM树的Oracle数据库数据处理方法,其特征在于,所述LSM内存缓冲区中的数据持久化到LSM磁盘时,通过顺序的IO操作将LSM内存缓冲区中数据以块数据的形式刷到LSM磁盘,不更新LSM磁盘上的已有文件,LSM磁盘上的已有文件不可写且有序。
7.如权利要求1所述的基于LSM树的Oracle数据库数据处理方法,其特征在于,所述步骤S3中数据合并为异步合并操作,在异步合并操作触发后,将LSM内存缓冲区中的数据和LSM磁盘中的数据合并成新的LSM磁盘数据;数据合并和内存数据的写入采用交替合并的方式;当一个内存缓冲区被触发合并时,新的写入请求被指向另一个内存缓冲区,写数据操作和合并指向不同的内存缓冲区,进行隔离操作。
CN201910338628.5A 2019-04-25 2019-04-25 基于LSM树的Oracle数据库数据处理方法 Pending CN110109927A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910338628.5A CN110109927A (zh) 2019-04-25 2019-04-25 基于LSM树的Oracle数据库数据处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910338628.5A CN110109927A (zh) 2019-04-25 2019-04-25 基于LSM树的Oracle数据库数据处理方法

Publications (1)

Publication Number Publication Date
CN110109927A true CN110109927A (zh) 2019-08-09

Family

ID=67486771

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910338628.5A Pending CN110109927A (zh) 2019-04-25 2019-04-25 基于LSM树的Oracle数据库数据处理方法

Country Status (1)

Country Link
CN (1) CN110109927A (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110716940A (zh) * 2019-10-18 2020-01-21 成都九宽科技有限公司 一种增量式数据存取系统
CN112579602A (zh) * 2020-12-22 2021-03-30 杭州趣链科技有限公司 多版本数据存储方法、装置、计算机设备及存储介质
CN112800050A (zh) * 2019-11-13 2021-05-14 北京清红微谷技术开发有限责任公司 基于状态树的交易数据存储方法、系统、装置及p2p网络
CN113312312A (zh) * 2021-06-08 2021-08-27 武汉理工大学 一种基于lsm高效查询流数据的分布式索引方法及系统
CN113360571A (zh) * 2021-06-03 2021-09-07 广东电网有限责任公司 基于特征标记的电网监控系统内存库关系库同步方法
CN113419937A (zh) * 2021-06-29 2021-09-21 达梦数据技术(江苏)有限公司 一种数据和日志一体化的值日志实现方法、装置、设备及存储介质
CN113641689A (zh) * 2021-07-22 2021-11-12 上海云轴信息科技有限公司 基于轻量级数据库的数据处理方法及设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103399915A (zh) * 2013-07-31 2013-11-20 北京华易互动科技有限公司 一种搜索引擎索引文件的优化读取方法
US20180107402A1 (en) * 2016-10-19 2018-04-19 Acronis International Gmbh System and method for data storage using log-structured merge trees

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103399915A (zh) * 2013-07-31 2013-11-20 北京华易互动科技有限公司 一种搜索引擎索引文件的优化读取方法
US20180107402A1 (en) * 2016-10-19 2018-04-19 Acronis International Gmbh System and method for data storage using log-structured merge trees

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
佚名: "LSM树和TSM存储引擎简介", 《HTTPS://BLOG.CSDN.NET/CYMM_LIU/ARTICLE/DETAILS/88344215》 *
佚名: "看图轻松理解数据结构与算法系列(NoSQL存储-LSM树)", 《HTTPS://BLOG.CSDN.NET/WANGYANGZHIZHOU/ARTICLE/DETAILS》 *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110716940A (zh) * 2019-10-18 2020-01-21 成都九宽科技有限公司 一种增量式数据存取系统
CN112800050A (zh) * 2019-11-13 2021-05-14 北京清红微谷技术开发有限责任公司 基于状态树的交易数据存储方法、系统、装置及p2p网络
CN112579602A (zh) * 2020-12-22 2021-03-30 杭州趣链科技有限公司 多版本数据存储方法、装置、计算机设备及存储介质
CN112579602B (zh) * 2020-12-22 2023-06-09 杭州趣链科技有限公司 多版本数据存储方法、装置、计算机设备及存储介质
CN113360571A (zh) * 2021-06-03 2021-09-07 广东电网有限责任公司 基于特征标记的电网监控系统内存库关系库同步方法
CN113312312A (zh) * 2021-06-08 2021-08-27 武汉理工大学 一种基于lsm高效查询流数据的分布式索引方法及系统
CN113312312B (zh) * 2021-06-08 2022-08-05 武汉理工大学 一种基于lsm高效查询流数据的分布式索引方法及系统
CN113419937A (zh) * 2021-06-29 2021-09-21 达梦数据技术(江苏)有限公司 一种数据和日志一体化的值日志实现方法、装置、设备及存储介质
WO2023272895A1 (zh) * 2021-06-29 2023-01-05 达梦数据技术(江苏)有限公司 一种数据和日志一体化的值日志实现方法、装置、设备及存储介质
CN113641689A (zh) * 2021-07-22 2021-11-12 上海云轴信息科技有限公司 基于轻量级数据库的数据处理方法及设备

Similar Documents

Publication Publication Date Title
CN110109927A (zh) 基于LSM树的Oracle数据库数据处理方法
CN110825748B (zh) 利用差异化索引机制的高性能和易扩展的键值存储方法
CN109213772B (zh) 数据存储方法及NVMe存储系统
CN106708427B (zh) 一种适用于键值对数据的存储方法
US8225029B2 (en) Data storage processing method, data searching method and devices thereof
CN109683811B (zh) 一种混合内存键值对存储系统的请求处理方法
CN109299113B (zh) 具有存储感知的混合索引的范围查询方法
CN107832013B (zh) 一种管理固态硬盘映射表的方法
US7418544B2 (en) Method and system for log structured relational database objects
CN107463447B (zh) 一种基于远程直接非易失内存访问的b+树管理方法
CN109598156B (zh) 一种写时重定向引擎快照流方法
CN105912687B (zh) 海量分布式数据库存储单元
CN102541757B (zh) 写缓存方法、缓存同步方法和装置
CN104699416B (zh) 一种数据存储系统以及一种数据存储方法
CN110058822A (zh) 一种磁盘阵列横向拓展方法
CN113821171B (zh) 一种基于哈希表与lsm树的键值存储方法
RU2525752C2 (ru) Способ и устройство хранения, чтения и записи составного документа
CN104156432A (zh) 一种文件访问方法
CN113448964B (zh) 一种基于图-kv的混合存储方法及装置
CN112732725B (zh) 基于nvm混合内存的自适应前缀树构建方法及其系统、介质
CN117149081B (zh) 一种基于zns固态硬盘的时序数据库存储引擎构建方法
CN109213760B (zh) 非关系数据存储的高负载业务存储及检索方法
CN116226232A (zh) 面向分布式数据库的持久内存数据存储方法及系统
CN116204130A (zh) 一种键值存储系统和键值存储系统的管理方法
KR100982591B1 (ko) 단계적 인덱싱을 위한 파일 시스템, 메인 기억장치 및플래시 기억장치 그리고 상기 단계적 인덱싱을 통한 데이터관리 방법

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination