I/O数据读写并发冲突的处理方法、系统及相关装置制造方法及图纸

技术编号:22329733 阅读:27 留言:0更新日期:2019-10-19 12:12
本申请公开了一种I/O数据读写并发冲突的处理方法,该处理方法当判断出先后下发的两个I/O数据间存在读写冲突时,采用建立冲突队列并将后下发的冲突I/O数据挂起在该冲突队列中的方法,以防止读写并发冲突事件的产生,当先下发的冲突I/O数据下发完毕后返回等待取消信号来告知挂起在冲突队列中的冲突I/O数据取消挂起并执行数据下发操作,能够在保持I/O数据下发顺序性的前提下实现自行解决产生的读写并发冲突事件,无需用户频繁人工操作,显著提高了工作效率。本申请还同时公开了一种I/O数据读写并发冲突的处理系统、装置及计算机可读存储介质,具有上述有益效果。

Processing method, system and related devices of I / O data read / write concurrency conflict

【技术实现步骤摘要】
I/O数据读写并发冲突的处理方法、系统及相关装置
本申请涉及I/O数据处理
,特别涉及一种I/O数据读写并发冲突的处理方法、系统、装置及计算机可读存储介质。
技术介绍
保持数据的完整性是现代存储系统中最重要的职责,为尽可能完善这一机制,不断有各式相关技术被开发和应用于增强或改进这一机制,其中目前常用的且较为成熟的方法为利用校验和来完成数据完整性的校验。校验和是从由数据块导出的小块基准,用于检测该数据块是否在传输或存储期间引入或发生了错误,通常情况下不对数据的真实性做判别。利用校验和来完成数据完整性的校验原理为:利用校验和生成算法为写入的数据计算得到一个校验和,而该校验和还用于与在实际读取该数据时重新生成的另一校验和进行比对,仅当两者一致时才能说明数据通过了完整性校验在读写数据时,如果先后下发的两个I/O数据之间若存在读写冲突,则无法同时执行,仅当两个下发的I/O数据均为读操作时才能够同时执行,而只有当I/O数据成功下发后才能够基于该I/O数据计算得到校验和并执行后续流程,现有技术中在遇到此种情况时,并没有给出一个行之有效的解决方法,通常仅采用报错的方式提醒不能同时下发两个存在读写冲突的数据,将后续处理权转交给使用者进行冲突发生时的调整,用户使用体验较差。所以,如何克服现有解决读写并发冲突产生时存在的技术缺陷,提供一种用户体验良好,能够在出现读写并发冲突时自行解决的方案是本领域技术人员亟待解决的问题。
技术实现思路
本申请的目的是提供一种I/O数据读写并发冲突的处理方法,当判断出先后下发的两个I/O数据间存在读写冲突时,采用建立冲突队列并将后下发的冲突I/O数据挂起在该冲突队列中的方法,以防止读写并发冲突事件的产生,当先下发的冲突I/O数据下发完毕后返回等待取消信号来告知挂起在冲突队列中的冲突I/O数据取消挂起并执行数据下发操作,能够在保持I/O数据下发顺序性的前提下实现自行解决产生的读写并发冲突事件,无需用户频繁人工操作,显著提高了工作效率。本申请的另一目的在于提供了一种I/O数据读写并发冲突的处理系统、装置及计算机可读存储介质。为实现上述目的,本申请提供一种I/O数据读写并发冲突的处理方法,该处理方法包括:判断新I/O数据与原I/O数据是否存在读写并发冲突;其中,所述原I/O数据为当前正在执行数据下发操作的I/O数据,所述新I/O数据为尚未开始执行所述数据下发操作的I/O数据;若存在所述读写并发冲突,则建立冲突队列并将所述新I/O数据挂起至所述冲突队列;当与所述新I/O数据存在所述读写并发冲突的原I/O数据完成所述数据下发操作时,向所述新I/O数据返回等待取消信号以使所述新I/O数据取消挂起并开始执行所述数据下发操作。可选的,判断新I/O数据与原I/O数据是否存在读写并发冲突,包括:从所述原I/O数据和所述新I/O数据中分别对应提取得到第一读写状态标志和第二读写状态标志;判断所述第一读写状态标志和所述第二读写状态标志是否均表示读操作;若均表示所述读操作,则判定所述新I/O数据与所述原I/O数据之间不存在所述读写并发冲突;若非均表示所述读操作,则判定所述新I/O数据与所述原I/O数据之间存在所述读写并发冲突。可选的,向所述新I/O数据返回等待取消信号以使所述新I/O数据取消挂起并开始执行所述数据下发操作,包括:当所述原I/O数据完成所述数据下发操作时,根据所述原I/O数据的特征信息生成所述等待取消信号;向所述冲突队列中的所有I/O数据广播所述等待取消信号;根据接收到的等待取消信号取消所述新I/O数据在所述冲突队列上的挂起并开始执行所述数据下发操作。可选的,在接收到所述等待取消信号之后、根据所述等待取消信号取消所述新I/O数据在所述冲突队列上的挂起之前,还包括:判断所述新I/O数据是否与在所述冲突队列中排列于所述新I/O数据前的I/O数据存在所述读写并发冲突;若是,则保持所述新I/O数据在所述冲突队列中的挂起状态直至排列于所述新I/O数据前的I/O数据均与所述新I/O数据不存在所述读写并发冲突。可选的,在开始执行所述数据下发操作之前,还包括:判断即将执行所述数据下发操作的I/O数据是否需要进行对齐处理;若需要,则从预设补齐数据来源处获得补齐数据,并利用所述补齐数据对需要进行所述对齐处理的I/O数据进行封装,得到对齐I/O数据;若不需要,则利用校验和生成算法计算得到不需要进行所述对齐处理的I/O数据的校验和。可选的,判断即将执行所述数据下发操作的I/O数据是否需要进行对齐处理,包括:从即将执行所述数据下发操作的I/O数据中提取得到偏移值和长度值;根据所述偏移值和所述长度值判断是否需要进行所述对齐处理。可选的,从预设补齐数据来源处获得补齐数据,并利用所述补齐数据对需要进行所述对齐处理的I/O数据进行封装,得到对齐I/O数据,包括:从所述预设补齐数据来源处分别获得头部补齐数据和尾部补齐数据;将所述头部补齐数据和所述尾部补齐数据分别对应拼接在需要进行所述对齐处理的I/O数据的头部和尾部,得到所述对齐I/O数据。为实现上述目的,本申请还提供了一种I/O数据读写并发冲突的处理系统,该处理系统包括:读写并发冲突判断单元,用于判断新I/O数据与原I/O数据是否存在读写并发冲突;其中,所述原I/O数据为当前正在执行数据下发操作的I/O数据,所述新I/O数据为尚未开始执行所述数据下发操作的I/O数据;冲突队列创建及冲突I/O数据挂起单元,用于当存在所述读写并发冲突时,建立冲突队列并将所述新I/O数据挂起至所述冲突队列;等待取消信号返回及执行单元,用于当与所述新I/O数据存在所述读写并发冲突的原I/O数据完成所述数据下发操作时,向所述新I/O数据返回等待取消信号以使所述新I/O数据取消挂起并开始执行所述数据下发操作。可选的,所述读写并发冲突判断单元包括:读写状态标志提取子单元,用于从所述原I/O数据和所述新I/O数据中分别对应提取得到第一读写状态标志和第二读写状态标志;均为读操作判断子单元,用于判断所述第一读写状态标志和所述第二读写状态标志是否均表示读操作;读写并发冲突不存在判定子单元,用于当均表示所述读操作时,判定所述新I/O数据与所述原I/O数据之间不存在所述读写并发冲突;读写并发冲突存在判定子单元,用于当非均表示所述读操作,判定所述新I/O数据与所述原I/O数据之间存在所述读写并发冲突。可选的,所述等待取消信号返回及执行单元包括:等待取消信号生成子单元,用于当所述原I/O数据完成所述数据下发操作时,根据所述原I/O数据的特征信息生成所述等待取消信号;广播子单元,用于向所述冲突队列中的所有I/O数据广播所述等待取消信号;挂起取消及下发操作执行子单元,用于根据接收到的等待取消信号取消所述新I/O数据在所述冲突队列上的挂起并开始执行所述数据下发操作。可选的,所述挂起取消及下发操作执行子单元还包括:读写并发冲突再判断模块,用于判断所述新I/O数据是否与在所述冲突队列中排列于所述新I/O数据前的I/O数据存在所述读写并发冲突;挂起保持模块,用于当所述新I/O数据还与在所述冲突队列中排列于所述新I/O数据前的I/O数据存在所述读写并发冲突时,保持所述新I/O数据在所述冲突队列中的挂起状态直至排列于所述新I/O数据前本文档来自技高网...

【技术保护点】
1.一种I/O数据读写并发冲突的处理方法,其特征在于,包括:判断新I/O数据与原I/O数据是否存在读写并发冲突;其中,所述原I/O数据为当前正在执行数据下发操作的I/O数据,所述新I/O数据为尚未开始执行所述数据下发操作的I/O数据;若存在所述读写并发冲突,则建立冲突队列并将所述新I/O数据挂起至所述冲突队列;当与所述新I/O数据存在所述读写并发冲突的原I/O数据完成所述数据下发操作时,向所述新I/O数据返回等待取消信号以使所述新I/O数据取消挂起并开始执行所述数据下发操作。

【技术特征摘要】
1.一种I/O数据读写并发冲突的处理方法,其特征在于,包括:判断新I/O数据与原I/O数据是否存在读写并发冲突;其中,所述原I/O数据为当前正在执行数据下发操作的I/O数据,所述新I/O数据为尚未开始执行所述数据下发操作的I/O数据;若存在所述读写并发冲突,则建立冲突队列并将所述新I/O数据挂起至所述冲突队列;当与所述新I/O数据存在所述读写并发冲突的原I/O数据完成所述数据下发操作时,向所述新I/O数据返回等待取消信号以使所述新I/O数据取消挂起并开始执行所述数据下发操作。2.根据权利要求1所述的处理方法,其特征在于,判断新I/O数据与原I/O数据是否存在读写并发冲突,包括:从所述原I/O数据和所述新I/O数据中分别对应提取得到第一读写状态标志和第二读写状态标志;判断所述第一读写状态标志和所述第二读写状态标志是否均表示读操作;若均表示所述读操作,则判定所述新I/O数据与所述原I/O数据之间不存在所述读写并发冲突;若非均表示所述读操作,则判定所述新I/O数据与所述原I/O数据之间存在所述读写并发冲突。3.根据权利要求1所述的处理方法,其特征在于,向所述新I/O数据返回等待取消信号以使所述新I/O数据取消挂起并开始执行所述数据下发操作,包括:当所述原I/O数据完成所述数据下发操作时,根据所述原I/O数据的特征信息生成所述等待取消信号;向所述冲突队列中的所有I/O数据广播所述等待取消信号;根据接收到的等待取消信号取消所述新I/O数据在所述冲突队列上的挂起并开始执行所述数据下发操作。4.根据权利要求3所述的处理方法,其特征在于,在接收到所述等待取消信号之后、根据所述等待取消信号取消所述新I/O数据在所述冲突队列上的挂起之前,还包括:判断所述新I/O数据是否与在所述冲突队列中排列于所述新I/O数据前的I/O数据存在所述读写并发冲突;若是,则保持所述新I/O数据在所述冲突队列中的挂起状态直至排列于所述新I/O数据前的I/O数据均与所述新I/O数据不存在所述读写并发冲突。5.根据权利要求1至4任一项所述的方法,其特征在于,在开始执行所述数据下发操作之前,还包括:判断即将执行所述数据下发操作的I/O数据是否需要进行对齐处理;若需要,则从预设补齐数据来源处获得补齐数据,并利用所述补齐数据对需要进行所述对齐处理的I/O数据进行封装,得到对齐I/O数据;若不需要,则利用校验和生成算法计算得到不需要进行所述对齐处理的I/O数据的校验和。6.根据权利要求5所述的处理方法,其特征在于,判断即将执行所述数据下发操作的I/O数据是否需要进行对齐处理,包括:从即将执行所述数据下发操作的I/O数据中提取得到偏移值和长度值;根据所述偏移值和所述长度值判断是否需要进行所述对齐处理。7.根据权利要求5所述的处理方法,其特征在于,从预设补齐数据来源处获得补齐数据,并利用所述补齐数据对需要进行所述对齐处理的I/O数据进行封装,得到对齐I/O数据,包括:从所述预设补齐数据来源处分别获得头部补齐数据和尾部补齐数据;将所述头部补齐数据和所述尾部补齐数据分别对应拼接在需要进行所述对齐处理的I/O数据的头部和尾部,得到所述对齐I/O数据。8.一种I/O数据读写并发冲突的处理系统,其特征在于,包括:读写并发冲突判断单元,用于判断新I/O数据与原I/O数据是否存在读写并发冲突;其中,所述原I/O数据为当前正在执行数据下发操作的I/O数据,所述新I/O数据为尚未开始执行所述数据下发操作的I/O数据;冲突队列创建及冲突I/O数据挂起单元,用于当存在所述读写并发冲突时,建立冲突队列并将所述新I/O数据挂...

【专利技术属性】
技术研发人员:古亮李诗逸
申请(专利权)人:深信服科技股份有限公司
类型:发明
国别省市:广东,44

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

1