CN105095418B - 一种处理写请求的方法和装置 - Google Patents
一种处理写请求的方法和装置 Download PDFInfo
- Publication number
- CN105095418B CN105095418B CN201510409614.XA CN201510409614A CN105095418B CN 105095418 B CN105095418 B CN 105095418B CN 201510409614 A CN201510409614 A CN 201510409614A CN 105095418 B CN105095418 B CN 105095418B
- Authority
- CN
- China
- Prior art keywords
- write request
- written
- file
- temporary file
- complete
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 15
- 238000012217 deletion Methods 0.000 description 5
- 230000037430 deletion Effects 0.000 description 5
- 230000007547 defect Effects 0.000 description 1
- 238000010586 diagram 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/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
- G06F16/164—File meta data generation
- G06F16/166—File name conversion
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (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)
- Techniques For Improving Reliability Of Storages (AREA)
- Retry When Errors Occur (AREA)
Abstract
本发明公开了一种处理写请求的方法和装置,该方法包括以下步骤:将与写请求对应的待写入内容写入到临时文件;在日志中记录从所述临时文件到目标文件的重命名操作;将所述临时文件重命名为所述目标文件。本发明先将待写入内容写入到临时文件,再对临时文件进行重命名,只需要对待写入内容执行一次写入,使得系统的写入带宽能够接近或达到实际的物理带宽,能够有效提高物理带宽的使用率。
Description
技术领域
本发明涉及计算机技术领域,具体涉及一种处理写请求的方法和装置。
背景技术
随着云存储系统的迅速发展,日志机制作为云存储系统中用来保证数据一致性的常用机制之一,也得到广泛的应用。在使用日志机制的云存储系统中,存在一个被称为日志的追踪文件,提交到系统的所有更改操作,都会先记录到日志中,然后再执行实际的更改。在系统遭遇故障并重启后,可以通过回放日志完成重启之前尚未完成的操作,避免出现数据不一致或不完整的情况。
然而,日志机制要求所有的更新操作都必须先记录日志,再实际执行。在处理写请求时,既将待写入内容记录到日志,又要将待写入内容写入到目标文件,因此,待写入内容实际上被写入了两次,导致系统的写入带宽只能达到物理带宽的一半,对物理带宽的使用率较低。
发明内容
本发明提供了一种处理写请求的方法和装置,以解决现有技术中物理带宽使用率较低的缺陷。
本发明提供了一种处理写请求的方法,包括以下步骤:
将与写请求对应的待写入内容写入到临时文件;
在日志中记录从所述临时文件到目标文件的重命名操作;
将所述临时文件重命名为所述目标文件。
可选地,所述将与写请求对应的待写入内容写入到临时文件之前,还包括:
判断所述写请求是否为完全写请求;
所述将与写请求对应的待写入内容写入到临时文件,具体为:
当所述写请求为完全写请求时,将与所述写请求对应的待写入内容写入到临时文件。
可选地,判断所述写请求是否为完全写请求,具体为:
判断所述写请求是否满足以下条件:所述目标文件不存在;或者,写入位置为所述目标文件的开头且写入长度不小于所述目标文件的大小;如果满足,则确定所述写请求为完全写请求;否则,确定所述写请求不是完全写请求。
可选地,所述将与写请求对应的待写入内容写入到临时文件之前,还包括:
创建所述临时文件。
可选地,所述的方法,还包括:
在系统重启时,读取并回放所述日志;
删除所述系统中存在的临时文件。
本发明还提供了一种处理写请求的装置,包括:
写入模块,用于将与写请求对应的待写入内容写入到临时文件;
记录模块,用于在日志中记录从所述临时文件到目标文件的重命名操作;
重命名模块,用于在所述记录模块记录所述重命名操作后,将所述写入模块写入的所述临时文件重命名为所述目标文件。
可选地,所述的装置,还包括:
判断模块,用于判断所述写请求是否为完全写请求;
所述写入模块,具体用于在所述判断模块判断出所述写请求为完全写请求时,将与所述写请求对应的待写入内容写入到临时文件。
可选地,所述判断模块,具体用于判断所述写请求是否满足以下条件:所述目标文件不存在;或者,写入位置为所述目标文件的开头且写入长度不小于所述目标文件的大小;如果满足,则确定所述写请求为完全写请求;否则,确定所述写请求不是完全写请求。
可选地,所述的装置,还包括:
创建模块,用于创建所述临时文件。
可选地,所述的装置,还包括:
删除模块,用于当系统重启时,在回放所述日志后,删除所述系统中存在的临时文件。
本发明先将待写入内容写入到临时文件,再对临时文件进行重命名,只需要对待写入内容执行一次写入,使得系统的写入带宽能够接近或达到实际的物理带宽,能够有效提高物理带宽的使用率。
附图说明
图1为本发明实施例中的一种处理写请求的方法流程图;
图2为本发明实施例中的一种处理写请求的装置结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,如果不冲突,本发明实施例以及实施例中的各个特征可以相互结合,均在本发明的保护范围之内。另外,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本发明实施例提供了一种处理写请求的方法,如图1所示,包括以下步骤:
步骤101,接收写请求。
步骤102,判断写请求是否为完全写请求,如果是,则执行步骤103;否则,执行步骤106。
具体地,可以判断写请求是否满足以下条件:目标文件不存在;或者,写入位置为目标文件的开头且写入长度不小于目标文件的大小;如果满足,则确定写请求为完全写请求;否则,确定写请求不是完全写请求。
其中,完全写请求为待写入内容能够完全覆盖目标文件中的原有内容的写请求。
步骤103,创建临时文件,将与写请求对应的待写入内容写入到临时文件。
步骤104,在日志中记录从临时文件到目标文件的重命名操作。
步骤105,将临时文件重命名为目标文件。
步骤106,将待写入内容记录到日志。
步骤107,将待写入内容写入到目标文件。
需要说明的是,在系统重启时,读取并回放日志,然后删除系统中存在的临时文件。
具体地,系统因为遇到故障而停止运行时,有可能已经向临时文件中写入了部分或全部数据,但还没有将重命名操作记录到日志,导致临时文件变成垃圾文件。因此,在系统重启的过程中,在读取并回放日志后,删除系统中仍然存在的所有临时文件,避免出现垃圾文件。
本发明实施例先将待写入内容写入到临时文件,再对临时文件进行重命名,只需要对待写入内容执行一次写入,使得系统的写入带宽能够接近或达到实际的物理带宽,能够有效提高物理带宽的使用率。此外,系统重启过程中,在回放日志后,删除系统中的所有临时文件,能够避免在系统中出现垃圾文件。
基于上述处理写请求的方法,本发明实施例还提供了一种处理写请求的装置,如图2所示,包括:
写入模块210,用于将与写请求对应的待写入内容写入到临时文件。
记录模块220,用于在日志中记录从临时文件到目标文件的重命名操作。
重命名模块230,用于在记录模块220记录重命名操作后,将写入模块210写入的临时文件重命名为目标文件。
进一步地,上述装置,还包括:
判断模块240,用于判断写请求是否为完全写请求;
相应地,上述写入模块210,具体用于在判断模块240判断出写请求为完全写请求时,将与写请求对应的待写入内容写入到临时文件。
具体地,上述判断模块240,具体用于判断写请求是否满足以下条件:目标文件不存在;或者,写入位置为目标文件的开头且写入长度不小于目标文件的大小;如果满足,则确定写请求为完全写请求;否则,确定写请求不是完全写请求。
进一步地,上述装置,还包括:
创建模块250,用于创建临时文件。
进一步地,上述装置,还包括:
回放模块260,用于在系统重启时,读取并回放日志;
删除模块270,用于在回放模块260回放日志后,删除系统中存在的临时文件。
本发明实施例先将待写入内容写入到临时文件,再对临时文件进行重命名,只需要对待写入内容执行一次写入,使得系统的写入带宽能够接近或达到实际的物理带宽,能够有效提高物理带宽的使用率。此外,系统重启过程中,在回放日志后,删除系统中的所有临时文件,能够避免在系统中出现垃圾文件。
结合本文中所公开的实施例描述的方法中的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (8)
1.一种处理写请求的方法,其特征在于,包括以下步骤:
判断所述写请求是否为完全写请求;
当所述写请求为完全写请求时,将与写请求对应的待写入内容写入到临时文件;
在日志中记录从所述临时文件到目标文件的重命名操作;
将所述临时文件重命名为所述目标文件。
2.如权利要求1所述的方法,其特征在于,判断所述写请求是否为完全写请求,具体为:
判断所述写请求是否满足以下条件:所述目标文件不存在;或者,写入位置为所述目标文件的开头且写入长度不小于所述目标文件的大小;如果满足,则确定所述写请求为完全写请求;否则,确定所述写请求不是完全写请求。
3.如权利要求1所述的方法,其特征在于,所述将与写请求对应的待写入内容写入到临时文件之前,还包括:
创建所述临时文件。
4.如权利要求3所述的方法,其特征在于,还包括:
在系统重启时,读取并回放所述日志;
删除所述系统中存在的临时文件。
5.一种处理写请求的装置,其特征在于,包括:
判断模块,用于判断所述写请求是否为完全写请求;
写入模块,用于在所述判断模块判断出所述写请求为完全写请求时,将与所述写请求对应的待写入内容写入到临时文件;
记录模块,用于在日志中记录从所述临时文件到目标文件的重命名操作;
重命名模块,用于在所述记录模块记录所述重命名操作后,将所述写入模块写入的所述临时文件重命名为所述目标文件。
6.如权利要求5所述的装置,其特征在于,
所述判断模块,具体用于判断所述写请求是否满足以下条件:所述目标文件不存在;或者,写入位置为所述目标文件的开头且写入长度不小于所述目标文件的大小;如果满足,则确定所述写请求为完全写请求;否则,确定所述写请求不是完全写请求。
7.如权利要求5所述的装置,其特征在于,还包括:
创建模块,用于创建所述临时文件。
8.如权利要求7所述的装置,其特征在于,还包括:
删除模块,用于当系统重启时,在回放所述日志后,删除所述系统中存在的临时文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510409614.XA CN105095418B (zh) | 2015-07-13 | 2015-07-13 | 一种处理写请求的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510409614.XA CN105095418B (zh) | 2015-07-13 | 2015-07-13 | 一种处理写请求的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105095418A CN105095418A (zh) | 2015-11-25 |
CN105095418B true CN105095418B (zh) | 2018-07-27 |
Family
ID=54575855
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510409614.XA Active CN105095418B (zh) | 2015-07-13 | 2015-07-13 | 一种处理写请求的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105095418B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105515855B (zh) * | 2015-12-04 | 2018-10-30 | 浪潮(北京)电子信息产业有限公司 | 一种云存储系统中直接纠删的日志回放优化方法及装置 |
CN107239480B (zh) * | 2016-03-28 | 2021-01-29 | 阿里巴巴集团控股有限公司 | 用于分布式文件系统执行重命名操作的方法和设备 |
CN107220388A (zh) * | 2017-06-30 | 2017-09-29 | 郑州云海信息技术有限公司 | 一种上传文件的方法与装置 |
CN114936387B (zh) * | 2022-07-25 | 2022-11-29 | 深圳市明源云科技有限公司 | 文本文件读取方法、写入方法、电子设备及可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7991979B2 (en) * | 2008-09-23 | 2011-08-02 | International Business Machines Corporation | Issuing load-dependent instructions in an issue queue in a processing unit of a data processing system |
CN102541986A (zh) * | 2011-10-27 | 2012-07-04 | 梁松 | 一种文件操作监控审计方法 |
CN103514258A (zh) * | 2013-08-09 | 2014-01-15 | 北京龙存科技有限责任公司 | 一种基于离线缓存文件操作集中记录预处理并重放的方法 |
CN104572416A (zh) * | 2014-12-29 | 2015-04-29 | 北京锐安科技有限公司 | 一种运维数据的处理方法及装置 |
-
2015
- 2015-07-13 CN CN201510409614.XA patent/CN105095418B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7991979B2 (en) * | 2008-09-23 | 2011-08-02 | International Business Machines Corporation | Issuing load-dependent instructions in an issue queue in a processing unit of a data processing system |
CN102541986A (zh) * | 2011-10-27 | 2012-07-04 | 梁松 | 一种文件操作监控审计方法 |
CN103514258A (zh) * | 2013-08-09 | 2014-01-15 | 北京龙存科技有限责任公司 | 一种基于离线缓存文件操作集中记录预处理并重放的方法 |
CN104572416A (zh) * | 2014-12-29 | 2015-04-29 | 北京锐安科技有限公司 | 一种运维数据的处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105095418A (zh) | 2015-11-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11093149B2 (en) | Method to efficiently store object data of an object storage service on a magnetic disk drive and magnetic SMR disk drive | |
KR101702201B1 (ko) | 솔리드 스테이트 드라이브(ssd)에 대한 최적화된 컨텍스트 드롭 | |
US9448890B2 (en) | Aggregation of write traffic to a data store | |
US8321482B2 (en) | Selectively modifying files of a container file | |
CN105095418B (zh) | 一种处理写请求的方法和装置 | |
US10073649B2 (en) | Storing metadata | |
CN105677258A (zh) | 一种日志数据管理方法及系统 | |
US9785641B2 (en) | Reducing a backup time of a backup of data files | |
CN107643880A (zh) | 基于分布式文件系统的文件数据迁移的方法及装置 | |
GB2543392A (en) | Methods and systems for improving storage journaling | |
US20170286150A1 (en) | Transaction Processing Method and Apparatus, and Computer System | |
US9785438B1 (en) | Media cache cleaning based on workload | |
US9990150B2 (en) | Method to provide transactional semantics for updates to data structures stored in a non-volatile memory | |
CN111240879B (zh) | 一种sas卡固件日志收集方法、系统、装置及存储介质 | |
US8402230B2 (en) | Recoverability while adding storage to a redirect-on-write storage pool | |
CN110658993A (zh) | 一种快照回滚方法、装置、设备及存储介质 | |
JP5729479B2 (ja) | 仮想テープ装置及び仮想テープ装置の制御方法 | |
CN105139870A (zh) | 一种光盘的实时刻录方法及装置 | |
CN110767258B (zh) | 数据擦除命令测试方法和相关装置 | |
US20130031320A1 (en) | Control device, control method and storage apparatus | |
CN110019086A (zh) | 基于分布式文件系统的多副本读取方法、设备及存储介质 | |
US9672222B1 (en) | Write-through buffer cache for write-able file system that utilizes differencing disk to preserve read-only data | |
CN111090396A (zh) | 一种文件的处理方法、装置及电子设备 | |
CN105573862A (zh) | 一种恢复文件系统的方法和设备 | |
CN112667161B (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 |