CN111221922A - 一种RocksDB数据库数据写入方法及RocksDB数据库 - Google Patents
一种RocksDB数据库数据写入方法及RocksDB数据库 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 15
- 238000003491 array Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/289—Object oriented databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk 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是一种使用一套日志结构的数据库引擎,为了更好的性能,这套引擎采用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表示硬盘写带宽。
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)
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)
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混合存储结构的键值存储系统 |
-
2019
- 2019-12-31 CN CN201911422981.8A patent/CN111221922A/zh active Pending
Patent Citations (3)
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)
Title |
---|
小东_16D3: "rockdb-share", 《HTTPS://WWW.JIANSHU.COM/P/2638E2B379C3》 * |
Cited By (12)
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 |