CN110347329A - I/o数据读写并发冲突的处理方法、系统及相关装置 - Google Patents
I/o数据读写并发冲突的处理方法、系统及相关装置 Download PDFInfo
- Publication number
- CN110347329A CN110347329A CN201810283963.5A CN201810283963A CN110347329A CN 110347329 A CN110347329 A CN 110347329A CN 201810283963 A CN201810283963 A CN 201810283963A CN 110347329 A CN110347329 A CN 110347329A
- Authority
- CN
- China
- Prior art keywords
- data
- conflict
- read
- new
- write
- 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.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 23
- 238000000034 method Methods 0.000 claims abstract description 83
- 238000012545 processing Methods 0.000 claims abstract description 34
- 238000005498 polishing Methods 0.000 claims description 68
- 230000008569 process Effects 0.000 claims description 59
- 238000012795 verification Methods 0.000 claims description 20
- 238000004590 computer program Methods 0.000 claims description 10
- 238000004422 calculation algorithm Methods 0.000 claims description 9
- 239000000284 extract Substances 0.000 claims description 7
- 238000000605 extraction Methods 0.000 claims description 4
- 108010001267 Protein Subunits Proteins 0.000 claims description 3
- 238000012360 testing method Methods 0.000 claims description 2
- 230000009286 beneficial effect Effects 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 241000894007 species Species 0.000 description 4
- 238000013524 data verification Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013496 data integrity verification Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 238000004080 punching Methods 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种I/O数据读写并发冲突的处理方法,该处理方法当判断出先后下发的两个I/O数据间存在读写冲突时,采用建立冲突队列并将后下发的冲突I/O数据挂起在该冲突队列中的方法,以防止读写并发冲突事件的产生,当先下发的冲突I/O数据下发完毕后返回等待取消信号来告知挂起在冲突队列中的冲突I/O数据取消挂起并执行数据下发操作,能够在保持I/O数据下发顺序性的前提下实现自行解决产生的读写并发冲突事件,无需用户频繁人工操作,显著提高了工作效率。本申请还同时公开了一种I/O数据读写并发冲突的处理系统、装置及计算机可读存储介质,具有上述有益效果。
Description
技术领域
本申请涉及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数据均与所述新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数据读写并发冲突的处理方法的流程图;
图2为本申请实施例所提供的另一种I/O数据读写并发冲突的处理方法的流程图;
图3为本申请实施例所提供的又一种I/O数据读写并发冲突的处理方法的流程图;
图4为本申请实施例所提供的一种I/O数据读写并发冲突的处理系统的结构框图;
图5为本申请实施例所提供的I/O数据读写并发冲突的处理系统中一种读写下发的流程示意图;
图6为本申请实施例所提供的I/O数据读写并发冲突的处理系统中一种读写返回的流程示意图。
具体实施方式
本申请的核心是提供一种I/O数据读写并发冲突的处理方法、系统、装置及计算机可读存储介质,当判断出先后下发的两个I/O数据间存在读写冲突时,采用建立冲突队列并将后下发的冲突I/O数据挂起在该冲突队列中的方法,以防止读写并发冲突事件的产生,当先下发的冲突I/O数据下发完毕后返回等待取消信号来告知挂起在冲突队列中的冲突I/O数据取消挂起并执行数据下发操作,能够在保持I/O数据下发顺序性的前提下实现自行解决产生的读写并发冲突事件,无需用户频繁人工操作,显著提高了工作效率。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
以下结合图1,图1为本申请实施例所提供的一种I/O数据读写并发冲突的处理方法的流程图。
其具体包括以下步骤:
S101:判断新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数据,进而转交后续处理权给用户,使用户在某一场景下需要频繁处理类似冲突警报,使用体验较差。
需要知道的是,导致上述判断结果的出现是基于读写并发冲突的固有机制,并非本申请对其重新进行定义,且本申请只是基于此来进行其它步骤,重点描述对象并非为如何产生读写并发冲突。
S102:直接对新I/O数据执行数据下发操作;
本步骤建立在S101的判断结果为该新I/O数据与该原I/O数据之间并不存在读写并发冲突的基础上,由于不用担心该新I/O数据的下发会对原I/O数据的下发产生影响,因此可以直接对新I/O数据执行数据下发操作。
S103:建立冲突队列并将新I/O数据挂起至冲突队列;
本步骤建立在S101的判断结果为该新I/O数据与该原I/O数据之间存在读写并发冲突的基础上,由于存在读写并发冲突,无法在该原I/O数据执行数据下发操作期间并发执行该新I/O数据,因此本申请采用建立冲突队列并将该新I/O数据暂时挂起在该冲突队列的方式解决现有技术中简单的转交后续处理权的缺陷,能够自行处理类似问题,提升用户使用满意度。
其中,该冲突队列的建立方法多种多样,通常情况下为保证各I/O数据下发的顺序性会采用类似FIFO(First Input First Output,先入先出队列)的方式建立该冲突队列,当然,也不排除当存在其它特殊要求时,为满足该特殊要求进而选择的其它功能队列,此处并不做具体限定,应视实际情况选择最符合自身利益的方式建立。
将冲突I/O数据挂起在该冲突队列,也就是说当未接收到能够使挂起的冲突I/O数据取消挂起的信号前,将会一直保持挂起状态,而接收到的该取消挂起的信号通常情况下则意味着导致该冲突I/O挂起的原I/O数据已经下发完毕,即已经不会导致出现读写并发冲突。
S104:当与新I/O数据存在读写并发冲突的原I/O数据完成数据下发操作时,向新I/O数据返回等待取消信号以使新I/O数据取消挂起并开始执行数据下发操作。
在S103的基础上,本步骤说明了在何种条件下能够取消挂起在冲突队列中的新I/O数据,并在此基础上进行后续数据下发操作。
进一步的,在取消冲突I/O数据在冲突队列上的挂起后、在开始执行数据操作之前,还需要根据实际情况执行一些其它操作,来进一步保证不会与其它I/O数据存在读写并发冲突以及满足后续执行数据下发操作的要求。
由于并不是所有情境下都仅存在一个与该原I/O数据存在读写并发冲突的新I/O数据,根据实际情况的不同,可能在冲突队列中先后下发了多个均与该原I/O数据存在读写并发冲突的I/O数据,假设正在执行数据下发的原I/O数据为A,在冲突队列中先后排列着均与A存在读写并发冲突的I/O数据B、C、D。
在此种情况下的A、B、C、D四个I/O数据彼此之间均存在读写并发冲突,由于B排列于C和D前面,因此A执行完毕返回等待取消信号时,会同时通知B、C、D,此时B、C、D还需要再次进行冲突判定,以判断是否与排列于自身前面的I/O数据存在读写并发冲突:B由于前面没有与其冲突的I/O数据,因此可以在满足执行数据下发操作其它要求时进行数据下发,而C就会发现前面还存在B与自身存在读写并发冲突、D会发现前面还存在B以及排列在B后面的C均与自身存在读写并发冲突,因此会在每接收到一个等待取消信号时再次进行冲突判定,以防止此种情况发生。
在开始执行数据下发操作之前,通常还需要进行对齐处理,以保证是以一个较为统一大小的I/O数据进行下发,对齐处理的方式多种多样,包括如何得到补齐数据、如何补齐等等,会在后续的实施例中进行相应的说明。
基于上述技术方案,本申请实施例提供的一种I/O数据读写并发冲突的处理方法,当判断出先后下发的两个I/O数据间存在读写冲突时,采用建立冲突队列并将后下发的冲突I/O数据挂起在该冲突队列中的方法,以防止读写并发冲突事件的产生,当先下发的冲突I/O数据下发完毕后返回等待取消信号来告知挂起在冲突队列中的冲突I/O数据取消挂起并执行数据下发操作,能够在保持I/O数据下发顺序性的前提下实现自行解决产生的读写并发冲突事件,无需用户频繁人工操作,显著提高了工作效率。
以下结合图2,图2为本申请实施例所提供的另一种I/O数据读写并发冲突的处理方法的流程图。
本步骤旨在针对实施例一提供一种基于读写状态标志判断读写并发冲突的实现方式,具体包括以下步骤:
S201:从原I/O数据和新I/O数据中分别对应提取得到第一读写状态标志和第二读写状态标志;
S202:判断第一读写状态标志和第二读写状态标志是否均表示读操作;
S203:判定新I/O数据与原I/O数据之间不存在读写并发冲突;
本步骤建立在S202的判断结果为第一读写状态标志和第二读写状态标志均表示读操作的基础上,因为两个读操作不会引发读写并发冲突,因此可通过本步骤判定新I/O数据与原I/O数据之间不存在读写并发冲突,可以进行后续的数据下发操作。
S204:判定新I/O数据与原I/O数据之间存在读写并发冲突;
本步骤建立在S202的判断结果为第一读写状态标志和第二读写状态标志非均表示读操作的基础上,即包括两个写操作、一个读操作和一个写操作的可能性,不管哪个I/O数据表示读操作或写操作均不影响读写并发冲突的判定。
S205:当原I/O数据完成数据下发操作时,根据原I/O数据的特征信息生成等待取消信号;
在S204的基础上,本步骤旨在说明等待取消信号时如何生成的,因为需要能根据该信号判断取消挂起哪个与之相冲突的I/O数据,因此可以基于该原I/O数据的特征信息生成该等待取消信号,以便于确定相冲突的I/O数据。
当然,也可以基于其它能够实现相同作用的信息生成该等待取消信号,此处并不做具体限定。
S206:向冲突队列中的所有I/O数据广播等待取消信号;
S207:根据接收到的等待取消信号取消新I/O数据在冲突队列上的挂起并开始执行数据下发操作。
在S205的基础上,S206和S207采用向冲突队列中的所有I/O数据广播该等待取消信号的方式,以确定该取消哪个冲突I/O数据的挂起,并执行数据下发操作。
以下结合图3,图3为本申请实施例所提供的又一种I/O数据读写并发冲突的处理方法的流程图。
本实施例旨在对接收到等待取消信号之后、开始执行数据下发操作之前还需要进行的一些操作进行说明,具体步骤如下:
S301:接收到等待取消信号;
S302:判断新I/O数据是否与在冲突队列中排列于新I/O数据前的I/O数据存在读写并发冲突;
S303:保持新I/O数据在冲突队列中的挂起状态直至排列于新I/O数据前的I/O数据均与新I/O数据不存在读写并发冲突;
本步骤建立在S302的判断结果为该新I/O数据与在冲突队列中排列于该新I/O数据前的I/O数据存在读写并发冲突的基础上,则还需要保持挂起状态直至排列于该新I/O数据前的I/O数据均与该新I/O数据不存在读写并发冲突。
S304:判断即将执行数据下发操作的I/O数据是否需要进行对齐处理;
本步骤建立在S302的判断结果为该新I/O数据与在冲突队列中排列于该新I/O数据前的I/O数据均不存在读写并发冲突的基础上,因此可以进行是否需要对齐处理的判断,以符合执行数据下发操作的要求。
其中一种较为常见的是否需要进行对齐处理的判断方法是基于偏移值和长度值进行的:
从即将执行数据下发操作的I/O数据中提取得到偏移值和长度值;根据偏移值和长度值判断是否需要进行对齐处理。当偏移值和长度值不满足预设要求时,则说明需要进行对齐处理,否则说明已经为对齐I/O数据,无需进行对齐处理。当然,根据实际情况的不同,是否需要进行对齐处理的判断方法也不限于上面一种,可以根据实际情境下的参数种类、数量进行灵活改变,以满足自身的要求。
S305:从预设补齐数据来源处获得补齐数据,并利用补齐数据对需要进行对齐处理的I/O数据进行封装,得到对齐I/O数据;
其中,预设补齐数据来源处有很多可供选择的,可以全部补零凑齐位数要求,也可以使用前一个数据段的数据内容,就好像在生成压缩包时增加的修复记录一样,等各种方式。
其中一种较为常见的获得补齐数据及数据补齐方法为:
从预设补齐数据来源处分别获得头部补齐数据和尾部补齐数据;将头部补齐数据和尾部补齐数据分别对应拼接在需要进行对齐处理的I/O数据的头部和尾部,得到对齐I/O数据。当然,也包括其它方式实现数据的补齐,此处并不做具体限定。
S306:利用校验和生成算法计算得到不需要进行对齐处理的I/O数据的校验和;
S307:对对齐I/O数据执行数据下发操作。
S306旨在利用校验和生成算法计算得到不需要进行对齐处理的I/O数据的校验和,并最终实现对对齐I/O数据执行数据下发操作。
基于上述技术方案,当判断出先后下发的两个I/O数据间存在读写冲突时,采用建立冲突队列并将后下发的冲突I/O数据挂起在该冲突队列中的方法,以防止读写并发冲突事件的产生,当先下发的冲突I/O数据下发完毕后返回等待取消信号来告知挂起在冲突队列中的冲突I/O数据取消挂起并执行数据下发操作,能够在保持I/O数据下发顺序性的前提下实现自行解决产生的读写并发冲突事件,无需用户频繁人工操作,显著提高了工作效率。在此基础上,通过多次进行冲突判定和对齐处理进一步保证不出现读写并发冲突以及符合了执行数据下发操作的要求。
因为情况复杂,无法一一列举进行阐述,本领域技术人员应能意识到根据本申请提供的基本方法原理结合实际情况可以存在很多的例子,在不付出足够的创造性劳动下,应均在本申请的保护范围内。
下面请参见图4,图4为本申请实施例所提供的一种I/O数据读写并发冲突的处理系统的结构框图。
该处理系统可以包括:
读写并发冲突判断单元100,用于判断新I/O数据与原I/O数据是否存在读写并发冲突;其中,原I/O数据为当前正在执行数据下发操作的I/O数据,新I/O数据为尚未开始执行数据下发操作的I/O数据;
冲突队列创建及冲突I/O数据挂起单元200,用于当存在读写并发冲突时,建立冲突队列并将新I/O数据挂起至冲突队列;
等待取消信号返回及执行单元300,用于当与新I/O数据存在读写并发冲突的原I/O数据完成数据下发操作时,向新I/O数据返回等待取消信号以使新I/O数据取消挂起并开始执行数据下发操作。
其中,读写并发冲突判断单元100包括:
读写状态标志提取子单元,用于从原I/O数据和新I/O数据中分别对应提取得到第一读写状态标志和第二读写状态标志;
均为读操作判断子单元,用于判断第一读写状态标志和第二读写状态标志是否均表示读操作;
读写并发冲突不存在判定子单元,用于当均表示读操作时,判定新I/O数据与原I/O数据之间不存在读写并发冲突;
读写并发冲突存在判定子单元,用于当非均表示读操作,判定新I/O数据与原I/O数据之间存在读写并发冲突。
其中,等待取消信号返回及执行单元300包括:
等待取消信号生成子单元,用于当原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数据。
下面将结合图5和图6对一种实际情境下如何实现上述过程进行阐述:
如图5所示,客户端/用户发下发读写请求,建立冲突队列L来保存之前下发而未返回的I/O,各请求用r_i表示,0<i<M,M表示该队列中总共存在M个请求,即当前有M个请求还未返回。各r_i用四元组(r_i,ri_flag,i_offset,i_size)表示,其中ri_flag是读写标志,ri_flag=read/write,i_offset是偏移,i_size是长度。当新下来一个I/O数据r,就用r和存在L中的之前下发而未返回的I/O数据r_i(r_i属于L)进行比较。如果r_i的请求标志是ri_flag=read,而r的请求标志r_flag也是read,那么读读不存在读写冲突,就和下一个请求r_(i+1)进行冲突判定。若(ri_flag==r_flag==read)条件不成立,则判定cover_flag=((offset+size>i_offset)&&(i_offset+i_size>offset))的值。如果cover_flag=1,则r和r_i冲突,r需要挂起等待。否则r和r_i不存在读写并发冲突,可以继续和r_(i+1)进行比较。当与队列L中所有请求进行比较后均不存在读写并发冲突的话,就可以下发该I/O。而只要和L中的任意一个请求比较发现存在冲突时,就需要把r挂起等待,等待冲突I/O数据r_i返回,并再次进行冲突验证,依次类推,直到和冲突队列L中的所有I/O均不存在冲突时才能下发。
无论是有冲突挂起,还是无冲突下发,都需要把r的四元组(r,r_flag,offset,size)保存到L中,以便和后续的I/O进行读写冲突判定,直到r返回时从L中删除r。r在判断无冲突下发前,还需要进行对齐处理,(offset%c_size==0&&(offset+size)%c_szie==0)是否成立,如果成立说明对齐,否则说明不对齐。对齐的话直接用该数据块去计算校验和c。而在不对齐的情况下,当为写请求时,就需要从底层读取头部补齐数据d_f和尾部补齐d_r,然后把d_f,d_r和r进行合并得到数据d’,以基于d’生成校验和c。其中,d_f的偏移为offset-offset%c_size,长度为offset%c_size,d_r的偏移为(offset+size),长度为(offset+size)+c_size-(offset+size)%c_szie),并按照d_f、r、d_r的顺序进行补齐;当为读请求时,只需要将头部补齐数据d_f、尾部补齐d_r和r一起读出来即可。
如图6所示:当一个I/O请求r读写数据返回时,就需要先把r从冲突队列L中删除,然后发送信号给因为和请求r冲突而挂起的I/O数据r_i,让它再次进行读写并发冲突判定。而读请求向上返回时,在进行完校验和验证后,只返回读取的数据r,而把为了校验而读取的d_f,d_r给丢弃掉即可。
该方法可以有效解决校验和保护过程中的读写并发冲突问题,非对齐问题,避免误判,并有助于IO的顺序性,提高系统可靠性。
基于上述实施例,本申请还提供了一种I/O数据读写并发冲突的处理装置,可以包括存储器和处理器,其中,该存储器中存有计算机程序,该处理器调用该存储器中的计算机程序时,可以实现上述实施例所提供的步骤。当然该处理装置还可以包括各种必要的网络接口、电源以及其它零部件等。
本申请还提供了一种计算机可读存储介质,其上存有计算机程序,该计算机程序被执行终端或处理器执行时可以实现上述实施例所提供的步骤。该存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random AccessMemory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (16)
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数据挂起至所述冲突队列;
等待取消信号返回及执行单元,用于当与所述新I/O数据存在所述读写并发冲突的原I/O数据完成所述数据下发操作时,向所述新I/O数据返回等待取消信号以使所述新I/O数据取消挂起并开始执行所述数据下发操作。
9.根据权利要求8所述的处理系统,其特征在于,所述读写并发冲突判断单元包括:
读写状态标志提取子单元,用于从所述原I/O数据和所述新I/O数据中分别对应提取得到第一读写状态标志和第二读写状态标志;
均为读操作判断子单元,用于判断所述第一读写状态标志和所述第二读写状态标志是否均表示读操作;
读写并发冲突不存在判定子单元,用于当均表示所述读操作时,判定所述新I/O数据与所述原I/O数据之间不存在所述读写并发冲突;
读写并发冲突存在判定子单元,用于当非均表示所述读操作,判定所述新I/O数据与所述原I/O数据之间存在所述读写并发冲突。
10.根据权利要求8所述的处理系统,其特征在于,所述等待取消信号返回及执行单元包括:
等待取消信号生成子单元,用于当所述原I/O数据完成所述数据下发操作时,根据所述原I/O数据的特征信息生成所述等待取消信号;
广播子单元,用于向所述冲突队列中的所有I/O数据广播所述等待取消信号;
挂起取消及下发操作执行子单元,用于根据接收到的等待取消信号取消所述新I/O数据在所述冲突队列上的挂起并开始执行所述数据下发操作。
11.根据权利要求10所述的处理系统,其特征在于,所述挂起取消及下发操作执行子单元还包括:
读写并发冲突再判断模块,用于判断所述新I/O数据是否与在所述冲突队列中排列于所述新I/O数据前的I/O数据存在所述读写并发冲突;
挂起保持模块,用于当所述新I/O数据还与在所述冲突队列中排列于所述新I/O数据前的I/O数据存在所述读写并发冲突时,保持所述新I/O数据在所述冲突队列中的挂起状态直至排列于所述新I/O数据前的I/O数据均与所述新I/O数据不存在所述读写并发冲突。
12.根据权利要求8至11任一项所述的处理系统,其特征在于,还包括:
对齐处理判断单元,用于判断即将执行所述数据下发操作的I/O数据是否需要进行对齐处理;
数据补齐单元,用于当需要进行所述对齐处理时,从预设补齐数据来源处获得补齐数据,并利用所述补齐数据对需要进行所述对齐处理的I/O数据进行封装,得到对齐I/O数据;
校验和计算单元,用于当不需要进行所述对齐处理时,利用校验和生成算法计算得到不需要进行所述对齐处理的I/O数据的校验和。
13.根据权利要求12所述的处理系统,其特征在于,所述对齐处理判断单元包括:
偏移值和长度值提取子单元,用于从即将执行所述数据下发操作的I/O数据中提取得到偏移值和长度值;
基于偏移值和长度值的对齐判断子单元,用于根据所述偏移值和所述长度值判断是否需要进行所述对齐处理。
14.根据权利要求12所述的处理系统,其特征在于,所述数据补齐单元包括:
头部及尾部补齐数据获取子单元,用于从所述预设补齐数据来源处分别获得头部补齐数据和尾部补齐数据;
补齐数据拼接子单元,用于将所述头部补齐数据和所述尾部补齐数据分别对应拼接在需要进行所述对齐处理的I/O数据的头部和尾部,得到所述对齐I/O数据。
15.一种I/O数据读写并发冲突的处理装置,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述的I/O数据读写并发冲突的处理方法的步骤。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的I/O数据读写并发冲突的处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810283963.5A CN110347329A (zh) | 2018-04-02 | 2018-04-02 | I/o数据读写并发冲突的处理方法、系统及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810283963.5A CN110347329A (zh) | 2018-04-02 | 2018-04-02 | I/o数据读写并发冲突的处理方法、系统及相关装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110347329A true CN110347329A (zh) | 2019-10-18 |
Family
ID=68172538
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810283963.5A Pending CN110347329A (zh) | 2018-04-02 | 2018-04-02 | I/o数据读写并发冲突的处理方法、系统及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110347329A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110837411A (zh) * | 2019-11-08 | 2020-02-25 | 敏博科技(武汉)有限公司 | 一种数据服务器端分区内部并发i/o调度方法及系统 |
CN112698787A (zh) * | 2020-12-28 | 2021-04-23 | 杭州海康威视系统技术有限公司 | 写数据方法、装置及计算机存储介质 |
CN114579596A (zh) * | 2022-05-06 | 2022-06-03 | 达而观数据(成都)有限公司 | 一种实时更新搜索引擎索引数据的方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1855026A (zh) * | 2005-04-28 | 2006-11-01 | 国际商业机器公司 | 用于选择命令发送到存储器的方法、存储器控制器和系统 |
CN103823636A (zh) * | 2012-11-19 | 2014-05-28 | 苏州捷泰科信息技术有限公司 | Io调度方法及装置 |
CN106933512A (zh) * | 2017-02-27 | 2017-07-07 | 深圳怡化电脑股份有限公司 | 一种数据读写的方法及其设备 |
CN107203339A (zh) * | 2017-05-10 | 2017-09-26 | 杭州宏杉科技股份有限公司 | 一种数据存储方法及装置 |
CN107678680A (zh) * | 2017-07-27 | 2018-02-09 | 深圳市云舒网络技术有限公司 | 分布式块存储系统中纠删码并发io的方法及存储装置 |
-
2018
- 2018-04-02 CN CN201810283963.5A patent/CN110347329A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1855026A (zh) * | 2005-04-28 | 2006-11-01 | 国际商业机器公司 | 用于选择命令发送到存储器的方法、存储器控制器和系统 |
CN103823636A (zh) * | 2012-11-19 | 2014-05-28 | 苏州捷泰科信息技术有限公司 | Io调度方法及装置 |
CN106933512A (zh) * | 2017-02-27 | 2017-07-07 | 深圳怡化电脑股份有限公司 | 一种数据读写的方法及其设备 |
CN107203339A (zh) * | 2017-05-10 | 2017-09-26 | 杭州宏杉科技股份有限公司 | 一种数据存储方法及装置 |
CN107678680A (zh) * | 2017-07-27 | 2018-02-09 | 深圳市云舒网络技术有限公司 | 分布式块存储系统中纠删码并发io的方法及存储装置 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110837411A (zh) * | 2019-11-08 | 2020-02-25 | 敏博科技(武汉)有限公司 | 一种数据服务器端分区内部并发i/o调度方法及系统 |
CN110837411B (zh) * | 2019-11-08 | 2023-05-12 | 敏博科技(武汉)有限公司 | 一种数据服务器端分区内部并发i/o调度方法及系统 |
CN112698787A (zh) * | 2020-12-28 | 2021-04-23 | 杭州海康威视系统技术有限公司 | 写数据方法、装置及计算机存储介质 |
CN114579596A (zh) * | 2022-05-06 | 2022-06-03 | 达而观数据(成都)有限公司 | 一种实时更新搜索引擎索引数据的方法及系统 |
CN114579596B (zh) * | 2022-05-06 | 2022-09-06 | 达而观数据(成都)有限公司 | 一种实时更新搜索引擎索引数据的方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110347329A (zh) | I/o数据读写并发冲突的处理方法、系统及相关装置 | |
CN106095620B (zh) | 一种嵌入式Linux存储分区的开发方法 | |
CN101206614B (zh) | 仿真特殊功能寄存器的仿真器 | |
US8943488B2 (en) | Video game forward compatibility including software patching | |
CN109947833A (zh) | 一种基于b/s架构的数据质量管理方法 | |
CN109086065A (zh) | 一种软件升级方法、系统及终端设备 | |
CN102622190B (zh) | 产品识别信息在线写入方法及电子产品 | |
CN109240854A (zh) | 数据恢复方法及系统 | |
CN104765792B (zh) | 一种维度数据存储的方法、装置及系统 | |
CN107423157A (zh) | 一种硬盘挂载方法、模块及操作系统 | |
CN108196873A (zh) | 电力系统嵌入式软件远程动态升级方法和系统 | |
CN107678955A (zh) | 一种功能接口时延的计算方法、装置、设备及存储介质 | |
CN109241482A (zh) | 确定变更事件发布成功的方法及其装置 | |
US9390090B2 (en) | Concurrent long spanning edit sessions using change lists with explicit assumptions | |
US9280627B1 (en) | GUI based verification at multiple abstraction levels | |
CN112559373A (zh) | 一种软件兼容性管理方法和系统 | |
CN110941422A (zh) | 代码自动生成方法、代码生成器及可读存储介质 | |
CN109542850A (zh) | 一种文件的worm属性更新方法、装置、设备及介质 | |
CN110400465A (zh) | 基于etc的智慧停车管理方法、存储介质及系统 | |
CN110348245A (zh) | 基于nvm的数据完整性保护方法、系统、装置及存储介质 | |
CN109284836A (zh) | 共享汽车维护管理方法和装置 | |
CN107562577A (zh) | 一种文件系统修复方法及装置 | |
CN105489236A (zh) | 一种基于分区存储保证软件可靠性的u盘及使用方法 | |
CN109840208B (zh) | 一种检测文件异常操作的方法及系统 | |
CN110502508A (zh) | 一种基于参数动态的校验方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20191018 |