CN115203148A - 修改文件的方法和装置 - Google Patents

修改文件的方法和装置 Download PDF

Info

Publication number
CN115203148A
CN115203148A CN202110385320.3A CN202110385320A CN115203148A CN 115203148 A CN115203148 A CN 115203148A CN 202110385320 A CN202110385320 A CN 202110385320A CN 115203148 A CN115203148 A CN 115203148A
Authority
CN
China
Prior art keywords
data
file
compressed data
differential
storage space
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
CN202110385320.3A
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202110385320.3A priority Critical patent/CN115203148A/zh
Publication of CN115203148A publication Critical patent/CN115203148A/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/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1744Redundancy elimination performed by the file system using compression, e.g. sparse files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements

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

修改文件的方法和装置
技术领域
本申请涉及计算机存储领域,尤其涉及一种修改文件的方法和装置。
背景技术
许多文件系统提供了压缩特性,将文件数据压缩后保存在存储设备中。这些文件系统针对用户数据进行全量压缩,即将完整的文件拆分成多个部分,每个部分压缩成为一个压缩单元。压缩单元和数据结构独立存放在存储设备的不同位置,文件系统在数据结构中记录了每个文件对应的全部压缩单元的索引。
当文件系统需要修改压缩文件内容时,会根据修改的具体的压缩单元的索引找到相应的压缩单元,解压缩整个压缩单元的内容,修改后重新压缩并写回存储设备。但是,全量压缩无法精确预测该用户下发的修改请求在压缩单元中的具体位置,而需要从存储设备读回整个压缩单元,修改后重新压缩写回,但在闪存等多种存储设备上,存储介质的写入寿命有限制,大量的文件读写操作会带来存储设备寿命的损耗,降低存储设备的使用寿命和使用体验。
因此,目前亟需提供一种文件存储的方法,以解决上述读写次数过多影响存储设备使用寿命的问题。
发明内容
本申请提供一种修改文件的方法,有利于减少读写操作对存储设备的读写次数,进而读写操作降低对存储设备的寿命损耗。
第一方面,提供了一种修改文件的方法,包括:基于文件修改请求,确定文件的待修改数据;在上述待修改数据的数据量小于或等于第一阈值的情况下,基于上述待修改数据和上述文件的基准数据,得到差分数据;对上述差分数据进行压缩,得到差分压缩数据;在上述差分压缩数据的数据量小于或等于第二阈值的情况下,将上述差分压缩数据存储至第一存储空间。
在本申请实施例中,存储设备通过文件的待修改数据和文件的基准数据,得到差分数据,并压缩该差分数据得到差分压缩数据,存储设备只需要将该差分压缩数据保存在第一存储空间,不需要立即对文件进行修改,后续可以按需基于差分压缩数据的文件偏移地址,准确定位解压数据需要修改的位置,对压缩数据进行更新。本申请实施例的修改文件的方法有利于减少读写操作对存储介质的读写次数,进而降低读写操作对存储设备的寿命损耗,且在修改过程中,存储设备可以避免文件读写放大的问题,降低了文件读写的延迟。
结合第一方面,在第一方面的某些实现方式中,基于上述待修改数据和上述文件的基准数据,得到差分数据之前,还包括:从缓存中的基准数据页链表获取上述文件的基准数据,上述基准数据页链表包括按照访问时间进行排序的多个基准数据页。
在本申请实施例中,存储设备在操作系统的页缓存中设置了基准数据页链表,将基准数据按照访问时间的顺序缓存在基准数据页链表,避免了每一次修改文件都需要从存储介质读取基准数据与待修改数据进行比对,得到差分数据,所以本申请实施例的修改文件的方法有利于减少读写操作对存储介质的读写次数,进而降低读写操作对存储设备的寿命损耗。
结合第一方面,在第一方面的某些实现方式中,上述方法还包括:确定上述差分数据的文件偏移地址和上述差分数据对应的原压缩数据的索引;将上述文件偏移地址和原压缩数据的索引存储至上述第一存储空间。
结合第一方面,在第一方面的某些实现方式中,上述方法包括:根据上述原压缩数据的索引,确定存储在第二存储空间中的上述文件的原压缩数据,上述第二存储空间和上述第一存储空间不同;对上述原压缩数据进行解压,获得解压数据;基于上述差分压缩数据和上述文件偏移地址,修改上述解压数据,获得更新数据;对上述更新数据进行压缩,并将新的压缩数据存储至上述第二存储空间。
在本申请实施例中,存储设备基于差分压缩数据和文件偏移地址,可以精准找到文件的解压数据需要修改的位置,不需要读取文件压缩数据对应的整个甚至多个压缩数据单元,有利于提高对文件的修改效率和准确性,避免了文件读写放大的问题。
结合第一方面,在第一方面的某些实现方式中,在根据上述原压缩数据的索引,确定存储在第二存储空间中的上述文件的原压缩数据之前,上述方法还包括:基于上述文件的文件读取请求,判断上述第一存储空间中是否存在上述文件的差分压缩数据;上述根据原压缩数据的索引,确定存储在第二存储空间中的上述文件的原压缩数据,包括:在上述第一存储空间中存在上述差分压缩数据的情况下,根据上述原压缩数据的索引,确定上述原压缩数据;上述方法还包括:读取上述文件的更新数据。
在本申请实施例中,在将差分压缩数据存储至第一存储空间之后,存储设备无需更新基准数据,也不需要多次修改文件导致多次读存储空间,存储设备可以在收到读取文件请求时,基于差分压缩数据对文件的原压缩数据进行修改,有利于减少读写操作对存储介质的读写次数,进而降低读写操作对存储设备的寿命损耗,且在修改过程中,存储设备可以基于文件偏移地址,准确定位解压数据需要修改的位置,避免了文件读写放大的问题,降低了文件读写的延迟,
结合第一方面,在第一方面的某些实现方式中,在根据上述原压缩数据的索引,确定存储在第二存储空间中的上述文件的原压缩数据之前,上述方法还包括:在将上述差分压缩数据存储至上述第一存储空间之后,开启计时器;上述根据上述原压缩数据的索引,确定存储在第二存储空间中的上述文件的原压缩文件数据,包括:当上述计时器超时,根据上述原压缩数据的索引,确定上述原压缩数据。
在本申请实施例中,将差分压缩数据保存在第一存储空间之后,存储设备可以定时地基于多个差分压缩数据对多个文件的原压缩数据进行修改,在该过程中,存储设备无需更新基准数据,也不需要多次修改文件导致多次读存储空间,降低了文件读写的延迟,且有利于减少读写操作对存储介质的读写次数,进而降低读写操作对存储设备的寿命损耗,且在修改过程中,存储设备可以基于差分压缩数据的文件偏移地址,准确定位解压数据需要修改的地方,避免了文件读写放大的问题,降低了文件读写的延迟。
结合第一方面,在第一方面的某些实现方式中,上述方法还包括:删除上述差分数据、上述差分数据的文件偏移地址和原压缩文件数据的索引。
在本申请实施例中,在对解压数据修改之后,存储设备可以将差分数据,差分数据的文件偏移地址和原压缩文件数据的索引删掉,以释放相应的空间,降低存储空间的负荷。
第二方面,提供了一种修改文件的装置,包括:确定模块和处理模块;其中,确定模块用于,基于文件修改请求,确定文件的待修改数据;处理模块用于,在上述待修改数据的数据量小于或等于第一阈值的情况下,基于上述待修改数据和上述文件的基准数据,得到差分数据;对上述差分数据进行压缩,得到差分压缩数据;以及,在上述差分压缩数据的数据量小于或等于第二阈值的情况下,将上述差分压缩数据存储至第一存储空间。
结合第二方面,在第二方面的某种实现方式中,上述处理模块用于:从缓存中的基准数据页链表获取上述文件的基准数据,上述基准数据页链表包括按照访问时间进行排序的多个基准数据页。
结合第二方面,在第二方面的某种实现方式中,上述处理模块用于:确定上述差分数据的文件偏移地址和上述差分数据对应的原压缩数据的索引;将上述文件偏移地址和原压缩数据的索引存储至上述第一存储空间。
结合第二方面,在第二方面的某种实现方式中,上述处理模块用于:根据上述原压缩数据的索引,确定存储在第二存储空间中的上述文件的原压缩数据,上述第二存储空间和上述第一存储空间不同;对上述原压缩数据进行解压,获得解压数据;基于上述差分压缩数据和上述文件偏移地址,修改上述解压数据,获得更新数据;对上述更新数据进行压缩,并将新的压缩数据存储至上述第二存储空间。
结合第二方面,在第二方面的某种实现方式中,上述处理模块还用于:基于上述文件的文件读取请求,判断上述第一存储空间中是否存在上述文件的差分压缩数据;在上述第一存储空间中存在上述差分压缩数据的情况下,根据上述原压缩数据的索引,确定上述原压缩数据;以及,读取上述文件的更新数据。
结合第二方面,在第二方面的某种实现方式中,上述装置还包括:计时模块,用于在将上述差分压缩数据存储至上述第一存储空间之后,开启计时器;上述处理模块用于:当上述计时器超时,根据上述原压缩数据的索引,确定上述原压缩数据。
结合第二方面,在第二方面的某种实现方式中,上述处理模块用于:删除上述差分数据、上述差分数据的文件偏移地址和原压缩文件数据的索引。
第三方面,提供了另一种修改文件的装置,包括处理器,该处理器与存储器耦合,可用于执行存储器中的指令,以实现上述任一方面中任一种可能实现方式中的方法。可选地,该装置还包括存储器。可选地,该装置还包括通信接口,处理器与通信接口耦合。
第四方面,提供了一种处理器,包括:输入电路、输出电路和处理电路。处理电路用于通过输入电路接收信号,并通过输出电路发射信号,使得处理器执行上述第一方面中任一种可能实现方式中的方法。
在具体实现过程中,上述处理器可以为芯片,输入电路可以为输入管脚,输出电路可以为输出管脚,处理电路可以为晶体管、门电路、触发器和各种逻辑电路等。输入电路所接收的输入的信号可以是由例如但不限于接收器接收并输入的,输出电路所输出的信号可以是例如但不限于输出给发射器并由发射器发射的,且输入电路和输出电路可以是同一电路,该电路在不同的时刻分别用作输入电路和输出电路。本申请实施例对处理器及各种电路的具体实现方式不做限定。
第五方面,提供了一种处理装置,包括处理器和存储器。该处理器用于读取存储器中存储的指令,并可通过接收器接收信号,通过发射器发射信号,以执行上述第一方面中任一种可能实现方式中的方法。
可选地,处理器为一个或多个,存储器为一个或多个。
可选地,存储器可以与处理器集成在一起,或者存储器与处理器分离设置。
在具体实现过程中,存储器可以为非瞬时性(non-transitory)存储器,例如只读存储器(read only memory,ROM),其可以与处理器集成在同一块芯片上,也可以分别设置在不同的芯片上,本申请实施例对存储器的类型以及存储器与处理器的设置方式不做限定。
上述第五方面中的处理装置可以是一个芯片,该处理器可以通过硬件来实现也可以通过软件来实现,当通过硬件实现时,该处理器可以是逻辑电路、集成电路等;当通过软件来实现时,该处理器可以是一个通用处理器,通过读取存储器中存储的软件代码来实现,该存储器可以集成在处理器中,可以位于该处理器之外,独立存在。
第六方面,提供了一种计算机程序产品,计算机程序产品包括:计算机程序(也可以称为代码,或指令),当计算机程序被运行时,使得计算机执行上述第一方面中任一种可能实现方式中的方法。
第七方面,提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序(也可以称为代码,或指令)当其在计算机上运行时,使得计算机执行上述第一方面中任一种可能实现方式中的方法。
附图说明
图1是本申请实施例提供的存储设备的示意图;
图2是本申请实施例提供的修改文件导致读写放大问题的示意图;
图3是本申请实施例提供的修改文件的方法的示意性流程图;
图4是本申请实施例提供的索引节点inode数据结构的示意图;
图5是本申请实施例提供的又一修改文件的方法的示意性流程图;
图6是本申请实施例提供的读取文件的方法的示意性流程图;
图7是本申请实施例提供的存储文件的方法的示意性流程图;
图8是本申请实施例提供的修改文件的装置的示意图;
图9是本申请实施例提供的又一修改文件的装置的示意图。
具体实施方式
下面将结合附图,对本申请中的技术方案进行描述。
为便于理解,首先对本申请所涉及到的相关术语进行说明。
1、索引节点(inode)数据结构
inode是Unix/Linux文件系统共有的一个基本数据结构。通常来说,每一个文件对应一个inode数据结构。一个inode对象的内部记录了一个文件的文件类型、文件大小、修改时间、访问权限、数据索引信息等元数据,也包含了文件数据本身。用户文件数据通常由一个或多个数据页组成,数据页的地址保存在inode对象中,文件系统可以通过inode数据结构访问到所有的数据页。
2、元数据(metadata)
元数据,又称中介数据、中继数据,为描述数据的数据(data about data),主要是描述数据属性(property)的信息,用来支持如指示存储位置、历史数据、资源查找、文件记录等功能。
随着移动互联网技术的发展,终端设备在人们工作、生活和娱乐中不可或缺,大量的终端设备应用不断涌现。应用在用户使用过程中不断产生文件和修改文件。文件系统是终端操作系统中专门负责文件管理的子系统,为应用层提供调用接口,响应应用的请求,增加、删除、查询和读写文件。文件系统的性能直接影响着上层应用的使用体验。本申请的终端设备具备存储功能,本文也后续将其称为存储设备。
图1示出了本申请实施例提供的存储设备100,如图1所示,该存储设备100中部署有应用程序和文件系统。其中,应用程序用于下发文件读写请求,文件系统用于响应应用程序下发的请求,对文件数据进行相应的处理,并可以将文件数据保存在存储设备中。
其中,文件系统将文件的元数据、用户数据文件都保存在持久存储设备上,例如磁盘、固态硬盘(solid state disk,SSD)、光盘。不同种类的存储设备具有不同的读写速率、粒度和寿命特性,因此学术界和各大厂商设计开发了不同的文件系统,以在不同的存储设备上得到最优的文件读写性能。
许多文件系统(例如,f2fs、btrfs)提供了压缩特性,将文件数据压缩后保存在存储设备中。这些文件系统针对用户数据进行全量压缩,即将完整的文件拆分成多个部分,每个部分压缩成为一个压缩单元。压缩单元和数据结构独立存放在存储设备的不同位置,文件系统在数据结构中记录了每个文件对应的全部压缩单元的索引。当文件系统需要修改压缩文件内容时,会根据修改的具体的压缩单元的索引找到相应的压缩单元,解压缩整个压缩单元的内容,修改后重新压缩并写回存储设备。但是,全量压缩无法精确预测该用户下发的修改请求在压缩单元中的具体位置,而需要从存储设备读回整个压缩单元,修改后重新压缩写回,因此产生读写放大问题。
对于几个字节的小尺寸修改请求,全量压缩将读写存储设备的数据量放大到整个压缩单元,当数据正好跨越压缩单元边界时,甚至需要读写多个压缩单元。图2为现有技术中读写放大的示意图,如图2所示,三个无填充的矩形用于表示修改前的三个压缩数据单元,当存储设备基于修改请求对文件数据进行修改时,如图2所示,修改请求实际请求修改的数据尺寸为图上有填充的部分,而在实际修改过程中,存储设备需要读取待修改数据所在的整个压缩数据单元,对该整个压缩数据单元进行解压缩,这样会导致存储设备读取的数据量远远大于修改的数据量,产生读写放大问题。读写放大问题增大了文件读写的延迟,甚至有可能抵消压缩带来的空间收益,以及在闪存等多种存储设备上,全量压缩的读写放大问题还会增大设备寿命的损耗,降低存储设备的使用寿命和使用体验。
有鉴于此,本申请提供了一种修改文件的方法和装置,存储设备通过文件的待修改数据和文件的基准数据,得到差分数据,并压缩该差分数据得到差分压缩数据,存储设备可以先将该差分压缩数据保存在第一存储空间,不需要立即对文件的压缩数据进行修改,后续可以按需基于差分压缩数据的文件偏移地址,准确定位解压数据需要修改的位置,对压缩数据进行更新。这样,本申请实施例可以按照需要将多次待修改数据积攒起来进行更新,有利于减少读写操作对存储设备的读写次数,进而读写操作降低对存储设备的寿命损耗。
在介绍本申请实施例提供的修改文件的方法和装置之前,先做出以下几点说明。
第一,在下文示出的实施例中,各术语及英文缩略语,例如基准数据或差分数据等,均为方便描述而给出的示例性举例,不应对本申请构成任何限定。本申请并不排除在已有或未来的协议中定义其它能够实现相同或相似功能的术语的可能。
第二,在下文示出的实施例中第一、第二以及各种数字编号仅为描述方便进行的区分,并不用来限制本申请实施例的范围。例如,第一存储空间、第二活存储空间,仅仅只是用来区分不同的存储空间等。
第三,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a、b和c中的至少一项(个),可以表示:a,或b,或c,或a和b,或a和c,或b和c,或a、b和c,其中a,b,c可以是单个,也可以是多个。
为了使本申请的目的、技术方案更加清楚直观,下面将结合附图及实施例,对本申请实施例提供的方法和装置进行详细说明。应理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
应理解,本申请实施例的方法可以由具有读写功能的存储设备执行,本申请实施例简称为存储设备。
图3是本申请实施例中的修改文件的方法300的示意性流程图。如图3所示,方法300包括下列步骤:
S301,存储设备基于文件修改请求,确定文件的待修改数据。
S302,在上述待修改数据的数据量小于或等于第一阈值的情况下,存储设备基于上述待修改数据和上述文件的基准数据,得到差分数据。
应理解,上述第一阈值可以由系统管理员配置,该第一阈值用于衡量待修改数据的数据量的大小。
示例性地,第一阈值可以预设为一个压缩数据单元的大小,当待压缩数据的数据量小于或等于一个压缩数据单元的大小的情况下,为避免读写放大问题,存储设备可以基于上述待修改数据和上述文件的基准数据,得到差分数据。
在一种可能的实现方式中,存储设备可以基于待修改数据和文件的基准数据,得到文件数据修改前后的差异数据,将该差异数据进行编码得到差分数据。
S303,存储设备对上述差分数据进行压缩,得到差分压缩数据。
S304,在上述差分压缩数据的数据量小于或等于第二阈值的情况下,存储设备将差分压缩数据存储至第一存储空间。
应理解,上述第二阈值可以由系统管理员配置,该第二阈值用于衡量差分压缩数据的数据量是否超出第一存储空间的空闲空间所能承载的数据量。
示例性地,上述第二阈值可以预设为第一存储空间的空闲空间所能承载的数据量的最大值,当上述差分数据小于或等于第一存储空间的空闲空间的所能承载的数据量的最大值时,存储设备可以将差分压缩数据存储至第一存储空间。
应理解,将上述差分压缩数据存储至第一存储空间的同时,存储设备可以确定上述差分数据的文件偏移地址和上述差分数据对应的原压缩数据的索引,并将该文件偏移地址和该原压缩数据的索引存储至上述第一存储空间。
在本申请实施例中,存储设备可以通过文件的待修改数据和文件的基准数据,得到差分数据,并压缩该差分数据得到差分压缩数据,存储设备可以将该差分压缩数据保存在第一存储空间,不需要立即对文件的压缩数据进行修改,后续可以按需对文件的压缩数据进行修改。这样,本申请实施例可以按照需要将多次待修改数据积攒起来进行更新,有利于减少读写操作对存储设备的读写次数,进而读写操作降低对存储设备的寿命损耗。
可选地,存储设备可以在收到用户的读请求时,结合之前存储的差分压缩数据,对原压缩数据进行更新,再读取更新后的数据,存储设备也可以每隔一段时间,结合这段时间内存储的差分压缩数据,周期性地对原压缩数据进行更新。
应理解,上述第一存储空间可以是索引节点(inode)数据结构的空间。下面,以inode为例对本申请实施例提供的方案进行详细描述。
图4为本申请实施例提供的inode数据结构的示意图。如图4所示,inode数据结构由头部的元数据区、中间的数据索引指针区和末尾的直接间接节点区构成,inode数据结构之后至整个物理页的结束为止是inode节点尾部。整个inode占用一个4KB大小的物理页。在本申请中,元数据区记录了一个文件的文件类型、文件大小、修改时间、访问权限和数据索引信息等元数据。中间的数据索引指针区可以被用来存储差分压缩数据、文件偏移地址、原压缩数据得索引以及小文件的原压缩数据等。
图5示出了本申请实施例提供的又一修改文件的方法500。如图5所示,方法500包括以下步骤:
S501,存储设备基于文件修改请求,确定文件的待修改数据。
S502,存储设备判断上述待修改数据的数据量是否小于或等于第一阈值。
S503,在上述待修改数据的数据量小于或等于第一阈值的情况下,存储设备基于该待修改数据和文件的基准数据,得到差分数据。
S504,存储设备压缩差分数据,得到差分压缩数据。
S505,存储设备判断差分压缩数据的数据量是否小于或等于第二阈值。
在差分压缩数据的数据量小于或等于第二阈值的情况下,执行S506,存储设备将差分压缩数据存储至inode,之后结束本次修改流程。
在上述待修改数据的数据量小于或等于第一阈值的情况下,或者,在上述差分压缩数据的数据量小于或等于第二阈值的情况下,执行下列步骤:
S507,存储设备都可以解压文件的原压缩数据得到文件的解压数据。
S508,存储设备基于文件修改数据对解压数据进行修改,得到文件的更新数据。
S509,存储设备压缩上述更新数据,并存储至上述第二存储空间,之后结束本次修改流程。
应理解,上述第二存储空间和上述第一存储空间不同,二者相互独立,其中第一存储空间可以存储文件的原压缩数据的索引,第二存储空间可以用来存储文件的原压缩数据,第一存储空间中的压缩数据的索引与第二存储空间中的压缩数据一一对应。
作为一个可选的实施例,在上述差分压缩数据存储到第一存储空间后,存储设备可以根据原压缩数据的索引,确定存储在第二存储空间中的文件的原压缩数据,对原压缩数据进行解压,获得解压数据;基于差分压缩数据和文件偏移地址,修改解压数据,获得更新数据;对该更新数据进行压缩,并将新的压缩数据存储至第二存储空间。
具体地,存储设备可以通过下列多种可能的方式,基于差分压缩数据对上述解压数据进行修改,获得更新数据。
在一种可能的实现方式中,存储设备可以基于上述文件的文件读取请求,确定inode中存在上述文件的差分压缩数据的情况下,存储设备修改该文件的解压数据。
图6示出了本申请实施例提供的在inode中存在差分压缩数据的情况下读取文件的方法600。如图6所示,该方法600包括以下步骤:
S601,存储设备接收文件读取请求。
S602,存储设备基于文件读取请求判断inode中否存在文件的差分压缩数据。
S603,在inode中存在文件的差分压缩数据的情况下,存储设备可以根据inode中的原压缩数据的索引,确定存储在第二存储空间中的原压缩数据,并解压所述压缩数据,得到解压数据。
S604,存储设备可以基于inode数据结构的空间中的差分压缩数据和文件偏移地址,修改该解压数据,得到更新数据。
S605,存储设备读取该更新数据。
S606,存储设备压缩该更新数据,获得新的压缩数据。
S607,存储设备将上述新的压缩数据存储至上述第二存储空间,之后结束本次读取流程。
应理解,在inode中不存在差分压缩数据的情况下,可以执行下列步骤:
S608,存储设备可以直接根据inode中的原压缩数据的索引,确定存储在第二存储空间中的原压缩数据,并对该压缩数据解压。
S609,直接读取解压数据,之后结束本次读取流程。
在另一种可能的实现方式中,在inode数据结构的空间中存在差分压缩数据时,或者,存储设备在将差分压缩数据存储至inode数据结构的空间中之后,存储设备可以开启计时器,当计时器超时,存储设备可以根据原压缩数据的索引,确定原压缩数据,并对该原压缩数据进行解压,获得解压数据,存储设备可以基于差分压缩数据和文件偏移地址,修改该解压数据,获得更新数据,对该更新数据进行压缩,并将新的压缩数据存储至上述第二存储空间,以备读取。
应理解,上述inode数据结构的空间中可以存在多个文件的差分压缩数据,存储设备可以开启计时器,当计时器超时,存储设备可以基于inode数据结构的空间中的多个差分数据,对相应的多个文件的解压数据进行修改更新,此处的多个差分压缩数据和多个文件的解压数据一一对应。
示例性地,存储设备按照差分压缩数据在inode数据结构的空间中的排列顺序,依次基于多个差分压缩数据对文件的解压数据进行修改更新,并将多个文件的更新数据存储至第二存储空间。
应理解,存储设备可以设立专门的后台工作线程,定时基于差分压缩数据对文件的解压数据进行修改更新。该后台工作的线程的工作频率可以由系统管理员配置调控。
作为一个可选的实施例,基于上述待修改数据和上述文件的基准数据,得到差分数据之前,还包括:从缓存中的基准数据页链表获取文件的基准数据,该基准数据页链表包括按照访问时间进行排序的多个基准数据页。
在本申请实施例中,由于每一次修改文件的写操作都需要比对待修改数据和基准数据以生成差分数据,为了避免重复从存储介质读取基准数据,存储设备可以在操作系统的页缓存中设置了基准数据页链表,将基准数据页按照访问时间的顺序缓存在基准数据页链表,有利于减少读写操作对存储介质的读取次数,进而降读写操作对低存储介质的寿命损耗。
可选地,在基于上述待修改数据和上述文件的基准数据,得到差分数据之前,存储设备还可以预先将被频繁访问的基准数据页加载缓存在操作系统的页缓存中设置的基准数据页链表中,各个基准数据页按照各自访问频率的高低在基准数据页链表中进行排序。应理解,上述基准数据页还可以按照其他方式排序,本申请实施例对此不作限定。
可选地,存储设备还可以在内存清理时,将被排在基准数据页链表末尾的基准数据页,优先被剔除出基准数据页链表,已释放存储空间,减小存储空间的负荷。
作为一个可选的实施例,在基于差分压缩数据对上述解压数据修改完成之后,存储设备还可以删除上述差分数据、上述差分数据的文件偏移地址和原压缩文件数据的索引,以释放相应的存储空间,减小存储空间的负荷。
本申请实施例修改文件的方法,通过文件的待修改数据和文件的基准数据,得到差分数据,并压缩该差分数据得到差分压缩数据,存储设备只需要将该差分压缩数据保存在第一存储空间,无需立即对文件数据进行修改。在一种实现方式中。存储设备可以定时地基于多个差分压缩数据对多个文件的原压缩数据进行修改,在另一种实现方式中,存储设备可以在收到读取文件请求时,基于差分压缩数据对文件的原压缩数据进行修改。在这两种可能的实现方式中,存储设备无需更新基准数据,也不需要因多次修改文件导致多次向读存储介质读取文件的原压缩数据,有利于减少读写操作对存储介质的读写次数,进而降低读写操作对存储设备的寿命损耗,且在修改过程中,存储设备可以基于差分压缩数据的文件偏移地址,准确定位解压数据需要修改的位置,避免了文件读写放大的问题,降低了文件读写的延迟。
应理解,在上述修改或读取文件之前,存储设备可以对文件进行存储,下面将结合图7对本申请实施例提供的存储文件方法进行详细的描述。
图7示出了本申请实施例提供的存储文件的方法700。如图7所示,该方法700包括下列步骤:
S701,存储设备基于文件存储的请求,确定文件数据的数据量。
S702,文件判断文件数据的数据量是否小于或等于第三阈值。
S703,在文件数据的数据量小于或等于上述第三阈值的情况下,存储设备可以将上述文件数据进行压缩,得到文件的原压缩数据。
S704,存储设备判断文件的原压缩数据的数据量是否小于或等于第四阈值。
S705,在原压缩数据的数据量小于或等于上述第四阈值的情况下,存储设备可以将该原压缩数据存储至inode数据结构的空间。
S706,在文件数据的数据量大于上述第三阈值的情况下,或者,在上述原压缩数据的数据量大于或等于上述第四阈值的情况下,存储设备都可以将上述文件数据拆分成多个部分,每个部分压缩成为一个原压缩数据。
S707,存储设备将上述多个原压缩数据存储至上述第二存储空间。
在本申请实施例中,对于小文件,需要存储的文件数据很少,会造成大量存储空间闲余。因此,本申请直接将小文件的原压缩数据存储至第一存储空间,不再额外占用第二存储空间,降低了存储空间的占用,提高了空间的利用率,且由于小文件的原压缩数据直接存储至第一存储空间,所以不需要通过第一存储空间中的原压缩数据的索引,确定并读取第二存储空间中的原压缩数据,所以提高了小文件的读写速度,有利于减少读写操作对存储介质的读写次数,进而降低读写操作对存储设备的寿命损耗。
应理解,本申请实施例仅仅是以第一存储空间为inode数据结构的空间为例对方案进行描述,上述第一存储空间还可以为其它数据结构的空间,本申请对此不做限定。
应理解,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
上文中结合图1至图7,详细描述了本申请实施例提供的修改文件的方法,下面将结合附图8和图9,详细描述本申请实施例提供的修改文件的装置。
图8示出了本申请实施例提供的修改文件的装置800,包括:确定模块801和处理模块802。
其中,确定模块801,用于基于文件修改请求,确定文件的待修改数据;处理模块802,用于在上述待修改数据的数据量小于或等于第一阈值的情况下,基于上述待修改数据和上述文件的基准数据,得到差分数据;对上述差分数据进行压缩,得到差分压缩数据;以及,在上述差分压缩数据的数据量小于或等于第二阈值的情况下,将上述差分压缩数据存储至第一存储空间。
可选地,该处理模块802,用于从缓存中的基准数据页链表获取上述文件的基准数据,上述基准数据页链表包括按照访问时间进行排序的多个基准数据页。
可选地,该处理模块802,用于确定上述差分数据的文件偏移地址和上述差分数据对应的原压缩数据的索引;将上述文件偏移地址和原压缩数据的索引存储至上述第一存储空间。
可选地,该处理模块802,用于根据上述原压缩数据的索引,确定存储在第二存储空间中的上述文件的原压缩数据,上述第二存储空间和上述第一存储空间不同;对上述原压缩数据进行解压,获得解压数据;基于上述差分压缩数据和上述文件偏移地址,修改上述解压数据,获得更新数据;对上述更新数据进行压缩,并将新的压缩数据存储至上述第二存储空间。
可选地,该处理模块802,还用于基于上述文件的文件读取请求,判断上述第一存储空间中是否存在上述文件的差分压缩数据;在上述第一存储空间中存在上述差分压缩数据的情况下,根据上述原压缩数据的索引,确定上述原压缩数据;以及,读取上述文件的更新数据。
可选地,上述装置还包括:计时模块803,用于在将上述差分压缩数据存储至上述第一存储空间之后,开启计时器;该处理模块802,用于当上述计时器超时,根据上述原压缩数据的索引,确定上述原压缩数据。
可选地,该处理模块802,用于删除上述差分数据、上述差分数据的文件偏移地址和原压缩文件数据的索引。
应理解,这里的装置800以功能模块的形式体现。这里的术语“模块”可以指应用特有集成电路(application specific integrated circuit,ASIC)、电子电路、用于执行一个或多个软件或固件程序的处理器(例如共享处理器、专有处理器或组处理器等)和存储器、合并逻辑电路和/或其它支持所描述的功能的合适组件。在一个可选例子中,本领域技术人员可以理解,装置800可以具体为上述实施例中的存储设备,或者,上述实施例中存储设备的功能可以集成在装置800中,装置800可以用于执行上述方法实施例中与存储设备对应的各个流程和/或步骤,为避免重复,在此不再赘述。
上述装置800具有实现上述方法中存储设备执行的相应步骤的功能;上述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。
在本申请的实施例,图8中的装置800也可以是芯片或者芯片系统,例如:片上系统(system on chip,SoC)。
图9示出了本申请实施例提供的另一修改文件的装置900。该装置900包括:处理器901、存储器902、通信接口903以及总线904。其中,存储器902用于存储指令,该处理器901用于执行该存储器902存储的指令。处理器901、存储器902和通信接口903通过总线904实现彼此之间的通信连接。
其中,处理器901,用于基于文件修改请求,确定文件的待修改数据;在上述待修改数据的数据量小于或等于第一阈值的情况下,基于上述待修改数据和上述文件的基准数据,得到差分数据;对上述差分数据进行压缩,得到差分压缩数据;以及,在上述差分压缩数据的数据量小于或等于第二阈值的情况下,将上述差分压缩数据存储至第一存储空间。
应理解,装置900可以具体为上述实施例中的存储设备,或者,上述实施例中存储设备的功能可以集成在装置900中,装置900可以用于执行上述方法实施例中与存储设备对应的各个步骤和/或流程。可选地,该存储器903可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据。存储器的一部分还可以包括非易失性随机存取存储器。例如,存储器还可以存储设备类型的信息。该处理器901可以用于执行存储器中存储的指令,并且该处理器执行该指令时,该处理器可以执行上述方法实施例中与存储设备对应的各个步骤和/或流程。
应理解,在本申请实施例中,该处理器可以是中央处理单元(Central ProcessingUnit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器执行存储器中的指令,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (17)

1.一种修改文件的方法,其特征在于,包括:
基于文件修改请求,确定文件的待修改数据;
在所述待修改数据的数据量小于或等于第一阈值的情况下,基于所述待修改数据和所述文件的基准数据,得到差分数据;
对所述差分数据进行压缩,得到差分压缩数据;
在所述差分压缩数据的数据量小于或等于第二阈值的情况下,将所述差分压缩数据存储至第一存储空间。
2.根据权利要求1所述的方法,其特征在于,所述基于所述待修改数据和所述文件的基准数据,得到差分数据之前,还包括:
从缓存中的基准数据页链表获取所述文件的基准数据,所述基准数据页链表包括按照访问时间进行排序的多个基准数据页。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
确定所述差分数据的文件偏移地址和所述差分数据对应的原压缩数据的索引;
将所述文件偏移地址和原压缩数据的索引存储至所述第一存储空间。
4.根据权利要求3所述的方法,其特征在于,所述方法包括:
根据所述原压缩数据的索引,确定存储在第二存储空间中的所述文件的原压缩数据,所述第二存储空间和所述第一存储空间不同;
对所述原压缩数据进行解压,获得解压数据;
基于所述差分压缩数据和所述文件偏移地址,修改所述解压数据,获得更新数据;
对所述更新数据进行压缩,并将新的压缩数据存储至所述第二存储空间。
5.根据权利要求4所述的方法,其特征在于,在所述根据所述原压缩数据的索引,确定存储在第二存储空间中的所述文件的原压缩数据之前,所述方法还包括:
基于所述文件的文件读取请求,判断所述第一存储空间中是否存在所述文件的差分压缩数据;
所述根据原压缩数据的索引,确定存储在第二存储空间中的所述文件的原压缩数据,包括:
在所述第一存储空间中存在所述差分压缩数据的情况下,根据所述原压缩数据的索引,确定所述原压缩数据;
所述方法还包括:
读取所述文件的更新数据。
6.根据权利要求4所述的方法,其特征在于,在所述根据所述原压缩数据的索引,确定存储在第二存储空间中的所述文件的原压缩数据之前,所述方法还包括:
在将所述差分压缩数据存储至所述第一存储空间之后,开启计时器;
所述根据所述原压缩数据的索引,确定存储在第二存储空间中的所述文件的原压缩文件数据,包括:
当所述计时器超时,根据所述原压缩数据的索引,确定所述原压缩数据。
7.根据权利要求4至6中任一项所述的方法,其特征在于,所述方法还包括:
删除所述差分数据、所述差分数据的文件偏移地址和原压缩文件数据的索引。
8.一种修改文件的装置,其特征在于,包括:
确定模块,用于基于文件修改请求,确定文件的待修改数据;
处理模块,用于在所述待修改数据的数据量小于或等于第一阈值的情况下,基于所述待修改数据和所述文件的基准数据,得到差分数据;对所述差分数据进行压缩,得到差分压缩数据;以及,在所述差分压缩数据的数据量小于或等于第二阈值的情况下,将所述差分压缩数据存储至第一存储空间。
9.根据权利要求8所述的装置,其特征在于,所述处理模块用于:
从缓存中的基准数据页链表获取所述文件的基准数据,所述基准数据页链表包括按照访问时间进行排序的多个基准数据页。
10.根据权利要求8或9所述的装置,其特征在于,所述处理模块用于:
确定所述差分数据的文件偏移地址和所述差分数据对应的原压缩数据的索引;
将所述文件偏移地址和原压缩数据的索引存储至所述第一存储空间。
11.根据权利要求10所述的装置,其特征在于,所述处理模块用于:
根据所述原压缩数据的索引,确定存储在第二存储空间中的所述文件的原压缩数据,所述第二存储空间和所述第一存储空间不同;
对所述原压缩数据进行解压,获得解压数据;
基于所述差分压缩数据和所述文件偏移地址,修改所述解压数据,获得更新数据;
对所述更新数据进行压缩,并将新的压缩数据存储至所述第二存储空间。
12.根据权利要求11所述的装置,其特征在于,所述处理模块还用于:
在所述根据所述原压缩数据的索引,确定存储在第二存储空间中的所述文件的原压缩数据之前,基于所述文件的文件读取请求,判断所述第一存储空间中是否存在所述文件的差分压缩数据;
在所述第一存储空间中存在所述差分压缩数据的情况下,根据所述原压缩数据的索引,确定所述原压缩数据;
以及,读取所述文件的更新数据。
13.根据权利要求11所述的装置,其特征在于,所述装置还包括:
计时模块,用于在将所述差分压缩数据存储至所述第一存储空间之后,开启计时器;
所述处理模块用于:
当所述计时器超时,根据所述原压缩数据的索引,确定所述原压缩数据。
14.根据权利要求11至13中任一项所述的装置,其特征在于,所述处理模块用于:
删除所述差分数据、所述差分数据的文件偏移地址和原压缩文件数据的索引。
15.一种修改文件的装置,其特征在于,包括:处理器,所述处理器与存储器耦合,所述存储器用于存储计算机程序,当所述处理器调用所述计算机程序时,使得所述装置执行如权利要求1至7中任一项所述的方法。
16.一种计算机可读存储介质,其特征在于,用于存储计算机程序,所述计算机程序包括用于实现如权利要求1至7中任一项所述的方法的指令。
17.一种计算机程序产品,所述计算机程序产品中包括计算机程序代码,其特征在于,当所述计算机程序代码在计算机上运行时,使得所述计算机实现如权利要求1至7中任一项所述的方法。
CN202110385320.3A 2021-04-09 2021-04-09 修改文件的方法和装置 Pending CN115203148A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110385320.3A CN115203148A (zh) 2021-04-09 2021-04-09 修改文件的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110385320.3A CN115203148A (zh) 2021-04-09 2021-04-09 修改文件的方法和装置

Publications (1)

Publication Number Publication Date
CN115203148A true CN115203148A (zh) 2022-10-18

Family

ID=83570898

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110385320.3A Pending CN115203148A (zh) 2021-04-09 2021-04-09 修改文件的方法和装置

Country Status (1)

Country Link
CN (1) CN115203148A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115934730A (zh) * 2023-01-09 2023-04-07 阿里云计算有限公司 数据处理方法和装置、介质和计算机设备
CN117312260A (zh) * 2023-11-29 2023-12-29 苏州元脑智能科技有限公司 文件的压缩存储方法、装置、存储介质和电子设备

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115934730A (zh) * 2023-01-09 2023-04-07 阿里云计算有限公司 数据处理方法和装置、介质和计算机设备
CN117312260A (zh) * 2023-11-29 2023-12-29 苏州元脑智能科技有限公司 文件的压缩存储方法、装置、存储介质和电子设备
CN117312260B (zh) * 2023-11-29 2024-02-27 苏州元脑智能科技有限公司 文件的压缩存储方法、装置、存储介质和电子设备

Similar Documents

Publication Publication Date Title
CN108427538B (zh) 全闪存阵列的存储数据压缩方法、装置、及可读存储介质
KR101505263B1 (ko) 데이터 중복 제거 방법 및 장치
CN110019004B (zh) 一种数据处理方法、装置及系统
CN115203148A (zh) 修改文件的方法和装置
CN111125033B (zh) 一种基于全闪存阵列的空间回收方法及系统
CN110888603B (zh) 高并发数据写入方法、装置、计算机设备及存储介质
CN107679182B (zh) 一种目录配置方法及装置
CN108304142B (zh) 一种数据管理方法和装置
CN110851474A (zh) 数据查询方法、数据库中间件、数据查询设备及存储介质
CN111857574A (zh) 一种写请求数据压缩方法、系统、终端及存储介质
CN115840731A (zh) 文件处理方法、计算设备及计算机存储介质
CN115114232A (zh) 一种历史版本对象列举方法、装置及其介质
KR20150035876A (ko) 데이터 중복 제거 방법 및 장치
CN106156038B (zh) 数据存储方法和装置
CN114020193A (zh) 跨页勾选确定方法、装置、电子设备及存储介质
CN111124259A (zh) 一种基于全闪存阵列的数据压缩方法及系统
CN111913913A (zh) 访问请求的处理方法和装置
CN113342813B (zh) 键值数据处理方法、装置、计算机设备及可读存储介质
CN111061428A (zh) 一种数据压缩的方法及装置
CN110688070B (zh) 固态硬盘数据表的管理方法、装置、存储介质及电子设备
CN113641643A (zh) 文件写入方法及装置
CN111949604A (zh) 一种文件存储方法、装置、电子设备及可读存储介质
CN110019092B (zh) 数据存储的方法、控制器和系统
CN114675776A (zh) 资源存储方法和装置、存储介质和电子设备
CN112463741A (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