CN111506269B - 一种磁盘存储空间分配方法、装置、设备及存储介质 - Google Patents

一种磁盘存储空间分配方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN111506269B
CN111506269B CN202010320230.1A CN202010320230A CN111506269B CN 111506269 B CN111506269 B CN 111506269B CN 202010320230 A CN202010320230 A CN 202010320230A CN 111506269 B CN111506269 B CN 111506269B
Authority
CN
China
Prior art keywords
data
space
disk
written
allocation
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
CN202010320230.1A
Other languages
English (en)
Other versions
CN111506269A (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202010320230.1A priority Critical patent/CN111506269B/zh
Publication of CN111506269A publication Critical patent/CN111506269A/zh
Application granted granted Critical
Publication of CN111506269B publication Critical patent/CN111506269B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/0604Improving or facilitating administration, e.g. storage management
    • 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/0644Management of space entities, e.g. partitions, extents, pools

Abstract

本发明实施例提供了一种磁盘存储空间分配方法、装置、设备及存储介质;方法包括:获取写数据请求;响应写数据请求,从写数据请求中获取待写入数据量;获取磁盘存储空间的分配起始地址;在磁盘剩余空间段链表中,根据分配起始地址确定与待写入数据量匹配的磁盘剩余空间段;根据待写入数据量对磁盘剩余空间段进行分配,并记录磁盘剩余空间段的分配终止地址;将分配起始地址更新为分配终止地址。通过本发明实施例,能够提升磁盘存储空间的分配效果。

Description

一种磁盘存储空间分配方法、装置、设备及存储介质
技术领域
本发明涉及计算机领域中的数据处理技术,尤其涉及一种磁盘存储空间分配方法、装置、设备及存储介质。
背景技术
“读”、“写”、“删”和“更新”是数据处理设备在磁盘上执行的基本数据处理;其中,“写”包括两个数据处理过程:存储空间的分配和在分配的存储空间上写数据;而存储空间的分配会影响写数据时的寻道时间,且存储空间的分配是产生存储空间碎片(比如磁盘碎片)的主要因素;因此,存储空间的分配是“写”数据处理的重要部分。
一般来说,为进行“写”数据处理中存储空间的分配,通常采用最佳适应分配方法,即对空闲存储空间按照连续存储空间的空间大小进行遍历,将遍历到的第一个不小于所请求分配空间的大小的存储空间作为分配的存储空间。然而,上述进行存储空间分配的过程中,虽然所分配的存储空间是连续的,但每次空间分配的随机性大,导致并发写的情况下寻道时间长,因此,磁盘存储空间的分配效果差。
发明内容
本发明实施例提供一种磁盘存储空间分配方法、装置、设备及存储介质,能够提升存储空间的分配效果。
本发明实施例的技术方案是这样实现的:
本发明实施例提供一种磁盘存储空间分配方法,包括:
获取写数据请求;
响应所述写数据请求,从所述写数据请求中获取待写入数据量;
获取磁盘存储空间的分配起始地址;
在磁盘剩余空间段链表中,根据所述分配起始地址确定与所述待写入数据量匹配的磁盘剩余空间段;
根据所述待写入数据量对所述磁盘剩余空间段进行分配,并记录所述磁盘剩余空间段的分配终止地址;
将所述分配起始地址更新为所述分配终止地址。
本发明实施例提供一种磁盘存储空间分配装置,包括:
请求获取模块,用于获取写数据请求;
信息获取模块,用于响应所述写数据请求,从所述写数据请求中获取待写入数据量;
地址获取模块,用于获取磁盘存储空间的分配起始地址;
空间匹配模块,用于在磁盘剩余空间段链表中,根据所述分配起始地址确定与所述待写入数据量匹配的磁盘剩余空间段;
空间分配模块,用于根据所述待写入数据量对所述磁盘剩余空间段进行分配,并记录所述磁盘剩余空间段的分配终止地址
地址更新模块,用于将所述分配起始地址更新为所述分配终止地址。
本发明实施例提供一种磁盘存储空间分配设备,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现本发明实施例提供的磁盘存储空间分配方法。
本发明实施例提供一种计算机可读存储介质,存储有可执行指令,用于引起处理器执行时,实现本发明实施例提供的磁盘存储空间分配方法。
本发明实施例具有以下有益效果:由于响应写数据请求进行磁盘存储空间分配时,是在磁盘剩余空间段链表中根据分配起始地址和待写入数据量确定的;而该分配起始地址是根据每次完成磁盘存储空间分配时对应的分配终止地址实时更新的;从而,每次存储空间的分配的地址间隔小,缩短了并发写情况下的寻道时间,因此,提升了存储空间的分配效果。
附图说明
图1是本发明实施例提供的磁盘存储空间分配系统的一个可选的架构示意图;
图2是本发明实施例提供的一种图1中的服务器的结构示意图;
图3是本发明实施例提供的磁盘存储空间分配方法的一个可选的流程示意图;
图4是本发明实施例提供的磁盘存储空间分配方法的另一个可选的流程示意图;
图5是本发明实施例提供的一种示例性的磁盘的存储空间示意图;
图6是本发明实施例提供的磁盘存储空间分配方法的又一个可选的流程示意图;
图7是本发明实施例提供的一种示例性的写数据的架构示意图;
图8是本发明实施例提供的一种示例性的写数据的交互示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,所描述的实施例不应视为对本发明的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
除非另有定义,本发明实施例所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本发明实施例中所使用的术语只是为了描述本发明实施例的目的,不是旨在限制本发明。
对本发明实施例进行进一步详细说明之前,对本发明实施例中涉及的名词和术语进行说明,本发明实施例中涉及的名词和术语适用于如下的解释。
1)机械硬盘(Hard Disk Drive,HDD),指一种通过机械的方式提供数据基础处理的磁盘。
2)剩余空间段,指磁盘中未被使用的存储空间,即空闲存储空间。
3)段,又称为块,包括多个相邻的扇区,是执行基础数据处理的单位。
一般来说,为进行“写”数据处理中存储空间的分配,通常采用最佳适应分配方法,即对空闲存储空间按照连续存储空间的空间大小进行遍历,将遍历到的第一个不小于所请求分配空间的大小的存储空间作为分配的存储空间。然而,上述进行存储空间分配的过程中,虽然所分配的存储空间是连续的,但每次空间分配的随机性大,并发写数据时,多次写数据之间的导致寻道时间长,导致业务延时和吞吐差,性能低;因此,存储空间的分配效果差。
另外,为进行“写”数据处理中存储空间的分配,通常采用追加分配方法;即将整个存储空间按照存储空间地址的大小进行正排序,进而在后续的多次存储空间的分配中,将排序好的存储空间依次进行分配,直到将最后一个存储空间分配出去。然而,上述进行存储空间分配的过程中,由于存储空间的分配是从第一个存储空间到最后一个存储空间依次分配的,且完成最后一个存储空间的分配之后将不再进行存储空间的分配;因此,针对当前存储空间分配之前已分配的存储空间,如果对应的数据已被删除,则无法实时利用已删除数据的存储空间,因此,存储空间的利用率低。这里,为实现已删除数据的存储空间的再利用,只能对已分配的存储空间的有效数据进行搬迁;而搬迁过程中,伴随着网络开销,效率低,且搬迁需要从整个存储空间中预留存储空间来存储搬迁的有效数据,而这些预留存储空间无法被业务数据利用,因此,存储空间的利用率低。
基于此,本发明实施例提供一种磁盘存储空间分配方法、装置、设备和存储介质,能够提升磁盘存储空间分配效果;也就是说,当采用本发明实施例所提供的磁盘存储空间分配方法进行写操作的存储空间的分配时,寻道时间短,业务延时小,吞吐量高,性能高,且存储空间的利用率高。
另外,本发明实施例所提供的磁盘存储空间分配方法,可以应用在任意应用场景的存储空间分配上;比如,可以应用在云存储中的存储空间分配上,以提升云存储的性能。
需要说明的是,云存储(cloud storage)是在云计算概念上延伸和发展出来的一个新的概念,分布式云存储系统(以下简称存储系统)是指通过集群应用、网格技术以及分布存储文件系统等功能,将网络中大量各种不同类型的存储设备(存储设备也称之为存储节点)通过应用软件或应用接口集合起来协同工作,共同对外提供数据存储和业务访问功能的一个存储系统。目前,存储系统的存储方法为:创建逻辑卷,在创建逻辑卷时,就为每个逻辑卷分配物理存储空间,该物理存储空间可能是某个存储设备或者某几个存储设备的磁盘组成。客户端在某一逻辑卷上存储数据,也就是将数据存储在文件系统上,文件系统将数据分成许多部分,每一部分是一个对象,对象不仅包含数据而且还包含数据标识(ID,Identity)等额外的信息,文件系统将每个对象分别写入该逻辑卷的物理存储空间,且文件系统会记录每个对象的存储位置信息,从而当客户端请求访问数据时,文件系统能够根据每个对象的存储位置信息让客户端对数据进行访问。存储系统为逻辑卷分配物理存储空间的过程,具体为:按照对存储于逻辑卷的对象的容量估量(该估量往往相对于实际要存储的对象的容量有很大余量)和独立冗余磁盘阵列(RAID,Redundant Array of IndependentDisk)的组别,预先将物理存储空间划分成分条,一个逻辑卷可以理解为一个分条,从而为逻辑卷分配了物理存储空间。
下面说明本发明实施例提供的磁盘存储空间分配设备的示例性应用,本发明实施例提供的磁盘存储空间分配设备可以实施为智能手机、平板电脑、笔记本电脑等各种类型的用户终端,也可以实施为服务器。下面,将说明磁盘存储空间分配设备实施为服务器时的示例性应用。
参见图1,图1是本发明实施例提供的磁盘存储空间分配系统的一个可选的架构示意图;如图1所示,为实现支撑一个磁盘存储空间分配应用,该磁盘存储空间分配系统100中,服务器400(磁盘存储空间分配设备)通过网络300连接终端200,服务器400连接磁盘500;其中,网络300可以是广域网或者局域网,又或者是二者的组合。
终端200,用于通过网络300向服务器400发送写数据请求。
服务器400,用于通过网络300从终端200获取写数据请求,还可以根据用户操作获取到写数据请求;响应写数据请求,从写数据请求中获取待写入数据量;获取磁盘存储空间的分配起始地址;在磁盘剩余空间段链表中,根据分配起始地址确定与待写入数据量匹配的磁盘剩余空间段;根据待写入数据量对磁盘剩余空间段进行分配,并记录磁盘剩余空间段的分配终止地址;将分配起始地址更新为分配终止地址。还用于读取磁盘500。
参见图2,图2是本发明实施例提供的一种图1中的服务器的结构示意图,图2所示的服务器400包括:至少一个处理器410、存储器450、至少一个网络接口420和用户接口430。服务器400中的各个组件通过总线系统440耦合在一起。可理解,总线系统440用于实现这些组件之间的连接通信。总线系统440除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线系统440。
处理器410可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
用户接口430包括使得能够呈现媒体内容的一个或多个输出装置431,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口430还包括一个或多个输入装置432,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
存储器450包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,Read Only Memory),易失性存储器可以是随机存取存储器(RAM,Random Access Memory)。本发明实施例描述的存储器450旨在包括任意适合类型的存储器。存储器450可选地包括在物理位置上远离处理器410的一个或多个存储设备。
在一些实施例中,存储器450能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作系统451,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块452,用于经由一个或多个(有线或无线)网络接口420到达其他计算设备,示例性的网络接口420包括:蓝牙、无线相容性认证(Wi-Fi)、和通用串行总线(USB,Universal Serial Bus)等;
显示模块453,用于经由一个或多个与用户接口430相关联的输出装置431(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备和显示内容和信息的用户接口);
输入处理模块454,用于对一个或多个来自一个或多个输入装置432之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
在一些实施例中,本发明实施例提供的磁盘存储空间分配装置可以采用软件方式实现,图2示出了存储在存储器450中的磁盘存储空间分配装置455,其可以是程序和插件等形式的软件,包括以下软件模块:请求获取模块4551、信息获取模块4552、地址获取模块4553、空间匹配模块4554、空间分配模块4555、地址更新模块4556、构建模块4557、写数据模块4558、读数据模块4559、数据更新模块45510和数据删除模块45511,将在下文中说明各个模块的功能。
在另一些实施例中,本发明实施例提供的磁盘存储空间分配装置可以采用硬件方式实现,作为示例,本发明实施例提供的磁盘存储空间分配装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本发明实施例提供的磁盘存储空间分配方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(ASIC,ApplicationSpecific Integrated Circuit)、DSP、可编程逻辑器件(PLD,Programmable LogicDevice)、复杂可编程逻辑器件(CPLD,Complex Programmable Logic Device)、现场可编程门阵列(FPGA,Field-Programmable Gate Array)或其他电子元件。
下面,将结合本发明实施例提供的服务器的示例性应用和实施,说明本发明实施例提供的磁盘存储空间分配方法。
参见图3,图3是本发明实施例提供的磁盘存储空间分配方法的一个可选的流程示意图,将结合图3示出的步骤进行说明。
S101、获取写数据请求。
在本发明实施例中,当磁盘存储空间分配设备(以下简称分配设备)获取到用于写数据的请求时,也就获取到了写数据请求;也就是说,写数据请求用于请求向磁盘中写数据,即请求执行“写”数据处理。
需要说明的是,写数据请求可以是分配设备接收触发操作自身生成的,还可以是其他设备向分配设备发送的,等等,本发明实施例对此不作具体限定。另外,分配设备为在磁盘上执行“读”、“写”、“删”和“更新”基本数据处理的数据处理设备。
S102、响应写数据请求,从写数据请求中获取待写入数据量。
在本发明实施例中,分配设备获得了写数据请求之后,对写数据请求进行响应,进行写数据对应的处理;首先是存储空间的分配;这里,由于写数据请求用于请求进行写数据,因此,写数据请求中包括写数据时所请求写入的数据链,即待写入数据量;从而,分配设备能够从写数据请求中获取到待写入数据量。易知,待写入数据量指写数据请求所请求写入的数据量,在大小上对应的为存储空间的大小。
S103、获取磁盘存储空间的分配起始地址。
在本发明实施例中,分配设备针对磁盘的存储空间进行分配时,需确定进行存储空间分配的起始地址,而分配设备中预先设置有针对磁盘存储空间的分配的起始地址,即分配起始地址;因此,分配设备能够获取到磁盘存储空间的分配起始地址。
需要说明的是,分配起始地址可以通过获取分配设备初始设置的剩余空间段对应的起始地址得到,还可以通过获取上次磁盘存储空间分配的终止地址得到,本发明实施例对此不作具体限定。另外,获取待写入数据量和获取分配起始地址的两个执行步骤在执行顺序上不分先后。
S104、在磁盘剩余空间段链表中,根据分配起始地址确定与待写入数据量匹配的磁盘剩余空间段。
在本发明实施例中,分配设备中存储有磁盘剩余空间段链表,该磁盘剩余空间段链表中包含了磁盘的空闲存储空间,进行磁盘存储空间分配时,是对磁盘剩余空间段链表中对应的空间进行分配;因此,分配设备获得了分配起始地址和待写入数据量进行磁盘存储空间分配时,从磁盘剩余空间段链表中的分配起始地址开始,依次寻找对应的写入数据量首次不小于待写入数据量的至少一个剩余空间段,也就获得了与所述待写入数据量匹配的磁盘剩余空间段。
需要说明的是,分配设备中预先设置有磁盘剩余空间段链表,该磁盘剩余空间段链表是由磁盘中的空闲存储空间段按地址顺序构建的循环链表;因此,磁盘剩余空间段链表中空闲存储空间段的首尾空闲存储空间段相链,首尾空闲存储空间段可链。另外,当分配起始地址是分配设备初始设置的剩余空间段对应的起始地址时,则磁盘剩余空间段链表为初始构建的循环链表;而当分配起始地址是上次磁盘存储空间分配的终止地址时,则磁盘剩余空间段链表为上次存储空间分配后更新过的循环链表。
这里,链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,每个结点包括两个部分:存储数据元素的数据域和存储相邻结点地址的指针域。因此,针对磁盘剩余空间段链表,每个节点对应磁盘存储空间的一个剩余空间段,并且每个节点中的数据域用于存储剩余空间段对应的信息,每个节点中的指针域用于存储下一个剩余空间段对应的起始地址。
S105、根据待写入数据量对磁盘剩余空间段进行分配,并记录磁盘剩余空间段的分配终止地址。
在本发明实施例中,分配设备获得了磁盘剩余空间段之后,从磁盘剩余空间段中分配与待写入数据量大小匹配的空间,实现根据待写入数据量对磁盘剩余空间段的分配。当完成分配时,所获得的分配的终止地址即记录磁盘剩余空间段的分配终止地址。易知,磁盘剩余空间段中从分配起始地址至分配终止地址所对应的空间,为分配的存储空间;以及分配终止地址可以是磁盘剩余空间段对应的终止地址,也可以不是磁盘剩余空间段对应的终止地址。
S106、将分配起始地址更新为分配终止地址。
在本发明实施例中,分配设备确定了分配终止地址之后,将分配起始地址更新为分配终止地址,此时,更新后的分配起始地址即分配终止地址;针对下次磁盘存储空间的分配,利用更新后的分配起始地址作为起始地址进行。
可以理解的是,由于每次进行存储空间的分配时,分配起始地址是根据每次磁盘存储空间的分配的终止地址实时更新的都是预设的且与上次分配的终止地址是关联的;如此,在高并发写情况下,上次写处理结束到当前写处理开始时,寻道时间是最短的,实现了磁盘的局部分配;因此,本发明实施例提供的存储空间分配方法能够提升并发写的性能。
还可以理解的是,由于磁盘剩余空间段链表是一个循环链表,因此,当完成磁盘剩余空间段链表中最后一个剩余空间段的分配,而之前已有删除了数据后的空闲存储空间段,则能够对该删除数据后的空闲存储空间段进行再次分配;如此,实现了垃圾空间(已删除数据但未释放的存储空间)的回收,提升了磁盘的空间利用率。
进一步地,在本发明实施例中,当分配起始地址是分配设备初始设置的剩余空间段对应的起始地址,磁盘剩余空间段链表为初始构建的循环链表时,S101之前还包括S107-S111;也就是说,分配设备获取写数据请求之前,该磁盘存储空间的分配方法还包括构建磁盘剩余空间段链表以及确定分配起始地址的过程,下面对各步骤分别进行说明。
S107、读取磁盘存储空间的剩余空间段信息。
在本发明实施例中,由于磁盘剩余空间段链表中均是空闲的存储空间段(用于分配的存储空间);因此,分配设备在构建磁盘剩余空间段链表时,从磁盘存储空间中读取剩余空间段,将读取到的剩余空间段组合,也就得到了剩余空间段信息。这里,磁盘中存在用于记录存储空间段的空闲与否的信息,比如,磁盘的空闲空间区(FreeMap);因此,分配设备通过读取用于记录存储空间的空闲与否的信息,就能够读取到磁盘存储空间的剩余空间段信息。
需要说明的是,剩余空间段指预设存储介质中空闲的存储空间;而段指进行基本数据处理的单位,可以为多个扇区;剩余空间段信息包括至少一个剩余空间段。另外,磁盘,是一种机械硬盘,比如HDD;磁盘存储空间指磁盘对应的用于存储数据的空间。
S108、对剩余空间段信息按照地址标识进行排序。链接,得到磁盘剩余空间段链表。
在本发明实施例中,每个剩余空间段均有对应的地址标识(比如,地址编号),这里,分配设备获得了剩余空间段信息之后,对剩余空间段信息中的至少一个剩余空间段按照地址标识进行排序;此时,也就获得了排序后的剩余空间段信息。
S109、对排序后的剩余空间段信息构建链表,得到所述磁盘剩余空间段链表。
在本发明实施例中,分配设备获得了排序后的剩余空间段信息之后,按照排序后的剩余空间段信息中各剩余空间段的排序顺序,对排序后的剩余空间段信息中各剩余空间段构建循环链表;此时,也就获得了磁盘剩余空间段链表。
S110、从磁盘剩余空间段链表中,选择目标空闲存储空间段。
在本发明实施例中,分配设备获得了磁盘剩余空间段链表之后,从磁盘剩余空间段链表中选择任一剩余空间段,也就得到了目标剩余空间段;比如,地址标识最小的剩余空间段。这里,目标剩余空间段用于作为首次磁盘存储空间分配起始的剩余空间段。
S111、将目标剩余空间段对应的起始地址,作为分配起始地址。
需要说明的是,由于目标剩余空间段用于作为首次磁盘存储空间分配(当前存储空间分配)起始的剩余空间段;因此,分配设备获得了目标剩余空间段之后,获取目标剩余空间段对应的起始地址,也就获得了分配起始地址,以根据目标剩余空间段对应的起始地址处开始进行磁盘存储空间的分配。
可以理解的是,分配设备通过将磁中各剩余空间段按地址大小进行排序并构建循环链表,使得后续的磁盘存储空间分配能够有序循环进行,从而实现写数据的性能的提升,以及磁盘存储空间的利用率的提高。
进一步地,在本发明实施例中,S105可通过S1051和S1052实现;也就是说,分配设备根据待写入数据量对磁盘剩余空间段进行分配,并记录磁盘剩余空间段的分配终止地址,包括S1051和S1052,下面对各步骤分别进行说明。
S1051、当磁盘剩余空间段对应的写入数据量大于待写入数据量时,将磁盘剩余空间段中的最后剩余空间段拆分,得到拆分剩余空间段。
需要说明的是,磁盘剩余空间段是磁盘剩余空间段链表中地址连续的至少一个空闲存储空间段。另外,磁盘剩余空间段对应的写入数据量可能与待写入数据量相等,磁盘剩余空间段对应的写入数据量也可能大于待写入数据量。当磁盘剩余空间段对应的写入数据量与待写入数据量相等时,则不需要拆分磁盘剩余空间段,能够实现整体分配。
而当磁盘剩余空间段对应的写入数据量大于待写入数据量时,表明不能实现整体分配,需要拆分剩余空间段。这里,分配设备将磁盘剩余空间段中的最后剩余空间段拆分为两个剩余空间段,其中,一个剩余空间段用于当前的分配,并且从分配起始地址至这一个剩余空间段对应的终止地址所对应的写入数据量,等于待写入数据量;另一剩余空间段即拆分剩余空间段,用于下次分配。这里,最后剩余空间段为磁盘剩余空间段中地址标识排在最后的剩余空间段。
S1052、在磁盘剩余空间段中,将分配起始地址至拆分剩余空间段对应的起始地址所对应的空间进行分配,并将拆分剩余空间段对应的起始地址,记录为磁盘剩余空间段的分配终止地址。
需要说明的是,分配设备获得了拆分剩余空间段,也就明确了此次磁盘分配分配的终止地址即分配终止地址,为拆分剩余空间段对应的起始地址。以及,此次所分配的存储空间为磁盘剩余空间段中,分配起始地址至拆分剩余空间段对应的起始地址所对应的空间。
另外,当分配设备能够实现磁盘剩余空间段的整体分配时,则获取最后剩余空间段在磁盘剩余空间段链表中的下一个剩余空间段,将该下一个剩余空间段对应的起始地址,记录为磁盘剩余空间段的分配终止地址。
示例性地,当待写入数据量为3,而磁盘剩余空间段对应的写入数据量为4,且磁盘剩余空间段包括一个剩余空间段时,则这一个剩余空间段即最后剩余空间段,将这一个剩余空间段进行拆分为对应的待写入数据量为3和1的两个剩余空间段;并将这一个剩余空间段中对应的写入数据量为3的剩余空间段作为分配出去的存储空间,而这一个剩余空间段中对应的写入数据量为1的剩余空间段,继续在磁盘剩余空间段链表用于分配。
可以理解的是,分配设备在不能实现整体分配时,对剩余空间段进行拆分,减少了存储空间碎片,能够进一步提升磁盘存储空间的利用率。
进一步地,参见图4,图4是本发明实施例提供的磁盘存储空间分配方法的另一个可选的流程示意图;如图4所示,在本发明实施例中,S105之后还包括S112-S114;也就是说,分配设备根据待写入数据量对磁盘剩余空间段进行分配,并记录磁盘剩余空间段的分配终止地址之后,该磁盘存储空间分配方法还包括S112-S114,将结合图4示出的步骤进行说明。
S112、从写数据请求中获取待写入数据。
需要说明的是,由于写数据请求指用于写数据的请求,因此,写数据请求中存在所请求写入的数据即待写入数据,从而,分配设备能够从写数据请求中获取到待写入数据。
这里,待写入数据包括数据信息和元数据信息,其中,元数据信息指用于描述待写入数据中的数据信息的数据。
S113、在磁盘剩余空间段的分配起始地址,至分配终止地址对应的空间中,写入待写入数据,得到写入数据后的空间。
在本发明实施例中,当分配设备获得了分配终止地址后,也就明确了分配的空间为磁盘剩余空间段中从分配起始地址至分配终止地址对应的空间,此时也就完成了存储空间的分配,也就能够进行在分配的存储空间上写数据的处理了。写数据时,分配设备将待写入数据,写入至磁盘剩余空间段中从分配起始地址至分配终止地址对应的空间,此时,也就得到了写入数据后的空间。这里,分配设备还生成待写入数据对应的目标索引,将该目标索引存入至数据索引记录(比如,磁盘中的索引区)中。
示例性地,参见图5,图5是本发明实施例提供的一种示例性的磁盘的存储空间示意图;如图5所示,磁盘5-1中包括空闲空间区5-11、索引区5-12、剩余空间段5-13和写入数据后的目标存储空间5-14。易知,循环链表是由剩余空间段5-13构成的。
S114、根据写入数据后的空间,更新磁盘剩余空间段链表,得到更新后的磁盘剩余空间段链表。
在本发明实施例中,当分配设备完成了待写入数据的写入之后,磁盘剩余空间段链表中的空闲存储空间段也发生了变化,因此,磁盘剩余空间段链表需要更新;这里,分配设备将磁盘剩余空间段链表中除写入数据后的空间之外的存储空间作为更新后的磁盘剩余空间段链表。
需要说明的是,S112-S114与S106在执行顺序上不分先后,图4示出的为S112-S114在S106之前执行的过程。
进一步地,参见图6,图6是本发明实施例提供的磁盘存储空间分配方法的又一个可选的流程示意图;如图6所示,在本发明实施例中,S106之后还包括S115和S116;也就是说,分配设备将分配起始地址更新为分配终止地址之后,该磁盘存储空间分配方法还包括S115和S116,将结合图6示出的步骤进行说明。
S115、获取下一写数据请求。
在本发明实施例中,当分配设备获取到写数据请求之后,再次接收到进行写数据的请求时,也就获取到了下一写数据请求。
S116、响应下一写数据请求,依据更新后的起始分配地址和更新后的磁盘剩余空间段链表,进行下次磁盘存储空间的分配。
在本发明实施例中,分配设备得到了下一写数据请求之后,对该下一写数据请求进行响应,以进行存储空间的分配和分配的存储空间的写入。其中,下一写数据请求对应的存储空间的分配即下次磁盘存储空间的分配,在下次磁盘存储空间的分配中,起始地址为更新后的分配起始地址,即分配终止地址,对应的空闲存储空间循环链表为更新后的磁盘剩余空间段链表;即分配设备依据更新后的分配起始地址和更新后的磁盘剩余空间段链表,进行下次磁盘存储空间的分配。这里,响应下一写数据请求进行存储空间的分配过程,与响应写数据请求进行存储空间的分配过程(S101-S106)类似,本发明实施例在此不再赘述。
进一步地,在本发明实施例中,S114之后还包括S117-S120;也就是说,分配设备根据写入数据后的空间,更新磁盘剩余空间段链表,得到更新后的磁盘剩余空间段链表之后,该存储空间分配方法还包括S117-S120,下面对各步骤分别进行说明。
S117、获取读数据请求。
在本发明实施例中,分配设备还能执行读数据的数据基础处理,当指示分配设备执行读数据的数据基础处理时,分配设备也就获得了读数据请求。这里,读数据请求用于请求读取待写入数据。
S118、响应读数据请求,从读数据请求中获取目标数据标识;目标数据标识为待写入数据对应的标识。
需要说明的是,由于读数据请求指用于读取待写入数据的请求,因此,读数据请求中包括待写入数据对应的标识即目标数据标识,该目标数据标识用于确定待写入数据;从而,分配设备获得了读数据请求之后,响应该读数据请求进行待写入数据的读取时,能够从读数据请求中获取目标数据标识。
S119、根据目标数据标识,确定写入数据后的空间。
在本发明实施例中,分配设备向目标存储空间写入待写入数据时,生成了目标数据标识与目标索引的对应关系;因此,分配设备能够根据目标数据标识,从目标数据标识与目标索引的对应关系中确定目标索引,进而根据目标索引确定写入数据后的空间。
S120、从写入数据后的空间中读取待写入数据。
在本发明实施例中,分配设备在确定了写入数据后的空间之后,读取写入数据后的空间中的待写入数据,也就完成了对读数据请求的响应。
进一步地,在本发明实施例中,S114之后还包括S121-S124;也就是说,分配设备根据写入数据后的空间,更新磁盘剩余空间段链表,得到更新后的磁盘剩余空间段链表之后,该存储空间分配方法还包括S121-S124,下面对各步骤分别进行说明。
S121、获取数据更新请求。
在本发明实施例中,分配设备还能执行更新数据的数据基础处理,当指示分配设备执行更新数据的数据基础处理时,分配设备也就获得了数据更新请求。这里,数据更新请求用于请求对待写入数据进行更新。
S122、响应数据更新请求,从数据更新请求中获取目标数据标识和更新数据。
需要说明的是,由于数据更新请求指用于更新待写入数据的请求,因此,数据更新请求中包括待写入数据对应的标识即目标数据标识,以及更新数据;其中,目标数据标识用于确定待写入数据,更新数据用于对待写入数据进行更新的数据;从而,分配设备获得了数据更新请求之后,响应该数据更新请求进行待写入数据的更新时,能够从数据更新请求中获取目标数据标识和更新数据。
S123、根据目标数据标识,确定写入数据后的空间。
需要说明的是,S123实现过程的描述与S119实现过程的描述一致,本发明实施例在此不再赘述。
S124、利用更新数据,对写入数据后的空间中的待写入数据进行更新。
在本发明实施例中,分配设备在确定了写入数据后的空间之后,利用更新数据更新写入数据后的空间中的待写入数据,也就完成了对数据更新请求的响应。
进一步地,在本发明实施例中,S114之后还包括S125-S129;也就是说,分配设备根据写入数据后的空间,更新磁盘剩余空间段链表,得到更新后的磁盘剩余空间段链表之后,该存储空间分配方法还包括S125-S129,下面对各步骤分别进行说明。
S125、获取数据删除请求。
在本发明实施例中,分配设备还能执行删除数据的数据基础处理,当指示分配设备执行删除数据的数据基础处理时,分配设备也就获得了数据删除请求。这里,数据删除请求用于请求对待写入数据进行删除。
S126、响应数据删除请求,从数据删除请求中获取目标数据标识。
需要说明的是,由于数据删除请求指用于删除待写入数据的请求,因此,数据删除请求中包括待写入数据对应的标识即目标数据标识,该目标数据标识用于确定待写入数据;从而,分配设备获得了数据删除请求之后,响应该数据删除请求进行待写入数据的删除时,能够从数据删除请求中获取目标数据标识。
S127、根据目标数据标识,确定写入数据后的空间。
需要说明的是,S127实现过程的描述与S119实现过程的描述一致,本发明实施例在此不再赘述。
S128、将写入数据后的空间中的待写入数据进行删除,得到释放空间段。
在本发明实施例中,分配设备在确定了写入数据后的空间之后,将写入数据后的空间中的待写入数据进行删除,也就完成了对数据删除请求的响应。
S129、将释放空间段添加至更新的磁盘剩余空间段链表。
需要说明的是,由于写入数据后的空间中的待写入数据已被删除,因此,分配设备为了实现删除数据后的存储空间的实时回收,将目标存储空间添加至更新的磁盘剩余空间段链表;如此,能够进一步提升了磁盘存储空间的利用率。
需要说明的是,进一步地,分配设备包括存储引擎模块和空间分配模块,其中,存储引擎模块用于控制基础数据处理,比如,向空间写入待写入数据;空间分配模块用于进行存储空间管理,比如,确定分配终止地址。本发明实施例提供的磁盘存储空间分配方法可通过存储引擎模块和空间分配模块之间的交互完成。
下面,将说明本发明实施例在一个实际的应用场景中的示例性应用。
示例性地,参见图7,图7是本发明实施例提供的一种示例性的写数据的架构示意图;如图7所示,分配设备7-1包括存储引擎模块7-11和空间分配模块7-12;存储引擎模块7-11获取写数据请求,请求空间分配模块7-12进行磁盘存储空间的分配;从而空间分配模块7-12响应存储引擎模块7-11的请求,并基于对磁盘7-2的读取,向存储引擎模块7-11返回目标存储空间(磁盘剩余空间段的分配起始地址至分配终止地址对应的空间)的地址以通知已完成存储空间的分配;接着,存储引擎模块7-11根据目标存储空间的地址在磁盘7-2中的目标存储空间执行写数据,再在磁盘7-2的索引区写入所写数据对应的目标索引,来完成写数据。
基于图7,参见图8,图8是本发明实施例提供的一种示例性的写数据的交互示意图;如图8所示,存储引擎模块(图7中的存储引擎模块7-11)、空间分配模块(图7中的空间分配模块7-12)和磁盘(图7中的磁盘7-2)三者交互实现写数据的步骤为:
S201、空间分配模块读取磁盘空闲空间区(图5中5-11)中的空闲存储空间段,得到至少一个剩余空间段(剩余空间段信息,每个剩余空间段即图5中5-13)。
需要说明的是,分配设备启动,则基础数据处理对应的进程启动;此时,分配设备就执行S201对应的处理。
S202、空间分配模块将至少一个剩余空间段构建为地址由小到大有序排列的循环链表,并设置上次分配地址为循环链表中的第一个剩余空间段对应的起始地址。
需要说明的是,循环链表即本发明实施例中的磁盘剩余空间段链表,存储在分配设备的内存中,上次分配地址为分配起始地址。
S203、存储引擎模块获取写数据请求,向空间分配模块转发写数据请求,以请求磁盘存储空间的分配。
S204、空间分配模块根据写数据请求读取上次分配地址,并在循环链表中确定上次分配地址对应的位置,从上次分配地址对应的位置起,将相邻的至少一个剩余空间段进行分配,直到相邻的至少一个剩余空间段的总写入数据量等于写数据请求中的待写入数据量,将相邻的至少一个剩余空间段作为分配的存储空间。
需要说明的是,当相邻的至少一个剩余空间段的总写入数据量等于写数据请求中的待写入数据量,则能够进行整体分配;而当相邻的至少一个剩余空间段的总写入数据量大于写数据请求中的待写入数据量时,则进行拆分,拆分后所剩下的剩余空间段仍加入至循环链表用于磁盘存储空间的分配。
S205、空间分配模块将上次分配地址更新为分配的存储空间对应的终止地址。
这里,上次分配地址是根据存储空间的分配实时更新的。
S206、空间分配模块向存储引擎模块返回分配的存储空间的地址。
S207、存储引擎模块根据分配的存储空间的地址,向分配的存储空间中写入写数据请求中的待写入数据。
S208、存储引擎模块根据写入的待写入数据向磁盘的索引区(图5中5-12)写入索引(目标索引)。
需要说明的是,此时,循环链表已不包括分配的存储空间。
下面继续说明本发明实施例提供的磁盘存储空间分配装置455的实施为软件模块的示例性结构,在一些实施例中,如图2所示,存储在存储器450的磁盘存储空间分配装置455中的软件模块可以包括:
请求获取模块4551,用于获取写数据请求;
信息获取模块4552,用于响应所述写数据请求,从所述写数据请求中获取待写入数据量;
地址获取模块4553,用于获取磁盘存储空间的分配起始地址;
空间匹配模块4554,用于在磁盘剩余空间段链表中,根据所述分配起始地址确定与所述待写入数据量匹配的磁盘剩余空间段;
空间分配模块4555,用于根据所述待写入数据量对所述磁盘剩余空间段进行分配,并记录所述磁盘剩余空间段的分配终止地址;
地址更新模块4556,用于将所述分配起始地址更新为所述分配终止地址。
进一步地,所述磁盘存储空间分配装置455还包括构建模块4557,用于读取所述磁盘存储空间的剩余空间段信息;对所述剩余空间段信息按照地址标识进行排序;对排序后的剩余空间段信息构建链表,得到所述磁盘剩余空间段链表;从所述磁盘剩余空间段链表中,选择目标剩余空间段;将所述目标剩余空间段对应的起始地址,作为所述分配起始地址。
进一步地,所述空间分配模块4555,还用于当所述磁盘剩余空间段对应的写入数据量大于所述待写入数据量时,将所述磁盘剩余空间段中的最后剩余空间段拆分,得到拆分剩余空间段;在所述磁盘剩余空间段中,将所述分配起始地址至所述拆分剩余空间段对应的起始地址所对应的空间进行分配,并将所述拆分剩余空间段对应的起始地址,记录为所述磁盘剩余空间段的所述分配终止地址。
进一步地,所述磁盘存储空间分配装置455还包括写数据模块4558,用于从所述写数据请求中获取待写入数据;在所述磁盘剩余空间段的所述分配起始地址,至所述分配终止地址对应的空间中,写入所述待写入数据,得到写入数据后的空间;根据所述写入数据后的空间,更新所述磁盘剩余空间段链表,得到更新后的磁盘剩余空间段链表。
进一步地,所述空间分配模块4555,还用于获取下一写数据请求;响应所述下一写数据请求,依据更新后的分配起始地址和所述更新后的磁盘剩余空间段链表,进行下次磁盘存储空间的分配。
进一步地,所述磁盘存储空间分配装置455还包括读数据模块4559,用于获取读数据请求;响应所述读数据请求,从所述读数据请求中获取目标数据标识;所述目标数据标识为所述待写入数据对应的标识;根据所述目标数据标识,确定所述写入数据后的空间;从所述写入数据后的空间中读取所述待写入数据。
进一步地,所述磁盘存储空间分配装置455还包括数据更新模块45510,用于获取数据更新请求;响应所述数据更新请求,从所述数据更新请求中获取目标数据标识和更新数据;根据所述目标数据标识,确定所述写入数据后的空间;利用所述更新数据,对所述写入数据后的空间中的所述待写入数据进行更新。
进一步地,所述磁盘存储空间分配装置455还包括数据删除模块45511,用于获取数据删除请求;响应所述数据删除请求,从所述数据删除请求中获取目标数据标识;根据所述目标数据标识,确定所述写入数据后的空间;将所述写入数据后的空间中的所述待写入数据进行删除,得到释放空间段;将所述释放空间段添加至所述更新的磁盘剩余空间段链表。
本发明实施例提供一种存储有可执行指令的计算机可读存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本发明实施例提供的磁盘存储空间分配方法,例如图3示出的磁盘存储空间分配方法。
在一些实施例中,计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,Hyper TextMarkup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
综上所述,通过本发明实施例,由于响应写数据请求进行磁盘存储空间分配时,是在磁盘剩余空间段链表中根据分配起始地址和待写入数据量确定的;而该分配起始地址是根据每次完成磁盘存储空间分配时对应的分配终止地址实时更新的;从而,每次存储空间的分配的地址间隔小,缩短了并发写情况下的寻道时间,因此,提升了存储空间的分配效果。
以上所述,仅为本发明的实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本发明的保护范围之内。

Claims (10)

1.一种磁盘存储空间分配方法,其特征在于,包括:
获取写数据请求;
响应所述写数据请求,从所述写数据请求中获取待写入数据量;
获取磁盘存储空间的分配起始地址;
在磁盘剩余空间段链表中,根据所述分配起始地址确定与所述待写入数据量匹配的磁盘剩余空间段,其中,所述磁盘剩余空间段链表是由磁盘中的空闲存储空间段按地址顺序构建的循环链表;
根据所述待写入数据量对所述磁盘剩余空间段进行分配,并记录所述磁盘剩余空间段的分配终止地址;
将所述分配起始地址更新为所述分配终止地址;
其中,所述根据所述待写入数据量对所述磁盘剩余空间段进行分配,并记录所述磁盘剩余空间段的分配终止地址,包括:当所述磁盘剩余空间段对应的写入数据量大于所述待写入数据量时,将所述磁盘剩余空间段中的最后剩余空间段拆分,得到拆分剩余空间段;在所述磁盘剩余空间段中,将所述分配起始地址至所述拆分剩余空间段对应的起始地址所对应的空间进行分配,并将所述拆分剩余空间段对应的起始地址,记录为所述磁盘剩余空间段的所述分配终止地址。
2.根据权利要求1所述的方法,其特征在于,所述获取写数据请求之前,所述方法还包括:
读取所述磁盘存储空间的剩余空间段信息;
对所述剩余空间段信息按照地址标识进行排序;
对排序后的剩余空间段信息构建链表,得到所述磁盘剩余空间段链表;
从所述磁盘剩余空间段链表中,选择目标剩余空间段;
将所述目标剩余空间段对应的起始地址,作为所述分配起始地址。
3.根据权利要求1或2所述的方法,其特征在于,所述根据所述待写入数据量对所述磁盘剩余空间段进行分配,并记录所述磁盘剩余空间段的分配终止地址之后,所述方法还包括:
从所述写数据请求中获取待写入数据;
在所述磁盘剩余空间段的所述分配起始地址,至所述分配终止地址对应的空间中,写入所述待写入数据,得到写入数据后的空间;
根据所述写入数据后的空间,更新所述磁盘剩余空间段链表,得到更新后的磁盘剩余空间段链表。
4.根据权利要求1所述的方法,其特征在于,所述将所述分配起始地址更新为所述分配终止地址之后,所述方法还包括:
获取下一写数据请求;
响应所述下一写数据请求,依据更新后的分配起始地址和所述更新后的磁盘剩余空间段链表,进行下次磁盘存储空间的分配。
5.根据权利要求3所述的方法,其特征在于,所述根据所述写入数据后的空间,更新所述磁盘剩余空间段链表,得到更新后的磁盘剩余空间段链表之后,所述方法还包括:
获取读数据请求;
响应所述读数据请求,从所述读数据请求中获取目标数据标识;所述目标数据标识为所述待写入数据对应的标识;
根据所述目标数据标识,确定所述写入数据后的空间;
从所述写入数据后的空间中读取所述待写入数据。
6.根据权利要求3所述的方法,其特征在于,所述根据所述写入数据后的空间,更新所述磁盘剩余空间段链表,得到更新后的磁盘剩余空间段链表之后,所述方法还包括:
获取数据更新请求;
响应所述数据更新请求,从所述数据更新请求中获取目标数据标识和更新数据;
根据所述目标数据标识,确定所述写入数据后的空间;
利用所述更新数据,对所述写入数据后的空间中的所述待写入数据进行更新。
7.根据权利要求3所述的方法,其特征在于,所述根据所述写入数据后的空间,更新所述磁盘剩余空间段链表,得到更新后的磁盘剩余空间段链表之后,所述方法还包括:
获取数据删除请求;
响应所述数据删除请求,从所述数据删除请求中获取目标数据标识;
根据所述目标数据标识,确定所述写入数据后的空间;
将所述写入数据后的空间中的所述待写入数据进行删除,得到释放空间段;
将所述释放空间段添加至所述更新的磁盘剩余空间段链表。
8.一种磁盘存储空间分配装置,其特征在于,包括:
请求获取模块,用于获取写数据请求;
信息获取模块,用于响应所述写数据请求,从所述写数据请求中获取待写入数据量;
地址获取模块,用于获取磁盘存储空间的分配起始地址;
空间匹配模块,用于在磁盘剩余空间段链表中,根据所述分配起始地址确定与所述待写入数据量匹配的磁盘剩余空间段,其中,所述磁盘剩余空间段链表是由磁盘中的空闲存储空间段按地址顺序构建的循环链表;
空间分配模块,用于根据所述待写入数据量对所述磁盘剩余空间段进行分配,并记录所述磁盘剩余空间段的分配终止地址;
地址更新模块,用于将所述分配起始地址更新为所述分配终止地址;
所述空间分配模块,还用于当所述磁盘剩余空间段对应的写入数据量大于所述待写入数据量时,将所述磁盘剩余空间段中的最后剩余空间段拆分,得到拆分剩余空间段;在所述磁盘剩余空间段中,将所述分配起始地址至所述拆分剩余空间段对应的起始地址所对应的空间进行分配,并将所述拆分剩余空间段对应的起始地址,记录为所述磁盘剩余空间段的所述分配终止地址。
9.一种磁盘存储空间分配设备,其特征在于,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现权利要求1至7任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,存储有可执行指令,用于引起处理器执行时,实现权利要求1至7任一项所述的方法。
CN202010320230.1A 2020-04-22 2020-04-22 一种磁盘存储空间分配方法、装置、设备及存储介质 Active CN111506269B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010320230.1A CN111506269B (zh) 2020-04-22 2020-04-22 一种磁盘存储空间分配方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010320230.1A CN111506269B (zh) 2020-04-22 2020-04-22 一种磁盘存储空间分配方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN111506269A CN111506269A (zh) 2020-08-07
CN111506269B true CN111506269B (zh) 2021-09-07

Family

ID=71871243

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010320230.1A Active CN111506269B (zh) 2020-04-22 2020-04-22 一种磁盘存储空间分配方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN111506269B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112565356B (zh) * 2020-11-24 2023-04-21 北京百度网讯科技有限公司 数据存储方法、装置以及电子设备
CN112732198B (zh) * 2021-01-15 2023-11-14 广州Tcl互联网小额贷款有限公司 文件管理方法、装置、设备和存储介质
CN112698793B (zh) * 2021-01-15 2024-03-26 江苏云从曦和人工智能有限公司 一种数据存储方法、装置、机器可读介质及设备
CN113419670A (zh) * 2021-03-31 2021-09-21 阿里巴巴新加坡控股有限公司 数据写入处理方法、装置及电子设备
CN113495889B (zh) * 2021-07-07 2024-03-15 浙江大华技术股份有限公司 一种分布式对象存储方法、装置、电子设备及存储介质
CN115562595B (zh) * 2022-12-06 2023-02-28 苏州浪潮智能科技有限公司 一种卷创建方法及装置、卷读写方法及装置、电子设备
CN117539636A (zh) * 2023-12-06 2024-02-09 摩尔线程智能科技(北京)有限责任公司 总线模块的内存管理方法、装置、电子设备和存储介质
CN117472796A (zh) * 2023-12-06 2024-01-30 摩尔线程智能科技(北京)有限责任公司 总线模块的数据处理方法、装置、电子设备和存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102306125A (zh) * 2011-08-17 2012-01-04 深圳市共进电子股份有限公司 一种flash存储器的数据擦写方法
CN103473099A (zh) * 2013-09-13 2013-12-25 惠州Tcl移动通信有限公司 一种移动终端的软件升级方法和系统
CN103514249A (zh) * 2013-06-20 2014-01-15 易乐天 一种数据自精简方法和系统及存储装置
CN104933051A (zh) * 2014-03-17 2015-09-23 腾讯科技(深圳)有限公司 文件存储空间回收方法和装置
CN106569748A (zh) * 2016-10-27 2017-04-19 南方电网科学研究院有限责任公司 Flash文件系统的数据处理方法和装置
CN110532198A (zh) * 2019-09-09 2019-12-03 成都西山居互动娱乐科技有限公司 一种存储空间分配的方法及装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102708063B (zh) * 2012-04-25 2016-02-24 北京天地云箱科技有限公司 磁盘空间管理方法及装置
CN103425435B (zh) * 2012-05-15 2016-01-20 深圳市腾讯计算机系统有限公司 磁盘存储方法及磁盘存储系统
US10241688B2 (en) * 2017-03-09 2019-03-26 International Business Machines Corporation I/O amplification for determining to increase workload

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102306125A (zh) * 2011-08-17 2012-01-04 深圳市共进电子股份有限公司 一种flash存储器的数据擦写方法
CN103514249A (zh) * 2013-06-20 2014-01-15 易乐天 一种数据自精简方法和系统及存储装置
CN103473099A (zh) * 2013-09-13 2013-12-25 惠州Tcl移动通信有限公司 一种移动终端的软件升级方法和系统
CN104933051A (zh) * 2014-03-17 2015-09-23 腾讯科技(深圳)有限公司 文件存储空间回收方法和装置
CN106569748A (zh) * 2016-10-27 2017-04-19 南方电网科学研究院有限责任公司 Flash文件系统的数据处理方法和装置
CN110532198A (zh) * 2019-09-09 2019-12-03 成都西山居互动娱乐科技有限公司 一种存储空间分配的方法及装置

Also Published As

Publication number Publication date
CN111506269A (zh) 2020-08-07

Similar Documents

Publication Publication Date Title
CN111506269B (zh) 一种磁盘存储空间分配方法、装置、设备及存储介质
JP4438457B2 (ja) 記憶領域割当方法、システム及び仮想化装置
JP6553566B2 (ja) メモリシステムおよび制御方法
US8438185B2 (en) File storage apparatus and access control method
JP5309043B2 (ja) ストレージシステム及びストレージシステムでの重複データ削除のための方法
KR100951107B1 (ko) 최적의 성능을 위한 파일 관리 방법
US7730259B2 (en) Method, computer and system for managing a storage subsystem configuration
US8095728B2 (en) Method and system for power aware I/O scheduling
US8892847B2 (en) Volume management and page allocation method
US20080065815A1 (en) Logical volume management method and logical volume management program
US10254993B2 (en) Selecting first data sets in a first storage group to swap with second data sets in a second storage group
US20140359238A1 (en) Storage apparatus and volume management method
TW202040406A (zh) 使用電路實現的軟體和用於金鑰—值儲存的方法
CN111459884B (zh) 一种数据的处理方法、装置、计算机设备和存储介质
US11119912B2 (en) Ordering data updates for improving garbage collection being performed while performing the set of data updates
CN103761190A (zh) 数据处理方法及装置
EP3364303B1 (en) Data arrangement method, storage apparatus, storage controller and storage array
US20190243758A1 (en) Storage control device and storage control method
CN111949210A (zh) 分布式存储系统中元数据存储方法、系统及存储介质
JP2011191835A (ja) 計算機システムおよびアプリケーションプログラムの実行方法
US20130262799A1 (en) Control method and storage device
JP2018181190A (ja) ストレージ装置、およびストレージ制御プログラム
WO2020192710A1 (zh) 基于lsm数据库的垃圾处理的方法、固态硬盘以及存储装置
JP5858308B2 (ja) データベース管理システム、計算機、データベース管理方法
CN111007990B (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40027374

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant