CN112069089A - 回收存储块的方法及装置 - Google Patents
回收存储块的方法及装置 Download PDFInfo
- Publication number
- CN112069089A CN112069089A CN202010956266.9A CN202010956266A CN112069089A CN 112069089 A CN112069089 A CN 112069089A CN 202010956266 A CN202010956266 A CN 202010956266A CN 112069089 A CN112069089 A CN 112069089A
- Authority
- CN
- China
- Prior art keywords
- block
- storage
- bitmap
- storage block
- check code
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
- G06F12/0261—Garbage collection, i.e. reclamation of unreferenced memory using reference counting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请是关于一种回收存储块的方法及装置,属于存储领域。所述方法包括:管理设备接收回收命令,所述回收命令包括待回收存储块的块序号,所述待回收存储块是存储***中的一个存储块,所述存储***对应一个块位图,所述块位图包括所述存储***中的每个存储块对应的状态码,存储块对应的状态码用于标识所述存储块是否为空闲存储块。所述管理设备根据所述块序号,在所述块位图中获取所述待回收存储块对应的状态码。所述管理设备设置所述状态码用于标识删除状态,所述删除状态的状态码用于标识所述待回收存储块为空闲存储块。本申请能够降低I/O消耗和回收存储块的时延。
Description
技术领域
本申请涉及存储领域,特别涉及一种回收存储块的方法及装置。
背景技术
存储***有多个存储块组成,在向存储***中存储数据时,向存储***中的某个存储块中存储数据。在不需要该存储块来存储数据时,可以回收该存储块,以便该存储块可以供其他设备来存储数据。
存储块包括索引区域和数据存储区域,在向存储块存储数据实质是向存储块的数据存储区域存储数据,之后,再在存储块的索引区域中存储该数据的索引信息。在读取数据时,从该索引区域读取该数据的索引信息,根据该索引信息从存储块的数据存储区域中读取该数据。
目前在回收存储块时,在存储块的索引区域中写入删除标记,该删除标记用于标识该存储块为已回收的空闲存储块。这样在需要空闲状态的存储块时,从存储***中寻找索引区域中保存删除标记的存储块,将该存储块清空,之后可以向清空的该存储块中存储数据。
在实现本申请的过程中,发明人发现现有技术至少存在以下问题:
由存储块的读写数据特性,在向存储块的索引区域写入删除标识时,需要先读取整个索引区域中保存的所有索引信息,再将该所有索引信息和该删除标识一起写入该索引区域,读取和写入的数据量较大,这样带来非常高输入/输出(Input/Output,I/O)消耗和时延。
发明内容
为了降低I/O消耗和回收存储块的时延,本申请实施例提供了一种回收存储块的方法及装置。所述技术方案如下:
一方面,本申请提供了一种回收存储块的方法,所述方法包括:
管理设备接收回收命令,所述回收命令包括待回收存储块的块序号,所述待回收存储块是存储***中的一个存储块,所述存储***对应一个块位图,所述块位图包括所述存储***中的每个存储块对应的状态码,存储块对应的状态码用于标识所述存储块是否为空闲存储块;
所述管理设备根据所述块序号,在所述块位图中获取所述待回收存储块对应的状态码;
所述管理设备设置所述状态码用于标识删除状态,所述删除状态的状态码用于标识所述待回收存储块为空闲存储块。
可选的,所述块位图还包括所述存储块对应的第一校验码,所述第一校验码是在回收所述根据所述存储块的索引区域内保存的索引信息生成的,所述索引信息用于标识所述存储块的数据存储区域中保存的数据;所述方法还包括:
所述管理设备接收打开命令,所述打开命令包括待打开存储块的块序号;
所述管理设备根据所述待打开存储块的块序号,在所述块位图中获取所述待打开存储块对应的状态码和第一校验码;
所述管理设备在所述待开存储块对应的状态码用于标识删除状态以及所述第一校验码和第二校验码相同时,打开并清空所述待打开存储块,所述第二校验码是根据所述待打开存储块的索引区域当前保存的索引信息生成的。
可选的,所述方法还包括:
所述管理设备接收关闭命令,所述关闭命令包括待关闭存储块的块序号;
所述管理设备根据所述待关闭存储块的块序号,在所述块位图中将所述待关闭存储块对应的第一校验码更新为第三校验码,所述第三校验码是根据所述待关闭存储块的索引区域中当前保存的索引信息生成的。
可选的,所述块位图包括至少一个位图分片,针对所述至少一个位图分片中的任一个位图分片,所述位图分片对应所述存储***中的一个存储页,所述位图分片包括位图页头和位图数据区,所述位图数据区包括所述存储页中的每个存储块对应的块位图字段;
针对所述存储页中的每个存储块,所述存储块对应的块位图字段包括所述存储块的第一校验码和状态码;
所述位图页头包括所述存储页的页标识、起始存储块的块序号,所述存储页的存储块数目和第四校验码,所述第四校验码是根据所述位图分片生成的校验码。
可选的,所述方法还包括:
所述管理设备接收创建命令,所述创建命令包括所述存储***中的数据块总数目、所述块位图的文件头大小、所述块位图的位图分片大小和位图页头大小;
根据所述数据块总数目、所述块位图的文件头大小、所述块位图的位图分片大小和位图页头大小,创建所述块位图。
可选的,所述根据所述数据块总数目、所述块位图的文件头大小、所述块位图的位图分片大小和位图页头大小,创建所述块位图,包括:
根据所述位图分片大小和所述位图页头大小,确定一个位图分片的位图数据区大小;
根据所述数据块总数目和所述位图数据区大小,确定所述存储***的存储页总数目和所述存储***的每个存储页包括的起始存储块的块序号和存储块数目;
根据所述数据块总数目,所述存储***的存储页总数目和所述存储***的每个存储页包括的起始存储块的块序号和存储块数目,生成所述块位图。
可选的,所述块位图还包括文件头,所述文件头包括所述存储***的存储块总数目、所述存储***的存储页总数目和第五校验码,所述第五校验码是根据所述文件头生成的校验码。
另一方面,本申请提供了一种回收存储块的装置,所述装置包括:
接收模块,用于接收回收命令,所述回收命令包括待回收存储块的块序号,所述待回收存储块是存储***中的一个存储块,所述存储***对应一个块位图,所述块位图包括所述存储***中的每个存储块对应的状态码,存储块对应的状态码用于标识所述存储块是否为空闲存储块;
获取模块,用于根据所述块序号,在所述块位图中获取所述待回收存储块对应的状态码;
设置模块,用于设置所述状态码用于标识删除状态,所述删除状态的状态码用于标识所述待回收存储块为空闲存储块。
可选的,所述块位图还包括所述存储块对应的第一校验码,所述第一校验码是在回收所述根据所述存储块的索引区域内保存的索引信息生成的,所述索引信息用于标识所述存储块的数据存储区域中保存的数据;所述装置还包括:清空模块,
所述接收模块,还用于接收打开命令,所述打开命令包括待打开存储块的块序号;
所述获取模块,还用于根据所述待打开存储块的块序号,在所述块位图中获取所述待打开存储块对应的状态码和第一校验码;
所述清空模块,用于在所述待开存储块对应的状态码用于标识删除状态以及所述第一校验码和第二校验码相同时,打开并清空所述待打开存储块,所述第二校验码是根据所述待打开存储块的索引区域当前保存的索引信息生成的。
可选的,所述装置还包括:更新模块,
所述接收模块,还用于接收关闭命令,所述关闭命令包括待关闭存储块的块序号;
所述更新模块,用于根据所述待关闭存储块的块序号,在所述块位图中将所述待关闭存储块对应的第一校验码更新为第三校验码,所述第三校验码是根据所述待关闭存储块的索引区域中当前保存的索引信息生成的。
可选的,所述块位图包括至少一个位图分片,针对所述至少一个位图分片中的任一个位图分片,所述位图分片对应所述存储***中的一个存储页,所述位图分片包括位图页头和位图数据区,所述位图数据区包括所述存储页中的每个存储块对应的块位图字段;
针对所述存储页中的每个存储块,所述存储块对应的块位图字段包括所述存储块的第一校验码和状态码;
所述位图页头包括所述存储页的页标识、起始存储块的块序号,所述存储页的存储块数目和第四校验码,所述第四校验码是根据所述位图分片生成的校验码。
可选的,所述装置还包括:创建模块,
所述接收模块,还用于接收创建命令,所述创建命令包括所述存储***中的数据块总数目、所述块位图的文件头大小、所述块位图的位图分片大小和位图页头大小;
所述创建模块,用于根据所述数据块总数目、所述块位图的文件头大小、所述块位图的位图分片大小和位图页头大小,创建所述块位图。
可选的,所述创建模块,用于:
根据所述位图分片大小和所述位图页头大小,确定一个位图分片的位图数据区大小;
根据所述数据块总数目和所述位图数据区大小,确定所述存储***的存储页总数目和所述存储***的每个存储页包括的起始存储块的块序号和存储块数目;
根据所述数据块总数目,所述存储***的存储页总数目和所述存储***的每个存储页包括的起始存储块的块序号和存储块数目,生成所述块位图。
可选的,所述块位图还包括文件头,所述文件头包括所述存储***的存储块总数目、所述存储***的存储页总数目和第五校验码,所述第五校验码是根据所述文件头生成的校验码。
另一方面,本申请提供了一种设备,所述电子设备包括处理器和存储器,所述存储器存储至少一条指令,所述至少一条指令被所述处理器加载并执行,以实现上述回收存储块的方法。
另一方面,本申请提供了一种非易失性计算机可读存储介质,用于存储至少一个指令,所述至少一个指令被处理器加载并运行,以实现上述回收存储块的方法。
另一方面,本申请提供了一种计算机程序产品,所述计算机程序产品包括在计算机可读存储介质中存储的计算机程序,并且所述计算程序通过处理器进行加载来实现上述回收存储块的方法。
本申请实施例提供的技术方案可以包括以下有益效果:
在回收待回收存储块时,根据待回收存储块的块序号,在该块位图中获取待回收存储块对应的状态码,设置该状态码用于标识删除状态,该删除状态的状态码用于标识待回收存储块为空闲存储块。由于将该状态码设置用于标识删除状态,就可以实现回收待回收存储块,这样不需要读取存储回收存储块的索引区域保存的索引信息,以及向索引区域写入该索引信息和删除标记,如此减少了I/O消耗和回收存储块的时间。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1是本申请实施例提供的一种网络架构的结构示意图;
图2是本申请实施例提供的一种块位图的结构示意图;
图3是本申请实施例提供的一种创建块位图的方法流程图;
图4是本申请实施例提供的一种加载块位图的方法流程图;
图5是本申请实施例提供的一种回收存储块的方法流程图;
图6是本申请实施例提供的一种打开存储块的方法流程图;
图7是本申请实施例提供的一种关闭存储块的方法流程图;
图8是本申请实施例提供的一种回收存储块的装置结构示意图;
图9是本申请实施例提供的设备结构示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
参见图1,本申请实施例提供了一种网络架构,该网络架构包括管理设备和存储***,管理设备与存储***相连。
存储***包括多个存储块,每个存储块包括索引区域和数据存储区域,数据存储区域用于存储数据,索引区域用于保存存储在数据存储区域中的各数据的索引信息,数据的索引信息用于标识该数据。
管理设备可以与存储***相连,可以用于对存储***中的存储块进行管理。例如,可以为存储***创建块位图,打开存储***中的存储块,关闭存储块和/或回收存储块等操作。
参见图2,块位图包括文件头和至少一个位图分片,该至少一个位图分片位于该文件头之后。文件头包括存储***的存储块总数目、存储***的存储页总数目和第五校验码,第五校验码是根据文件头生成的校验码;
针对至少一个位图分片中的任一个位图分片,该位图分片对应存储***中的一个存储页,该位图分片包括位图页头和位图数据区,该位图数据区包括该存储页中的每个存储块对应的块位图字段。针对该存储页中的每个存储块,该存储块对应的块位图字段包括该存储块的第一校验码和状态码。该位图页头包括该存储页的页标识、起始存储块的块序号,该存储页的存储块数目和第四校验码,第四校验码是根据该位图分片生成的校验码。
参见图3,本申请实施例提供了一种创建块位图的方法,该方法用于为一个空闲的存储***创建该存储***的块位图,包括:
步骤301:管理设备接收创建命令,该创建命令包括存储***中的数据块总数目、该块位图的文件头大小、该块位图的位图分片大小和位图页头大小。
可选的,对于一个空闲的存储***或一个被清空的存储***,用户可以输入该存储***包括的数据块总数目,块位图的文件头大小、位图分片大小和位图页头大小,向管理设备触发创建命令,该创建命令包括该数据块总数目,该块位图的文件头大小、位图分片大小和位图页头大小。
可选的,位图分片大小是磁盘扇区大小的整数倍。
例如,管理设备可以显示输入界面,用户可以在该输入界面中输入存储***包括的数据块总数目为960、该块位图的文件头大小为128字节、位图分片大小为4096字节和位图页头大小为256字节,向管理设备触发包括数据块总数目“960”、文件头大小“128”、位图分片大小“4096”和位图页头大小“256”的创建命令。
可选的,该创建命令可以包括存储***中的数据块总数目。这样管理设备接收该创建命令后,获取默认的块位图的文件头大小、位图分片大小和位图页头大小;或者,配置块位图的文件头大小、位图分片大小和位图页头大小。
步骤302:根据该位图分片大小和该位图页头大小,确定一个位图分片的位图数据区大小。
由于一个位图分片包括位图页头和位图数据区,因此在本步骤中,计算该位图分片大小和该位图页头大小之间的差值,得到一个位图分片的位图数据区大小。
例如,位图分片大小“4096”和位图页头大小“256”,计算该位图分片大小“4096”和该位图页头大小“256”之间的差值,得到一个位图分片的位图数据区大小为3840个字节。
步骤303:根据该数据块总数目和该位图数据区大小,确定存储***的存储页总数目和存储***的每个存储页包括的起始存储块的块序号和存储块数目。
在本步骤中,根据该位图数据区大小,确定一个存储页包括的存储块数目,根据该存储块总数目和一个存储页包括的存储块数目,确定存储***的每个存储页包括的起始存储块的块序号和存储块数目。
可选的,位图存储区中包括一个存储页中的每个存储块对应的块位图字段,每个存储块对应的块位图字段大小为固定大小。
例如,假设每个存储块对应的块位图字段大小为8字节,位图数据区大小为3840个字节。根据该位图数据区大小,确定一个存储页包括的存储块数目3840/8=480,即一个存储页可以包括480个存储块。其中,数据块总数目为960,根据数据块总数目“960”和一个存储页包括的存储块数目“480”确定存储***包括两个存储页。第一个存储页的起始存储块的块序号为1,第一个存储页包括的存储块数目为480,第二个存储页的起始存储块的块序号为481,第二个存储页包括的存储块数目也为480。
可选的,在存储***包括的存储块总数目不是一个存储页包括的存储块数目的整数倍的情况下,该存储***中的最后一个存储页包括的存储块数目小于一个存储页包括的存储块数目。例如,假设数据块总数目为1000,根据数据块总数目“1000”和一个存储页包括的存储块数目“480”确定存储***包括三个存储页。第一个存储页的起始存储块的块序号为1,第一个存储页包括的存储块数目为480,第二个存储页的起始存储块的块序号为481,第二个存储页包括的存储块数目也为480,第三个存储页的起始存储块的块序号为961,第三个存储页包括的存储块数目为40。
步骤304:根据该数据块总数目,存储***的存储页总数目和存储***的每个存储页包括的起始存储块的块序号和存储块数目,生成该块位图。
参见图2,在本步骤中,生成包括该存储***的数据块总数目、存储页总数目和第五校验码的文件头,第五校验码是基于该文件头中除第五校验码之外的其他内容生成的。生成该存储***中的每个存储页对应的位图分片。
对于每个存储页对应的位图分片,该位图分片包括位图页头和位图数据区,该位图页头位于该位图数据区之前,该位图数据区包括该存储页中的每个存储块对应的块位图字段。对于每个存储块对应的块位图字段,该块位图字段包括该存储块的状态码和第一校验码。可选的,在创建块位图时,该状态码用于标识该存储块为未删除状态,第一校验码可以为空,例如,用比特值0000表示为空的第一校验码。该位图页头包括该存储页的页标识、起始存储块的块序号、存储块数目和第四校验码,第四校验码是根据该位图分片中除第四校验码之外的其他内容生成的校验码。
可选的,上述第一校验码、第四校验码和第五校验码可以为循环冗余校验(CyclicRedundancy Check,CRC)码。
例如,参见图2,生成的文件头包括该存储***的存储块总数目“960”,存储页总数目“2”和第五校验字段。可选的,该文件头还包括信息头和/或文件创建时间,可选的,该文件头还包括保留字段等。该信息头包括该块位图的版本和/或数字签名等,文件创建时间是创建该块位图的时间。
接下来,生成第一个存储页对应的位图分片,该位图分片中的位图数据区包括480个存储块的块位图字段,存储块的块位图字段包括该存储块的状态码和第一校验数据。该位图分片中的位图页头包括第一个存储页的页ID为“1”,起始存储块的块序号“1”、存储块数目“480”和第三校验字段。可选的,该存储块的块位图字段还包括最后一次更新时间,该最后一次更新时间是生成该位图分片的时间。可选的,位图页头还包括保留字段,可选的,该存储块的块位图字段还包括保留字段。以及,
生成第二个存储页对应的位图分片,该位图分片中的位图数据区包括480个存储块的块位图字段,存储块的块位图字段包括该存储块的状态码和第一校验数据。该位图分片中的位图页头包括第一个存储页的页ID为“2”,起始存储块的块序号“481”、存储块数目“480”和第三校验字段。可选的,该存储块的块位图字段还包括最后一次更新时间,该最后一次更新时间是生成该位图分片的时间。可选的,位图页头还包括保留字段,可选的,该存储块的块位图字段还包括保留字段。
可选的,创建的块位图保存在管理设备的内存中。管理设备可以将该块位图保存到存储***中。可选的,存储***中包括主块位图文件和备块位图文件,管理设备可以将创建的块位图保存到主块位图文件和备块位图文件中。
可选的,将主块位图文件的地址和备块位图文件的地址保存到存储***的启动块。
在本申请实施例中,由于创建的块位图中包括存储***中的每个存储块对应的块位图字段,该块位图字段包括状态码和第一校验码,通过该状态码和第一校验码可以回收存储***中的存储块,为快速回收存储块提供技术支持。
参见图4,本申请实施例提供了一种加载块位图的方法,该方法用于在启动一个存储***时,将该存储***的块位图加载到管理设备的内存中,包括:
步骤401:管理设备从存储***中获取主块位图文件和备块位图文件。
可选的,管理设备从存储***的启动块中读取主块位图文件的地址和备块位图文件的地址,根据主块位图文件的地址从存储***中读取主块位图文件,以及根据备块位图文件的地址从存储***中读取备块位图文件。
步骤402:管理设备从主块位图文件或备块位图文件中读取块位图的文件头,并将该文件头加载到管理设备的内存中。
在本步骤中,可以通过如下4021至4023的操作来实现,该4021至4023的操作分别为:
4021:管理设备从主块位图文件中读取块位图的文件头(称为主文件头),以及,从备块位图文件中读取块位图的文件头(称为备文件头)。
4022:根据主文件头中的第五校验码对主文件头校验,以及根据备文件头中的第五校验码对备文件头校验。
可选的,根据主文件头中除第五校验码之外的其他内容,生成一个校验码,如果主文件头中的第五校验码与生成的校验码相同,则校验出主文件头正确,如果主文件头中的第五校验码与生成的校验码不同,则校验出主文件头错误。
根据备文件头中除第五校验码之外的内容生成一个校验码,如果备文件头中的第五校验码与生成的校验码相同,则校验出备文件头正确,如果备文件头中的第五校验码与生成的校验码不同,则校验出备文件头错误。
4023:在校验出主文件头正确时,将主文件头加载到管理设备的内存中;或者,在校验出主文件头错误且备文件头正确时,将备文件头加载到管理设备的内存中。
可选的,在校验出主文件头正确且备文件头错误时,将备块位图文件中的备文件头更新为主文件头。或者,在校验出备文件头正确且主文件头错误时,将主块位图文件中的主文件头更新为备文件头。
步骤403:管理设备从主块位图文件或备块位图文件中读取块位图的第i个位图分片,i=1、2、……,并将第i个位图分片加载到内存中。
在本步骤中,可以通过如下4031至4033的操作来实现,该4031至4033的操作分别为:
4031:管理设备从主块位图文件中读取块位图的第i个位图分片(称为第i个主位图分片),以及,从备块位图文件中读取块位图的第i个位图分片(称为第i个备位图分片)。
4032:根据第i个主位图分片中的第四校验码对第i个主位图分片校验,以及根据第i个备位图分片中的第四校验码对第i个备位图分片校验。
可选的,根据第i个主位图分片中除第四校验码之外的内容生成第七校验码,如果第七校验码与第i个主位图分片中的第四校验码相同,则校验出第i个主位图分片正确,如果第七校验码与第i个主位图分片中的第四校验码不同,则校验出第i个主位图分片错误。
根据第i个备位图分片中除第四校验码之外的内容生成第八校验码,如果第八校验码与第i个备位图分片中的第四校验码相同,则校验出第i个备位图分片正确,如果第八校验码与第i个备位图分片中的第四校验码不同,则校验出第i个备位图分片错误。
4033:在校验出第i个主位图分片正确时,将第i个主位图分片加载到管理设备的内存中;或者,在校验出第i个主位图分片错误且第i个备位图分片正确时,将第i个备位图分片加载到管理设备的内存中。
可选的,在校验出第i个主位图分片正确且第i个备位图分片错误时,将备块位图文件中的第i个备位图分片更新为第i个主位图分片。或者,在校验出第i个备位图分片正确且第i个主位图分片错误时,将主块位图文件中的第i个主位图分片更新为第i个备位图分片。
管理设备重复执行步骤403的操作,直至将存储***中的每个存储页对应的位图分片加载到管理设备的内存中,以实现将存储***中的整个块位图加到管理设备的内存中。
在本申请实施例中,将存储***的块位图加载到管理设备的内存中,这样便于使用内存中保存的该块位图,回收存储块。
参见图5,本申请实施例提供了一种回收存储块的方法,该方法应用于图1所示的网络架构,包括:
步骤501:管理设备接收回收命令,该回收命令包括待回收存储块的块序号,待回收存储块是存储***中的一个存储块。
可选的,管理设备可以显示输入界面,用户可以在该输入界面中输入待回收存储块的块序号,并通过输入界面触发回收命令,该回收命令包括待回收存储块的块序号。
步骤502:管理设备根据待回收存储块的块序号,在该块位图中获取待回收存储块对应的状态码。
该块位图是保存在管理设备的内存中的块位图。
在本步骤中,管理设备从块位图中获取存储***中的每个存储页的起始存储块的块序号,根据待回收存储块的块序号和每个存储页的起始存储块的块序号,确定待回收存储块所在的存储页。根据该存储页的起始存储块的块序号、待回收存储块的块序号和一个块位图字段的大小,确定待回收存储块对应的块位图字段在该存储页对应的位图分片中的偏移,根据该偏移,从该存储页对应的位图分片中确定待回收存储块对应的块位图字段,从该块位图字段中读取待回收存储块对应的状态码。
步骤503:管理设备设置该状态码用于标识删除状态,该删除状态的状态码用于标识待回收存储块为空闲存储块。
可选的,对于待回收存储块所在的存储页,该存储页对应的位图分片包括位图页头,该位图页头包括最后一次更新的时间和第四校验码。将该位图页头中的最后一次更新的时间更新为当前时间。再根据该位图分片除第四校验码之外的内容生成校验码,将该位图页头中的第四校验码更新为生成的校验码。
在本申请实施例中,在回收待回收存储块时,根据待回收存储块的块序号,在该块位图中获取待回收存储块对应的状态码,设置该状态码用于标识删除状态,该删除状态的状态码用于标识待回收存储块为空闲存储块。由于将该状态码设置用于标识删除状态,就可以实现回收待回收存储块,这样不需要读取存储回收存储块的索引区域保存的索引信息,以及向索引区域写入该索引信息和删除标记,如此减少了I/O消耗和回收存储块的时间。
参见图6,本申请实施例提供了一种打开存储块的方法,该方法应用于图1所示的网络架构,包括:
步骤601:管理设备接收打开命令,该打开命令包括待打开存储块的块序号。
可选的,管理设备可以显示输入界面,用户可以在该输入界面中输入待打开存储块的块序号,并通过输入界面触发打开命令,该打开命令包括待打开存储块的块序号。
步骤602:管理设备根据待打开存储块的块序号,在该块位图中获取待打开存储块对应的状态码和第一校验码。
该块位图是保存在管理设备的内存中的块位图。
在本步骤中,管理设备从块位图中获取存储***中的每个存储页的起始存储块的块序号,根据待打开存储块的块序号和每个存储页的起始存储块的块序号,确定待打开存储块所在的存储页。根据该存储页的起始存储块的块序号、待打开存储块的块序号和一个块位图字段的大小,确定待打开存储块对应的块位图字段在该存储页对应的位图分片中的偏移,根据该偏移,从该存储页对应的位图分片中确定待打开存储块对应的块位图字段,从该块位图字段中读取待打开存储块对应的状态码和第一校验码。
步骤603:管理设备在待开存储块对应的状态码用于标识删除状态以及第一校验码和第二校验码相同时,打开并清空待打开存储块,第二校验码是根据待打开存储块当前存储的索引信息生成的。
在本步骤中,在待开存储块对应的状态码用于标识删除状态,表明待打开存储块可能是一个空闲存储块,在当前之前可能已触发回收待打开存储块。根据待打开存储块的块序号,从存储***中的待打开存储块中读取待打开存储块中保存的索引信息,根据该索引信息生成第二校验码。在第一校验码和第二校验码相同时,表明在回收待打开存储块之后,没有向待打开存储块中写入数据。而待打开存储块中存储的数据是在触发回收待打开存储块之前,已存储在待打开存储块中,在触发回收待打开存储块时待打开存储块中的数据已经过用户确认并可以被清空,从而打开待打开存储块并清空待打开存储块已保存的数据。然后管理设备向待打开存储块中写入数据。
可选的,在待开存储块对应的状态码用于标识未删除状态,表明待打开存储块不是一个空闲存储块,管理设备打开待打开存储块,在待打开存储块中读取或写入数据。
可选的,管理设备向存储块写入数据的过程,可以为:管理设备向该存储块的数据存储区域写入数据,以及向该存储块的索引区域写入该数据的索引信息。
可选的,在待开存储块对应的状态码用于标识删除状态,且第一校验码和第二校验码相同时,表明在回收待打开存储块之后,可能向待打开存储块中写入数据和该数据的索引信息。而在回收待打开存储块之后写入的数据可能没有被用户确认可以清空。所以管理设备打开待打开存储块,在待打开存储块中读取或写入数据。
在本申请实施例中,由于管理设备在待开存储块对应的状态码用于标识删除状态以及第一校验码和第二校验码相同时,表明待打开存储块中已被触发回收的存储块。打开并清空待打开存储块。从而实现了回收待打开存储块的空间,从而为通过块位图回收存储块提供技术支持。
参见图7,本申请实施例提供了一种关闭存储块的方法,该方法应用于图1所示的网络架构,包括:
步骤701:管理设备接收关闭命令,该关闭命令包括待关闭存储块的块序号。
可选的,管理设备可以显示输入界面,用户可以在该输入界面中输入待关闭存储块的块序号,并通过输入界面触发关闭命令,该关闭命令包括待关闭存储块的块序号。
步骤702:管理设备根据待关闭存储块的块序号,在该块位图中获取待关闭存储块对应的第一校验码。
该块位图是保存在管理设备的内存中的块位图。
在本步骤中,管理设备从块位图中获取存储***中的每个存储页的起始存储块的块序号,根据待关闭存储块的块序号和每个存储页的起始存储块的块序号,确定待关闭存储块所在的存储页。根据该存储页的起始存储块的块序号、待关闭存储块的块序号和一个块位图字段的大小,确定待关闭存储块对应的块位图字段在该存储页对应的位图分片中的偏移,根据该偏移,从该存储页对应的位图分片中确定待关闭存储块对应的块位图字段,从该块位图字段中读取待关闭存储块对应的第一校验码。
步骤703:管理设备根据待关闭存储块的块序号,从存储***中获取待关闭存储块的索引区域中保存的索引信息,根据该索引信息生成第三校验码。
步骤704:管理设备在该块位图中,将待关闭存储块对应的第一校验码更新为第三校验码。
可选的,管理设备在该块位图中,根据待关闭存储块的块序号确定待关闭存储块所在存储页对应的位图分片,将该位图分片保存的最后一次更新的时间更新为当前时间,根据位图分片包括的除第四校验码之外的其他内容生成第六校验码,将该位图分片保存的第四校验码更新为第六校验码,从而得到该存储页对应的新位图分片。
可选的,在文件***中的主块位图文件和备块位图文件中,将该存储页对应的位图分片更新为管理设备的内存中保存的该新位图分片。
在本申请实施例中,由于管理设备在关闭待关闭存储块时,根据待关闭存储块的索引区域保存的索引信息生成第六验码,将块位图中的待关闭存储块对应的第四校验码更新为第六校验码。从而为通过块位图回收存储块提供技术支持。
参见图8,本申请实施例提供了一种回收存储块的装置800,所述装置800可以部署在上述任意实施例提供的管理设备中,包括:
接收模块801,用于接收回收命令,所述回收命令包括待回收存储块的块序号,所述待回收存储块是存储***中的一个存储块,所述存储***对应一个块位图,所述块位图包括所述存储***中的每个存储块对应的状态码,存储块对应的状态码用于标识所述存储块是否为空闲存储块;
获取模块802,用于根据所述块序号,在所述块位图中获取所述待回收存储块对应的状态码;
设置模块803,用于设置所述状态码用于标识删除状态,所述删除状态的状态码用于标识所述待回收存储块为空闲存储块。
可选的,所述块位图还包括所述存储块对应的第一校验码,所述第一校验码是在回收所述根据所述存储块的索引区域内保存的索引信息生成的,所述索引信息用于标识所述存储块的数据存储区域中保存的数据;所述装置还包括:清空模块,
所述接收模块801,还用于接收打开命令,所述打开命令包括待打开存储块的块序号;
所述获取模块802,还用于根据所述待打开存储块的块序号,在所述块位图中获取所述待打开存储块对应的状态码和第一校验码;
所述清空模块,用于在所述待开存储块对应的状态码用于标识删除状态以及所述第一校验码和第二校验码相同时,打开并清空所述待打开存储块,所述第二校验码是根据所述待打开存储块的索引区域当前保存的索引信息生成的。
可选的,所述装置800还包括:更新模块,
所述接收模块801,还用于接收关闭命令,所述关闭命令包括待关闭存储块的块序号;
所述更新模块,用于根据所述待关闭存储块的块序号,在所述块位图中将所述待关闭存储块对应的第一校验码更新为第三校验码,所述第三校验码是根据所述待关闭存储块的索引区域中当前保存的索引信息生成的。
可选的,所述块位图包括至少一个位图分片,针对所述至少一个位图分片中的任一个位图分片,所述位图分片对应所述存储***中的一个存储页,所述位图分片包括位图页头和位图数据区,所述位图数据区包括所述存储页中的每个存储块对应的块位图字段;
针对所述存储页中的每个存储块,所述存储块对应的块位图字段包括所述存储块的第一校验码和状态码;
所述位图页头包括所述存储页的页标识、起始存储块的块序号,所述存储页的存储块数目和第四校验码,所述第四校验码是根据所述位图分片生成的校验码。
可选的,所述装置800还包括:创建模块,
所述接收模块801,还用于接收创建命令,所述创建命令包括所述存储***中的数据块总数目、所述块位图的文件头大小、所述块位图的位图分片大小和位图页头大小;
所述创建模块,用于根据所述数据块总数目、所述块位图的文件头大小、所述块位图的位图分片大小和位图页头大小,创建所述块位图。
可选的,所述创建模块,用于:
根据所述位图分片大小和所述位图页头大小,确定一个位图分片的位图数据区大小;
根据所述数据块总数目和所述位图数据区大小,确定所述存储***的存储页总数目和所述存储***的每个存储页包括的起始存储块的块序号和存储块数目;
根据所述数据块总数目,所述存储***的存储页总数目和所述存储***的每个存储页包括的起始存储块的块序号和存储块数目,生成所述块位图。
可选的,所述块位图还包括文件头,所述文件头包括所述存储***的存储块总数目、所述存储***的存储页总数目和第五校验码,所述第五校验码是根据所述文件头生成的校验码。
在本申请实施例中,在回收待回收存储块时,获取模块根据待回收存储块的块序号,在该块位图中获取待回收存储块对应的状态码,设置模块设置该状态码用于标识删除状态,该删除状态的状态码用于标识待回收存储块为空闲存储块。由于设置模块将该状态码设置用于标识删除状态,就可以实现回收待回收存储块,这样不需要读取存储回收存储块的索引区域保存的索引信息,以及向索引区域写入该索引信息和删除标记,如此减少了I/O消耗和回收存储块的时间。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图9示出了本发明一个示例性实施例提供的设备900的结构框图。该设备900可以是上述任意实施例提供的管理设备。可选的,该设备900可以是便携式移动终端,比如:智能手机、平板电脑、MP3播放器(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。设备900还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。
通常,设备900包括有:处理器901和存储器902。
处理器901可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器901可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器901也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器901可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器901还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器902可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器902还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器902中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器901所执行以实现本申请中方法实施例提供的回收存储块方法、创建块位图的方法、加载块位图的方法、打开存储块的方法和/或关闭存储块的方法。
在一些实施例中,设备900还可选包括有:***设备接口903和至少一个***设备。处理器901、存储器902和***设备接口903之间可以通过总线或信号线相连。各个***设备可以通过总线、信号线或电路板与***设备接口903相连。具体地,***设备包括:射频电路904、触摸显示屏905、摄像头906、音频电路907、定位组件908和电源909中的至少一种。
***设备接口903可被用于将I/O(Input/Output,输入/输出)相关的至少一个***设备连接到处理器901和存储器902。在一些实施例中,处理器901、存储器902和***设备接口903被集成在同一芯片或电路板上;在一些其他实施例中,处理器901、存储器902和***设备接口903中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路904用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路904通过电磁信号与通信网络以及其他通信设备进行通信。射频电路904将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路904包括:天线***、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路904可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:万维网、城域网、内联网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路904还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。
显示屏905用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏905是触摸显示屏时,显示屏905还具有采集在显示屏905的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器901进行处理。此时,显示屏905还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏905可以为一个,设置设备900的前面板;在另一些实施例中,显示屏905可以为至少两个,分别设置在设备900的不同表面或呈折叠设计;在再一些实施例中,显示屏905可以是柔性显示屏,设置在设备900的弯曲表面上或折叠面上。甚至,显示屏905还可以设置成非矩形的不规则图形,也即异形屏。显示屏905可以采用LCD(LiquidCrystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。
摄像头组件906用于采集图像或视频。可选地,摄像头组件906包括前置摄像头和后置摄像头。通常,前置摄像头设置在设备的前面板,后置摄像头设置在设备的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件906还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路907可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器901进行处理,或者输入至射频电路904以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在设备900的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器901或射频电路904的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路907还可以包括耳机插孔。
定位组件908用于定位设备900的当前地理位置,以实现导航或LBS(LocationBased Service,基于位置的服务)。定位组件908可以是基于美国的GPS(GlobalPositioning System,全球定位***)、中国的北斗***或俄罗斯的伽利略***的定位组件。
电源909用于为设备900中的各个组件进行供电。电源909可以是交流电、直流电、一次性电池或可充电电池。当电源909包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。
在一些实施例中,设备900还包括有一个或多个传感器910。该一个或多个传感器910包括但不限于:加速度传感器911、陀螺仪传感器912、压力传感器913、指纹传感器914、光学传感器915以及接近传感器916。
加速度传感器911可以检测以设备900建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器911可以用于检测重力加速度在三个坐标轴上的分量。处理器901可以根据加速度传感器911采集的重力加速度信号,控制触摸显示屏905以横向视图或纵向视图进行用户界面的显示。加速度传感器911还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器912可以检测设备900的机体方向及转动角度,陀螺仪传感器912可以与加速度传感器911协同采集用户对设备900的3D动作。处理器901根据陀螺仪传感器912采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器913可以设置在设备900的侧边框和/或触摸显示屏905的下层。当压力传感器913设置在设备900的侧边框时,可以检测用户对设备900的握持信号,由处理器901根据压力传感器913采集的握持信号进行左右手识别或快捷操作。当压力传感器913设置在触摸显示屏905的下层时,由处理器901根据用户对触摸显示屏905的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
指纹传感器914用于采集用户的指纹,由处理器901根据指纹传感器914采集到的指纹识别用户的身份,或者,由指纹传感器914根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器901授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器914可以被设置设备900的正面、背面或侧面。当设备900上设置有物理按键或厂商Logo时,指纹传感器914可以与物理按键或厂商Logo集成在一起。
光学传感器915用于采集环境光强度。在一个实施例中,处理器901可以根据光学传感器915采集的环境光强度,控制触摸显示屏905的显示亮度。具体地,当环境光强度较高时,调高触摸显示屏905的显示亮度;当环境光强度较低时,调低触摸显示屏905的显示亮度。在另一个实施例中,处理器901还可以根据光学传感器915采集的环境光强度,动态调整摄像头组件906的拍摄参数。
接近传感器916,也称距离传感器,通常设置在设备900的前面板。接近传感器916用于采集用户与设备900的正面之间的距离。在一个实施例中,当接近传感器916检测到用户与设备900的正面之间的距离逐渐变小时,由处理器901控制触摸显示屏905从亮屏状态切换为息屏状态;当接近传感器916检测到用户与设备900的正面之间的距离逐渐变大时,由处理器901控制触摸显示屏905从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图9中示出的结构并不构成对设备900的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
本领域技术人员在考虑说明书及实践这里公开的申请后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
Claims (10)
1.一种回收存储块的方法,其特征在于,所述方法包括:
管理设备接收回收命令,所述回收命令包括待回收存储块的块序号,所述待回收存储块是存储***中的一个存储块,所述存储***对应一个块位图,所述块位图包括所述存储***中的每个存储块对应的状态码,存储块对应的状态码用于标识所述存储块是否为空闲存储块;
所述管理设备根据所述块序号,在所述块位图中获取所述待回收存储块对应的状态码;
所述管理设备设置所述状态码用于标识删除状态,所述删除状态的状态码用于标识所述待回收存储块为空闲存储块。
2.如权利要求1所述的方法,其特征在于,所述块位图还包括所述存储块对应的第一校验码,所述第一校验码是在回收所述根据所述存储块的索引区域内保存的索引信息生成的,所述索引信息用于标识所述存储块的数据存储区域中保存的数据;所述方法还包括:
所述管理设备接收打开命令,所述打开命令包括待打开存储块的块序号;
所述管理设备根据所述待打开存储块的块序号,在所述块位图中获取所述待打开存储块对应的状态码和第一校验码;
所述管理设备在所述待开存储块对应的状态码用于标识删除状态以及所述第一校验码和第二校验码相同时,打开并清空所述待打开存储块,所述第二校验码是根据所述待打开存储块的索引区域当前保存的索引信息生成的。
3.如权利要求1或2所述的方法,其特征在于,所述方法还包括:
所述管理设备接收关闭命令,所述关闭命令包括待关闭存储块的块序号;
所述管理设备根据所述待关闭存储块的块序号,在所述块位图中将所述待关闭存储块对应的第一校验码更新为第三校验码,所述第三校验码是根据所述待关闭存储块的索引区域中当前保存的索引信息生成的。
4.如权利要求1或2所述的方法,其特征在于,所述块位图包括至少一个位图分片,针对所述至少一个位图分片中的任一个位图分片,所述位图分片对应所述存储***中的一个存储页,所述位图分片包括位图页头和位图数据区,所述位图数据区包括所述存储页中的每个存储块对应的块位图字段;
针对所述存储页中的每个存储块,所述存储块对应的块位图字段包括所述存储块的第一校验码和状态码;
所述位图页头包括所述存储页的页标识、起始存储块的块序号,所述存储页的存储块数目和第四校验码,所述第四校验码是根据所述位图分片生成的校验码。
5.如权利要求4所述的方法,其特征在于,所述方法还包括:
所述管理设备接收创建命令,所述创建命令包括所述存储***中的数据块总数目、所述块位图的文件头大小、所述块位图的位图分片大小和位图页头大小;
根据所述数据块总数目、所述块位图的文件头大小、所述块位图的位图分片大小和位图页头大小,创建所述块位图。
6.如权利要求5所述的方法,其特征在于,所述根据所述数据块总数目、所述块位图的文件头大小、所述块位图的位图分片大小和位图页头大小,创建所述块位图,包括:
根据所述位图分片大小和所述位图页头大小,确定一个位图分片的位图数据区大小;
根据所述数据块总数目和所述位图数据区大小,确定所述存储***的存储页总数目和所述存储***的每个存储页包括的起始存储块的块序号和存储块数目;
根据所述数据块总数目,所述存储***的存储页总数目和所述存储***的每个存储页包括的起始存储块的块序号和存储块数目,生成所述块位图。
7.如权利要求4所述的方法,其特征在于,所述块位图还包括文件头,所述文件头包括所述存储***的存储块总数目、所述存储***的存储页总数目和第五校验码,所述第五校验码是根据所述文件头生成的校验码。
8.一种回收存储块的装置,其特征在于,所述装置包括:
接收模块,用于接收回收命令,所述回收命令包括待回收存储块的块序号,所述待回收存储块是存储***中的一个存储块,所述存储***对应一个块位图,所述块位图包括所述存储***中的每个存储块对应的状态码,存储块对应的状态码用于标识所述存储块是否为空闲存储块;
获取模块,用于根据所述块序号,在所述块位图中获取所述待回收存储块对应的状态码;
设置模块,用于设置所述状态码用于标识删除状态,所述删除状态的状态码用于标识所述待回收存储块为空闲存储块。
9.如权利要求8所述的装置,其特征在于,所述块位图还包括所述存储块对应的第一校验码,所述第一校验码是在回收所述根据所述存储块的索引区域内保存的索引信息生成的,所述索引信息用于标识所述存储块的数据存储区域中保存的数据;所述装置还包括:清空模块,
所述接收模块,还用于接收打开命令,所述打开命令包括待打开存储块的块序号;
所述获取模块,还用于根据所述待打开存储块的块序号,在所述块位图中获取所述待打开存储块对应的状态码和第一校验码;
所述清空模块,用于在所述待开存储块对应的状态码用于标识删除状态以及所述第一校验码和第二校验码相同时,打开并清空所述待打开存储块,所述第二校验码是根据所述待打开存储块的索引区域当前保存的索引信息生成的。
10.如权利要求8或9所述的装置,其特征在于,所述块位图包括至少一个位图分片,针对所述至少一个位图分片中的任一个位图分片,所述位图分片对应所述存储***中的一个存储页,所述位图分片包括位图页头和位图数据区,所述位图数据区包括所述存储页中的每个存储块对应的块位图字段;
针对所述存储页中的每个存储块,所述存储块对应的块位图字段包括所述存储块的第一校验码和状态码;
所述位图页头包括所述存储页的页标识、起始存储块的块序号,所述存储页的存储块数目和第四校验码,所述第四校验码是根据所述位图分片生成的校验码。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010956266.9A CN112069089B (zh) | 2020-09-11 | 2020-09-11 | 回收存储块的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010956266.9A CN112069089B (zh) | 2020-09-11 | 2020-09-11 | 回收存储块的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112069089A true CN112069089A (zh) | 2020-12-11 |
CN112069089B CN112069089B (zh) | 2022-09-27 |
Family
ID=73695484
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010956266.9A Active CN112069089B (zh) | 2020-09-11 | 2020-09-11 | 回收存储块的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112069089B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114443703A (zh) * | 2021-12-15 | 2022-05-06 | 北京达佳互联信息技术有限公司 | 数据处理方法、装置、电子设备及存储介质 |
CN118210659A (zh) * | 2024-05-22 | 2024-06-18 | 济南浪潮数据技术有限公司 | 灾备存储***的管理方法、设备、***、产品及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080307164A1 (en) * | 2007-06-08 | 2008-12-11 | Sinclair Alan W | Method And System For Memory Block Flushing |
CN106528438A (zh) * | 2016-10-08 | 2017-03-22 | 华中科技大学 | 一种固态存储设备的分段式垃圾回收方法 |
WO2019113729A1 (en) * | 2017-12-11 | 2019-06-20 | Micron Technology, Inc. | Scheme to improve efficiency of garbage collection in cached flash translation layer |
CN110175001A (zh) * | 2019-05-27 | 2019-08-27 | 牧星机器人(江苏)有限公司 | 一种nor-flash数据存储方法、计算机设备及存储介质 |
CN110795275A (zh) * | 2019-10-28 | 2020-02-14 | 深圳忆联信息***有限公司 | 基于异常掉电过程中的异常块识别方法和装置 |
CN111324293A (zh) * | 2018-12-14 | 2020-06-23 | 杭州海康威视***技术有限公司 | 一种存储***、存储数据的方法、读取数据的方法及装置 |
CN111324287A (zh) * | 2018-12-14 | 2020-06-23 | 北京兆易创新科技股份有限公司 | 一种存储器 |
-
2020
- 2020-09-11 CN CN202010956266.9A patent/CN112069089B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080307164A1 (en) * | 2007-06-08 | 2008-12-11 | Sinclair Alan W | Method And System For Memory Block Flushing |
CN106528438A (zh) * | 2016-10-08 | 2017-03-22 | 华中科技大学 | 一种固态存储设备的分段式垃圾回收方法 |
WO2019113729A1 (en) * | 2017-12-11 | 2019-06-20 | Micron Technology, Inc. | Scheme to improve efficiency of garbage collection in cached flash translation layer |
CN111324293A (zh) * | 2018-12-14 | 2020-06-23 | 杭州海康威视***技术有限公司 | 一种存储***、存储数据的方法、读取数据的方法及装置 |
CN111324287A (zh) * | 2018-12-14 | 2020-06-23 | 北京兆易创新科技股份有限公司 | 一种存储器 |
CN110175001A (zh) * | 2019-05-27 | 2019-08-27 | 牧星机器人(江苏)有限公司 | 一种nor-flash数据存储方法、计算机设备及存储介质 |
CN110795275A (zh) * | 2019-10-28 | 2020-02-14 | 深圳忆联信息***有限公司 | 基于异常掉电过程中的异常块识别方法和装置 |
Non-Patent Citations (2)
Title |
---|
孙丰等: "YAFFS文件***的研究与改进", 《计算机工程》 * |
晏敏等: "开放式大容量NAND Flash数据存储***设计与实现", 《微电子学与计算机》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114443703A (zh) * | 2021-12-15 | 2022-05-06 | 北京达佳互联信息技术有限公司 | 数据处理方法、装置、电子设备及存储介质 |
CN118210659A (zh) * | 2024-05-22 | 2024-06-18 | 济南浪潮数据技术有限公司 | 灾备存储***的管理方法、设备、***、产品及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112069089B (zh) | 2022-09-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110308956B (zh) | 一种应用界面显示方法、装置及移动终端 | |
CN107979851B (zh) | 异常数据上报方法及装置 | |
CN108132790B (zh) | 检测无用代码的方法、装置及计算机存储介质 | |
CN110288689B (zh) | 对电子地图进行渲染的方法和装置 | |
CN111897465B (zh) | 弹窗显示方法、装置、设备及存储介质 | |
CN112069089B (zh) | 回收存储块的方法及装置 | |
CN110677713B (zh) | 视频图像处理方法及装置、存储介质 | |
CN115766490A (zh) | 校准数据的获取方法、校准数据的存储方法、装置及设备 | |
CN109117466B (zh) | 表格格式转换方法、装置、设备及存储介质 | |
CN111813322A (zh) | 存储池的创建方法、装置、设备及存储介质 | |
CN110032421B (zh) | 内存中图集的管理方法、装置、终端及存储介质 | |
CN111797017A (zh) | 存储日志的方法、装置、测试设备及存储介质 | |
CN111666076A (zh) | 图层添加方法、装置、终端及存储介质 | |
CN110992954A (zh) | 语音识别的方法、装置、设备及存储介质 | |
CN110321059B (zh) | 数据处理方法、装置及计算机可读存储介质 | |
CN112181915A (zh) | 执行业务的方法、装置、终端和存储介质 | |
CN115344537A (zh) | 存储空间分配的方法、装置、文件***和存储介质 | |
CN114595019A (zh) | 应用程序的主题设置方法、装置、设备及存储介质 | |
CN110471613B (zh) | 存储数据的方法、读取数据的方法、装置及*** | |
CN113408989A (zh) | 汽车数据的比对方法、装置及计算机存储介质 | |
CN108881715B (zh) | 拍摄模式的启用方法、装置、终端及存储介质 | |
CN108733831B (zh) | 一种对词库进行处理的方法及装置 | |
CN113301422A (zh) | 获取视频封面的方法、终端及存储介质 | |
CN110427362B (zh) | 一种获取数据库类型的方法及装置 | |
CN113495770A (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 |