CN112433673B - 一种固态硬盘存储数据的方法和设备 - Google Patents
一种固态硬盘存储数据的方法和设备 Download PDFInfo
- Publication number
- CN112433673B CN112433673B CN202011270222.7A CN202011270222A CN112433673B CN 112433673 B CN112433673 B CN 112433673B CN 202011270222 A CN202011270222 A CN 202011270222A CN 112433673 B CN112433673 B CN 112433673B
- Authority
- CN
- China
- Prior art keywords
- fields
- solid state
- data
- state disk
- channels
- 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.)
- Active
Links
- 239000007787 solid Substances 0.000 title claims abstract description 54
- 238000000034 method Methods 0.000 title claims abstract description 27
- 230000004044 response Effects 0.000 claims abstract description 19
- 238000004590 computer program Methods 0.000 description 5
- 238000013507 mapping Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000002245 particle Substances 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
Images
Classifications
-
- 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
-
- 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/0674—Disk device
Abstract
本发明提供了一种固态硬盘存储数据的方法和设备,该方法包括:响应于接收到存储数据的指令,将待存储的数据拆分成若干个字段并统计字段的数量;将字段的数量与固态硬盘的通道数量进行对比;响应于字段的数量大于通道数量,将拆分成的字段按照顺序依次循环写入固态硬盘的各个通道中。通过使用本发明的方案,能够能有效地提升读写性能,对于行和列均会作为索引的数据库需求,能极大的降低查询的复杂度,数据查询不需要返回全部字段的内容,大幅度提升查询和读取性能。
Description
技术领域
本领域涉及计算机领域,并且更具体地涉及一种固态硬盘存储数据的方法和设备。
背景技术
固态硬盘(SSD)是一种用来存储用户数据的设备。固态硬盘由控制器,存储介质NAND(闪存)等模块组成。控制器中运行Firmware(在控制器上运行的嵌入式软件)进行资源的控制,对用户数据存储调度,维护NAND设备等操作。NAND是存储介质,是一种芯片,一个固态硬盘内往往有多个NAND颗粒。固态硬盘能提供高并发的读写性能,是因为固态硬盘内有多个可并行操作的存储单元,每个存储单元在进行读写的时候,其他的存储单元可以响应其他的读写请求,一个NAND颗粒内有多个存储单元。
数据库是用来存储用户数据的一种软件结构。给用户提供增、删、改、查接口。可以允许用户存入新数据,删除旧数据,修改已存储的数据,查询已有的数据。数据库根据实现原理,可以分为行数据库和列数据库。用户存入的一个信息(简称为一条记录),往往分为多个字段。多条信息存储在数据库中,可以看作是一个二维表。数据库的结构如果将一个记录存储在一起,则为行结构,将字段存储在一起,则位列结构。一般来说,数据库要么是行结构的,要么是列结构的。对于行结构数据库,当用户需要对列进行索引时,容易取得记录的全部内容,但不容易取得字段的全部内容,如果数据存储在列数据库中,则可以轻易获取列的内容,但是又很难获取行的内容。因此当有需求既根据列进行索引,又有需求根据行进行索引时,往往是存储两份数据,分别应对行索引和列索引。
发明内容
有鉴于此,本发明实施例的目的在于提出一种固态硬盘存储数据的方法和设备,通过使用本发明的方法,能够能有效地提升读写性能,对于行和列均会作为索引的数据库需求,能极大的降低查询的复杂度,数据查询不需要返回全部字段的内容,大幅度提升查询和读取性能。
基于上述目的,本发明的实施例的一个方面提供了一种固态硬盘存储数据的方法,包括以下步骤:
响应于接收到存储数据的指令,将待存储的数据拆分成若干个字段并统计字段的数量;
将字段的数量与固态硬盘的通道数量进行对比;
响应于字段的数量大于通道数量,将拆分成的字段按照顺序依次循环写入固态硬盘的各个通道中。
根据本发明的一个实施例,还包括:
响应于字段的数量小于通道数量,将拆分成的每个字段分别写入固态硬盘的不同的通道中。
根据本发明的一个实施例,还包括:
将写入单个通道中的字段的数量与单个通道中的LUN的数量进行对比;
响应于写入单个通道中的字段的数量大于单个通道中的LUN的数量,将写入单个通道的字段按顺序依次循环写入LUN中。
根据本发明的一个实施例,还包括:
记录待存储数据的数据信息;
记录拆分的字段存储到固态硬盘的通道的物理地址;
将数据信息和物理地址绘制成数据库。
根据本发明的一个实施例,数据信息包括用户ID、字段名、字段类型和字段长度。
本发明的实施例的另一个方面,还提供了一种固态硬盘存储数据的设备,设备包括:
拆分模块,拆分模块配置为响应于接收到存储数据的指令,将待存储的数据拆分成若干个字段并统计字段的数量;
对比模块,对比模块配置为将字段的数量与固态硬盘的通道数量进行对比;
写入模块,写入模块配置为响应于字段的数量大于通道数量,将拆分成的字段按照顺序依次循环写入固态硬盘的各个通道中。
根据本发明的一个实施例,还包括存储模块,存储模块配置为:
响应于字段的数量小于通道数量,将拆分成的每个字段分别写入固态硬盘的不同的通道中。
根据本发明的一个实施例,还包括比较模块,比较模块配置为:
将写入单个通道中的字段的数量与单个通道中的LUN的数量进行对比;
响应于写入单个通道中的字段的数量大于单个通道中的LUN的数量,将写入单个通道的字段按顺序依次循环写入LUN中。
根据本发明的一个实施例,还包括绘制模块,绘制模块配置为:
记录待存储数据的数据信息;
记录拆分的字段存储到固态硬盘的通道的物理地址;
将数据信息和物理地址绘制成数据库。
根据本发明的一个实施例,数据信息包括用户ID、字段名、字段类型和字段长度。
本发明具有以下有益技术效果:本发明实施例提供的固态硬盘存储数据的方法,通过响应于接收到存储数据的指令,将待存储的数据拆分成若干个字段并统计字段的数量;将字段的数量与固态硬盘的通道数量进行对比;响应于字段的数量大于通道数量,将拆分成的字段按照顺序依次循环写入固态硬盘的通道中的技术方案,能够能有效地提升读写性能,对于行和列均会作为索引的数据库需求,能极大的降低查询的复杂度,数据查询不需要返回全部字段的内容,大幅度提升查询和读取性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
图1为根据本发明一个实施例的固态硬盘存储数据的方法的示意性流程图;
图2为根据本发明一个实施例的固态硬盘存储数据的设备的示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
基于上述目的,本发明的实施例的第一个方面,提出了一种固态硬盘存储数据的方法的一个实施例。图1示出的是该方法的示意性流程图。
如图1中所示,该方法可以包括以下步骤:
S1响应于接收到存储数据的指令,将待存储的数据拆分成若干个字段并统计字段的数量,将用户的待存储的数据根据任意的规则拆分成多个字段,然后统计将该数据一共拆分成了多少个字段,其中的数据可能是一个综合的数据结构,不只是一个数字或者一个字符串,可能是图像、音频、复合数据结构等,比如用于图像检索领域,用户可能用不同缩略图的图像和图像的类型作为存储数据,每个字段不再是几个字节,而是较大的容量;
S2将字段的数量与固态硬盘的通道数量进行对比,固态硬盘中包括多个通道,每个通道内又包含了多个LUN,每个LUN中有多个Block,将拆分成的字段存储到固态硬盘中的多个通道中,如果通道数量大于字段数量,则每个字段独自存储在一个通道中的LUN中;
S3响应于字段的数量大于通道数量,将拆分成的字段按照顺序依次循环写入固态硬盘的各个通道中,如果字段数量超过通道数,则将字段轮流放入通道中,举例来说,共有1000个字段待存储,系统内只有16个通道,则数据的字段0、字段16、字段32…写入通道0中,字段1、字段17、字段33…写入通道1中,以此类推。
通过本发明的技术方案,能够能有效地提升读写性能,对于行和列均会作为索引的数据库需求,能极大的降低查询的复杂度,数据查询不需要返回全部字段的内容,大幅度提升查询和读取性能。
在本发明的一个优选实施例中,还包括:
响应于字段的数量小于通道数量,将拆分成的每个字段分别写入固态硬盘的不同的通道中。如果字段的数量小于通道数量,那么每个字段单独存储在一个通道中,即每个通道存储该数据的唯一一个字段。
在本发明的一个优选实施例中,还包括:
将写入单个通道中的字段的数量与单个通道中的LUN的数量进行对比;
响应于写入单个通道中的字段的数量大于单个通道中的LUN的数量,将写入单个通道的字段按顺序依次循环写入LUN中。由于固态硬盘硬件内的中存储单元也是二维结构,分为多个逻辑单元(LUN),每个LUN内有多个Block,因此当用户的字段数量小于LUN数量时,每个字段独占一个LUN,当字段数量超过LUN数量时,则均匀的多个字段共享一个LUN,可以按照上述的方式循环写入,也可以计算每个LUN能存储的字段数量,然后将字段按照数量随机存储在LUN中。
在本发明的一个优选实施例中,还包括:
记录待存储数据的数据信息;
记录拆分的字段存储到固态硬盘的通道的物理地址;
将数据信息和物理地址绘制成数据库。
在本发明的一个优选实施例中,数据信息包括用户ID、字段名、字段类型和字段长度。主机也可以根据数据存储的方式创建数据库,数据库数据的增、删、查也可以通过IO数据命令来实现。如果用IO命令实现,则分为两步,第一次写操作写入命令字,如增加、删除、读取。如果是数据库的增加操作,则第二次写操作写入数据记录。如果是读取操作,则第二次发送读取命令,则可以读出数据内容。用户的写入数据,在固态硬盘的firmware处理过程中,根据字段结构进行拆分,每个字段放到对应的通道内。并且记下来这个用户数据的ID与物理地址的映射表。如果用户需要对某些行或者列建立索引,则也将这个索引记录下来。索引和映射表作为数据库的meta信息,下电时存储于SSD的区域内,运行时存储于RAM中。当用户进行查询时,基于用户ID和物理地址的索引表,找到数据对应的物理地址。然后将这些物理地址的数据进行读取,发送至主机端。当用户进行删除时,则修改数据库的meta信息,包括修改映射表和索引表。由于NAND仅支持以block为单位进行擦除,所以固态硬盘的firmware在后台进行垃圾回收操作。
数据库的索引表和映射表存储于固态硬盘的RAM空间内。当下电时,这些表写回NAND区域,下次上电时重新加载到内存。一般来说,内存空间相比NAND存储空间来说,容量要小很多。因此当内存耗尽时,固态硬盘则向主机汇报,停止接收新的写入操作,直到数据库经过删除有新的内存空间为止。当进行数据库查询时,firmware收到用户的查询请求,进行索引表的查询,得到数据后,可以发现这些数据分布于不同的行和列中。由于每个LUN均可以同时进行读取,因此firmware会对数据进行组织,尽量使每个LUN并发的处理读取操作,最大化的利用NAND的性能。由于NAND介质不支持直接修改已存储的数据,因此主机如果需要修改某项数据记录,则应当先进行擦除,再进行重新写入来实现修改。
通过本发明的技术方案,能够能有效地提升读写性能,对于行和列均会作为索引的数据库需求,能极大的降低查询的复杂度,数据查询不需要返回全部字段的内容,大幅度提升查询和读取性能。
需要说明的是,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,上述的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中存储介质可为磁碟、光盘、只读存储器(Read-Only Memory,ROM)或随机存取存储器(Random AccessMemory,RAM)等。上述计算机程序的实施例,可以达到与之对应的前述任意方法实施例相同或者相类似的效果。
此外,根据本发明实施例公开的方法还可以被实现为由CPU执行的计算机程序,该计算机程序可以存储在计算机可读存储介质中。在该计算机程序被CPU执行时,执行本发明实施例公开的方法中限定的上述功能。
基于上述目的,本发明的实施例的第二个方面,提出了一种固态硬盘存储数据的设备,如图2所示,设备200包括:
拆分模块,拆分模块配置为响应于接收到存储数据的指令,将待存储的数据拆分成若干个字段并统计字段的数量;
对比模块,对比模块配置为将字段的数量与固态硬盘的通道数量进行对比;
写入模块,写入模块配置为响应于字段的数量大于通道数量,将拆分成的字段按照顺序依次循环写入固态硬盘的各个通道中。
在本发明的一个优选实施例中,还包括存储模块,存储模块配置为:
响应于字段的数量小于通道数量,将拆分成的每个字段分别写入固态硬盘的不同的通道中。
在本发明的一个优选实施例中,还包括比较模块,比较模块配置为:
将写入单个通道中的字段的数量与单个通道中的LUN的数量进行对比;
响应于写入单个通道中的字段的数量大于单个通道中的LUN的数量,将写入单个通道的字段按顺序依次循环写入LUN中。
在本发明的一个优选实施例中,还包括绘制模块,绘制模块配置为:
记录待存储数据的数据信息;
记录拆分的字段存储到固态硬盘的通道的物理地址;
将数据信息和物理地址绘制成数据库。
在本发明的一个优选实施例中,数据信息包括用户ID、字段名、字段类型和字段长度。
上述实施例,特别是任何“优选”实施例是实现的可能示例,并且仅为了清楚地理解本发明的原理而提出。可以在不脱离本文所描述的技术的精神和原理的情况下对上述实施例进行许多变化和修改。所有修改旨在被包括在本公开的范围内并且由所附权利要求保护。
Claims (6)
1.一种固态硬盘存储数据的方法,其特征在于,包括以下步骤:
响应于接收到存储数据的指令,将待存储的数据拆分成若干个字段并统计字段的数量;
将所述字段的数量与固态硬盘的通道数量进行对比;
响应于所述字段的数量大于所述通道数量,将拆分成的字段按照顺序依次循环写入所述固态硬盘的各个通道中;
响应于所述字段的数量小于所述通道数量,将拆分成的每个字段分别写入所述固态硬盘的不同的通道中;
记录待存储数据的数据信息;
记录拆分的字段存储到所述固态硬盘的通道的物理地址;
将所述数据信息和所述物理地址绘制成数据库。
2.根据权利要求1所述的方法,其特征在于,还包括:
将写入单个通道中的字段的数量与所述单个通道中的LUN的数量进行对比;
响应于写入所述单个通道中的字段的数量大于所述单个通道中的LUN的数量,将写入所述单个通道的字段按顺序依次循环写入所述LUN中。
3.根据权利要求1所述的方法,其特征在于,所述数据信息包括用户ID、字段名、字段类型和字段长度。
4.一种固态硬盘存储数据的设备,其特征在于,所述设备包括:
拆分模块,所述拆分模块配置为响应于接收到存储数据的指令,将待存储的数据拆分成若干个字段并统计字段的数量;
对比模块,所述对比模块配置为将所述字段的数量与固态硬盘的通道数量进行对比;
写入模块,所述写入模块配置为响应于所述字段的数量大于所述通道数量,将拆分成的字段按照顺序依次循环写入所述固态硬盘的各个通道中;
存储模块,所述存储模块配置为响应于所述字段的数量小于所述通道数量,将拆分成的每个字段分别写入所述固态硬盘的不同的通道中;
绘制模块,所述绘制模块配置为记录待存储数据的数据信息,记录拆分的字段存储到所述固态硬盘的通道的物理地址,将所述数据信息和所述物理地址绘制成数据库。
5.根据权利要求4所述的设备,其特征在于,还包括比较模块,所述比较模块配置为:
将写入单个通道中的字段的数量与所述单个通道中的LUN的数量进行对比;
响应于写入所述单个通道中的字段的数量大于所述单个通道中的LUN的数量,将写入所述单个通道的字段按顺序依次循环写入所述LUN中。
6.根据权利要求4所述的设备,其特征在于,所述数据信息包括用户ID、字段名、字段类型和字段长度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011270222.7A CN112433673B (zh) | 2020-11-13 | 2020-11-13 | 一种固态硬盘存储数据的方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011270222.7A CN112433673B (zh) | 2020-11-13 | 2020-11-13 | 一种固态硬盘存储数据的方法和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112433673A CN112433673A (zh) | 2021-03-02 |
CN112433673B true CN112433673B (zh) | 2022-08-09 |
Family
ID=74701273
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011270222.7A Active CN112433673B (zh) | 2020-11-13 | 2020-11-13 | 一种固态硬盘存储数据的方法和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112433673B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108153681A (zh) * | 2017-11-29 | 2018-06-12 | 深圳忆联信息系统有限公司 | 一种大容量固态硬盘映射表压缩方法 |
CN109154917A (zh) * | 2016-12-29 | 2019-01-04 | 华为技术有限公司 | 存储系统和固态硬盘 |
CN110175000A (zh) * | 2019-05-24 | 2019-08-27 | 深圳忆联信息系统有限公司 | 基于固态硬盘的读写性能提升方法、装置和计算机设备 |
CN111459982A (zh) * | 2020-03-27 | 2020-07-28 | 中国平安人寿保险股份有限公司 | 一种数据查询方法、装置、终端设备及存储介质 |
-
2020
- 2020-11-13 CN CN202011270222.7A patent/CN112433673B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109154917A (zh) * | 2016-12-29 | 2019-01-04 | 华为技术有限公司 | 存储系统和固态硬盘 |
CN108153681A (zh) * | 2017-11-29 | 2018-06-12 | 深圳忆联信息系统有限公司 | 一种大容量固态硬盘映射表压缩方法 |
CN110175000A (zh) * | 2019-05-24 | 2019-08-27 | 深圳忆联信息系统有限公司 | 基于固态硬盘的读写性能提升方法、装置和计算机设备 |
CN111459982A (zh) * | 2020-03-27 | 2020-07-28 | 中国平安人寿保险股份有限公司 | 一种数据查询方法、装置、终端设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112433673A (zh) | 2021-03-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103186350B (zh) | 混合存储系统及热点数据块的迁移方法 | |
US9665293B2 (en) | Method for a storage device processing data and storage device | |
US8782324B1 (en) | Techniques for managing placement of extents based on a history of active extents | |
US6691136B2 (en) | Fast data retrieval based upon contiguous consolidation of records according to frequency of access | |
US7933938B2 (en) | File storage system, file storing method and file searching method therein | |
CN105574104A (zh) | 一种基于ObjectStore的LogStructure存储系统及其数据写入方法 | |
CN111026329B (zh) | 基于主机管理瓦记录磁盘的键值存储系统及数据处理方法 | |
CN108628542B (zh) | 一种文件合并方法及控制器 | |
CN106970765B (zh) | 数据存储方法及装置 | |
CN105912687A (zh) | 海量分布式数据库存储单元 | |
Lee et al. | An efficient index buffer management scheme for implementing a B-tree on NAND flash memory | |
US20200341684A1 (en) | Managing a raid group that uses storage devices of different types that provide different data storage characteristics | |
CN103399823A (zh) | 业务数据的存储方法、设备和系统 | |
CN110968269A (zh) | 基于scm与ssd的键值存储系统及读写请求处理方法 | |
US20240015206A1 (en) | Data stream management method and device | |
US10712943B2 (en) | Database memory monitoring and defragmentation of database indexes | |
CN110989924B (zh) | 一种元数据存储性能优化方法及存储服务器 | |
CN112988627A (zh) | 存储设备、存储系统和操作存储设备的方法 | |
US9710504B2 (en) | Data processing and writing method and related apparatus | |
JP6531574B2 (ja) | ストレージ装置、ストレージ装置制御プログラム及びストレージ装置制御方法 | |
WO2022037015A1 (zh) | 一种基于持久性内存的列式存储方法、装置及设备 | |
CN112433673B (zh) | 一种固态硬盘存储数据的方法和设备 | |
CN115933994B (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
US11853562B1 (en) | Read look ahead based on key analysis in key value data storage devices | |
CN115964350A (zh) | 一种文件系统管理模型及系统 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |