CN112925473B - 数据存储方法、装置、设备及存储介质 - Google Patents

数据存储方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN112925473B
CN112925473B CN201911243284.6A CN201911243284A CN112925473B CN 112925473 B CN112925473 B CN 112925473B CN 201911243284 A CN201911243284 A CN 201911243284A CN 112925473 B CN112925473 B CN 112925473B
Authority
CN
China
Prior art keywords
data
file
disk sector
aligned
combined
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
Application number
CN201911243284.6A
Other languages
English (en)
Other versions
CN112925473A (zh
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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201911243284.6A priority Critical patent/CN112925473B/zh
Publication of CN112925473A publication Critical patent/CN112925473A/zh
Application granted granted Critical
Publication of CN112925473B publication Critical patent/CN112925473B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/0608Saving storage space on storage systems
    • 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/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • 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/0674Disk device
    • G06F3/0676Magnetic disk device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种数据存储方法、装置、设备及存储介质,所述方法包括:读取文件的暂存数据,所述文件的暂存数据为与磁盘扇区未对齐的、待写入所述文件的第一数据;将所述文件的暂存数据与待写入所述文件的第二数据合并,得到合并数据;判断所述合并数据与磁盘扇区是否对齐;若所述合并数据与磁盘扇区未对齐,则将所述合并数据中的与磁盘扇区未对齐的数据部分写入到文件写入日志的新磁盘扇区中。根据本发明实施例,能够减少覆盖写,提高磁盘性能。

Description

数据存储方法、装置、设备及存储介质
技术领域
本发明属于计算机领域,尤其涉及一种数据存储方法、装置、设备及存储介质。
背景技术
计算机中存放信息的存储设备可以是磁盘,磁盘的每一面被分为很多条磁道,即表面上的一些同心圆,越接近中心,圆就越小。而每一个磁道又被划分为等分,叫做扇区或者磁盘扇区。
随着科技的发展,对于磁盘的要求也越来越高,通常要求存储容量大、且读写性能好的磁盘。但是,磁盘的性能受到多个方面的限制,提高磁盘的性能一直是业界所追求的。
发明内容
本发明实施例提供一种数据存储方法、装置、设备及存储介质,能够解决磁盘性能较低的问题。
根据本发明实施例的第一方面,提供一种数据存储方法,该方法包括:
读取文件的暂存数据,所述文件的暂存数据为与磁盘扇区未对齐的、待写入所述文件的第一数据;
将所述文件的暂存数据与待写入所述文件的第二数据合并,得到合并数据;
判断所述合并数据与磁盘扇区是否对齐;
若所述合并数据与磁盘扇区未对齐,则将所述合并数据中的与磁盘扇区未对齐的数据部分写入到文件写入日志的新磁盘扇区中。
根据本发明实施例的第二方面,提供一种数据存储装置,该装置包括:
数据读取模块,用于读取文件的暂存数据,所述文件的暂存数据为与磁盘扇区未对齐的、待写入所述文件的第一数据;
数据合并模块,用于将所述文件的暂存数据与待写入所述文件的第二数据合并,得到合并数据;
判断模块,用于判断所述合并数据与磁盘扇区是否对齐;
日志写入模块,用于若所述合并数据与磁盘扇区未对齐,则将所述合并数据中的与磁盘扇区未对齐的数据部分写入到文件写入日志的新磁盘扇区中。
根据本发明实施例的第三方面,提供一种计算设备,该设备包括:处理器以及存储有计算机程序指令的存储器;
所述处理器执行所述计算机程序指令时实现数据存储方法。
根据本发明实施例的第四方面,提供一种计算机存储介质,所述计算机存储介质上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现数据存储方法。
本发明实施例的数据存储方法、装置、设备及存储介质,通过读取文件的暂存数据,文件的暂存数据为与磁盘扇区未对齐的、待写入文件的第一数据;将文件的暂存数据与待写入文件的第二数据合并,得到合并数据;判断合并数据与磁盘扇区是否对齐;若合并数据与磁盘扇区未对齐,则将合并数据中的与磁盘扇区未对齐的数据部分写入到文件写入日志的新磁盘扇区中。由于是写入到新磁盘扇区中,因此不存在覆盖写的情况,从而提高了磁盘性能。而且是写入到日志中,不会因为保存在内存中导致***重启时数据消失,保证了数据的持久化存储,实现了实时数据的可靠性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单的介绍,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例的一种数据存储方法的流程示意图;
图2为本发明实施例的另一种数据存储方法的流程示意图;
图3为本发明实施例的又一种数据存储方法的流程示意图;
图4为本发明实施例的一种数据合并结果的示意图;
图5为本发明实施例的另一种数据合并结果的示意图;
图6为本发明实施例的又一种数据合并结果的示意图;
图7为本发明一个实施例提供的数据存储装置的结构示意图;
图8示出了本发明实施例提供的计算设备的硬件结构示意图。
具体实施方式
下面将详细描述本发明的各个方面的特征和示例性实施例,为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及具体实施例,对本发明进行进一步详细描述。应理解,此处所描述的具体实施例仅被配置为解释本发明,并不被配置为限定本发明。对于本领域技术人员来说,本发明可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本发明的示例来提供对本发明更好的理解。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
下面结合附图,对本说明书提供的方案进行详细描述。
图1为本发明实施例的一种数据存储方法的流程示意图。如图1所示,该数据存储方法可以包括:
S110:读取文件的暂存数据,文件的暂存数据为与磁盘扇区未对齐的、待写入文件的第一数据。
S120:将文件的暂存数据与待写入文件的第二数据合并,得到合并数据。
其中,第二数据可以是任意的需要写入到文件中的数据。
S130:判断合并数据与磁盘扇区是否对齐。
其中,根据合并数据的大小与单个磁盘扇区的容量是否相同,判断合并数据与磁盘扇区是否对齐。若合并数据的大小与单个磁盘扇区的容量不相同,则说明合并数据与磁盘扇区不对齐;若合并数据的大小与单个磁盘扇区的容量相同,则说明合并数据与磁盘扇区对齐。磁盘扇区是磁盘的最小写入和读取单元,单个磁盘扇区的容量可以是512字节或者4K。
S140:若合并数据与磁盘扇区未对齐,则将合并数据中的与磁盘扇区未对齐的数据部分写入到文件写入日志的新磁盘扇区中。
其中,文件的暂存数据更新为合并数据中的与磁盘扇区未对齐的数据部分。
比如,一个磁盘扇区的容量为512字节。
第一次待写入文件A的数据大小是600字节,在600字节的数据中,有512字节的数据与磁盘扇区对齐,有88字节的数据未与磁盘扇区对齐。将与磁盘扇区对齐的512字节的数据写入文件A的新磁盘扇区中,在内存或文件写入日志中暂存与磁盘扇区未对齐的88字节的暂存数据。
第二次待写入文件A的是300字节的第二数据,将88字节的暂存数据与300字节的第二数据合并,得到388字节的合并数据。可见,合并数据的大小(388字节)小于一个磁盘扇区的容量(512字节),所以合并数据与磁盘扇区未对齐,将合并数据中的与磁盘扇区未对齐的数据部分(即388字节的合并数据)写入到日志的新磁盘扇区中。在此情况下,文件的暂存数据更新为合并数据。
在本发明实施例中披露的数据存储方法,需要写入文件中而且与磁盘扇区未对齐的第一数据暂时不写入到文件中。如果出现第二数据需要写入到文件中,将第二数据与第一数据合并,得到合并数据。判断合并数据与磁盘扇区是否对齐,如果合并数据与磁盘扇区未对齐,将该未对齐的数据写入到文件写入日志的新磁盘扇区中。由于是写入到新磁盘扇区中,因此不存在覆盖写的情况。覆盖写是指对于一个写入有数据的磁盘扇区再次写入数据,当对磁盘扇区进行覆盖写时,写的速度比较慢,磁盘性能不好。由于本发明实施例不需要覆盖写,有效地提高了数据写入时的磁盘性能。
而且本发明实施例是将未对齐的数据部分写入到日志中,不会因为保存在内存中导致***重启时数据丢失,保证了数据的持久化存储,实现了实时数据的可靠性。
一般情况下对磁盘的性能没有特别高的要求,如果对磁盘的性能有较高要求时,比如磁盘是Flash闪存,要求读写速度达到微秒级,可以使用本发明实施例的数据存储方法,通过减少覆盖写来提升磁盘性能。除此之外,本发明实施例的数据存储方法可以应用于其他类型的磁盘。
另外,继续参考图1,数据存储方法还可以包括:S150:若合并数据与磁盘扇区对齐,则将合并数据写入到文件的新磁盘扇区中。
在本发明的一个实施例中,在文件的暂存数据存储在内存中和文件写入日志中的情况下,S110包括:从内存中读取文件的暂存数据;或者,从文件写入日志中读取文件的暂存数据。
其中,在***正常运行的情况下,从内存中读取文件的暂存数据,文件的暂存数据缓存在内存的文件末尾扇区中;在***非正常运行的情况下,比如***重启的情况下,内存中没有文件的暂存数据,从文件写入日志中读取文件的暂存数据。
另外,将合并数据中的与磁盘扇区未对齐的数据部分缓存在内存中,将文件的暂存数据更新为该未对齐的数据部分。下次需要向文件中写入第三数据的情况下,将第三数据与该未对齐的数据部分进行合并。
在本发明的一个实施例中,在文件的暂存数据存储在文件写入日志中,而且文件的暂存数据没有存储在内存中的情况下,S110包括:每次需要向文件中写数据时,从文件写入日志中读取文件的暂存数据。
即文件的暂存数据仅存储在文件写入日志中,每次从文件写入日志中读取文件的暂存数据。
在本发明的一个实施例中,S120包括:将文件的暂存数据的尾部与待写入到文件中的第二数据的头部拼接。文件的暂存数据的头部即是合并数据的头部,第二数据的尾部即是合并数据的尾部。
在本发明的一个实施例中,文件的暂存数据与待写入文件的第二数据合并,其中合并数据与磁盘扇区未对齐有两种情况。
第一种情况
合并数据的数据量大于单个磁盘扇区的容量。在这种情况下,从合并数据的头部开始,选取与磁盘扇区对齐的数据部分,剩下的未选取的部分是与磁盘扇区未对齐的数据部分。
即合并数据被分成两个部分,分别是与磁盘扇区对齐的数据部分和与磁盘扇区未对齐的数据部分。
其中,与磁盘扇区对齐的数据部分写入到文件的新磁盘扇区中,将文件的暂存数据更新为与磁盘扇区未对齐的数据部分。由于写入的新磁盘扇区,不存在覆盖写的情况,避免了在写入数据时磁盘性能受到影响,使得在数据写入到扇区时磁盘性能比较好。
由于文件写入日志中的一部分数据已经写入到文件中,因此,在文件写入日志的长度达到预定长度阈值的情况下,可以将文件写入日志中的已写入到文件中的数据清除,避免文件写入日志过长而占用过大的空间,充分利用磁盘空间。
比如,参考图2,在需要将用户数据(即上述的第二数据)写入到文件的情况下,读取文件的暂存数据。将文件的暂存数据与用户数据合并,得到合并数据。其中,合并数据的大小大于单个磁盘扇区的容量。合并数据包括与磁盘扇区对齐的数据和与磁盘扇区未对齐的数据。将合并数据中的与磁盘扇区对齐的数据写入文件的新磁盘扇区中,将合并数据中的与磁盘扇区未对齐的数据写入至文件写入日志的新磁盘扇区中。将暂存数据更新为合并数据中的与磁盘扇区未对齐的数据。
第二种情况
合并数据的数据量小于单个磁盘扇区的容量,在这种情况下,合并数据中没有与磁盘扇区对齐的数据,即上述提到的合并数据中的与磁盘扇区未对齐的数据部分为合并数据。将文件的暂存数据更新为合并数据。
图3为本发明实施例的另一种数据存储方法的流程示意图。如图3所示,该数据存储方法包括:
S210:新建一个文件,由于是新建的文件,还未向该新建的文件中写数据,所以内存中没有该文件的暂存数据。
S220:如果需要向文件中写入数据Data1,则将该数据Data1中的与磁盘扇区未对齐的数据作为文件的暂存数据。
将该未对齐的数据缓存在内存中,并且将该未对齐的数据写入到文件写入日志的新磁盘扇区中。
S230:在S220之后,如果需要向文件中写入数据Data2,则将该数据Data2与文件的暂存数据合并,得到合并数据。
S240:判断合并数据与磁盘扇区是否对齐,在判断结果为是时,执行步骤S270;在判断结果为否时,分两种情况,一种是在合并数据的数据量大于单个磁盘扇区的容量的情况下,执行S250,另一种是在合并数据的数据量小于单个磁盘扇区的容量的情况下,执行S260。
S250:如图4所示,在合并数据的数据量大于单个磁盘扇区的容量的情况下,合并数据被分成两个部分,第一部分是与磁盘扇区对齐的数据部分,第二部分是与磁盘扇区未对齐的数据部分。
针对第一部分数据,即合并数据中的与磁盘扇区对齐的数据部分,将该数据顺序写入到文件的新磁盘扇区中,不存在覆盖写。
针对第二部分数据,即合并数据中的与磁盘扇区未对齐的数据部分,将未对齐的数据部分写入到文件写入日志中,并且在内存中缓存与磁盘扇区未对齐的数据部分。
另外,文件的暂存数据变为与磁盘扇区未对齐的数据部分。
无论将与磁盘扇区对齐的数据写入到文件的新磁盘扇区中,还是将与磁盘扇区未对齐的数据写入到文件写入日志的新磁盘扇区中,都不存在覆盖写。
S260:如图5所示,在合并数据的数据量小于单个磁盘扇区的容量的情况下,即合并数据是与磁盘扇区未对齐的数据,将合并数据写入到文件写入日志的新磁盘扇区中,文件的暂存数据变为该合并数据。
S270:如图6所示,合并数据与磁盘扇区对齐,即合并数据的数据量等于单个磁盘扇区的容量,将合并数据写入到文件的新磁盘扇区中,文件的暂存数据为空。
另外,文件写入日志的长度超过预定长度阈值时会轮替(rotate),即把已经写入文件的数据清楚。
在经过S250、S260和S270之后,文件的暂存数据发生了变化,返回S230,如果待写入文件的数据,将该数据与变化后的文件的暂存数据进行合并,对合并数据的处理与上述处理类似,在此不再重复赘述。
图7为本发明一个实施例提供的数据存储装置的结构示意图。如图7所示,该数据存储装置30包括:
数据读取模块301,用于读取文件的暂存数据,文件的暂存数据为与磁盘扇区未对齐的、待写入文件的第一数据。
数据合并模块302,用于将文件的暂存数据与待写入文件的第二数据合并,得到合并数据。
判断模块303,用于判断合并数据与磁盘扇区是否对齐。
日志写入模块304,用于若合并数据与磁盘扇区未对齐,则将合并数据中的与磁盘扇区未对齐的数据部分写入到文件写入日志的新磁盘扇区中。
在本发明的一个实施例中,在文件的暂存数据存储在内存中和文件写入日志中的情况下,数据读取模块301包括:
第一读取模块,用于从内存中读取文件的暂存数据;
或者,
第二读取模块,用于从文件写入日志中读取文件的暂存数据。
在本发明的一个实施例中,数据存储装置30还包括:
缓存模块,用于将未对齐的数据部分缓存在内存中,以将文件的暂存数据更新为未对齐的数据部分。
在本发明的一个实施例中,数据合并模块302包括:
数据拼接模块,用于将文件的暂存数据的尾部与待写入到文件中的第二数据的头部拼接。
在本发明的一个实施例中,合并数据与磁盘扇区未对齐包括:合并数据的数据量大于单个磁盘扇区的容量。
在本发明的一个实施例中,数据存储装置30还包括:
文件写入模块,用于将合并数据中的与磁盘扇区对齐的数据部分写入到文件的新磁盘扇区中。
在本发明的一个实施例中,数据存储装置30还包括:
数据清除模块,用于若文件写入日志的长度达到预定长度阈值,则将文件写入日志中的已写入到文件中的数据清除。
在本发明的一个实施例中,合并数据与磁盘扇区未对齐包括:合并数据的数据量小于单个磁盘扇区的容量。
在本发明的一个实施例中,未对齐的数据部分为合并数据。
图8示出了本发明实施例提供的计算设备的硬件结构示意图。
计算设备可以包括处理器401以及存储有计算机程序指令的存储器402。
具体地,上述处理器401可以包括中央处理器(CPU),或者特定集成电路(Application Specific Integrated Circuit,ASIC),或者可以被配置成实施本发明实施例的一个或多个集成电路。
存储器402可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器402可包括硬盘驱动器(Hard Disk Drive,HDD)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(Universal Serial Bus,USB)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器402可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器402可在综合网关容灾设备的内部或外部。在特定实施例中,存储器402是非易失性固态存储器。在特定实施例中,存储器402包括只读存储器(ROM)。在合适的情况下,该ROM可以是掩模编程的ROM、可编程ROM(PROM)、可擦除PROM(EPROM)、电可擦除PROM(EEPROM)、电可改写ROM(EAROM)或闪存或者两个或更多个以上这些的组合。
处理器401通过读取并执行存储器402中存储的计算机程序指令,以实现上述实施例中的任意一种数据存储方法。
在一个示例中,计算设备还可包括通信接口403和总线410。其中,如图7所示,处理器401、存储器402、通信接口403通过总线410连接并完成相互间的通信。
通信接口403,主要用于实现本发明实施例中各模块、装置、单元和/或设备之间的通信。
总线410包括硬件、软件或两者,将计算设备的部件彼此耦接在一起。举例来说而非限制,总线可包括加速图形端口(AGP)或其他图形总线、增强工业标准架构(EISA)总线、前端总线(FSB)、超传输(HT)互连、工业标准架构(ISA)总线、无限带宽互连、低引脚数(LPC)总线、存储器总线、微信道架构(MCA)总线、***组件互连(PCI)总线、PCI-Express(PCI-X)总线、串行高级技术附件(SATA)总线、视频电子标准协会局部(VLB)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线410可包括一个或多个总线。尽管本发明实施例描述和示出了特定的总线,但本发明考虑任何合适的总线或互连。
该计算设备可以执行本发明实施例中的数据存储方法,从而实现结合图1、图2和图7描述的数据存储方法和装置。
另外,结合上述实施例中的数据存储方法,本发明实施例可提供一种计算机存储介质来实现。该计算机存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现上述实施例中的任意一种数据存储方法。
需要明确的是,本发明并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本发明的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本发明的精神后,作出各种改变、修改和添加,或者改变步骤之间的顺序。
以上所述的结构框图中所示的功能块可以实现为硬件、软件、固件或者它们的组合。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(ASIC)、适当的固件、插件、功能卡等等。当以软件方式实现时,本发明的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、ROM、闪存、可擦除ROM(EROM)、软盘、CD-ROM、光盘、硬盘、光纤介质、射频(RF)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。
还需要说明的是,本发明中提及的示例性实施例,基于一系列的步骤或者装置描述一些方法或***。但是,本发明不局限于上述步骤的顺序,也就是说,可以按照实施例中提及的顺序执行步骤,也可以不同于实施例中的顺序,或者若干步骤同时执行。
以上所述,仅为本发明的具体实施方式,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的***、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。应理解,本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。

Claims (8)

1.一种数据存储方法,所述方法包括:
读取文件的暂存数据,所述文件的暂存数据为与磁盘扇区未对齐的、待写入所述文件的第一数据;
将所述文件的暂存数据的尾部与待写入到所述文件中的第二数据的头部拼接,得到合并数据;
判断所述合并数据与磁盘扇区是否对齐;
若所述合并数据与磁盘扇区未对齐,则将所述合并数据中的与磁盘扇区未对齐的数据部分写入到文件写入日志的新磁盘扇区中;
在合并数据的数据量大于单个磁盘扇区的容量情况下,从合并数据的头部开始,选取与磁盘扇区对齐的数据部分,剩下的未选取的部分是与磁盘扇区未对齐的数据部分;在合并数据的数据量小于单个磁盘扇区的容量情况下,合并数据中的与磁盘扇区未对齐的数据部分为合并数据;将暂存数据更新为合并数据中的与磁盘扇区未对齐的部分;在合并数据的数据量等于单个磁盘扇区的容量情况下,将合并数据写入到文件的新磁盘扇区中,文件的暂存数据为空。
2.根据权利要求1所述方法,其中,在所述文件的暂存数据存储在内存中和所述文件写入日志中的情况下,所述读取文件的暂存数据,包括:
从所述内存中读取所述文件的暂存数据;
或者,
从所述文件写入日志中读取所述文件的暂存数据。
3.根据权利要求2所述方法,其中,所述的方法还包括:
将所述未对齐的数据部分缓存在所述内存中,以将所述文件的暂存数据更新为所述未对齐的数据部分。
4.根据权利要求1所述方法,其中,所述的方法还包括:
将所述合并数据中的与所述磁盘扇区对齐的数据部分写入到所述文件的新磁盘扇区中。
5.根据权利要求1所述方法,其中,所述方法还包括:
若所述文件写入日志的长度达到预定长度阈值,则将所述文件写入日志中的已写入到所述文件中的数据清除。
6.一种数据存储装置,所述装置包括:
数据读取模块,用于读取文件的暂存数据,所述文件的暂存数据为与磁盘扇区未对齐的、待写入所述文件的第一数据;
数据合并模块,用于将所述文件的暂存数据的尾部与待写入到所述文件中的第二数据的头部拼接,得到合并数据;
判断模块,用于判断所述合并数据与磁盘扇区是否对齐;
日志写入模块,用于若所述合并数据与磁盘扇区未对齐,则将所述合并数据中的与磁盘扇区未对齐的数据部分写入到文件写入日志的新磁盘扇区中;
在合并数据的数据量大于单个磁盘扇区的容量情况下,从合并数据的头部开始,选取与磁盘扇区对齐的数据部分,剩下的未选取的部分是与磁盘扇区未对齐的数据部分;在合并数据的数据量小于单个磁盘扇区的容量情况下,合并数据中的与磁盘扇区未对齐的数据部分为合并数据;将暂存数据更新为合并数据中的与磁盘扇区未对齐的部分,在合并数据的数据量等于单个磁盘扇区的容量情况下,将合并数据写入到文件的新磁盘扇区中,文件的暂存数据为空。
7.一种计算设备,所述设备包括:处理器以及存储有计算机程序指令的存储器;
所述处理器执行所述计算机程序指令时实现如权利要求1-5任意一项所述的数据存储方法。
8.一种计算机存储介质,所述计算机存储介质上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现如权利要求1-5任意一项所述的数据存储方法。
CN201911243284.6A 2019-12-06 2019-12-06 数据存储方法、装置、设备及存储介质 Active CN112925473B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911243284.6A CN112925473B (zh) 2019-12-06 2019-12-06 数据存储方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911243284.6A CN112925473B (zh) 2019-12-06 2019-12-06 数据存储方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN112925473A CN112925473A (zh) 2021-06-08
CN112925473B true CN112925473B (zh) 2024-06-04

Family

ID=76162435

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911243284.6A Active CN112925473B (zh) 2019-12-06 2019-12-06 数据存储方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN112925473B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115840541B (zh) * 2023-02-23 2023-06-13 成都体育学院 一种运动数据存储方法、***和介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102160030A (zh) * 2008-09-19 2011-08-17 微软公司 对于数据存储的写通信的聚集
CN105122241A (zh) * 2013-03-15 2015-12-02 亚马逊科技公司 具有数据库引擎和独立分布式存储服务的数据库***
CN106886375A (zh) * 2017-03-27 2017-06-23 百度在线网络技术(北京)有限公司 存储数据的方法和装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9298393B2 (en) * 2008-06-12 2016-03-29 Seagate Technology Llc Buffer management for increased write speed in large sector data storage device
US8615489B2 (en) * 2008-08-25 2013-12-24 Vmware, Inc. Storing block-level tracking information in the file system on the same block device
US9898402B2 (en) * 2011-07-01 2018-02-20 Micron Technology, Inc. Unaligned data coalescing

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102160030A (zh) * 2008-09-19 2011-08-17 微软公司 对于数据存储的写通信的聚集
CN105122241A (zh) * 2013-03-15 2015-12-02 亚马逊科技公司 具有数据库引擎和独立分布式存储服务的数据库***
CN106886375A (zh) * 2017-03-27 2017-06-23 百度在线网络技术(北京)有限公司 存储数据的方法和装置

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
MFTL:一种基于固态盘***非对齐更新数据的合并策略;黄耀钦;邓玉辉;;小型微型计算机***(06);全文 *
一种基于小数据同步写的回写I/O调度器;刘星;江松;王洋;范小朋;须成忠;;软件学报(08);全文 *
一种基于目录数据分离存储的文件存储方法的研究与实现;何文才;郑钊;刘培鹤;杜敏;;网络安全技术与应用(01);全文 *

Also Published As

Publication number Publication date
CN112925473A (zh) 2021-06-08

Similar Documents

Publication Publication Date Title
CN101874240B (zh) 增加存储器的多个块的寿命
CN108491335B (zh) 处理映射表项的方法、装置、设备及介质
US20160283401A1 (en) Memory system and operating method for improving rebuild efficiency
US7725646B2 (en) Method of using a flash memory for a circular buffer
CN109582228B (zh) 基于nand闪存控制器的自动读重试的硬件加速方法及装置
CN102203717A (zh) 固态驱动器优化器
CN112925473B (zh) 数据存储方法、装置、设备及存储介质
US20200293441A1 (en) Data storage devices and data processing methods
CN111158607B (zh) 数据擦写操作的处理方法、***、电子设备及存储介质
US8838615B2 (en) Computer implemented method for automatically managing stored checkpoint data
CN107608630B (zh) 数据读写方法及装置
CN105138472A (zh) 闪存磨损优化方法及设备
CN111459413B (zh) 提升ssd性能的方法、装置、计算机设备及存储介质
CN117012268B (zh) 一种对ufs最大性能的测试方法、控制器、***和介质
CN114586003A (zh) 使用页级跟踪的加载顺序队列的推测执行
CN113190325A (zh) 一种容器创建方法及装置
CN111338562B (zh) 数据存储装置与数据处理方法
CN101902250B (zh) 信道估计中平滑窗长度的确定方法及设备
CN111324295B (zh) 数据迁移的方法、装置、设备及介质
US7861114B2 (en) System and method for recovery of memory transactions
CN109491620B (zh) 存储数据重写方法、装置、服务器及存储介质
CN108491169B (zh) 配置独立冗余磁盘阵列raid条带的方法、装置、设备及介质
CN113608771A (zh) 一种fpga固件快速烧写的方法、装置、设备及可读介质
US20210089398A1 (en) Selecting an error correction code type for a memory device
CN112540729A (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