CN104102708A - 一种实现小文件存取的方法及装置 - Google Patents
一种实现小文件存取的方法及装置 Download PDFInfo
- Publication number
- CN104102708A CN104102708A CN201410334182.6A CN201410334182A CN104102708A CN 104102708 A CN104102708 A CN 104102708A CN 201410334182 A CN201410334182 A CN 201410334182A CN 104102708 A CN104102708 A CN 104102708A
- Authority
- CN
- China
- Prior art keywords
- inode
- file
- data
- written
- reading
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 16
- 238000001514 detection method Methods 0.000 claims description 10
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种实现小文件存取的方法及装置,其中该实现小文件存取的方法包括:检测写入文件的大小;将写入文件的大小与预先给定的阈值进行比较,当写入文件的大小小于或等于给定阈值时,则将写入文件的数据存放在数据结构inode中,并且在所述inode中添加标志位为1;否则,将所述写入文件存入inode指向的数据块中,在所述inode中添加标志位为0;根据所述inode中的标志位读取写入文件的数据。该小文件存取的方法大大提高了小文件存储和读取的速度。
Description
技术领域
本发明涉及计算机存储技术,尤指一种实现小文件存取的方法及装置。
背景技术
小文件一般指1MB以下的文件。大量小文件的存储和读取一直是存储系统的难以解决的难题,尤其随着计算机技术的发展,数据会越来越多。
现有技术一般是这样存放数据的:首先创建一个数据结构(inode),每个inode是唯一的,且分别指向一个数据块,将写入文件的数据存放在这个数据块中,inode和数据块是一一对应的。现在的多数文件系统,并不区别对待小文件和大文件,即不按照文件的大小进行区分,都是一样的存储和读取。这就使得大量的随机读写小文件会很慢,延迟很高。如何加快小文件的存取速度,一直是个悬而未决的难题。
发明内容
为了解决上述问题,本发明提供了一种实现小文件存取的方法及装置,能够有效提高小文件存储和读取的速度。
为了达到上述发明目的,本发明公开了一种实现小文件存取的方法,包括:
检测写入文件的大小;
将写入文件的大小与预先给定的阈值进行比较,当写入文件的大小小于或等于给定阈值时,则将写入文件的数据存放在数据结构inode中,并且在inode中添加标志位为1;否则,将写入文件存入inode指向的数据块中,在inode中添加标志位为0;
根据inode中的标志位读取写入文件的数据。
进一步地,根据inode中的标志位读取写入文件的数据,包括:
当inode添加的标志位为1时,在inode中读取写入文件的数据;
当inode添加的标志位为0时,则在inode指向的数据块中读取写入文件的数据。
本发明还公开了一种实现小文件存取的装置,包括:文件大小检测模块、比较模块、第一存储模块、第二存储模块和读取模块;其中,
文件大小检测模块,用于检测写入文件的大小,并将检测结果传给比较模块;
比较模块,用于将写入文件的大小与预先给定的阈值进行比较;
第一存储模块,用于当写入文件的大小小于或等给定于阈值时,则将写入文件的数据存放在数据结构inode中,并且在inode中添加标志位为1;
第二存储模块,用于当写入文件的大小大于给定阈值时,将写入文件存入inode指向的数据块中,在inode中添加标志位为0;
读取模块,用于根据inode中的标志位读取写入文件的数据。
进一步地,读取模块装置包括:第一读取模块和第二读取模块;其中,
第一读取模块,用于当inode添加的标志位为1时,在inode中读取写入文件的数据;
第二读取模块,用于当inode添加的标志位为0时,则在inode指向的数据块中读取写入文件的数据。
本申请技术方案提供的实现小文件存取的方法,包括:检测写入文件的大小;将写入文件的大小与预先给定的阈值进行比较,当写入文件的大小小于或等于给定阈值时,则将写入文件的数据存放在数据结构inode中,并且在所述inode中添加标志位为1;否则,将所述写入文件存入inode指向的数据块中,在所述inode中添加标志位为0;根据所述inode中的标志位读取写入文件的数据。本申请的技术方案大大提高了小文件存储和读取的速度。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明实现小文件存取的方法的流程图;
图2为本发明实现小文件存取的装置的组成结构示意图。
具体实施方式
下面结合附图及具体实施例对本发明进行详细说明。
图1是本发明实现小文件存取的方法的流程图,如图1所示,包括以下步骤:
步骤101,检测写入文件的大小。
文件系统提供相应的函数来实现如何检测写入文件的大小,为本领域技术人员熟知的公知常识,在此不再赘述。
步骤102,将写入文件的大小与预先给定的阈值进行比较,当写入文件的大小小于或等于给定阈值时,则将写入文件的数据存放在数据结构inode中,并且在所述inode中添加标志位为1;否则,将所述写入文件存入inode指向的数据块中,在所述inode中添加标志位为0。
数据块是硬盘上存放数据的最小单元。现有技术就是将数据就存放在数据块中,至于inode与数据块的对应关系属于本领域的公知常识,在此不再赘述。
inode是UNIX操作系统中的一种数据结构,其本质是结构体,它包含了与文件系统中各个文件相关的一些重要信息。在UNIX中创建文件系统时,同时将会创建大量的inode。通常,文件系统磁盘空间中大约百分之一空间分配给了inode表。
需要说明的是,预先给定的阈值是需要根据实际应用情况来确定的。例如,1M,适用于动漫渲染类似的应用。
步骤103,根据该inode中的标志位读取写入文件的数据。
本步骤具体包括:
当inode添加的标志位为1时,在inode中读取写入文件的数据;
当inode添加的标志位为0时,则在inode指向的数据块中读取写入文件的数据。
上述方法中,将小于或等于阈值的写入文件的数据存储在inode中,省去了从inode到数据块的指向,并且减少了存储和读取(访问)的时间,从而提高了存储和读取的速度。而对于不存放在inode中的写入文件的数据,数据的读取方式不受影响,即按照现有技术在inode指向的数据块中读取文件的数据。
图2为本发明实现小文件存取的装置的组成结构示意图,如图2所示,包括:文件大小检测模块、比较模块、第一存储模块、第二存储模块和读取模块。其中,
文件大小检测模块,用于检测写入文件的大小,并将检测结果传给比较模块。
比较模块,用于将写入文件的大小与预先给定的阈值进行比较,并在数据结构inode中添加标志位为1或0。
第一存储模块,用于当写入文件的大小小于或等给定于阈值时,则将写入文件的数据存放在数据结构inode中,并且在所述inode中添加标志位为1。
第二存储模块,用于当写入文件的大小大于给定阈值时,将所述写入文件存入inode指向的数据块中,在所述inode中添加标志位为0。
读取模块,用于根据所述inode中的标志位读取写入文件的数据。
进一步地,上述读取模块包括:第一读取模块和第二读取模块;其中,
第一读取模块,用于当所述inode添加的标志位为1时,在所述inode中读取所述写入文件的数据。
第二读取模块,用于当所述inode添加的标志位为0时,则在inode指向的数据块中读取所述写入文件的数据。
通过上述文件大小检测模块、比较模块、第一存储模块、第二存储模块和读取模块的配合,将小于或等于阈值的写入文件的数据存储在inode中,省去了从inode到数据块的指向,并且减少了存储和读取(访问)的时间,从而提高了存储和读取的速度。而对于不存放在inode中的写入文件的数据,通过第二存储模块和第二读取模块,使得数据的读写方式不受影响。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本申请不限制于任何特定形式的硬件和软件的结合。
以上所述,仅为本发明的较佳实例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (4)
1.一种实现小文件存取的方法,包括:
检测写入文件的大小;
将写入文件的大小与预先给定的阈值进行比较,当写入文件的大小小于或等于给定阈值时,则将写入文件的数据存放在数据结构inode中,并且在所述inode中添加标志位为1;否则,将所述写入文件存入inode指向的数据块中,在所述inode中添加标志位为0;
根据所述inode中的标志位读取写入文件的数据。
2.根据权利要求1所述的方法,其特征在于,所述根据所述inode中的标志位读取写入文件的数据,包括:
当所述inode添加的标志位为1时,在所述inode中读取所述写入文件的数据;
当所述inode添加的标志位为0时,则在inode指向的数据块中读取所述写入文件的数据。
3.一种实现小文件存取的装置,包括:文件大小检测模块、比较模块、第一存储模块、第二存储模块和读取模块;其中,
文件大小检测模块,用于检测写入文件的大小,并将检测结果传给比较模块;
比较模块,用于将写入文件的大小与预先给定的阈值进行比较;
第一存储模块,用于当写入文件的大小小于或等给定于阈值时,则将写入文件的数据存放在数据结构inode中,并且在所述inode中添加标志位为1;
第二存储模块,用于当写入文件的大小大于给定阈值时,将所述写入文件存入inode指向的数据块中,在所述inode中添加标志位为0;
读取模块,用于根据所述inode中的标志位读取写入文件的数据。
4.根据权利要求3所述的装置,其特征在于,所述读取模块装置包括:第一读取模块和第二读取模块;其中,
第一读取模块,用于当所述inode添加的标志位为1时,在所述inode中读取所述写入文件的数据;
第二读取模块,用于当所述inode添加的标志位为0时,则在inode指向的数据块中读取所述写入文件的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410334182.6A CN104102708A (zh) | 2014-07-14 | 2014-07-14 | 一种实现小文件存取的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410334182.6A CN104102708A (zh) | 2014-07-14 | 2014-07-14 | 一种实现小文件存取的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104102708A true CN104102708A (zh) | 2014-10-15 |
Family
ID=51670862
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410334182.6A Pending CN104102708A (zh) | 2014-07-14 | 2014-07-14 | 一种实现小文件存取的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104102708A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105141685A (zh) * | 2015-08-18 | 2015-12-09 | 浪潮(北京)电子信息产业有限公司 | 文件读写系统及其元数据存储器和文件读写方法和装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1661568A (zh) * | 2004-02-24 | 2005-08-31 | 中国科学院声学研究所 | 一种嵌入式环境下音像录放装置的文件系统 |
CN101473305A (zh) * | 2006-04-28 | 2009-07-01 | 网络装置公司 | 用于集群环境中的作业的管理的系统和方法 |
-
2014
- 2014-07-14 CN CN201410334182.6A patent/CN104102708A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1661568A (zh) * | 2004-02-24 | 2005-08-31 | 中国科学院声学研究所 | 一种嵌入式环境下音像录放装置的文件系统 |
CN101473305A (zh) * | 2006-04-28 | 2009-07-01 | 网络装置公司 | 用于集群环境中的作业的管理的系统和方法 |
Non-Patent Citations (1)
Title |
---|
翟超: ""基于对象存储的日志文件系统研究"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105141685A (zh) * | 2015-08-18 | 2015-12-09 | 浪潮(北京)电子信息产业有限公司 | 文件读写系统及其元数据存储器和文件读写方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9766974B2 (en) | Data storage device and data access-method | |
US11416417B2 (en) | Method and apparatus to generate zero content over garbage data when encryption parameters are changed | |
US10203899B2 (en) | Method for writing data into flash memory apparatus, flash memory apparatus, and storage system | |
US9620227B1 (en) | Characterizing and operating a non-volatile memory device | |
US10248587B2 (en) | Reduced host data command processing | |
CN101436152A (zh) | 一种数据备份的方法和装置 | |
KR20170023734A (ko) | 플래시 메모리 플러싱을 개선하는 방법 및 시스템 | |
US20200293441A1 (en) | Data storage devices and data processing methods | |
US8347052B2 (en) | Initializing of a memory area | |
US9411513B2 (en) | Sensitive data file attribute | |
US20160342508A1 (en) | Identifying memory regions that contain remapped memory locations | |
US20190377693A1 (en) | Method to generate pattern data over garbage data when encryption parameters are changed | |
US9674141B2 (en) | Techniques for implementing a secure mailbox in resource-constrained embedded systems | |
US20190096490A1 (en) | Pseudo single pass nand memory programming | |
US10289334B2 (en) | Valid data merging method, memory controller and memory storage apparatus | |
CN104216666A (zh) | 一种管理磁盘数据写入的方法及装置 | |
KR20090098275A (ko) | 플래시 메모리 시스템 | |
CN104102708A (zh) | 一种实现小文件存取的方法及装置 | |
US9804968B2 (en) | Storage system and data writing method | |
CN109002265B (zh) | 一种数据处理的方法以及相关装置 | |
JP2013235530A5 (zh) | ||
CN112463041A (zh) | 一种主机读写数据的处理方法及相关装置 | |
CN105608019B (zh) | 一种在硬核ram快速查找数据的方法 | |
CN106991021A (zh) | 从现有数据文件构建新数据文件的方法及系统 | |
CN108073362B (zh) | 一种延长PairBlock使用寿命的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20141015 |