CN111625546B - 一种数据写入方法、装置、设备、介质 - Google Patents
一种数据写入方法、装置、设备、介质 Download PDFInfo
- Publication number
- CN111625546B CN111625546B CN202010377079.5A CN202010377079A CN111625546B CN 111625546 B CN111625546 B CN 111625546B CN 202010377079 A CN202010377079 A CN 202010377079A CN 111625546 B CN111625546 B CN 111625546B
- Authority
- CN
- China
- Prior art keywords
- data
- written
- disk
- address space
- length
- 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
- 238000000034 method Methods 0.000 title claims abstract description 61
- 238000004590 computer program Methods 0.000 claims description 14
- 238000007781 pre-processing Methods 0.000 claims description 5
- 230000001502 supplementing effect Effects 0.000 claims description 4
- 238000007726 management method Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 238000013500 data storage Methods 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 230000026676 system process Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000008571 general function Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001052 transient 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/23—Updating
-
- 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/064—Management of blocks
-
- 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
- G06F3/0676—Magnetic disk device
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)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种数据写入方法、装置、设备、介质,该方法包括:判断待写入数据的长度是否小于最小分配单元;如果所述待写入数据的长度小于最小分配单元,则直接将所述待写入数据写入磁盘;将所述待写入数据写入到所述磁盘之后,对所述待写入数据对应的元数据进行更新。将小块数据直接写入磁盘上,不需要将小块数据再写入到数据库中,只需要对小块数据进行一次落盘,减少了小块数据的落盘次数,也降低了数据库的压力,也提高本地存储引擎在处理大量小块数据时的性能。
Description
技术领域
本申请涉及数据存储技术领域,特别涉及一种数据写入方法、装置、设备、介质。
背景技术
随着分布式共享存储系统的快速发展,其性能和安全性越来越受到关注。主流的分布式存储系统采用自管理裸盘的方式提升本地存储引擎的性能,对分布式存储系统进行优化,剔除XFS系统(日志文件系统)中大部分通用的功能,弥补对NVME SSD(NVME固态硬盘)支持的不足。基于自管理裸盘的本地存储引擎系统针对NVME SSD的使用进行优化,能够发挥NVME SSD的性能,提升本地存储引擎的存储效率。但该本地存储系统在处理大量小块数据时出现严重的性能下降现象,其瓶颈存在于本地存储引擎的软件栈并没有完全发挥NVMESSD的并发性,小块数据需要先被存放到数据库中,然后再由后台将数据库中的小块数据落盘到磁盘中,这样小块数据才存储的过程中需要进行多次落盘,且大量的小块数据增大了数据库的压力,也占用了系统的资源。
发明内容
有鉴于此,本申请的目的在于提供一种数据写入方法、装置、设备、介质,能够减少数据存储过程中的落盘次数,且降低数据库的压力,提高本地存储引擎在处理大量小块数据时的性能。其具体方案如下:
第一方面,本申请公开了一种数据写入方法,包括:
判断待写入数据的长度是否小于最小分配单元;
如果所述待写入数据的长度小于最小分配单元,则直接将所述待写入数据写入磁盘;
将所述待写入数据写入到所述磁盘之后,对所述待写入数据对应的元数据进行更新。
可选地,所述判断待写入数据的长度是否小于最小分配单元之前,还包括:
执行数据写预处理流程,以便进行数据写入状态。
可选地,所述直接将所述待写入数据写入磁盘,包括:
判断所述待写入数据与块大小是否对齐;
如果所述待写入数据与块大小对齐,则向磁盘管理对象申请与所述待写入数据的长度对应的、所述磁盘上的地址空间,并将所述待写入数据存储到所述地址空间下;
如果所述待写入数据没有与块大小对齐,则对所述待写入数据进行补齐,并将补齐后待写入数据存储到预先申请到的、所述磁盘上的地址空间下。
可选地,所述对所述待写入数据进行补齐,包括:
判断所述地址空间下是否已存在数据;
如果所述地址空间下不存在数据,则利用数据0对所述待写入数据进行补齐;
如果所述地址空间下已存在数据,则将所述地址空间下已存在的数据读出,并利用读出的数据对所述待写入数据进行补齐;
相应的,所述将补齐后待写入数据存储到预先申请到的、所述磁盘上的地址空间下,包括:
将补齐后待写入数据覆盖写入到预先申请到的、所述磁盘上的地址空间下。
可选地,所述判断待写入数据的长度是否小于最小分配单元之后,还包括:
如果所述待写入数据的长度大于或等于所述最小分配单元,则判断所述待写入数据的长度是否与所述最小分配单元对齐;
如果所述待写入数据的长度与所述最小分配单元对齐,则为所述待写入数据申请对应长度的、所述磁盘上的地址空间,并将所述待写入数据写入所述地址空间下;
如果所述待写入数据的长度没有与所述最小分配单元对齐,则按照预设数据写入方法将所述待写入数据写入所述磁盘中。
可选地,所述按照预设数据写入方法将所述待写入数据写入所述磁盘中,包括:
将所述待写入数据中与所述最小分配单元对齐的部分作为第一待写入数据;
将所述待写入数据中不与所述最小分配单元对齐的部分作为第二待写入数据;
为所述第一待写入数据申请对应长度的、所述磁盘上的地址空间,并将所述第一待写入数据写入所述第一待写入数据对应的地址空间下;
判断所述第二待写入数据与块大小是否对齐;
如果所述第二待写入数据与块大小对齐,则为所述第二待写入数据申请对应长度的、所述磁盘上的地址空间,并将所述第二待写入数据写入所述第二待写入数据对应的地址空间下;
如果所述第二待写入数据没有与块大小对齐,则对所述第二待写入数据进行补齐,并将补齐后第二待写入数据存储到预先申请到的、所述磁盘上的地址空间下。
可选地,所述将所述待写入数据写入到所述磁盘之后,对所述待写入数据对应的元数据进行更新,包括:
将所述待写入数据写入到所述磁盘之后,对数据内存中所述待写入数据对应的元数据进行更新;
提交数据库更新事务,以便对数据库中所述待写入数据对应的元数据进行更新。
第二方面,本申请公开了一种数据写入装置,包括:
长度判断模块,用于判断待写入数据的长度是否小于最小分配单元;
小数据块写入模块,用于在所述待写入数据的长度小于最小分配单元时,则直接将所述待写入数据写入磁盘;
元数据更新模块,用于将所述待写入数据写入到所述磁盘之后,对所述待写入数据对应的元数据进行更新。
第三方面,本申请公开了一种数据写入设备,包括:
存储器和处理器;
其中,所述存储器,用于存储计算机程序;
所述处理器,用于执行所述计算机程序,以实现前述公开的数据写入方法。
第四方面,本申请公开了一种计算机可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述公开的数据写入方法。
可见,本申请先判断待写入数据的长度是否小于最小分配单元,如果所述待写入数据的长度小于最小分配单元,则直接将所述待写入数据写入磁盘,并在将所述待写入数据写入到所述磁盘之后,对所述待写入数据对应的元数据进行更新。由此可见,本申请在有待写入数据时,需将所述待写入数据的长度与最小分配单元进行比较,如果所述待写入数据的长度小于所述最小分配单元,则所述待写入数据属于小块数据,则可以直接将所述待写入数据写入到磁盘上,并在将所述待写入数据写到所述磁盘上之后,对所述待写入数据对应的元数据进行更新,这样将小块数据直接写入磁盘上,不需要将小块数据再写入到数据库中,只需要对小块数据进行一次落盘,减少了小块数据的落盘次数,降低了数据库的压力,也提高本地存储引擎在处理大量小块数据时的性能。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请公开的一种数据写入方法流程图;
图2为本申请公开的一种具体的数据写入方法流程图;
图3为本申请公开的一种具体的数据写入方法流程图;
图4为本申请公开的一种数据写入装置结构示意图;
图5为本申请公开的一种数据写入设备结构图;
图6为本申请公开的一种电子设备结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
目前,虽然基于自管理裸盘的本地存储引擎系统针对NVME SSD的使用进行优化,能够发挥NVME SSD的性能,一定程度上提升本地存储引擎的存储效率。但该本地存储系统在处理大量小块数据时出现严重的性能下降现象,其瓶颈存在于本地存储引擎的软件栈并没有完全发挥NVME SSD的并发性,小块数据需要先被存放到数据库中,然后再由后台将数据库中的小块数据落盘到磁盘中,这样小块数据才存储的过程中需要进行多次落盘,且大量的小块数据增大了数据库的压力,也占用了系统的资源。有鉴于此,本申请提出了一种数据写入方法,能够减少数据存储过程中的落盘次数,且降低数据库的压力,提高本地存储引擎在处理大量小块数据时的性能。
参见图1所示,本申请实施例公开了一种数据写入方法,该方法包括:
步骤S11:判断待写入数据的长度是否小于最小分配单元。
在具体的实施过程中,在获取到待写入数据之后,需要先判断所述待写入数据的长度是否小于最小分配单元,如果所述待写入数据的长度小于最小分配单元的长度,则表示所述待写入数据为小块数据,如果所述待写入数据的长度大于或等于最小分配单元,则表示所述待写入数据为大块数据。其中,所述最小分配单元为磁盘管理对象分配磁盘空间时候的最小单元。
步骤S12:如果所述待写入数据长度小于最小分配单元,则直接将所述待写入数据写入磁盘。
可以理解的是,如果所述待写入数据长度小于最小分配单元,则表示所述待写入数据为小块数据,需要直接将所述待写入数据写入相应的磁盘中,这样直接将小块数据写入到磁盘中,小块数据在存储过程中便只需要进行一次落盘,减少了小块数据的落盘次数,同时不需要先将小块数据写入数据库,也降低了数据库压力,提高本地存储引擎在处理大量小块数据时的性能。
步骤S13:将所述待写入数据写入到所述磁盘之后,对所述待写入数据对应的元数据进行更新。
在将所述待写入数据写入到所述磁盘之后,还需要对所述待写入数据对应的元数据进行更新,其中,所述元数据包括数据内存中所述待写入数据对应的元数据和数据库中所述待写入数据对应的元数据。这样可以在所述待写入数据出现异常时,根据所述元数据对待写入数据进行相应的处理。
可见,本申请先判断待写入数据的长度是否小于最小分配单元,如果所述待写入数据的长度小于最小分配单元,则直接将所述待写入数据写入磁盘,并在将所述待写入数据写入到所述磁盘之后,对所述待写入数据对应的元数据进行更新。由此可见,本申请在有待写入数据时,需将所述待写入数据的长度与最小分配单元进行比较,如果所述待写入数据的长度小于所述最小分配单元,则所述待写入数据属于小块数据,则可以直接将所述待写入数据写入到磁盘上,并在将所述待写入数据写到所述磁盘上之后,对所述待写入数据对应的元数据进行更新,这样将小块数据直接写入磁盘上,不需要将小块数据再写入到数据库中,只需要对小块数据进行一次落盘,减少了小块数据的落盘次数,降低了数据库的压力,也提高本地存储引擎在处理大量小块数据时的性能。
参见图2所示,本申请实施例公开了一种具体的数据写入方法,该方法包括:
步骤S21:执行数据写预处理流程,以便进入数据写入状态。
在实际应用中,需要先执行数据写预处理流程,以便进入数据写入状态,这样可以为待写入数据的写入做好准备工作。
步骤S22:判断待写入数据的长度是否小于最小分配单元。
步骤S23:如果所述待写入数据长度小于最小分配单元,则判断所述待写入数据与块大小是否对齐。
可以理解的是,在判断所述待写入数据的长度小于最小分配单元之后,如果所述待写入数据的长度小于最小分配单元,则所述待写入数据为小块数据,可以直接将所述待写入数据写入磁盘中。其中,所述将待写入数据直接写入到所述磁盘中,具体需要先判断所述待写入数据与块大小是否对齐,其中,所述块大小为磁盘中每次写入数据的最小量。
步骤S24:如果所述待写入数据与块大小对齐,则向磁盘管理对象申请与所述待写入数据的长度对应的、所述磁盘上的地址空间,并将所述待写入数据存储到所述地址空间下。
在判断所述待写入数据与块大小是否对齐之后,如果所述待写入数据与块大小对齐,则可以直接向磁盘管理对象申请与所述待写入数据的长度对应的、所述磁盘上的地址空间,并将所述待写入数据写入到所述地址空间下。如果所述待写入数据与块大小对齐,则表示所述待写入数据的长度满足磁盘的存储要求,可以直接进行数据写入。
步骤S25:如果所述待写入数据没有与块大小对齐,则对所述待写入数据进行补齐,并将补齐后待写入数据存储到预先申请到的、所述磁盘上的地址空间下。
相应地,在判断所述待写入数据与块大小是否对齐之后,如果所述待写入数据没有与块大小对齐,则需要先对所述待写入数据进行补齐,并将补齐后待写入数据存储到预先申请到的、所述磁盘上的地址空间下,其中,所述对所述待写入数据进行补齐,也即,增加所述待写入数据的长度,使得所述待写入数据的长度与块大小对齐。
在具体的实施过程中,所述对所述待写入数据进行补齐,包括:判断所述地址空间下是否已存在数据;如果所述地址空间下不存在数据,则利用数据0对所述待写入数据进行补齐;如果所述地址空间下已存在数据,则将所述地址空间下已存在的数据读出,并利用读出的数据对所述待写入数据进行补齐;相应的,所述将补齐后待写入数据存储到预先申请到的、所述磁盘上的地址空间下,包括:将补齐后待写入数据覆盖写入到预先申请到的、所述磁盘上的地址空间下。例如,为所述待写入数据申请到的地址空间8KB,且这8KB的地址空间中没有数据,所述待写入数据为从第4KB开始存储的长度为4KB数据,则需要先将待写入数据的前4KB补上0,得到长度为8KB的补齐后待写入数据,再将8KB的补齐后待写入数据存储到8KB的地址空间下。如果为所述待写入数据申请到的地址空间8KB,且这8KB的地址空间中0到第3KB上已经存在数据,所述待写入数据为从第4KB开始存储的长度为4KB数据,则需要先将中0到第3KB上已经存在的数据读出来,补充到待写入数据的前4KB上,得到长度为8KB的补齐后待写入数据,再将8KB的补齐后待写入数据覆盖存储到8KB的地址空间下。
在实际应用中,在判断待写入数据的长度是否小于最小分配单元之后,如果所述待写入数据的长度大于或等于所述最小分配单元,则判断所述待写入数据的长度是否与所述最小分配单元对齐。
在判断所述待写入数据的长度是否与所述最小分配单元对齐之后,如果所述待写入数据的长度与所述最小分配单元对齐,则为所述待写入数据申请对应长度的、所述磁盘上的地址空间,并将所述待写入数据写入所述地址空间下。如果所述待写入数据的长度与最小分配单元对齐,则表示所述待写入数据符合所述磁盘的写入要求,可以直接为所述待写入数据申请地址空间,以便将所述待写入数据写入到所述地址空间下。
可以理解的是,在判断所述待写入数据的长度是否与所述最小分配单元对齐之后,如果所述待写入数据的长度没有与所述最小分配单元对齐,则按照预设数据写入方法将所述待写入数据写入所述磁盘中。其中,所述按照预设数据写入方法将所述待写入数据写入所述磁盘中,包括:将所述待写入数据中与所述最小分配单元对齐的部分作为第一待写入数据;将所述待写入数据中不与所述最小分配单元对齐的部分作为第二待写入数据;为所述第一待写入数据申请对应长度的、所述磁盘上的地址空间,并将所述第一待写入数据写入所述第一待写入数据对应的地址空间下;判断所述第二待写入数据与块大小是否对齐;如果所述第二待写入数据与块大小对齐,则为所述第二待写入数据申请对应长度的、所述磁盘上的地址空间,并将所述第二待写入数据写入所述第二待写入数据对应的地址空间下;如果所述第二待写入数据没有与块大小对齐,则对所述第二待写入数据进行补齐,并将补齐后第二待写入数据存储到预先申请到的、所述磁盘上的地址空间下。具体的,就是将所述待写入数据分开写入,对于所述待写入数据中能够与所述最小分配单元对齐的部分,则可以申请对应长度的、所述磁盘上的地址空间,并将对齐的部分存储到该地址空间下,对于所述待写入数据中没有与所述最小分配单元对齐的部分,则按照小块数据的存储方式进行存储。具体的,就是对于所述待写入数据中没有与所述最小分配单元对齐的部分,先判断其是否与块大小对齐,如果对齐,则为其申请对应长度的、所述磁盘上的地址空间,并进行存储,如果没有对齐,则补齐之后在进行存储。
步骤S26:将所述待写入数据写入到所述磁盘之后,对数据内存中所述待写入数据对应的元数据进行更新。
步骤S27:提交数据库更新事务,以便对数据库中所述待写入数据对应的元数据进行更新。
在将待写入数据写入磁盘之后,还需要对所述待写入数据对应的元数据进行存储,具体的,先对数据内存中所述待写入数据对应的元数据进行更新,再提交数据库更新事务,以便数据库中所述待写入数据对应的元数据进行更新。
参见图3所示,为一种数据写入流程图。首先进行数据写预处理,然后判断待写入数据的长度是否小于与最小分配单元对齐,如果小于,则判断所述待写入数据是否与块大小对齐,如果所述待写入数据与块大小对齐,则按照小块数据追加写的方式进行存储,也即申请处应的地址空间并写入到该地址空间,如果所述待写入数据与块大小不对齐,则根据所述待写入数据的偏移量和长度对所述待写入数据进行补齐,再将补齐后的申请到的地址空间中。如果所述待写入数据的长度大于或等于最小分配单元,则判断所述待写入数据是否与最小分配单元对齐,如果所述待写入数据与最小分配单元对齐,则执行大数据写流程,也即为所述待写入数据申请对应的地址空间并将所述待写入数据写入到该地址空间。如果所述待写入数据没有与最小分配单元对齐,则先将所述待写入数据中对齐的部分按照大数据写入流程进行存储,再将所述待写入数据中没有与最小分配单元对齐的部分按照小数据写入流程进行存储。其中,bl.len表示待写入数据的长度,min_alloc_size表示最小分配单元的长度,block_size表示块大小。
参见图4所示,本申请实施例公开了一种数据写入装置,包括:
长度判断模块11,用于判断待写入数据的长度是否小于最小分配单元;
小数据块写入模块12,用于在所述待写入数据的长度小于最小分配单元时,则直接将所述待写入数据写入磁盘;
元数据更新模块13,用于将所述待写入数据写入到所述磁盘之后,对所述待写入数据对应的元数据进行更新。
可见,本申请先判断待写入数据的长度是否小于最小分配单元,如果所述待写入数据的长度小于最小分配单元,则直接将所述待写入数据写入磁盘,并在将所述待写入数据写入到所述磁盘之后,对所述待写入数据对应的元数据进行更新。由此可见,本申请在有待写入数据时,需将所述待写入数据的长度与最小分配单元进行比较,如果所述待写入数据的长度小于所述最小分配单元,则所述待写入数据属于小块数据,则可以直接将所述待写入数据写入到磁盘上,并在将所述待写入数据写到所述磁盘上之后,对所述待写入数据对应的元数据进行更新,这样将小块数据直接写入磁盘上,不需要将小块数据在写入到数据库中,只需要对小块数据进行一次落盘,减少了小块数据的落盘次数,降低了数据库的压力,也提高本地存储引擎在处理大量小块数据时的性能。
进一步的,参见图5所示,本申请实施例还公开了一种数据写入设备,包括:处理器21和存储器22。
其中,所述存储器22,用于存储计算机程序;所述处理器21,用于执行所述计算机程序,以实现前述实施例中公开的数据写入方法。
其中,关于上述数据写入方法的具体过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
参见图6所示,为本申请实施例提供的一种电子设备20的结构示意图,该电子设备20具体可以包括但不限于智能手机、平板电脑、笔记本电脑或台式电脑等。
通常,本实施例中的电子设备20包括:处理器21和存储器22。
其中,处理器21可以包括一个或多个处理核心,比如四核心处理器、八核心处理器等。处理器21可以采用DSP(digital signal processing,数字信号处理)、FPGA(field-programmable gate array,现场可编程们阵列)、PLA(programmable logic array,可编程逻辑阵列)中的至少一种硬件来实现。处理器21也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(central processing unit,中应处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器21可以集成有GPU(graphics processing unit,图像处理器),GPU用于负责显示屏所需要显示的图像的渲染和绘制。一些实施例中,处理器21可以包括AI(artificialintelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器22可以包括一个或多个计算机可读存储介质,计算机可读存储介质可以是非暂态的。存储器22还可以包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器22至少用于存储以下计算机程序221,其中,该计算机程序被处理器31加载并执行之后,能够实现前述任一实施例中公开的数据写入方法步骤。另外,存储器22所存储的资源还可以包括操作系统222和数据223等,存储方式可以是短暂存储也可以是永久存储。其中,操作系统222可以是Windows、Unix、Linux等。数据223可以包括各种各样的数据。
在一些实施例中,电子设备20还可包括有显示屏23、输入输出接口24、通信接口25、传感器26、电源27以及通信总线28。
本技术领域人员可以理解,图6中示出的结构并不构成对电子设备20的限定,可以包括比图示更多或更少的组件。
进一步的,本申请实施例还公开了一种计算机可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述任一实施例中公开的数据写入方法。
其中,关于上述数据写入方法的具体过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或者操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得一系列包含其他要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本申请所提供的一种数据写入方法、装置、设备、介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (8)
1.一种数据写入方法,其特征在于,包括:
判断待写入数据的长度是否小于最小分配单元;
如果所述待写入数据的长度小于最小分配单元,则直接将所述待写入数据写入磁盘;
将所述待写入数据写入到所述磁盘之后,对所述待写入数据对应的元数据进行更新;
其中,所述直接将所述待写入数据写入磁盘,包括:
判断所述待写入数据与块大小是否对齐;
如果所述待写入数据与块大小对齐,则向磁盘管理对象申请与所述待写入数据的长度对应的、所述磁盘上的地址空间,并将所述待写入数据存储到所述地址空间下;
如果所述待写入数据没有与块大小对齐,则对所述待写入数据进行补齐,并将补齐后待写入数据存储到预先申请到的、所述磁盘上的地址空间下;
所述对所述待写入数据进行补齐,包括:
判断所述地址空间下是否已存在数据;
如果所述地址空间下不存在数据,则利用数据0对所述待写入数据进行补齐;
如果所述地址空间下已存在数据,则将所述地址空间下已存在的数据读出,并利用读出的数据对所述待写入数据进行补齐;
相应的,所述将补齐后待写入数据存储到预先申请到的、所述磁盘上的地址空间下,包括:
将补齐后待写入数据覆盖写入到预先申请到的、所述磁盘上的地址空间下。
2.根据权利要求1所述的数据写入方法,其特征在于,所述判断待写入数据的长度是否小于最小分配单元之前,还包括:
执行数据写预处理流程,以便进入数据写入状态。
3.根据权利要求1所述的数据写入方法,其特征在于,所述判断待写入数据的长度是否小于最小分配单元之后,还包括:
如果所述待写入数据的长度大于或等于所述最小分配单元,则判断所述待写入数据的长度是否与所述最小分配单元对齐;
如果所述待写入数据的长度与所述最小分配单元对齐,则为所述待写入数据申请对应长度的、所述磁盘上的地址空间,并将所述待写入数据写入所述地址空间下;
如果所述待写入数据的长度没有与所述最小分配单元对齐,则按照预设数据写入方法将所述待写入数据写入所述磁盘中。
4.根据权利要求3所述的数据写入方法,其特征在于,所述按照预设数据写入方法将所述待写入数据写入所述磁盘中,包括:
将所述待写入数据中与所述最小分配单元对齐的部分作为第一待写入数据;
将所述待写入数据中不与所述最小分配单元对齐的部分作为第二待写入数据;
为所述第一待写入数据申请对应长度的、所述磁盘上的地址空间,并将所述第一待写入数据写入所述第一待写入数据对应的地址空间下;
判断所述第二待写入数据与块大小是否对齐;
如果所述第二待写入数据与块大小对齐,则为所述第二待写入数据申请对应长度的、所述磁盘上的地址空间,并将所述第二待写入数据写入所述第二待写入数据对应的地址空间下;
如果所述第二待写入数据没有与块大小对齐,则对所述第二待写入数据进行补齐,并将补齐后第二待写入数据存储到预先申请到的、所述磁盘上的地址空间下。
5.根据权利要求1所述的数据写入方法,其特征在于,所述将所述待写入数据写入到所述磁盘之后,对所述待写入数据对应的元数据进行更新,包括:
将所述待写入数据写入到所述磁盘之后,对数据内存中所述待写入数据对应的元数据进行更新;
提交数据库更新事务,以便对数据库中所述待写入数据对应的元数据进行更新。
6.一种数据写入装置,其特征在于,包括:
长度判断模块,用于判断待写入数据的长度是否小于最小分配单元;
小数据块写入模块,用于在所述待写入数据的长度小于最小分配单元时,则直接将所述待写入数据写入磁盘;
元数据更新模块,用于将所述待写入数据写入到所述磁盘之后,对所述待写入数据对应的元数据进行更新;
其中,所述数据写入装置,还用于:
判断所述待写入数据与块大小是否对齐;
如果所述待写入数据与块大小对齐,则向磁盘管理对象申请与所述待写入数据的长度对应的、所述磁盘上的地址空间,并将所述待写入数据存储到所述地址空间下;
如果所述待写入数据没有与块大小对齐,则对所述待写入数据进行补齐,并将补齐后待写入数据存储到预先申请到的、所述磁盘上的地址空间下;
所述数据写入装置,还用于:
判断所述地址空间下是否已存在数据;
如果所述地址空间下不存在数据,则利用数据0对所述待写入数据进行补齐;
如果所述地址空间下已存在数据,则将所述地址空间下已存在的数据读出,并利用读出的数据对所述待写入数据进行补齐;
相应的,所述将补齐后待写入数据存储到预先申请到的、所述磁盘上的地址空间下,包括:
将补齐后待写入数据覆盖写入到预先申请到的、所述磁盘上的地址空间下。
7.一种数据写入设备,其特征在于,包括:
存储器和处理器;
其中,所述存储器,用于存储计算机程序;
所述处理器,用于执行所述计算机程序,以实现权利要求1至5任一项所述的数据写入方法。
8.一种计算机可读存储介质,其特征在于,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述的数据写入方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010377079.5A CN111625546B (zh) | 2020-05-07 | 2020-05-07 | 一种数据写入方法、装置、设备、介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010377079.5A CN111625546B (zh) | 2020-05-07 | 2020-05-07 | 一种数据写入方法、装置、设备、介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111625546A CN111625546A (zh) | 2020-09-04 |
CN111625546B true CN111625546B (zh) | 2022-08-19 |
Family
ID=72259056
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010377079.5A Active CN111625546B (zh) | 2020-05-07 | 2020-05-07 | 一种数据写入方法、装置、设备、介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111625546B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112527809B (zh) * | 2020-12-10 | 2023-10-27 | 盛立安元科技(杭州)股份有限公司 | 一种数据库数据写入方法、装置、设备及存储介质 |
CN112990612B (zh) * | 2021-05-17 | 2021-08-10 | 湖南三湘银行股份有限公司 | 一种基于联邦学习的预测系统及方法 |
CN113703673B (zh) * | 2021-07-30 | 2023-09-22 | 郑州云海信息技术有限公司 | 一种单机数据存储方法及相关装置 |
US20230289084A1 (en) * | 2022-03-11 | 2023-09-14 | Samsung Electronics Co., Ltd. | Systems and methods for checking data alignment between applications, file systems, and computational storage devices |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109542329A (zh) * | 2017-09-21 | 2019-03-29 | 阿里巴巴集团控股有限公司 | 日志写入方法、装置及系统 |
CN111104254A (zh) * | 2019-11-29 | 2020-05-05 | 北京浪潮数据技术有限公司 | 存储系统数据刷写方法、装置、设备及可读存储介质 |
-
2020
- 2020-05-07 CN CN202010377079.5A patent/CN111625546B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109542329A (zh) * | 2017-09-21 | 2019-03-29 | 阿里巴巴集团控股有限公司 | 日志写入方法、装置及系统 |
CN111104254A (zh) * | 2019-11-29 | 2020-05-05 | 北京浪潮数据技术有限公司 | 存储系统数据刷写方法、装置、设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111625546A (zh) | 2020-09-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111625546B (zh) | 一种数据写入方法、装置、设备、介质 | |
CN105335099A (zh) | 一种内存清理方法及终端 | |
US9286199B2 (en) | Modifying memory space allocation for inactive tasks | |
CN111813713B (zh) | 数据加速运算处理方法、装置及计算机可读存储介质 | |
CN109324874B (zh) | 一种虚拟机内存快照导入块设备的方法、系统及装置 | |
CN110941395B (zh) | 动态随机存取存储器、内存管理方法、系统及存储介质 | |
CN112540731B (zh) | 数据的追加写方法、装置、设备、介质和程序产品 | |
KR20200135718A (ko) | 액세스 요청을 관리하기 위한 방법, 장치, 기기 및 저장 매체 | |
CN105868093A (zh) | 一种日志写入方法及服务端 | |
CN104932933A (zh) | 一种获取自旋锁的方法及装置 | |
CN114936173B (zh) | 一种eMMC器件的读写方法、装置、设备和存储介质 | |
CN112506823A (zh) | 一种fpga数据读写方法、装置、设备及可读存储介质 | |
US20200371827A1 (en) | Method, Apparatus, Device and Medium for Processing Data | |
CN111177079A (zh) | 网络文件系统数据读取方法、装置、设备、介质 | |
CN111651239A (zh) | 一种虚拟机克隆方法、装置、设备、介质 | |
EP3872629B1 (en) | Method and apparatus for executing instructions, device, and computer readable storage medium | |
CN104407990A (zh) | 一种磁盘访问方法及装置 | |
CN115249057A (zh) | 用于图形节点采样的系统和由计算机实现的方法 | |
CN111444117B (zh) | 存储空间碎片化实现方法、装置、存储介质及电子设备 | |
CN106406745A (zh) | 根据目录信息维护Cache数据一致性的方法及装置 | |
CN115480973A (zh) | 一种服务器性能测试方法、装置、介质 | |
CN111625192B (zh) | 一种元数据对象访问方法、装置、设备以及介质 | |
CN111090633A (zh) | 一种分布式文件系统的小文件聚合方法、装置及设备 | |
CN111142795A (zh) | 分布式存储系统写操作的控制方法、控制装置、控制设备 | |
US20200073759A1 (en) | Maximum data recovery of scalable persistent memory |
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 |