一种卷读写方法和装置制造方法及图纸

技术编号:30139254 阅读:16 留言:0更新日期:2021-09-23 14:57
本发明专利技术公开了一种卷读写方法和装置,方法包括:响应于卷被请求执行读操作并且卷处于第一状态,而允许对卷执行读操作并且将卷从第一状态切换到第二状态;响应于针对卷的读操作执行完毕,而将卷从第二状态切换到第一状态;响应于卷被请求执行写操作并且卷处于第一状态,而允许对卷执行写操作并且将卷从第一状态切换到第三状态;响应于写操作执行完毕,而将卷从第三状态切换到第一状态;响应于卷处于第二状态而拒绝写操作请求;响应于卷处于第三状态而拒绝读操作请求和写操作请求。本发明专利技术能够避免使用独占锁导致的数据不一致,维护数据的一致性。致性。致性。

【技术实现步骤摘要】
一种卷读写方法和装置


[0001]本专利技术涉及数据读写领域,更具体地,特别是指一种卷读写方法和装置。

技术介绍

[0002]在虚拟化及数据场景下,越来越多的用户选择使用分布式块存储,而卷的排他锁特性是用来保护卷数据一致性的机制,当对卷做修改时,需要持有此锁。排他锁是一种分布式锁,实现的时候默认是客户端在第一次写的时候获取锁,并且在收到其他客户端的锁请求时自动释放锁,旨在防止多个进程以不协调的方式访问同一块设备,排他锁在虚拟化中被大量使用,它可以防止虚拟机对彼此的写操作进行重击。
[0003]然而两个或多个并发运行的进程完全有可能只打开卷,也可以从中读取数据。客户端仅在尝试写入卷时获取独占锁。这样,对于卷的某些操作和场景可能会有数据不一致的问题,比如,在卷拷贝的过程中对源卷进行回滚,即将源卷拷贝到目标卷,因为对源卷仅有读取动作,所以不需要获取排他锁,此时对源卷进行回滚操作,排他锁没有被占用,允许获得排他锁,就导致了一边拷贝一边回滚,造成数据不一致。
[0004]针对现有技术中数据独占锁可能导致数据不一致的问题,目前尚无有效的解决方案。

技术实现思路

[0005]有鉴于此,本专利技术实施例的目的在于提出一种卷读写方法和装置,能够避免使用独占锁导致的数据不一致,维护数据的一致性。
[0006]基于上述目的,本专利技术实施例的第一方面提供了一种卷读写方法,包括执行以下步骤:
[0007]响应于卷被请求执行读操作并且卷处于第一状态,而允许对卷执行读操作并且将卷从第一状态切换到第二状态;
[0008]响应于针对卷的读操作执行完毕,而将卷从第二状态切换到第一状态;
[0009]响应于卷被请求执行写操作并且卷处于第一状态,而允许对卷执行写操作并且将卷从第一状态切换到第三状态;
[0010]响应于写操作执行完毕,而将卷从第三状态切换到第一状态;
[0011]响应于卷处于第二状态而拒绝写操作请求,以及响应于卷处于第三状态而拒绝读操作请求和写操作请求。
[0012]在一些实施方式中,方法还包括执行以下步骤:
[0013]响应于卷被创建,而将卷初始化标记为处于第一状态。
[0014]在一些实施方式中,方法还包括执行以下步骤:
[0015]响应于卷被请求执行读操作并且卷处于第二状态,而允许对卷执行读操作。
[0016]在一些实施方式中,针对卷的读操作执行完毕包括:针对卷的所有读操作均执行完毕。
[0017]在一些实施方式中,响应于卷处于第二状态而拒绝写操作请求包括:拒绝所有写操作请求;响应于卷处于第三状态而拒绝读操作请求和写操作请求包括:拒绝所有读操作请求和所有写操作请求。
[0018]在一些实施方式中,卷包括第一卷和第二卷。
[0019]在一些实施方式中,包括通过执行以下步骤来将数据从第一卷复制到第二卷:
[0020]响应于第一卷处于第一状态或第二状态,而从第一卷读取数据,并将第一卷切换到第二状态;
[0021]响应于已经读取数据完毕,并且针对第一卷的所有读操作均执行完毕,而将第一卷切换到第一状态;
[0022]响应于第二卷处于第一状态,而向第二卷写入数据,并将第二卷切换到第三状态;
[0023]响应于已经写入数据完毕,而将第二卷切换到第一状态。
[0024]在一些实施方式中,还包括:响应于第一卷处于第二状态,而拒绝针对第一卷的数据写请求;响应于第二卷处于第三状态,而拒绝针对第二卷的数据读请求和数据写请求。
[0025]在一些实施方式中,读操作包括不改变卷内数据的操作;写操作包括改变卷内数据的操作。
[0026]本专利技术实施例的第二方面提供了一种装置,包括:
[0027]处理器;
[0028]控制器,存储有处理器可运行的程序代码,处理器在运行程序代码时执行以下步骤:
[0029]响应于卷被请求执行读操作并且卷处于第一状态,而允许对卷执行读操作并且将卷从第一状态切换到第二状态;
[0030]响应于针对卷的读操作执行完毕,而将卷从第二状态切换到第一状态;
[0031]响应于卷被请求执行写操作并且卷处于第一状态,而允许对卷执行写操作并且将卷从第一状态切换到第三状态;
[0032]响应于写操作执行完毕,而将卷从第三状态切换到第一状态;
[0033]响应于卷处于第二状态而拒绝写操作请求以及响应于卷处于第三状态而拒绝读操作请求和写操作请求。
[0034]在一些实施方式中,还包括执行以下步骤:
[0035]响应于卷被创建,而将卷初始化标记为处于第一状态。
[0036]在一些实施方式中,还包括执行以下步骤:
[0037]响应于卷被请求执行读操作并且卷处于第二状态,而允许对卷执行读操作。
[0038]在一些实施方式中,针对卷的读操作执行完毕包括:针对卷的所有读操作均执行完毕。
[0039]在一些实施方式中,响应于卷处于第二状态而拒绝写操作请求包括:拒绝所有写操作请求;响应于卷处于第三状态而拒绝读操作请求和写操作请求包括:拒绝所有读操作请求和所有写操作请求。
[0040]在一些实施方式中,卷包括第一卷和第二卷。
[0041]在一些实施方式中,包括通过执行以下步骤来将数据从第一卷复制到第二卷:
[0042]响应于第一卷处于第一状态或第二状态,而从第一卷读取数据,并将第一卷切换
到第二状态;
[0043]响应于已经读取数据完毕,并且针对第一卷的所有读操作均执行完毕,而将第一卷切换到第一状态;
[0044]响应于第二卷处于第一状态,而向第二卷写入数据,并将第二卷切换到第三状态;
[0045]响应于已经写入数据完毕,而将第二卷切换到第一状态。
[0046]在一些实施方式中,步骤还包括:响应于第一卷处于第二状态,而拒绝针对第一卷的数据写请求;响应于第二卷处于第三状态,而拒绝针对第二卷的数据读请求和数据写请求。
[0047]在一些实施方式中,读操作包括不改变卷内数据的操作;写操作包括改变卷内数据的操作。
[0048]本专利技术具有以下有益技术效果:本专利技术实施例提供的卷读写方法和装置,通过响应于卷被请求执行读操作并且卷处于第一状态,而允许对卷执行读操作并且将卷从第一状态切换到第二状态;响应于针对卷的读操作执行完毕,而将卷从第二状态切换到第一状态;响应于卷被请求执行写操作并且卷处于第一状态,而允许对卷执行写操作并且将卷从第一状态切换到第三状态;响应于写操作执行完毕,而将卷从第三状态切换到第一状态;响应于卷处于第二状态而拒绝写操作请求;响应于卷处于第三状态而拒绝读操作请求和写操作请求的技术方案,能够避免使用独占锁导致的数据不一致,维护数据的一致性。
附图说明
[0049]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种卷读写方法,其特征在于,包括执行以下步骤:响应于卷被请求执行读操作并且所述卷处于第一状态,而允许对所述卷执行读操作并且将所述卷从所述第一状态切换到第二状态;响应于针对所述卷的读操作执行完毕,而将所述卷从所述第二状态切换到所述第一状态;响应于所述卷被请求执行写操作并且所述卷处于所述第一状态,而允许对所述卷执行写操作并且将所述卷从所述第一状态切换到第三状态;响应于写操作执行完毕,而将所述卷从所述第三状态切换到所述第一状态;响应于所述卷处于所述第二状态而拒绝写操作请求,以及响应于所述卷处于所述第三状态而拒绝读操作请求和写操作请求。2.根据权利要求1所述的方法,其特征在于,还包括执行以下步骤:响应于所述卷被创建,而将所述卷初始化标记为处于所述第一状态。3.根据权利要求1所述的方法,其特征在于,还包括执行以下步骤:响应于所述卷被请求执行读操作并且所述卷处于所述第二状态,而允许对所述卷执行读操作。4.根据权利要求1所述的方法,其特征在于,针对所述卷的读操作执行完毕包括:针对所述卷的所有读操作均执行完毕。5.根据权利要求1所述的方法,其特征在于,响应于所述卷处于所述第二状态而拒绝写操作请求包括:拒绝所有写操作请求;响应于所述卷处于所述第三状态而拒绝读操作请求和写操作请求包括:拒绝所有读操作请求和所有写操作请求。6.根据权利要求1所述的方法,其特征在于,所述卷包括第一卷和第二卷。7.根据权利要求6所述的方法,其特征在于,包括通过执行以下步骤来将数据从所述第一卷复制到所述第二卷:响应于所述第...

【专利技术属性】
技术研发人员:王小梅彭泽
申请(专利权)人:济南浪潮数据技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1