CN104516988B - 一种文件写入方法和装置 - Google Patents

一种文件写入方法和装置 Download PDF

Info

Publication number
CN104516988B
CN104516988B CN201510031102.4A CN201510031102A CN104516988B CN 104516988 B CN104516988 B CN 104516988B CN 201510031102 A CN201510031102 A CN 201510031102A CN 104516988 B CN104516988 B CN 104516988B
Authority
CN
China
Prior art keywords
file
written
apmb package
write
database
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
CN201510031102.4A
Other languages
English (en)
Other versions
CN104516988A (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.)
Beijing Shusheng Information Technology Co ltd
Original Assignee
TIANJIN SURSEN CLOUD TECHNOLOGY 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 TIANJIN SURSEN CLOUD TECHNOLOGY Co Ltd filed Critical TIANJIN SURSEN CLOUD TECHNOLOGY Co Ltd
Priority to CN201510031102.4A priority Critical patent/CN104516988B/zh
Publication of CN104516988A publication Critical patent/CN104516988A/zh
Application granted granted Critical
Publication of CN104516988B publication Critical patent/CN104516988B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/172Caching, prefetching or hoarding of files

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

本发明实施例提供了一种文件写入方法和装置,解决了现有技术中文件写入时在存储介质上频繁创建文件的问题。该文件写入方法包括:将多个待写入文件合并写入存储介质中的一个包文件,并记录每一个文件在该包文件中的写入起点信息;将各文件在该包文件中的写入起点信息存储在数据库中。

Description

一种文件写入方法和装置
技术领域
本发明涉及计算机技术领域,具体涉及一种文件写入方法和装置。
技术背景
现有技术中的文件写入是将待写入文件单独写入到存储介质中,每次在要写入待写入文件时,都需要在存储介质上先创建一个用于存储待写入文件的文件。这样当有大量待写入文件需要连续写入或并发写入时,就必须在存储介质上频繁的创建文件,而频繁的创建文件会大量占用系统资源,从而导致所有文件写入的效率降低。
发明内容
有鉴于此,本发明实施例提供了一种文件写入方法,解决了现有技术中文件写入时在存储介质上频繁创建文件的问题。
本发明实施例提供的一种文件写入方法包括:
将多个待写入文件合并写入存储介质中的一个包文件,并记录每一个文件在该包文件中的写入起点信息;
将各文件在该包文件中的写入起点信息存储在数据库中。
本发明实施例提供的一种文件写入装置包括:
打包模块,配置为将多个待写入文件合并写入存储介质中的一个包文件,并记录每一个文件在该包文件中的写入起点信息;
存储模块,配置为将该包文件中各文件的写入起点信息存储在数据库中。
本发明实施例提供的一种文件写入方法和装置,通过将多个待写入文件合并写入存储介质的一个包文件,在执行写入时仅需在存储介质上创建该包文件即可,而不用针对每个待写入文件分别创建文件。同时,在读取文件时可根据数据库中存储的写入起点信息准确定位包文件中每个文件的写入位置。
附图说明
图1所示为本发明一实施例提供的一种文件写入方法的流程图。
图2所示为本发明一实施例提供的文件在包文件中的数据格式示意图。
图3所示为本发明一实施例提供的一种文件写入方法的原理示意图。
图4所示为本发明一实施例提供的一种文件写入方法中一个打包实例的运行机制原理示意图。
图5所示为本发明一实施例提供的一种文件读取方法的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1所示为本发明一实施例提供的一种文件写入方法的流程图。如图1所示,该方法包括:
步骤101:将多个待写入文件合并写入存储介质中的一个包文件,并记录每一个文件在该包文件中的写入起点信息。
具体而言,将一待写入文件合并写入存储介质中的一个包文件之前,还可判断当前包文件是否已被写满。在当前包文件未被写满时,继续向该未写满的包文件中写入所述待写入文件。
在本发明一实施例中,写入起点信息包括当前待写入文件的用户文件名、当前包的包文件名和该待写入文件位于该包文件的数据起始地址信息。包文件名为该文件所写入的包文件的名称;数据起始地址信息为该待写入文件在包文件中数据存储的起始位置信息。
在本发明一实施例中,数据起始地址信息可以是数据存储的起始指针位置信息。当要实现继续向未写满的包文件中写入待写入文件时,可以存储当前包文件被写入的最后一个待写入文件的末尾的指针位置。这样当要将下一个待写入文件继续写入该包文件时,将写指针移到该指针位置即可。还可以根据该最后一个待写入文件的写入起点信息和文件长度确定下一个待写入文件的写入指针位置,本发明对继续向未写满的包文件中写入待写入文件的方法不做限定。
在本发明一实施例中,用户文件名采用一个文件摘要字段表示,例如“c816a97f06e56d90900a050494f30877_6830a0c370fe3b0300a5e3a70d7d26e98c50ea94_eb450”,该文件摘要字段的格式为:文件md5+sha1+size,从而保证不同待写入文件的用户文件名很难重复。为了保证包文件名与用户文件名不重复,包文件名采用一个全球通用唯一识别码字段+PACK后缀表示,例如“60f7d75b8c354e24a27132b810c5873d_pack”,采用PACK后缀是为了直观的将包文件名和用户文件名区别开来。数据起始地址信息采用当前待写入文件在当前包文件中的存储起点位置字段表示,例如“231415”。
步骤102:将各文件在该包文件中的写入起点信息存储在数据库中。
在通过步骤101将待写入文件写入存储介质中的包文件后,为了使用户读取文件时能准确定位文件在包文件中的存储位置,因此还需要将各文件的写入起点信息存储到数据库中。具体而言,由于一个包文件中包含了多个文件,因此各文件的写入起点信息也可以合并写入该包文件的文件信息中,并将该包文件的文件信息——被写入该包文件中的所有文件的写入起点信息的集合——储存在数据库中。
在本发明一实施例中,数据库包括数据库临时表和数据库全局表;其中,数据库临时表存储未写满包文件的文件信息;数据库全局表存储所有包文件的文件信息。
当判断为当前包文件未被写满时,将待写入文件的写入起点信息分别写入数据库临时表中该包文件的文件信息以及数据库全局表中该包文件的文件信息。
当判断为当前包文件已被写满时,将待写入文件的写入起点信息写入数据库全局表中该包文件的文件信息,删除数据库临时表中对应的该包文件的文件信息。
这样当所有的待写入文件都被写入完毕时,数据库全局表中实际存储的是已写满包文件的文件信息和部分尚未写满包文件的文件信息,而数据库临时表中存储的全部是未写满包文件的文件信息。这样即使由于系统维护等原因导致待写入文件的数据流写入发生中断,数据库临时表中仍能保存未写满包文件的文件信息,这些未写满包文件中文件的写入起点信息也会保存下来,从而使得在数据流写入恢复后仍能继续向这些未写满的包文件中写入数据。
图2所示为本发明一实施例提供的文件在包文件中的数据格式示意图。图2所示的包文件中,以3个文件为示例。每个文件的数据格式均包括:文件名长度、文件名、文件长度、文件内容,每个文件的数据格式均以文件起始边界分隔符开始和文件结束边界分隔符结束。通过数据格式中的文件起始边界分隔符和文件结束边界分隔符,可在后续读取文件时方便地提取该包文件中某一特定的文件。数据格式中的文件名也可让用户不过分依赖于数据库中存储的文件的写入起点信息,通过搜索文件名即可直接实现对文件的读取或遍历。
图3所示为本发明一实施例提供的一种文件写入方法的原理示意图。如图3所示,具体通过一个打包实例队列中的一打包实例控制将多个待写入文件合并写入存储介质中的一个包文件,并记录每一个文件在该包文件中的写入起点信息;以及将各文件在该包文件中的写入起点信息存储在数据库中。具体而言,将某一个待写入文件写入一包文件的方法包括:
步骤S301:从一打包实例队列底部获取一个打包实例;其中,每一个打包实例都可看作一个执行文件写入和写入起点信息存储的子程序,每个打包实例所打开的文件句柄对应一个已打开的包文件。因此在有多个文件需要写入时,通过设置打包实例队列可使该多个文件的写入流程有序进行。
步骤S302:判断所述获取的打包实例是否已打开一个文件句柄;当判断结果返回为否时,执行步骤S303;当判断结果返回为是时,直接执行步骤S304。
步骤S303:打开一个文件句柄。在一个打包实例打开了一个文件句柄,并相应创建一包文件后,即可向该包文件中打包写入文件,该包文件与该打包实例的文件句柄相对应。
步骤S304:将待写入文件写入该已打开的文件句柄所对应的包文件,返回写入结果;当所述写入结果为成功时,执行步骤S305;当所述写入结果为失败时,执行步骤S306。
步骤S305:将该打包实例归还至队列底部。由于当写入结果为成功时,该打包实例所打开文件句柄对应的包文件可能还没有被写满,因此将该打包实例归还至队列底部可使该打包实例再次被获取,以继续向该未写满的包文件中写入文件。到此,将该待写入文件写入包文件的流程结束。
步骤S306:关闭该打包实例的文件句柄,并将该打包实例归还至队列顶部。当写入结果为失败时,则说明该打包实例所打开文件句柄对应的包文件已被写满,此时将该打包实例归还至队列顶部可避免其再次被获取。到此,流程结束。
在本发明一实施例中,若在一预设时间内未能获取到打包实例,说明此时打包实例队列中的每个打包实例都在运行文件写入和写入起点信息储存流程,此时返回系统繁忙信息。
在本发明一实施例中,可以为每个打包实例队列设置打包实例总数限制(例如设置一个打包实例队列中只能有50个打包实例),这样可以避免在写入流程中打开过多的文件句柄。
在本发明一实施例中,在将待写入文件写入存储介质之前,可通过设定一预设阈值来判断是否要将待写入文件与其他待写入文件合并写入存储介质中的一个包文件。具体可为:将文件大小小于等于一预设阈值的待写入文件合并写入存储介质中的一个包文件;而将文件大小大于该预设阈值的待写入文件直接写入存储介质。
然而,由于从客户端传来的数据流在应用层可能经过了压缩加密过程,系统在写文件之前不能准确知道待写入文件的大小,此时预设阈值的判断可以通过内存预读来实现。具体而言,将内存中为一待写入文件分配的空间大小预先设定为预设阈值;这样,当把待写入文件的数据流读入内存时,如果数据流溢出分配的空间,则说明该待写入文件的文件大小超过了预设阈值,此时直接将该待写入文件写入存储介质;如果待写入文件的数据流被读入内存且没有溢出为其分配的空间,则说明该待写入文件的文件大小未超过预设阈值,此时将该待写入文件与其他待写入文件合并写入存储介质中的一个包文件。
通过内存对数据流进行预读还可以减少数据流中断时产生的对存储介质的无效操作。既使在待写入文件预读的过程中发生中断,由于待写入文件已读入的数据仍停留在内存中,并没有被写入存储介质,因此该已读入的数据不会占据存储介质的存储空间。
本领域技术人员可以理解,对于预设阈值的设定,可根据实际情况设置在合理范围内。例如,如果将存储介质的并发写入请求线程数上限设置为1000,预设阈值指定为10M,这就意味着在极端情况下JVM(Java虚拟机)需要为此支出的10000M内存空间。本发明对预设阈值的大小不做限定。
在本发明一实施例中,存储介质可为一个文件系统的一个存储卷。此时为了后续能够准确定位待读取文件在文件系统中的存储位置,还需要将存储介质的卷标添加到包文件的文件信息里一并存储在数据库中。这样在后续文件系统的维护过程中,如果需要将某个存储卷的文件转移到另一个卷,只需先将数据库中存储的包文件信息中的原存储卷的卷标更新为目标存储卷的卷标即可。
在本发明一实施例中,存储介质存在并发写入请求线程数上限。当对存储介质的并发写入请求线程数达到上限时,在一预设时间后若仍达到上限,则返回系统繁忙信息。
在本发明另一实施例中,为了进一步提高写入效率、避免无效操作,在将多个待写入文件合并写入存储介质中的一个包文件之前,还可判断待写入文件是否存在并发写入请求;若存在,则关闭多余的并发写入请求。还可判断待写入文件是否已被写入;若已被写入,则关闭当前的写入请求。
下面通过一个实施例来具体说明打包实例队列中一个打包实例的具体运行机制。
图4所示为本发明一实施例提供的一种文件写入方法中一个打包实例的运行机制原理示意图。在图4所示的实施例中,用于存储待写入文件写入起点信息的数据库中包括数据库临时表和数据库全局表。其中,数据库临时表中存储未写满包文件的文件信息,数据库全局表中存储所有包文件的文件信息,包文件的文件信息为已被写入该包文件中的所有文件的写入起点信息的集合。在文件写入流程开始时,内存中需要首先加载数据库临时表中的所有未写满包文件的文件信息。
这样当从打包实例队列底部获取一个打包实例时,待写入文件的写入起点信息可通过如下步骤存储到数据库中:
步骤S401:从内存中提取当前打包实例所对应的包文件的文件信息;若成功提取,则执行步骤S404;若无法提取,则说明当前打包实例还没有创建包文件,因而无法从内存中提取包文件的文件信息,此时执行步骤S402。
步骤S402:为当前打包实例生成一包文件的文件信息;将该文件信息写入数据库全局表和数据库临时表。
步骤S403:根据所述包文件的文件信息和所述打包实例的文件句柄相应创建包文件。该创建的包文件即为当前打包实例的文件句柄所对应的包文件。
步骤S404:将待写入文件写入该包文件,判断待写入文件是否被成功写入;若已被成功写入,则执行步骤S405;若未被成功写入,则执行步骤S406。
步骤S405:判断该包文件是否已存满;若已存满,则执行步骤S407;若未存满,则执行步骤S408。
步骤S406:将所述包文件的文件信息退回内存,至此流程结束。由于当前包文件未被成功写入,因此该包文件仍处于未写满状态;将该包文件的文件信息退回内存可保证当再次获取该包文件对应的打包实例时,仍可从内存中获取到该包文件的文件信息,以继续向该包文件中写入文件。
步骤S407:更新数据库全局表中该包文件的文件信息,删除所述数据库临时表中该包文件的文件信息,至此流程结束。
步骤S408:将所述待写入文件的写入起点信息写入数据库全局表中所述包文件的文件信息。
步骤S409:更新所述数据库临时表中该包文件的文件信息,至此流程结束。
本发明一实施例提供了一种文件写入装置,包括:
打包模块,配置为将多个待写入文件合并写入存储介质中的一个包文件,并记录每一个文件在该包文件中的写入起点信息;
存储模块,配置为将该包文件中各文件的写入起点信息存储在数据库中。
在本发明一实施例中,该文件写入装置进一步包括:
判断模块,配置为在所述打包模块将一待写入文件合并写入存储介质中的一个包文件之前,判断当前包文件是否已被写满;
若所述判断模块返回的结果为未被写满,则所述打包模块进一步配置为:继续向所述未写满的包文件中写入所述待写入文件。
在本发明一实施例中,所述数据库包括数据库临时表和数据库全局表;其中,所述数据库临时表存储未写满包文件的文件信息;数据库全局表存储所有包文件的文件信息;
若所述判断模块返回的结果为未写满,所述存储模块进一步配置为:将所述待写入文件的写入起点信息分别写入数据库临时表中该包文件的文件信息以及数据库全局表中该包文件的文件信息;
若所述判断模块返回的结果为已写满,所述存储模块进一步配置为:将所述待写入文件的写入起点信息写入数据库全局表中该包文件的文件信息,删除所述数据库临时表中该包文件的文件信息。
在本发明一实施例中,该文件写入装置进一步包括:
阈值判断模块,配置为判断所述待写入文件的文件大小是否小于等于一预设阈值;
所述打包模块进一步配置为:当所述阈值判断模块返回结果为是时,将待写入文件与其他待写入文件一起写入存储介质的一个包文件;当阈值判断模块返回结果为否时,将该待写入文件直接写入存储介质。
在本发明一实施例中,该阈值判断模块包括:
预读单元,配置为将待写入文件的数据流预读入一预设大小的内存;其中,所述内存的大小等于为一个待写入文件分配空间大小的预设阈值;
阈值判断单元,配置为判断所述待写入文件的数据流是否溢出所述预设的内存;如果所述待写入文件的数据流没有溢出所述预设的内存,表示所述待写入文件的文件大小小于等于一预设阈值。
在本发明一实施例中,数据库临时表进一步配置为存储运行文件写入服务的主机名称。这样即使文件写入系统因为故障或维护发生中断,未写满的包文件中的文件仍可被追溯到,不会影响到文件的读取。
在本发明另一实施例中,当通过设定一预设阈值来判断是否要将待写入文件与其他待写入文件合并写入存储介质中的一个包文件时,由于只有文件大小小于预设阈值的文件的才有写入起点信息,这样用户在读取文件时,可通过判断该文件是否在数据库中存有写入起点信息,来判断该文件是否被打包存储在了一包文件中。
具体而言,若判断为数据库中没有存有该文件的写入起点信息,则表明该文件被直接存储在存储介质中,此时可直接在当前存储介质打开文件读取。若数据库中存有该文件的写入起点信息,则证明该待读取文件和其他文件合并打包写入了一个包文件,此时可从该写入起点信息中找出包文件名和数据起始地址信息,在当前存储介质找到该包文件,移动读取指针,按照包文件中文件存储的数据格式读取文件内容。下面通过一个实施例来详细描述利用写入起点信息读取文件的具体过程。
图5所示为本发明一实施例提供的一种文件读取方法的流程图。如图5所示,该文件读取方法包括:
步骤501:从数据库中读取待读取文件的写入起点信息。
在本发明一实施例中,存储介质为一个文件系统的一个存储卷,此时在查询打包实例之前,还要根据存储介质的卷标在文件系统中查询出待读取文件所在的存储介质。
步骤502:根据所述写入起点信息从存储介质的相应包文件中读取该待读取文件。
在本发明一实施例中,还可针对存储介质设置并发读取线程数上限,针对待读取文件设置并发读取文件线程数上限。当达到并发读取线程数上限或并发读取文件线程数上限时,返回系统繁忙信息。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换等,均应包含在本发明的保护范围之内。

Claims (17)

1.一种文件写入方法,其特征在于,包括:
将多个待写入文件合并写入存储介质中的一个包文件,并记录每一个文件在该包文件中的写入起点信息;
将各文件在该包文件中的写入起点信息存储在数据库中;
将一待写入文件合并写入存储介质中的一个包文件之前,进一步包括:
判断当前包文件是否已被写满;
在当前包文件未被写满时,继续向所述未写满的包文件中写入所述待写入文件;
其中,所述数据库包括数据库临时表和数据库全局表;
其中,所述数据库临时表存放未写满的包文件的文件信息;数据库全局表存储所有包文件的文件信息。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当判断当前包文件未存满时,将所述待写入文件的写入起点信息分别写入数据库临时表中所述包文件的文件信息以及数据库全局表中所述包文件的文件信息;
当判断当前包文件已存满时,将所述待写入文件的写入起点信息写入数据库全局表中所述包文件的文件信息,并删除所述数据库临时表中对应的所述包文件的文件信息。
3.根据权利要求1至2中任一所述的方法,其特征在于,通过打包实例队列中的一打包实例控制将多个待写入文件合并写入存储介质中的一个包文件,并记录每一个文件在该包文件中的写入起点信息;以及将各文件在该包文件中的写入起点信息存储在数据库中。
4.根据权利要求3所述的方法,其特征在于,将多个待写入文件合并写入存储介质中的一个包文件包括:
从所述打包实例队列底部获取一个打包实例;
判断待写入文件是否被成功写入;
当待写入文件被成功写入时,将该打包实例归还至队列底部;当待写入文件写入失败时,将该打包实例归还至队列顶部。
5.根据权利要求3所述的方法,其特征在于,在判断待写入文件是否被成功写入之前,进一步包括:
判断所述获取的打包实例是否已打开一个文件句柄;
当判断结果返回为否时,为该打包实例打开一个文件句柄。
6.根据权利要求5所述的方法,其特征在于,在将多个待写入文件合并写入存储介质中的一个包文件之前,进一步包括:
从数据库中加载所有未写满包文件的文件信息至内存;其中,所述包文件的文件信息包括已被写入该包文件中所有文件的写入起点信息;
从内存中提取当前获取的打包实例所对应的包文件的文件信息;
若无法提取,则为该打包实例生成一个包文件的文件信息,将该文件信息存储在数据库中,根据所述生成的文件信息创建包文件。
7.根据权利要求1所述的方法,其特征在于,所述写入起点信息包括用户文件名、包文件名和数据起始地址信息。
8.根据权利要求7所述的方法,其特征在于,所述数据起始地址信息为数据存储的起始指针位置信息。
9.根据权利要求8所述的方法,其特征在于,所述用户文件名采用文件摘要字段表示;和/或,
所述包文件名采用全球通用唯一识别码字段+PACK后缀表示;和/或,
所述数据起始地址信息采用当前待写入文件在当前包文件中的存储起点位置字段表示。
10.根据权利要求1至2、4至9中任一所述的方法,其特征在于,在将多个待写入文件合并写入存储介质中的一个包文件之前,进一步包括:
判断待写入文件的文件大小是否小于等于一预设阈值;
当结果为是时,将待写入文件与其他待写入文件一起写入存储介质的一个包文件。
11.根据权利要求10所述的方法,其特征在于,判断所述待写入文件的文件大小是否小于等于一预设阈值包括:
将待写入文件的数据流预读入一预设大小的内存;其中,所述内存的大小等于为一个待写入文件分配空间大小的预设阈值;
判断所述待写入文件的数据流是否溢出所述预设的内存;
如果所述待写入文件的数据流没有溢出所述预设的内存,表示所述待写入文件的文件大小小于等于一预设阈值。
12.根据权利要求1至2、4至9中任一所述的方法,其特征在于,所述存储介质为一个文件系统的一个存储卷;所述方法进一步包括:
将所述存储介质的卷标存储在数据库中。
13.根据权利要求1至2、4至9中任一所述的方法,其特征在于,包文件中文件的数据格式包括:文件起始边界分隔符、文件名长度、文件名、文件长度、文件内容和文件结束边界分隔符。
14.一种文件写入装置,其特征在于,包括:
打包模块,配置为将多个待写入文件合并写入存储介质中的一个包文件,并记录每一个文件在该包文件中的写入起点信息;
存储模块,配置为将该包文件中各文件的写入起点信息存储在数据库中,其中,所述数据库包括数据库临时表和数据库全局表;其中,所述数据库临时表存放未写满的包文件的文件信息;数据库全局表存储所有包文件的文件信息;
判断模块,配置为在所述打包模块将一待写入文件合并写入存储介质中的一个包文件之前,判断当前包文件是否已被写满;
若所述判断模块返回的结果为未被写满,则所述打包模块进一步配置为:继续向所述未写满的包文件中写入所述待写入文件。
15.根据权利要求14所述的装置,其特征在于,所述存储模块还用于:
若所述判断模块返回的结果为未写满,所述存储模块进一步配置为:将所述待写入文件的写入起点信息分别写入数据库临时表中该包文件的文件信息以及数据库全局表中该包文件的文件信息;
若所述判断模块返回的结果为已写满,所述存储模块进一步配置为:将所述待写入文件的写入起点信息写入数据库全局表中该包文件的文件信息,删除所述数据库临时表中该包文件的文件信息。
16.根据权利要求14至15中任一所述的装置,其特征在于,进一步包括:
阈值判断模块,配置为判断所述待写入文件的文件大小是否小于等于一预设阈值;
所述打包模块进一步配置为:当所述阈值判断模块返回结果为是时,将待写入文件与其他待写入文件一起写入存储介质的一个包文件。
17.根据权利要求16所述的装置,其特征在于,所述阈值判断模块包括:
预读单元,配置为将待写入文件的数据流预读入一预设大小的内存;其中,所述内存的大小等于为一个待写入文件分配空间大小的预设阈值;
阈值判断单元,配置为判断所述待写入文件的数据流是否溢出所述预设的内存;如果所述待写入文件的数据流没有溢出所述预设的内存,表示所述待写入文件的文件大小小于等于一预设阈值。
CN201510031102.4A 2015-01-21 2015-01-21 一种文件写入方法和装置 Active CN104516988B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510031102.4A CN104516988B (zh) 2015-01-21 2015-01-21 一种文件写入方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510031102.4A CN104516988B (zh) 2015-01-21 2015-01-21 一种文件写入方法和装置

Publications (2)

Publication Number Publication Date
CN104516988A CN104516988A (zh) 2015-04-15
CN104516988B true CN104516988B (zh) 2018-09-28

Family

ID=52792287

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510031102.4A Active CN104516988B (zh) 2015-01-21 2015-01-21 一种文件写入方法和装置

Country Status (1)

Country Link
CN (1) CN104516988B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105528425A (zh) * 2015-12-08 2016-04-27 普元信息技术股份有限公司 云计算环境下基于文件实现异步数据存储的方法
CN106713450A (zh) * 2016-12-21 2017-05-24 广州优视网络科技有限公司 基于读写分离模式的下载提速方法及装置
CN110113372A (zh) * 2018-02-01 2019-08-09 广州阿里巴巴文学信息技术有限公司 文件传输方法、终端、计算机可读存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1517906A (zh) * 2003-01-14 2004-08-04 联想(北京)有限公司 文件系统及文件管理方法
CN1632779A (zh) * 2003-12-24 2005-06-29 华为技术有限公司 一种数据存储方法及装置
CN101398853A (zh) * 2008-10-14 2009-04-01 北京大学 一种文件打包的方法和装置
US7653663B1 (en) * 2006-08-09 2010-01-26 Neon Enterprise Software, Inc. Guaranteeing the authenticity of the data stored in the archive storage
CN102508880A (zh) * 2011-10-18 2012-06-20 广东威创视讯科技股份有限公司 一种文件合并方法及分解方法
CN102955780A (zh) * 2011-08-19 2013-03-06 深圳市快播科技有限公司 一种文件创建和访问的方法及其系统
CN103152609A (zh) * 2013-01-30 2013-06-12 深圳市同洲电子股份有限公司 一种数据文件播放方法及相关设备、系统
US8768901B1 (en) * 2004-06-14 2014-07-01 Symantec Operating Corporation Method and apparatus for selectively storing blocks of data on a server

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1517906A (zh) * 2003-01-14 2004-08-04 联想(北京)有限公司 文件系统及文件管理方法
CN1632779A (zh) * 2003-12-24 2005-06-29 华为技术有限公司 一种数据存储方法及装置
US8768901B1 (en) * 2004-06-14 2014-07-01 Symantec Operating Corporation Method and apparatus for selectively storing blocks of data on a server
US7653663B1 (en) * 2006-08-09 2010-01-26 Neon Enterprise Software, Inc. Guaranteeing the authenticity of the data stored in the archive storage
CN101398853A (zh) * 2008-10-14 2009-04-01 北京大学 一种文件打包的方法和装置
CN102955780A (zh) * 2011-08-19 2013-03-06 深圳市快播科技有限公司 一种文件创建和访问的方法及其系统
CN102508880A (zh) * 2011-10-18 2012-06-20 广东威创视讯科技股份有限公司 一种文件合并方法及分解方法
CN103152609A (zh) * 2013-01-30 2013-06-12 深圳市同洲电子股份有限公司 一种数据文件播放方法及相关设备、系统

Also Published As

Publication number Publication date
CN104516988A (zh) 2015-04-15

Similar Documents

Publication Publication Date Title
JP6605078B2 (ja) 情報処理方法、情報処理装置、サーバ及びコンピュータ読み取り可能な記録媒体
US9632826B2 (en) Prioritizing deferred tasks in pending task queue based on creation timestamp
CN106201659B (zh) 一种虚拟机热迁移的方法及宿主机
CN103218176B (zh) 数据处理方法及装置
CN104571958B (zh) 一种任务执行方法和装置
CN101996098A (zh) 管理消息队列
CN104516988B (zh) 一种文件写入方法和装置
CN106168885A (zh) 一种基于lvm的逻辑卷动态扩容的方法及系统
CN104021089B (zh) 快闪存储器控制芯片与存储装置以及快闪存储器控制方法
CN102073633A (zh) 资源文件的存储访问方法及装置
CN106330788B (zh) 报文分片传输方法和装置
CN102521114A (zh) 一种虚拟化环境下的文件系统日志存储系统
CN111245742B (zh) 数据的缓冲方法、装置、计算机和可读存储介质
CN104951482A (zh) 一种操作Sparse格式的镜像文件的方法及装置
CN104699566A (zh) 基于云存储的数据冗余备份方法、系统及存储节点服务器
CN103902228A (zh) 一种变长数据存取方法
CN105468304B (zh) 一种Native存储卡及其管理方法
CN105139870B (zh) 一种光盘的实时刻录方法及装置
CN103177019B (zh) Usb存储设备及其驱动方法
CN105739919B (zh) 资料存取系统及方法
CN114936189A (zh) 应用程序的操作方法、装置、计算机设备和可读存储介质
JP2013025655A (ja) ログファイル管理モジュールおよびログファイル管理方法
CN113384872A (zh) 在微端中处理信息资源的方法、装置、电子设备及存储介质
CN108140005A (zh) 在存储器系统协议中提供文件信息的系统及方法
CN111722874B (zh) 移动端代码的自动清理方法、装置、设备及存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
PP01 Preservation of patent right
PP01 Preservation of patent right

Effective date of registration: 20190523

Granted publication date: 20180928

PD01 Discharge of preservation of patent
PD01 Discharge of preservation of patent

Date of cancellation: 20210523

Granted publication date: 20180928

CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: Room 645dd18, aviation industry support center No.1, Baohang Road, Tianjin Binhai New Area Airport Economic Zone, 300308

Patentee after: Tianjin Zhongcheng Star Technology Co.,Ltd.

Address before: Room 645dd18, aviation industry support center No.1, Baohang Road, Tianjin Binhai New Area Airport Economic Zone, 300308

Patentee before: TIANJIN SURDOC Corp.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20210726

Address after: 100089 No. 4060, podium, 4th floor, 69 Zizhuyuan Road, Haidian District, Beijing

Patentee after: Beijing Shusheng cloud Technology Co.,Ltd.

Address before: Room 645dd18, aviation industry support center No.1, Baohang Road, Tianjin Binhai New Area Airport Economic Zone, 300308

Patentee before: Tianjin Zhongcheng Star Technology Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20230421

Address after: 1101-13, 11th floor, building 1, courtyard 1, Shangdi 10th Street, Haidian District, Beijing 100085

Patentee after: Beijing Shusheng Information Technology Co.,Ltd.

Address before: 100089 No. 4060, podium, 4th floor, 69 Zizhuyuan Road, Haidian District, Beijing

Patentee before: Beijing Shusheng cloud Technology Co.,Ltd.