CN111221922A - 一种RocksDB数据库数据写入方法及RocksDB数据库 - Google Patents

一种RocksDB数据库数据写入方法及RocksDB数据库 Download PDF

Info

Publication number
CN111221922A
CN111221922A CN201911422981.8A CN201911422981A CN111221922A CN 111221922 A CN111221922 A CN 111221922A CN 201911422981 A CN201911422981 A CN 201911422981A CN 111221922 A CN111221922 A CN 111221922A
Authority
CN
China
Prior art keywords
data
nonvolatile memory
read
disk array
memtable
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
CN201911422981.8A
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.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent Technology 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 Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN201911422981.8A priority Critical patent/CN111221922A/zh
Publication of CN111221922A publication Critical patent/CN111221922A/zh
Pending legal-status Critical Current

Links

Images

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/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/289Object oriented databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

Landscapes

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

Abstract

本发明公开了一种RocksDB数据库数据写入方法,包括:数据以日志形式写入磁盘,以memtable形式写入内存;当memtable的数据大小超过阈值时,将该memtable保存为只读memtable,新建memtable写入新数据;当只读memtable数量超过阈值时,将只读memtable合并,以SST文件形式写入非易失性内存;当非易失性内存中的SST文件数量超过阈值时,将非易失性内存中的SST文件合并写入磁盘阵列。本发明还公开了一种RocksDB数据库,包括磁盘、内存、非易失性内存和磁盘阵列;通过将level0存储设置为非易失性内存,既保证了level0数据的非易失性和内存级的读写速率,又保证了level0向level1写入数据时不会有较大的读写带宽差距,从而提升RocksDB读写性能。

Description

一种RocksDB数据库数据写入方法及RocksDB数据库
技术领域
本发明涉及数据库领域,具体涉及一种RocksDB数据库数据写入方法及RocksDB数据库。
背景技术
RocksDB是一种使用一套日志结构的数据库引擎,为了更好的性能,这套引擎采用C++编写,用来存储key和value,Key和value是任意大小的字节流,为快速而又低延迟的存储设备(例如闪存或者高速硬盘)而特殊优化处理。RocksDB能最大限度地发挥闪存和内存的高速率读写性能。
数据写入时,先后经过磁盘、内存,最后在硬盘中存储。目前常用的硬盘存储介质是SSD,其读写性能与内存相比差距非常大,因此数据从内存写入硬盘时,由于硬盘读写速率慢,会出现写入速率降低的问题。
发明内容
为了解决上述技术问题,本发明提出了一种RocksDB数据库数据写入方法及RocksDB数据库,能够提高RocksDB从内存向硬盘写入时的写入速率,提升RocksDB读写性能。
为实现上述目的,本发明采用以下技术方案:
一种RocksDB数据库数据写入方法,包括:
数据以日志形式写入磁盘,以memtable形式写入内存;
当memtable的数据大小超过阈值时,将该memtable保存为只读memtable,新建memtable写入新数据;
当只读memtable数量超过阈值时,将只读memtable合并,以SST文件形式写入非易失性内存;
当非易失性内存中的SST文件数量超过阈值时,将非易失性内存中的SST文件合并写入磁盘阵列。
进一步地,非易失性内存中的SST文件合并写入磁盘阵列后,将非易失性内存中的数据删除。
进一步地,所述磁盘阵列包括若干层level1-leveln,非易失性内存中的SST文件合并写入磁盘阵列的第一层level1;当磁盘阵列的第m层中的SST文件数量超过阈值时,将第m层levelm中的SST文件写入第m+1层levelm+1,其中,m<n。
进一步地,所述磁盘阵列的level1-leveln分别包括若干个硬盘,所述将第m层levelm中的SST文件写入第m+1层levelm+1的写入操作多线程执行。
本发明还提出了一种RocksDB数据库,包括磁盘、内存、非易失性内存和磁盘阵列;
所述磁盘用于存储并传递日志形式的数据,数据传递至内存;
所述内存用于存储并传递memtable形式的数据,数据传递至非易失性内存;
所述非易失性内存用于存储并传递SST文件形式的数据,数据传递至磁盘阵列;
所述磁盘阵列用于存储SST文件形式的数据。
进一步地,所述磁盘阵列由若干个硬盘组成若干层level1-leveln,其中,非易失性内存传递的SST文件写入level1。
进一步地,所述磁盘阵列的硬盘数量为N,N=M/m,其中,M表示非易失性内存读带宽,m表示硬盘写带宽。
本发明的有益效果是:
本发明通过提出一种RocksDB数据库数据写入方法及RocksDB数据库,解决了数据库写入速率降低的问题。通过将level0存储设置为非易失性内存,level1及以上存储设置为SSD组成的磁盘阵列,解决了内存与硬盘读写速率差距过大的问题。
根据非易失性内存的读带宽和硬盘的写带宽,确定level1及以上磁盘阵列中的硬盘数量,既保证了level0数据的非易失性和内存级的读写速率,又保证了level0向level1写入数据时不会有较大的读写带宽差距,从而提升RocksDB读写性能。
附图说明
图1是本发明RocksDB数据库数据写入流程示意图。
具体实施方式
为能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本发明进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本发明的不同结构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。此外,本发明可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本发明省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本发明。
本发明实施例公开了一种RocksDB数据库数据写入方法,包括:
数据以日志WAL(write ahead log,预写式日志)的形式写入磁盘,然后再以memtable的形式写入内存;
具体地,memtable是一种内存数据结构,所有写入请求都会进入memtable。
当memtable的数据大小超过阈值时,将该memtable保存为只读memtable,新建一个memtable写入新数据;
当只读memtable数量超过阈值时,将所有只读memtable合并,以SST文件形式写入非易失性内存level0中;
当非易失性内存中的SST文件数量超过阈值时,将非易失性内存中的SST文件合并写入磁盘阵列。
上述写入流程示意图如图1所示。
非易失性内存中的SST文件合并写入磁盘阵列后,将非易失性内存中的数据删除。
具体地,所述磁盘阵列包括若干层level1-leveln,非易失性内存中的SST文件合并写入磁盘阵列的第一层level1;当磁盘阵列的第m层中的SST文件数量超过阈值时,将第m层levelm中的SST文件写入第m+1层levelm+1,其中,m<n。
当磁盘阵列的第m层中数据总大小超过阈值时,将第m层levelm中的SST文件写入第m+1层levelm+1中。
所述磁盘阵列的level1-leveln分别包括若干个硬盘,层的数量和每层的硬盘数量均根据实际情况确定,所述将第m层levelm中的SST文件写入第m+1层levelm+1的写入操作可以多线程执行,这样数据就由内存经过非易失性内存流入到硬盘的各层level中。
本发明实施例还公开了一种RocksDB数据库,包括磁盘、内存、非易失性内存和磁盘阵列;
所述磁盘用于存储并传递日志形式的数据,数据传递至内存;
所述内存用于存储并传递memtable形式的数据,数据传递至非易失性内存;
所述非易失性内存用于存储并传递SST文件形式的数据,数据传递至磁盘阵列;
所述磁盘阵列用于存储SST文件形式的数据。
具体地,所述磁盘阵列由若干个硬盘组成若干层level1-leveln,其中,非易失性内存传递的SST文件写入level1。
所述磁盘阵列的硬盘数量为N,N=M/m,其中,M表示非易失性内存读带宽,m表示硬盘写带宽。
上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制。对于所属领域的技术人员来说,在上述说明的基础上还可以做出其它不同形式的修改或变形。这里无需也无法对所有的实施方式予以穷举。在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。

Claims (7)

1.一种RocksDB数据库数据写入方法,其特征在于,包括:
数据以日志形式写入磁盘,以memtable形式写入内存;
当memtable的数据大小超过阈值时,将该memtable保存为只读memtable,新建memtable写入新数据;
当只读memtable数量超过阈值时,将只读memtable合并,以SST文件形式写入非易失性内存;
当非易失性内存中的SST文件数量超过阈值时,将非易失性内存中的SST文件合并写入磁盘阵列。
2.根据权利要求1所述的RocksDB数据库数据写入方法,其特征在于,非易失性内存中的SST文件合并写入磁盘阵列后,将非易失性内存中的数据删除。
3.根据权利要求1所述的RocksDB数据库数据写入方法,其特征在于,所述磁盘阵列包括若干层level1-leveln,非易失性内存中的SST文件合并写入磁盘阵列的第一层level1;当磁盘阵列的第m层中的SST文件数量超过阈值时,将第m层levelm中的SST文件写入第m+1层levelm+1,其中,m<n。
4.根据权利要求3所述的RocksDB数据库数据写入方法,其特征在于,所述磁盘阵列的level1-leveln分别包括若干个硬盘,所述将第m层levelm中的SST文件写入第m+1层levelm+1的写入操作多线程执行。
5.一种RocksDB数据库,其特征在于,包括磁盘、内存、非易失性内存和磁盘阵列;
所述磁盘用于存储并传递日志形式的数据,数据传递至内存;
所述内存用于存储并传递memtable形式的数据,数据传递至非易失性内存;
所述非易失性内存用于存储并传递SST文件形式的数据,数据传递至磁盘阵列;
所述磁盘阵列用于存储SST文件形式的数据。
6.根据权利要求5所述的RocksDB数据库,其特征在于,所述磁盘阵列由若干个硬盘组成若干层level1-leveln,其中,非易失性内存传递的SST文件写入level1。
7.根据权利要求6所述的RocksDB数据库,其特征在于,所述磁盘阵列的硬盘数量为N,N=M/m,其中,M表示非易失性内存读带宽,m表示硬盘写带宽。
CN201911422981.8A 2019-12-31 2019-12-31 一种RocksDB数据库数据写入方法及RocksDB数据库 Pending CN111221922A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911422981.8A CN111221922A (zh) 2019-12-31 2019-12-31 一种RocksDB数据库数据写入方法及RocksDB数据库

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911422981.8A CN111221922A (zh) 2019-12-31 2019-12-31 一种RocksDB数据库数据写入方法及RocksDB数据库

Publications (1)

Publication Number Publication Date
CN111221922A true CN111221922A (zh) 2020-06-02

Family

ID=70832819

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911422981.8A Pending CN111221922A (zh) 2019-12-31 2019-12-31 一种RocksDB数据库数据写入方法及RocksDB数据库

Country Status (1)

Country Link
CN (1) CN111221922A (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111881092A (zh) * 2020-06-22 2020-11-03 武汉绿色网络信息服务有限责任公司 一种基于cassandra数据库的文件合并的方法和装置
CN112487095A (zh) * 2020-12-09 2021-03-12 浪潮云信息技术股份公司 一种分布式数据库事务数据存储优化的方法
CN112699092A (zh) * 2021-01-13 2021-04-23 浪潮云信息技术股份公司 一种RocksDB存储大值数据的方法
CN112925676A (zh) * 2021-03-09 2021-06-08 浪潮云信息技术股份公司 一种基于wal实现分布式数据库集群任意时间点恢复的方法
CN113253932A (zh) * 2021-05-28 2021-08-13 济南浪潮数据技术有限公司 一种分布式存储系统的读写控制方法和系统
CN113535729A (zh) * 2021-07-21 2021-10-22 浪潮云信息技术股份公司 一种基于RocksDB实现行列混合存储的方法
CN114138200A (zh) * 2021-12-01 2022-03-04 浪潮云信息技术股份公司 一种基于RocksDB的预写日志方法及系统
WO2023015866A1 (zh) * 2021-08-09 2023-02-16 苏州浪潮智能科技有限公司 一种数据写入方法、装置、系统、电子设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109918381A (zh) * 2019-03-13 2019-06-21 北京百度网讯科技有限公司 用于存储数据的方法和装置
CN110188108A (zh) * 2019-06-10 2019-08-30 北京平凯星辰科技发展有限公司 数据存储方法、装置、系统、计算机设备及存储介质
CN110347336A (zh) * 2019-06-10 2019-10-18 华中科技大学 一种基于nvm与ssd混合存储结构的键值存储系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109918381A (zh) * 2019-03-13 2019-06-21 北京百度网讯科技有限公司 用于存储数据的方法和装置
CN110188108A (zh) * 2019-06-10 2019-08-30 北京平凯星辰科技发展有限公司 数据存储方法、装置、系统、计算机设备及存储介质
CN110347336A (zh) * 2019-06-10 2019-10-18 华中科技大学 一种基于nvm与ssd混合存储结构的键值存储系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
小东_16D3: "rockdb-share", 《HTTPS://WWW.JIANSHU.COM/P/2638E2B379C3》 *

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111881092A (zh) * 2020-06-22 2020-11-03 武汉绿色网络信息服务有限责任公司 一种基于cassandra数据库的文件合并的方法和装置
CN112487095A (zh) * 2020-12-09 2021-03-12 浪潮云信息技术股份公司 一种分布式数据库事务数据存储优化的方法
CN112699092A (zh) * 2021-01-13 2021-04-23 浪潮云信息技术股份公司 一种RocksDB存储大值数据的方法
CN112699092B (zh) * 2021-01-13 2023-02-03 浪潮云信息技术股份公司 一种RocksDB存储大值数据的方法
CN112925676A (zh) * 2021-03-09 2021-06-08 浪潮云信息技术股份公司 一种基于wal实现分布式数据库集群任意时间点恢复的方法
CN112925676B (zh) * 2021-03-09 2023-01-17 上海沄熹科技有限公司 一种基于wal实现分布式数据库集群任意时间点恢复的方法
CN113253932A (zh) * 2021-05-28 2021-08-13 济南浪潮数据技术有限公司 一种分布式存储系统的读写控制方法和系统
CN113253932B (zh) * 2021-05-28 2023-02-28 济南浪潮数据技术有限公司 一种分布式存储系统的读写控制方法和系统
CN113535729A (zh) * 2021-07-21 2021-10-22 浪潮云信息技术股份公司 一种基于RocksDB实现行列混合存储的方法
WO2023015866A1 (zh) * 2021-08-09 2023-02-16 苏州浪潮智能科技有限公司 一种数据写入方法、装置、系统、电子设备及存储介质
CN114138200A (zh) * 2021-12-01 2022-03-04 浪潮云信息技术股份公司 一种基于RocksDB的预写日志方法及系统
CN114138200B (zh) * 2021-12-01 2023-10-13 上海沄熹科技有限公司 一种基于RocksDB的预写日志方法及系统

Similar Documents

Publication Publication Date Title
CN111221922A (zh) 一种RocksDB数据库数据写入方法及RocksDB数据库
KR102370760B1 (ko) 존 네임스페이스에 대한 존 형성
US20150355845A1 (en) Memory systems that support read reclaim operations and methods of operating same to thereby provide real time data recovery
US11520660B2 (en) Storage devices hiding parity swapping behavior
KR101014040B1 (ko) 디램 버퍼 관리 장치 및 방법
US10635580B2 (en) Buffering storage device data in a host memory buffer
US20200409601A1 (en) Hold of Write Commands in Zoned Namespaces
US9891838B2 (en) Method of operating a memory system having a meta data manager
US9123443B2 (en) Memory device, memory management device, and memory management method
US9489253B2 (en) Memory controller and method of operating memory controller for reading data from memory device at high speed
CN109727627B (zh) 组读取刷新
US20200310667A1 (en) Selective deduplication based on data storage device controller status and media characteristics
US11068201B2 (en) Flash memory controller, method for managing flash memory module and associated electronic device
US8954662B2 (en) SSD controller, and method for operating an SSD controller
US20090287882A1 (en) Raid_5 controller and accessing method with data stream distribution and aggregation operations based on the primitive data access block of storage devices
US11829650B2 (en) Memory sub-system data migration
US20240028252A1 (en) Quick charge loss mitigation using two-pass controlled delay
US11194494B2 (en) Storage devices hiding parity swapping behavior
DE112020004975T5 (de) SPEICHERUNGSVORRICHTUNGEN MIT MINIMALEN SCHREIBGRÖßEN VON DATEN
CN112328181A (zh) 一种分布式存储系统的元数据读写方法和装置
US20240176500A1 (en) Operation method of memory system, memory system and electronic device
CN101533662B (zh) 一种闪存读写方法与闪存设备
US11443812B2 (en) Setting an initial erase voltage using feedback from previous operations
KR102345454B1 (ko) 조합된 qlc 프로그래밍 방법
US20240143200A1 (en) Reducing energy comsumption of self-managed dram modules

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20200602

RJ01 Rejection of invention patent application after publication