CN105243101B - 多控制器对同一数据压缩文件进行并发访问的方法及*** - Google Patents
多控制器对同一数据压缩文件进行并发访问的方法及*** Download PDFInfo
- Publication number
- CN105243101B CN105243101B CN201510595190.0A CN201510595190A CN105243101B CN 105243101 B CN105243101 B CN 105243101B CN 201510595190 A CN201510595190 A CN 201510595190A CN 105243101 B CN105243101 B CN 105243101B
- Authority
- CN
- China
- Prior art keywords
- file
- targeted compression
- compression file
- data
- locking
- 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 48
- 238000007906 compression Methods 0.000 claims abstract description 124
- 230000006835 compression Effects 0.000 claims abstract description 124
- 230000006837 decompression Effects 0.000 claims abstract description 43
- 238000012545 processing Methods 0.000 claims abstract description 18
- 238000001514 detection method Methods 0.000 claims description 5
- 238000013144 data compression Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000750 progressive effect Effects 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/17—Details of further file system functions
- G06F16/176—Support for shared access to files; File sharing support
- G06F16/1767—Concurrency control, e.g. optimistic or pessimistic approaches
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)
- Memory System (AREA)
Abstract
本发明实施例公开了一种多控制器对数据压缩文件进行并发访问的方法,获取多控制器对目标压缩文件的数据进行访问的请求指令;对所述目标压缩文件执行加锁操作;当检测到对所述目标压缩文件的加锁操作成功后,对所述加锁后的目标压缩文件进行解压处理,得到所述目标压缩文件中的数据;对所述目标压缩文件执行释放锁操作。本申请中在接收到多控制器对目标压缩文件的数据进行访问的请求指令后,对压缩文件进行加锁和解锁处理,以控制多控制器对数据压缩文件***中同一压缩文件的解压次数,保证对于同一压缩文件来说,它只能被解压一次,从而防止多控制器先后对其解压造成的共享文件***数据不一致问题,保证了数据的一致性。
Description
技术领域
本发明涉及堆叠式数据压缩文件***的技术领域,更具体地说,涉及一种多控制器对数据压缩文件进行并发访问的方法及***。
背景技术
随着技术的发展,人们对多控制器对数据压缩文件进行并发访问的方法越来越关注。
现有的当堆叠式数据压缩文件***中的压缩存储的数据被访问时,数据压缩文件***则会首先执行解压操作,而多个控制器对同一压缩文件的并发解压,则可能会导致文件***数据不一致问题。
因此,如何有效的实现多控制器对同一数据压缩文件的并发访问,保证数据的一致性是本领域技术人员亟需解决的技术问题。
发明内容
本发明的目的在于提供一种多控制器对数据压缩文件进行并发访问的方法及***,可有效的实现多控制器对同一数据压缩文件的并发访问,保证数据的一致性。
为实现上述目的,本发明实施例提供了如下技术方案:
一种多控制器对数据压缩文件进行并发访问的方法,该方法包括:
获取多控制器对目标压缩文件的数据进行访问的请求指令;
对所述目标压缩文件执行加锁操作;
当检测到对所述目标压缩文件的加锁操作成功后,对所述加锁后的目标压缩文件进行解压处理,得到所述目标压缩文件中的数据;
对所述目标压缩文件执行释放锁操作。
上述的访问方法,可选的,所述对所述加锁后的目标压缩文件进行解压处理,包括:
对所述加锁后的目标压缩文件的标识进行检测;
判断所述目标压缩文件的标识是否与所述请求指令中的压缩标识相匹配,若是,则对所述加锁后的目标文件进行解压处理。
上述的访问方法,可选的,还包括:
当检测到对所述目标压缩文件的加锁操作失败后,所述目标压缩文件被其他进程锁定,等待所述其他进程释放所述目标文件,直到所述目标压缩文件被解压完毕,得到所述目标压缩文件中的数据。
上述的访问方法,可选的,还包括:
判定所述等待其他进程释放所述目标文件,直到所述目标压缩文件被解压完毕,得到所述目标压缩文件中的数据的时间是否超过预设时间阈值,若是,则确定对所述目标压缩文件进行访问的操作失败。
上述的访问方法,可选的,还包括:
当检测到对所述目标压缩文件的加锁操作失败后,判定对所述目标压缩文件的解压过程已经完成,直接跳出解压操作,确定对所述目标压缩文件进行访问的操作失败。
一种多控制器对数据压缩文件进行并发访问的***,该***包括:
获取单元,用于获取多控制器对目标压缩文件的数据进行访问的请求指令;
加锁单元,用于对所述目标压缩文件执行加锁操作;
解压单元,用于当检测到对所述目标压缩文件的加锁操作成功后,对所述加锁后的目标压缩文件进行解压处理,得到所述目标压缩文件中的数据;
释放单元,用于对所述目标压缩文件执行释放锁操作。
上述的访问***,可选的,所述解压单元,包括:
检测单元,用于对所述加锁后的目标压缩文件的标识进行检测;
判断单元,用于判断所述目标压缩文件的标识是否与所述请求指令中的压缩标识相匹配,若是,则对所述加锁后的目标文件进行解压处理。
上述的访问***,可选的,还包括:
等待单元,用于当检测到对所述目标压缩文件的加锁操作失败后,所述目标压缩文件被其他进程锁定,等待所述其他进程释放所述目标文件,直到所述目标压缩文件被解压完毕,得到所述目标压缩文件中的数据。
上述的访问***,可选的,还包括:
第一判定单元,用于判定所述等待其他进程释放所述目标文件,直到所述目标压缩文件被解压完毕,得到所述目标压缩文件中的数据的时间是否超过预设时间阈值,若是,则确定对所述目标压缩文件进行访问的操作失败。
上述的访问***,可选的,还包括:
第二判定单元,用于当检测到对所述目标压缩文件的加锁操作失败后,判定对所述目标压缩文件的解压过程已经完成,直接跳出解压操作,确定对所述目标压缩文件进行访问的操作失败。
通过以上方案可知,本发明实施例提供的一种多控制器对数据压缩文件进行并发访问的方法,获取多控制器对目标压缩文件的数据进行访问的请求指令;对所述目标压缩文件执行加锁操作;当检测到对所述目标压缩文件的加锁操作成功后,对所述加锁后的目标压缩文件进行解压处理,得到所述目标压缩文件中的数据;对所述目标压缩文件执行释放锁操作。本申请中在接收到多控制器对目标压缩文件的数据进行访问的请求指令后,对压缩文件进行加锁和解锁处理,以控制多控制器对数据压缩文件***中同一压缩文件的解压次数,保证对于同一压缩文件来说,它只能被解压一次,从而防止多控制器先后对其解压造成的共享文件***数据不一致问题,保证了数据的一致性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例公开的一种多控制器对数据压缩文件进行并发访问的方法的流程图;
图2为本发明实施例公开的一种多控制器对数据压缩文件进行并发访问的***的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1,本发明实施例公开了一种多控制器对数据压缩文件进行并发访问的方法,可以包括以下步骤:
S101、获取多控制器对目标压缩文件的数据进行访问的请求指令。
本申请中提供的一种多控制器对数据压缩文件进行并发访问的方法适用于多控共享存储***中,应用于堆叠在多控共享存储***之上的数据压缩文件***,用于解决多控制器并发访问堆叠式数据压缩文件***的同一文件可能造成的数据不一致问题。
S102、对所述目标压缩文件执行加锁操作。
当多个控制器需要同时对同一数据压缩文件进行并发访问时,也就是说,在接到多控制器对同一数据压缩文件进行并发访问的请求指令时,对待访问的数据压缩文件进行加锁操作,此时,所述数据压缩文件仅可被接收到访问请求的多个控制器访问,以免其他应用程序再访问此数据压缩文件。
S103、判断对所述目标压缩文件的加锁操作是否成功,若是,则执行步骤S104,否则,执行步骤S106。
S104、当检测到对所述目标压缩文件的加锁操作成功后,对所述加锁后的目标压缩文件进行解压处理,得到所述目标压缩文件中的数据。
本申请中,对所述加锁后的目标压缩文件进行解压处理,包括:
对所述加锁后的目标压缩文件的标识进行检测。
判断所述目标压缩文件的标识是否与所述请求指令中的压缩标识相匹配,若是,则对所述加锁后的目标文件进行解压处理。
也就是说,需要判断加锁后的目标压缩文件是否需要进行访问的数据压缩文件,只有在加锁后的目标压缩文件是多控制器需要进行访问的数据压缩文件时,才对加锁后的目标压缩文件进行解压操作,否则,放弃此次访问,也就是说,此次访问失败。
当对数据压缩文件加锁成功后,对加锁后的目标压缩文件进行解压处理,由于加锁的原因,所述多个控制器仅仅可以对所述数据压缩文件解压一次,得到一份数据压缩文件中的数据,从而防止多控制器先后对所述数据压缩文件进行解压造成的共享文件***数据不一致的问题。
S105、对所述目标压缩文件执行释放锁操作。
对数据压缩文件解压成功,得到数据压缩文件中的数据后,释放数据压缩文件的锁,不影响其他控制器或者应用程序访问所述数据压缩文件。
S106、当检测到对所述目标压缩文件的加锁操作失败后,所述目标压缩文件被其他进程锁定,等待所述其他进程释放所述目标文件,直到所述目标压缩文件被解压完毕,得到所述目标压缩文件中的数据。
判定所述等待其他进程释放所述目标文件,直到所述目标压缩文件被解压完毕,得到所述目标压缩文件中的数据的时间是否超过预设时间阈值,若是,则确定对所述目标压缩文件进行访问的操作失败。
本申请中,还包括:
当检测到对所述目标压缩文件的加锁操作失败后,判定对所述目标压缩文件的解压过程已经完成,直接跳出解压操作,确定对所述目标压缩文件进行访问的操作失败。
通过以上方案可知,本发明实施例提供的一种多控制器对数据压缩文件进行并发访问的方法,在接收到多控制器对目标压缩文件的数据进行访问的请求指令后,对压缩文件进行加锁和解锁处理,以控制多控制器对数据压缩文件***中同一压缩文件的解压次数,保证对于同一压缩文件来说,它只能被解压一次,从而防止多控制器先后对其解压造成的共享文件***数据不一致问题,保证了数据的一致性。
在具体实现过程中,加锁的类型有三种,分别为读锁F_RDLCK、写锁F_WRLCK、释放锁F_UNLCK,对压缩文件进行加锁的功能通过直接封装Linux标准fctnl实现,同时记录对压缩文件执行所操作日志。
堆叠式数据压缩文件***,附加于共享存储***之上,通过在文件***接口层的映射和重写,将底层文件***的服务已完整实现,在文件打开操作流程中,会执行压缩标识的检测、压缩文件的解压操作。
对压缩文件执行解压操作之前,对压缩设置写锁,如果设置成功,则允许进行解压操作,否则,要么是该文件已被其他进程锁定,我们选择等待,直到该文件被解压完毕或超时时间返回(考虑到大文件的解压时间较长,将超时时间设置为300s),要么就是该文件解压过程已完成,直接返回,跳出解压操作。
当前进程完成压缩文件解压操作后释放文件锁。
与图1中一种多控制器对数据压缩文件进行并发访问方法实施例相对应,参考图2,本申请还提供了一种多控制器对数据压缩文件进行并发访问***的实施例,包括:
获取单元201,用于获取多控制器对目标压缩文件的数据进行访问的请求指令。
加锁单元202,用于对所述目标压缩文件执行加锁操作。
解压单元203,用于当检测到对所述目标压缩文件的加锁操作成功后,对所述加锁后的目标压缩文件进行解压处理,得到所述目标压缩文件中的数据;
释放单元204,用于对所述目标压缩文件执行释放锁操作。
所述解压单元203,包括:
检测单元,用于对所述加锁后的目标压缩文件的标识进行检测;
判断单元,用于判断所述目标压缩文件的标识是否与所述请求指令中的压缩标识相匹配,若是,则对所述加锁后的目标文件进行解压处理。
本申请中,还包括:
等待单元,用于当检测到对所述目标压缩文件的加锁操作失败后,所述目标压缩文件被其他进程锁定,等待所述其他进程释放所述目标文件,直到所述目标压缩文件被解压完毕,得到所述目标压缩文件中的数据。
第一判定单元,用于判定所述等待其他进程释放所述目标文件,直到所述目标压缩文件被解压完毕,得到所述目标压缩文件中的数据的时间是否超过预设时间阈值,若是,则确定对所述目标压缩文件进行访问的操作失败。
第二判定单元,用于当检测到对所述目标压缩文件的加锁操作失败后,判定对所述目标压缩文件的解压过程已经完成,直接跳出解压操作,确定对所述目标压缩文件进行访问的操作失败。
综上,本申请提供的一种多控制器对数据压缩文件进行并发访问的方法及***,实现了多控制器对同一压缩文件的并发访问,保证了数据一致性与完整性。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (6)
1.一种多控制器对数据压缩文件进行并发访问的方法,其特征在于,该方法包括:
获取多控制器对目标压缩文件的数据进行访问的请求指令;
对所述目标压缩文件执行加锁操作;
当检测到对所述目标压缩文件的加锁操作成功后,对所述加锁后的目标压缩文件进行解压处理,得到所述目标压缩文件中的数据;
对所述目标压缩文件执行释放锁操作;
其中,所述对所述加锁后的目标压缩文件进行解压处理,包括:对所述加锁后的目标压缩文件的标识进行检测;判断所述目标压缩文件的标识是否与所述请求指令中的压缩标识相匹配,若是,则对所述加锁后的目标文件进行解压处理;
当检测到对所述目标压缩文件的加锁操作失败后,所述目标压缩文件被其他进程锁定,等待所述其他进程释放所述目标文件,直到所述目标压缩文件被解压完毕,得到所述目标压缩文件中的数据。
2.根据权利要求1所述的访问方法,其特征在于,还包括:
判定所述等待其他进程释放所述目标文件,直到所述目标压缩文件被解压完毕,得到所述目标压缩文件中的数据的时间是否超过预设时间阈值,若是,则确定对所述目标压缩文件进行访问的操作失败。
3.根据权利要求1所述的访问方法,其特征在于,还包括:
当检测到对所述目标压缩文件的加锁操作失败后,判定对所述目标压缩文件的解压过程已经完成,直接跳出解压操作,确定对所述目标压缩文件进行访问的操作失败。
4.一种多控制器对数据压缩文件进行并发访问的***,其特征在于,该***包括:
获取单元,用于获取多控制器对目标压缩文件的数据进行访问的请求指令;
加锁单元,用于对所述目标压缩文件执行加锁操作;
解压单元,用于当检测到对所述目标压缩文件的加锁操作成功后,对所述加锁后的目标压缩文件进行解压处理,得到所述目标压缩文件中的数据;
释放单元,用于对所述目标压缩文件执行释放锁操作;
其中,所述解压单元,包括:检测单元,用于对所述加锁后的目标压缩文件的标识进行检测;判断单元,用于判断所述目标压缩文件的标识是否与所述请求指令中的压缩标识相匹配,若是,则对所述加锁后的目标文件进行解压处理;
等待单元,用于当检测到对所述目标压缩文件的加锁操作失败后,所述目标压缩文件被其他进程锁定,等待所述其他进程释放所述目标文件,直到所述目标压缩文件被解压完毕,得到所述目标压缩文件中的数据。
5.根据权利要求4所述的访问***,其特征在于,还包括:
第一判定单元,用于判定所述等待其他进程释放所述目标文件,直到所述目标压缩文件被解压完毕,得到所述目标压缩文件中的数据的时间是否超过预设时间阈值,若是,则确定对所述目标压缩文件进行访问的操作失败。
6.根据权利要求4所述的访问***,其特征在于,还包括:
第二判定单元,用于当检测到对所述目标压缩文件的加锁操作失败后,判定对所述目标压缩文件的解压过程已经完成,直接跳出解压操作,确定对所述目标压缩文件进行访问的操作失败。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510595190.0A CN105243101B (zh) | 2015-09-17 | 2015-09-17 | 多控制器对同一数据压缩文件进行并发访问的方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510595190.0A CN105243101B (zh) | 2015-09-17 | 2015-09-17 | 多控制器对同一数据压缩文件进行并发访问的方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105243101A CN105243101A (zh) | 2016-01-13 |
CN105243101B true CN105243101B (zh) | 2019-05-10 |
Family
ID=55040750
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510595190.0A Active CN105243101B (zh) | 2015-09-17 | 2015-09-17 | 多控制器对同一数据压缩文件进行并发访问的方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105243101B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106372030A (zh) * | 2016-10-27 | 2017-02-01 | 郑州云海信息技术有限公司 | 一种双控制器存储***数据同步方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6088694A (en) * | 1998-03-31 | 2000-07-11 | International Business Machines Corporation | Continuous availability and efficient backup for externally referenced objects |
CN101719210A (zh) * | 2009-12-25 | 2010-06-02 | 武汉大学 | 基于linux平台数字版权管理的文件使用控制方法 |
CN101876992A (zh) * | 2009-11-17 | 2010-11-03 | 中国科学院自动化研究所 | 一种图像数据仓库管理方法 |
CN102681892A (zh) * | 2012-05-15 | 2012-09-19 | 西安热工研究院有限公司 | Key-Value型单写多读锁池软件模块及其运行方法 |
CN104462403A (zh) * | 2014-12-11 | 2015-03-25 | 华为技术有限公司 | 文件截断方法和装置 |
-
2015
- 2015-09-17 CN CN201510595190.0A patent/CN105243101B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6088694A (en) * | 1998-03-31 | 2000-07-11 | International Business Machines Corporation | Continuous availability and efficient backup for externally referenced objects |
CN101876992A (zh) * | 2009-11-17 | 2010-11-03 | 中国科学院自动化研究所 | 一种图像数据仓库管理方法 |
CN101719210A (zh) * | 2009-12-25 | 2010-06-02 | 武汉大学 | 基于linux平台数字版权管理的文件使用控制方法 |
CN102681892A (zh) * | 2012-05-15 | 2012-09-19 | 西安热工研究院有限公司 | Key-Value型单写多读锁池软件模块及其运行方法 |
CN104462403A (zh) * | 2014-12-11 | 2015-03-25 | 华为技术有限公司 | 文件截断方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105243101A (zh) | 2016-01-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7765440B2 (en) | Method and apparatus for OS independent platform recovery | |
KR101759379B1 (ko) | 확장된 데이터를 갖는 메모리 덤프 및 사용자 프라이버시 보호 기법 | |
EP2875466B1 (en) | Method and apparatus for performing virus scan during decompression of application installation package | |
US8832666B2 (en) | Dynamic instrumentation | |
US8930761B2 (en) | Test case result processing | |
EP3353648A1 (en) | Methods and systems for uploading a program based on a target network platform | |
WO2016123908A1 (zh) | 一种内存越界的检测方法及装置 | |
US9501344B2 (en) | Data dump for a memory in a data processing system | |
US20160212156A1 (en) | System and method for detecting malicious code based on application programming interface | |
CN106462422B (zh) | 用于多***终端的***升级方法、升级装置和终端 | |
CN105988798B (zh) | 补丁处理方法及装置 | |
CN105183852A (zh) | 一种数据库迁移方法和装置 | |
US10366226B2 (en) | Malicious code analysis device and method based on external device connected via USB cable | |
CN109710317A (zh) | ***启动方法、装置、电子设备及存储介质 | |
CN110737453A (zh) | 安全芯片的升级方法、装置及安全芯片 | |
CN106716348A (zh) | 用于执行多个线程的数据处理设备中的共享资源 | |
CN111414256A (zh) | 基于麒麟移动操作***的应用程序进程派生方法、***及介质 | |
CN109901957B (zh) | 以可扩展固件接口进行内存测试的计算装置及其方法 | |
CN105243101B (zh) | 多控制器对同一数据压缩文件进行并发访问的方法及*** | |
CN109002305A (zh) | 一种设备程序的更新方法及其*** | |
WO2020233044A1 (zh) | 一种插件校验方法、设备、服务器及计算机可读存储介质 | |
CN111694724A (zh) | 分布式表格***的测试方法、装置、电子设备及存储介质 | |
CN106844148B (zh) | 一种虚拟机启动进度监控方法及装置 | |
CN111797016B (zh) | 应用程序的测试方法、设备、存储介质及装置 | |
CN111077369B (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 |