CN111261206B - 一种读写方法、装置和电子设备及可读存储介质 - Google Patents
一种读写方法、装置和电子设备及可读存储介质 Download PDFInfo
- Publication number
- CN111261206B CN111261206B CN202010052597.XA CN202010052597A CN111261206B CN 111261206 B CN111261206 B CN 111261206B CN 202010052597 A CN202010052597 A CN 202010052597A CN 111261206 B CN111261206 B CN 111261206B
- Authority
- CN
- China
- Prior art keywords
- write
- read
- instruction
- information
- registry
- 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 67
- 238000004590 computer program Methods 0.000 claims description 10
- 230000008569 process Effects 0.000 claims description 6
- 238000012545 processing Methods 0.000 abstract description 8
- 230000009286 beneficial effect Effects 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000010561 standard procedure Methods 0.000 description 1
Images
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/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1051—Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
- G11C7/1069—I/O lines read out arrangements
-
- 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
-
- 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
-
- 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
- G06F3/0676—Magnetic disk device
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1078—Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
- G11C7/1096—Write circuits, e.g. I/O line write drivers
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)
- Storage Device Security (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种读写方法,包括:接收到写指令;根据注册表中的读信息确定与写指令对应的写策略,其中,读信息是当接收到读指令后,将读指令对应的信息存储至注册表中的信息;基于写策略执行写指令。可见,本申请通过设置注册表,在执行读指令时,将在所述注册表中注册读信息,执行写指令前,根据注册表中的读信息确定与写指令对应的写策略,基于写策略执行写指令,提高读写处理效率。本申请同时还提供了一种读写装置、一种电子设备和计算机可读存储介质,均具有上述有益效果。
Description
技术领域
本申请涉及读写技术领域,特别涉及一种读写方法、读写装置、电子设备和计算机可读存储介质。
背景技术
网络存储主机是一个计算机系统,包括CPU、主板、内存、硬盘等硬件,上面运行Linux操作系统。网络存储主机可以对硬盘进行读写,读硬盘的时候不能写,写硬盘的时候不能读,也就是说:读写硬盘相同地址空间不能同时进行,如果同时进行,硬盘内的数据将不统一,所以针对硬盘要进行共享资源保护。常用的方法是rwlock读写锁,这是Linux提供的一套标准方法,即使用这套方法,读和写可以进行互斥,以防对相同地址空间同时进行读和写,导致数据不统一。
但是在网络存储主机中,要求读硬盘优先,写硬盘延后。多个客户端连接网络存储主机后,对硬盘的读要求延迟小,需要立即回复,读一般比写快的多;而对硬盘写的响应要求不高。Linux标准资源锁rwlock对读和写的处理是依次进行,也即,若写操作先进行,即便有再多读客户端的读操作都要等待写操作完成后才能进行,易造成较多的读操作延迟。
因此,如何提供一种解决上述技术问题的方案是本领域技术人员目前需要解决的问题。
发明内容
本申请的目的是提供一种读写方法、读写装置、电子设备和计算机可读存储介质,能够提高读写处理效率。其具体方案如下:
本申请提供一种读写方法,包括:
接收到写指令;
根据注册表中的读信息确定与所述写指令对应的写策略,其中,所述读信息是当接收到读指令后,将所述读指令对应的信息存储至所述注册表中的信息;
基于所述写策略执行所述写指令。
可选的,所述根据注册表中的读信息确定与所述写指令对应的写策略,包括:
判断所述注册表是否存在所述读信息;
若存在所述读信息,则确定第一写策略;若不存在所述读信息,则确定第二写策略;
对应的,所述基于所述写策略执行所述写指令,包括:
基于所述第一写策略,读出与所述写指令对应的区域至临时内存,且在所述临时内存中执行所述写指令,直至当所有所述读信息对应的读操作执行完成后,且所述注册表中不存在所述读信息,将所述临时内存中的所有数据写回与所述写指令对应的区域;
或,基于所述第二写策略,在与所述写指令对应的区域执行所述写指令。
可选的,所述接收到写指令之前,还包括:
接收到所述读指令,每个所述读指令包括所述读信息;
依次将所述读信息存储至所述注册表中;
基于目标读指令对目标区域的数据执行所述读操作;
当所述读操作执行完成后,将与所述目标读指令对应的读信息从所述注册表中删除,并基于下一个读指令对与所述下一个读指令对应的区域的数据执行所述读操作,直至完成所述注册表中的所述读信息对应的所有所述读指令。
可选的,所述在所述临时内存中执行所述写指令之后,还包括:
每隔第一预设时间间隔,判断所述注册表是否存在所述读信息;
若所述注册表不存在所述读信息,则将所述临时内存中的执行完成所述写指令的数据写回与所述写指令对应的区域。
可选的,所述注册表还包括:与每个所述读信息对应的指向信息,其中,所述指向信息是由当前的读信息指向下一个读信息;
对应的,所述每隔第一预设时间间隔,判断所述注册表是否存在所述读信息,包括:
每隔所述第一预设时间间隔判断所述注册表中的最后一个指向信息是否为空;
对应的,所述若不存在所述读信息,则确定第二写策略,包括:
若为空,则确定所述第二写策略。
可选的,所述根据注册表中的读信息确定与所述写指令对应的写策略,包括:
判断所述注册表是否存在优先级大于预设优先级阈值的目标读信息;
若存在所述目标读信息,则确定第三写策略;
对应的,所述基于所述写策略执行所述写指令,包括:
基于所述第三写策略,读出与所述写指令对应的区域至临时内存,且在所述临时内存中执行所述写指令;
执行与所述目标读信息对应的读操作,当所有的所述目标读信息对应的读操作执行完成后,将所述临时内存中的所有数据写回与所述写指令对应的区域。
可选的,所述读信息包括:读取数据的地址、读取数据的长度、读取数据的时间戳、读取数据的ID;
对应的,所述读操作的执行过程,包括:
每隔第二预设时间间隔,基于读取数据的时间戳判断所述读操作的数据读取的读时长是否超过预设阈值;
若超过所述预设阈值,则停止所述数据读取的操作,并删除所述注册表中相应的读信息,确定完成所述读操作。
可选的,所述基于所述写策略执行所述写指令之后,还包括:
每隔第三预设时间间隔,判断当前写指令对应的写操作的写时长是否大于预设写时间阈值;
若大于所述预设写时间阈值,则停止写操作,并发出警示信息。
本申请提供一种读写装置,包括:
写指令接收模块,用于接收到写指令;
写策略确定模块,用于根据注册表中的读信息确定与所述写指令对应的写策略,其中,所述读信息是当接收到读指令后,将所述读指令对应的信息存储至所述注册表中的信息;
写指令执行模块,用于基于所述写策略执行所述写指令。
本申请提供一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述读写方法的步骤。
本申请提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述读写方法的步骤。
本申请提供一种读写方法,包括:接收到写指令;根据注册表中的读信息确定与写指令对应的写策略,其中,读信息是当接收到读指令后,将读指令对应的信息存储至注册表中的信息;基于写策略执行写指令。
可见,本申请通过设置注册表,在执行读指令时,将在所述注册表中注册读信息,执行写指令前,根据注册表中的读信息确定与写指令对应的写策略,基于写策略执行写指令,提高读写处理效率。
本申请同时还提供了一种读写装置、一种电子设备和计算机可读存储介质,均具有上述有益效果,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种读写方法的流程图;
图2为本申请实施例提供的一种注册表中的信息结构示意图;
图3为本申请实施例提供的另一种读写方法的流程示意图;
图4为本申请实施例提供的另一种读写方法的流程示意图;
图5为本申请实施例所提供的一种读写装置的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
相关技术中Linux标准资源锁rwlock对读和写的处理是依次进行,也即,若写操作先进行,即便有再多读客户端的读操作都要等待写操作完成后才能进行,易造成较多的读操作延迟。基于上述技术问题,本实施例提供一种读写方法,具体请参考图1,图1为本申请实施例提供的一种读写方法的流程图,具体包括:
S110、接收到写指令。
本实施例基于网络存储主机,其中,网络存储主机包括:CPU、主板、内存、硬盘等硬件,运行Linux操作系统。
本步骤的目的是接收到写指令,可以理解的是,写指令包括:写地址也即与写指令对应的区域。
S120、根据注册表中的读信息确定与写指令对应的写策略。
其中,读信息是当接收到读指令后,将读指令对应的信息存储至注册表中的信息。
参考图2,图2为本申请实施例提供的一种注册表中的信息结构示意图;读信息注册表使用单向链表实现。
本实施例不对写策略进行限定,在一种可实现的实施方式中,根据注册表中的读信息确定与写指令对应的写策略的方式可以是判断注册表中是否存在读信息,如果存在,则确定第一写策略,如果不存在,则确定第二写策略,第一写策略是:读出与写指令对应的区域至临时内存,且在临时内存中执行写指令,直至当所有读信息对应的读操作执行完成后,且注册表中不存在读信息,将临时内存中的所有数据写回与写指令对应的区域,第二写策略是:在与写指令对应的区域执行写指令。
在另一种可实现的实施方式中,根据注册表中的读信息确定与写指令对应的写策略的方式,可以是判断注册表是否存在优先级大于预设优先级阈值的目标读信息;若存在目标读信息,则确定第三写策略,若不存在目标读信息,则确定第四写策略,其中,第三写策略是:读出与写指令对应的区域至临时内存,且在临时内存中执行写指令;执行与目标读信息对应的读操作,当所有的目标读信息对应的读操作执行完成后,将临时内存中的所有数据写回与写指令对应的区域,第四写策略是:在与写指令对应的区域执行写指令。
在另一种可实现的实施方式中,根据注册表中的读信息确定与写指令对应的写策略的方式,可以是对确定注册表中的第一个读信息的优先级,比较该优先级与写指令的优先级的大小,若写指令的优先级大于第一个读信息的优先级,则确定第五写策略,若写指令的优先级小于第一个读信息的优先级,则确定第六写策略,第五写策略是:在与写指令对应的区域执行写指令,第六写策略是:读出与写指令对应的区域至临时内存,在临时内存中执行写指令,执行与第一个读信息对应的读操作,当该读操作完成后,删除第一个读信息,然后下一个读信息作为新的第一个读信息,执行确定注册表中的第一个读信息的优先级的步骤,当第一个读信息对应的优先级小于写指令的优先级时,将临时内存中的所有数据写回与写指令对应的区域。
S130、基于写策略执行写指令。
进一步的,在步骤S130之后,还包括:每隔第三预设时间间隔,判断当前写指令对应的写操作的写时长是否大于预设写时间阈值;若大于预设写时间阈值,则停止写操作,并发出警示信息。
本步骤中,每隔第三预设时间间隔判断当前写指令对应的写操作的写时长是否大于预设写时间阈值,目的是将写时长限定在一定范围内,保证后续的写操作和读操作的高效率完成。如果大于预设写时间阈值,停止写操作,发出警示信息,若小于预设小时间阈值,则继续执行写操作。
基于上述技术方案,本实施例通过设置注册表,在执行读指令时,将在注册表中注册读信息,执行写指令前,根据注册表中的读信息确定与写指令对应的写策略,基于写策略执行写指令,提高读写处理效率。
基于上述实施例,请参考图3,图3为本申请实施例提供的另一种读写方法的流程示意图,包括:
S310、接收到写指令。
进一步的,在步骤S310之前,还包括:接收到读指令,每个读指令包括读信息;依次将读信息存储至注册表中;基于目标读指令对目标区域的数据执行读操作;当读操作执行完成后,将与目标读指令对应的读信息从注册表中删除,并基于下一个读指令对与下一个读指令对应的区域的数据执行读操作,直至完成注册表中的读信息对应的所有读指令。
具体的,读信息包括:读取数据的地址、读取数据的长度、读取数据的时间戳、读取数据的ID、指向信息,具体请参考表1,其中,Address为读取数据的地址,Length为读取数据的长度,Timestamp为读取数据的时间戳,Name为读取数据的ID,NEXT为指向信息,用于指向下一个读信息,以使串起来形成单相链表。
表1读信息
可以理解的是,每一个读信息在注册表中的内存大小至少为56字节,在一些可实现的实施方式中,读信息还可以包括Priority,即操作优先级,用于判断是否可以执行写操作,此时,一个读信息在注册表中的内存大小为57字节。
当接收到至少一个读指令时(读指令可以是同时接收到,可以是依次接收到),依次将对应的读信息存储至注册表中。
S320、判断注册表是否存在读信息。
其中,读信息是当接收到读指令后,将读指令对应的信息存储至注册表中的信息。其中,注册表中包括读信息,可以理解的是,每一个读信息对应一个读指令,当读指令完成后,删除注册表中的读信息,因此,注册表中的读信息是所有未处理完成的读信息。若注册表存在读信息,则执行步骤S330,若注册表不存在读信息,则执行步骤S350。
请参考图2,读信息注册表使用单向链表实现。在执行完成读信息A对应的读指令对应的读操作A后,执行读信息B对应的读操作B;当执行完读操作B后,执行读信息C对应的读操作C;当执行完读操作C后,执行读信息D对应的读操作D;当执行完读操作D后,执行读信息E对应的读操作E;当执行完读操作E后,执行写指令对应的写操作。
S330、若存在读信息,则确定第一写策略。
S340、基于第一写策略,读出与写指令对应的区域至临时内存,且在临时内存中执行写指令,直至当所有读信息对应的读操作执行完成后,且注册表中不存在读信息,将临时内存中的所有数据写回与写指令对应的区域。
读出与写指令对应的区域至临时内存,在临时内存中执行写执行。可以理解的是,在接收到写指令的同时或者之前或者之后,接收到读指令,将与读指令对应的读信息存储至注册表中,此时,当执行完成注册表中所有的预读信息对应的读指令之后,再执行写指令。
例如,当注册表中存在第一个读信息时,并且未完成该读信息对应的读指令,接收到一个写指令,此时读出与写指令对应的区域至临时内存,且在临时内存中执行写指令,同时第一个读指令未完成时,接收到第二个读指令,则将第二个读指令对应的读信息存储至注册表中,当第一个读指令执行完成后,删除在注册表中对应的读信息,执行第二读指令,直至注册表中没有读信息后,将临时内存中与写指令对应的数据写回与写指令对应的区域,可以理解的是,在读指令并未完全执行完成之前,再次接收到一个写指令,则该写指令等待,当上一个写指令完成写操作后,再执行该写指令。
进一步的,在临时内存中执行写指令之后,还包括:每隔第一预设时间间隔,判断注册表是否存在读信息;若注册表不存在读信息,则将临时内存中的执行完成写指令的数据写回与写指令对应的区域。
进一步的,注册表还包括:与每个读信息对应的指向信息,其中,指向信息是由当前的读信息指向下一个读信息;对应的,每隔第一预设时间间隔,判断注册表是否存在读信息,包括:每隔第一预设时间间隔判断注册表中的最后一个指向信息是否为空;对应的,若不存在读信息,则确定第二写策略,包括:若为空,则确定第二写策略。
其中,指向信息,大小为4字节,指向下一个读信息,串起来形成一个单向链表即注册表。可以理解的是,当接收到写指令后,判断注册表中是否还有读信息,具体的判断方法可以是判断注册表中的最后一个指向信息是否为空,如果为空,则说明后面没有读信息注册。这时,则确定第二写策略,可以直接进行硬盘对应数据区域写操作;如果不为空,确定第一写策略,则读出硬盘对应区域到临时内存中,修改其中数据,即执行读出与写指令对应的区域至临时内存,且在临时内存中执行写指令,当在临时内存中完成写指令的操作后,每隔第一预设时间间隔即50ms查看一次注册表中的最后一个指向信息是否为空,直到为空说明没有读信息锁住,则临时内存中的所有数据写回与写指令对应的区域。
S350、若不存在读信息,则确定第二写策略。
S360、基于第二写策略,在与写指令对应的区域执行写指令。
进一步的,还包括:接收查询指令;基于查询指令查询注册表中的读信息。可以理解的是,通过查询命令,可以打印注册表中各个读信息,其中读信息包括:读取数据的地址、读取数据的长度、读取数据的时间戳、读取数据的ID即发起者名称,其中,依据时间戳可以得到读开始时间、读持续时间等信息。
本发明提出一种网络存储主机上Linux读优先硬盘保护锁的设计技术方法。此方法共分为三部分:数据结构、读操作处理、写操作处理,能够提高读优先写延后应用处理效率,其中数据结构即注册表中的各个读信息处理流程。该读写方法的流程包括:设置一张信息的注册表,接收到读指令进行读操作时,向注册表中注册信息即向该注册表中存储于读指令对应的读信息;接收到写指令,执行写操作时,当注册表中还存在读信息时,先读出硬盘内容即先读出与写指令对应的区域至临时内存,且在临时内存中执行写指令,然后判断注册表中是否有读信息,如果没有,说明没有读操作,进行写硬盘;如果有,说明有读操作在占用硬盘,写操作必须等待,直到没有读操作后,才能写硬盘。
基于上述技术方案,本实施例通过设置注册表,在执行读指令时,将在注册表中注册读信息,执行写指令前,若注册表中不存在读信息,则直接执行写指令,若注册表中存在读信息,则操作等待,在临时内存中执行写指令,在同时存在读写指令的时候,满足了快速读的需求,提高了读指令处理效率。
基于上述实施例,请参考图4,图4为本申请实施例提供的另一种读写方法的流程示意图,包括:
S410、接收到写指令。
S420、判断注册表是否存在优先级大于预设优先级阈值的目标读信息。
其中,依次将读信息存储至注册表中,读信息包括:读取数据的地址、读取数据的长度、读取数据的时间戳、读取数据的ID、操作优先级。对每一个读操作设置对应的优先级。当优先级大于预设优先级阈值时,则该目标读信息需要优先执行。当注册表中存在目标读信息时,执行步骤S430,当注册表中不存在目标读信息时,则在与写指令对应的区域执行写指令。
S430、若存在目标读信息,则确定第三写策略。
其中,读信息是当接收到读指令后,将读指令对应的信息存储至注册表中的信息。
S440、基于第三写策略,读出与写指令对应的区域至临时内存,且在临时内存中执行写指令。
S450、执行与目标读信息对应的读操作,当所有的目标读信息对应的读操作执行完成后,将临时内存中的所有数据写回与写指令对应的区域。
基于上述技术方案,本实施例提供对读操作设置优先级,可以优先完成优先级大于预设优先级阈值的读信息对应的读操作,保证客户的读操作能够高效率完成
基于上述实施例,读信息包括:读取数据的地址、读取数据的长度、读取数据的时间戳、读取数据的ID;对应的,读操作的执行过程,包括:每隔第二预设时间间隔,基于读取数据的时间戳判断读操作的数据读取的读时长是否超过预设阈值;若超过预设阈值,则停止数据读取的操作,并删除注册表中相应的读信息,确定完成读操作。
本实施例不对第二预设时间间隔进行限定,可以是50ms。时间戳能够判断读取数据的读时长,当读时长超过预设阈值时,读解锁,不再执行该读指令,确定该读指令完成。本实施例不对读时长进行限定,可以是500ms。进一步的,当读时长超过预设阈值时,还可以进行报警,本实施例不对报警的方式进行限定,用户可自定义设置。
申请读信息的内存,把读取数据的地址、读取数据的长度、读取数据的时间戳、读者名字构成读信息,然后将读信息插入到单向链表即注册表中,此过程就是读Lock,读锁住。依据读指令对硬盘数据进行读取。当数据读取完毕后,删除注册表中对应读信息,释放曾经申请的内存,此过程就是读Unlock,读解锁。读管理线程:全局有一个读管理线程,每隔即第二预设时间间隔50ms轮询一次,查看整个注册表中各个读信息,如果读信息对应的读时长超过设置的全局读时长门限Threshold即预设阈值(此值可设,默认500ms),则进行报警,并把此读操作进行Unlock,不允许读操作无限期锁住。
当数据读取完成后,将与目标读指令对应的读信息从注册表中删除,并基于下一个读指令对与下一个读指令对应的区域的数据进行数据读取的步骤,直至完成注册表中的所有读指令。
下面对本申请实施例提供的一种读写装置进行介绍,下文描述的读写装置与上文描述的读写方法可相互对应参照,参考图5,图5为本申请实施例所提供的一种读写装置的结构示意图,包括:
写指令接收模块510,用于接收到写指令;
写策略确定模块520,用于根据注册表中的读信息确定与写指令对应的写策略,其中,读信息是当接收到读指令后,将读指令对应的信息存储至注册表中的信息;
写指令执行模块530,用于基于写策略执行写指令。
在一些具体的实施例中,写策略确定模块520,包括:
判断单元,用于判断注册表是否存在读信息;
写策略确定单元,用于若存在读信息,则确定第一写策略;若不存在读信息,则确定第二写策略;
对应的,写指令执行模块530,包括:
第一执行单元,用于基于第一写策略,读出与写指令对应的区域至临时内存,且在临时内存中执行写指令,直至当所有读信息对应的读操作执行完成后,且注册表中不存在读信息,将临时内存中的所有数据写回与写指令对应的区域;
第二执行单元,用于基于第二写策略,在与写指令对应的区域执行写指令。
在一些具体的实施例中,还包括:
读指令接收模块,用于接收到读指令,每个读指令包括读信息;
存储模块,用于依次将读信息存储至注册表中;
读取模块,用于基于目标读指令对目标区域的数据执行读操作;
删除与数据读取模块,用于当读操作执行完成后,将与目标读指令对应的读信息从注册表中删除,并基于下一个读指令对与下一个读指令对应的区域的数据执行读操作,直至完成注册表中的读信息对应的所有读指令。
在一些具体的实施例中,还包括:
判断模块,用于每隔第一预设时间间隔,判断注册表是否存在读信息;
写模块,用于若注册表不存在读信息,则将临时内存中的执行完成写指令的数据写回与写指令对应的区域。
在一些具体的实施例中,注册表还包括:与每个读信息对应的指向信息,其中,指向信息是由当前的读信息指向下一个读信息;
对应的,判断模块,包括:
判断单元,用于每隔第一预设时间间隔判断注册表中的最后一个指向信息是否为空;
对应的,写策略确定单元,包括:
写策略确定子单元,用于若为空,则确定第二写策略。
在一些具体的实施例中,写策略确定模块520,包括:
判断单元,用于判断注册表是否存在优先级大于预设优先级阈值的目标读信息;
第三写策略确定单元,用于若存在目标读信息,则确定第三写策略;
对应的,写指令执行模块,包括:
第一写单元,用于基于第三写策略,读出与写指令对应的区域至临时内存,且在临时内存中执行写指令;
第二写单元,用于执行与目标读信息对应的读操作,当所有的目标读信息对应的读操作执行完成后,将临时内存中的所有数据写回与写指令对应的区域。
在一些具体的实施例中,读信息包括:读取数据的地址、读取数据的长度、读取数据的时间戳、读取数据的ID;
对应的,读操作的执行过程,包括:
读时长判断模块,用于每隔第二预设时间间隔,基于读取数据的时间戳判断读操作的数据读取的读时长是否超过预设阈值;
读操作执行模块,用于若超过预设阈值,则停止数据读取的操作,并删除注册表中相应的读信息,确定完成读操作。
在一些具体的实施例中,还包括:
写时长判断模块,用于每隔第三预设时间间隔,判断当前写指令对应的写操作的写时长是否大于预设写时间阈值;
写操作停止与警示模块,用于若大于预设写时间阈值,则停止写操作,并发出警示信息。
由于读写装置部分的实施例与读写方法部分的实施例相互对应,因此读写装置部分的实施例请参见读写方法部分的实施例的描述,这里暂不赘述。
下面对本申请实施例提供的一种电子设备进行介绍,下文描述的电子设备与上文描述的读写方法可相互对应参照。
本实施例提供一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行计算机程序时实现如上述读写方法的步骤。
由于电子设备部分的实施例与读写方法部分的实施例相互对应,因此电子设备部分的实施例请参见读写方法部分的实施例的描述,这里暂不赘述。
下面对本申请实施例提供的一种计算机可读存储介质进行介绍,下文描述的计算机可读存储介质与上文描述的读写方法可相互对应参照。
本实施例提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述读写方法的步骤。
由于计算机可读存储介质部分的实施例与读写方法部分的实施例相互对应,因此计算机可读存储介质部分的实施例请参见读写方法部分的实施例的描述,这里暂不赘述。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本申请所提供的一种读写方法、读写装置、电子设备及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
Claims (10)
1.一种读写方法,其特征在于,包括:
接收到写指令;
根据注册表中的读信息确定与所述写指令对应的写策略,其中,所述读信息是当接收到读指令后,将所述读指令对应的信息存储至所述注册表中的信息;
基于所述写策略执行所述写指令;其中:
所述根据注册表中的读信息确定与所述写指令对应的写策略,包括:
判断所述注册表是否存在所述读信息;
若存在所述读信息,则确定第一写策略;若不存在所述读信息,则确定第二写策略;
对应的,所述基于所述写策略执行所述写指令,包括:
基于所述第一写策略,读出与所述写指令对应的区域至临时内存,且在所述临时内存中执行所述写指令,直至当所有所述读信息对应的读操作执行完成后,且所述注册表中不存在所述读信息,将所述临时内存中的所有数据写回与所述写指令对应的区域;
或,基于所述第二写策略,在与所述写指令对应的区域执行所述写指令。
2.根据权利要求1所述的读写方法,其特征在于,所述接收到写指令之前,还包括:
接收到所述读指令,每个所述读指令包括所述读信息;
依次将所述读信息存储至所述注册表中;
基于目标读指令对目标区域的数据执行所述读操作;
当所述读操作执行完成后,将与所述目标读指令对应的读信息从所述注册表中删除,并基于下一个读指令对与所述下一个读指令对应的区域的数据执行所述读操作,直至完成所述注册表中的所述读信息对应的所有所述读指令。
3.根据权利要求1所述的读写方法,其特征在于,所述在所述临时内存中执行所述写指令之后,还包括:
每隔第一预设时间间隔,判断所述注册表是否存在所述读信息;
若所述注册表不存在所述读信息,则将所述临时内存中的执行完成所述写指令的数据写回与所述写指令对应的区域。
4.根据权利要求3所述的读写方法,其特征在于,所述注册表还包括:与每个所述读信息对应的指向信息,其中,所述指向信息是由当前的读信息指向下一个读信息;
对应的,所述每隔第一预设时间间隔,判断所述注册表是否存在所述读信息,包括:
每隔所述第一预设时间间隔判断所述注册表中的最后一个指向信息是否为空;
对应的,所述若不存在所述读信息,则确定第二写策略,包括:
若为空,则确定所述第二写策略。
5.根据权利要求1所述的读写方法,其特征在于,所述根据注册表中的读信息确定与所述写指令对应的写策略,包括:
判断所述注册表是否存在优先级大于预设优先级阈值的目标读信息;
若存在所述目标读信息,则确定第三写策略;
对应的,所述基于所述写策略执行所述写指令,包括:
基于所述第三写策略,读出与所述写指令对应的区域至临时内存,且在所述临时内存中执行所述写指令;
执行与所述目标读信息对应的读操作,当所有的所述目标读信息对应的读操作执行完成后,将所述临时内存中的所有数据写回与所述写指令对应的区域。
6.根据权利要求2至5任一项所述的读写方法,其特征在于,所述读信息包括:读取数据的地址、读取数据的长度、读取数据的时间戳、读取数据的ID;
对应的,所述读操作的执行过程,包括:
每隔第二预设时间间隔,基于读取数据的时间戳判断所述读操作的数据读取的读时长是否超过预设阈值;
若超过所述预设阈值,则停止所述数据读取的操作,并删除所述注册表中相应的读信息,确定完成所述读操作。
7.根据权利要求1所述的读写方法,其特征在于,所述基于所述写策略执行所述写指令之后,还包括:
每隔第三预设时间间隔,判断当前写指令对应的写操作的写时长是否大于预设写时间阈值;
若大于所述预设写时间阈值,则停止写操作,并发出警示信息。
8.一种读写装置,其特征在于,包括:
写指令接收模块,用于接收到写指令;
写策略确定模块,用于根据注册表中的读信息确定与所述写指令对应的写策略,其中,所述读信息是当接收到读指令后,将所述读指令对应的信息存储至所述注册表中的信息;
写指令执行模块,用于基于所述写策略执行所述写指令;其中:
所述根据注册表中的读信息确定与所述写指令对应的写策略,包括:
判断所述注册表是否存在所述读信息;
若存在所述读信息,则确定第一写策略;若不存在所述读信息,则确定第二写策略;
对应的,所述基于所述写策略执行所述写指令,包括:
基于所述第一写策略,读出与所述写指令对应的区域至临时内存,且在所述临时内存中执行所述写指令,直至当所有所述读信息对应的读操作执行完成后,且所述注册表中不存在所述读信息,将所述临时内存中的所有数据写回与所述写指令对应的区域;
或,基于所述第二写策略,在与所述写指令对应的区域执行所述写指令。
9.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述读写方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述读写方法的步骤。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010052597.XA CN111261206B (zh) | 2020-01-17 | 2020-01-17 | 一种读写方法、装置和电子设备及可读存储介质 |
US17/793,454 US11868620B2 (en) | 2020-01-17 | 2020-06-24 | Read-write method and apparatus, electronic device, and readable memory medium |
PCT/CN2020/098034 WO2021143049A1 (zh) | 2020-01-17 | 2020-06-24 | 一种读写方法、装置和电子设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010052597.XA CN111261206B (zh) | 2020-01-17 | 2020-01-17 | 一种读写方法、装置和电子设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111261206A CN111261206A (zh) | 2020-06-09 |
CN111261206B true CN111261206B (zh) | 2022-03-08 |
Family
ID=70950732
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010052597.XA Active CN111261206B (zh) | 2020-01-17 | 2020-01-17 | 一种读写方法、装置和电子设备及可读存储介质 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11868620B2 (zh) |
CN (1) | CN111261206B (zh) |
WO (1) | WO2021143049A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111261206B (zh) * | 2020-01-17 | 2022-03-08 | 苏州浪潮智能科技有限公司 | 一种读写方法、装置和电子设备及可读存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1529243A (zh) * | 2003-09-29 | 2004-09-15 | 港湾网络有限公司 | 路由器流量管理芯片缓存管理实现方法与结构 |
CN101410905A (zh) * | 2006-03-28 | 2009-04-15 | 诺基亚公司 | 减小非易失性存储器读取延迟的方法和设备 |
EP2367100A2 (en) * | 2010-03-18 | 2011-09-21 | Kabushiki Kaisha Toshiba | Controller, data storage device, and program product |
CN106933512A (zh) * | 2017-02-27 | 2017-07-07 | 深圳怡化电脑股份有限公司 | 一种数据读写的方法及其设备 |
CN107885456A (zh) * | 2016-09-29 | 2018-04-06 | 北京忆恒创源科技有限公司 | 减少io命令访问nvm的冲突 |
CN109032522A (zh) * | 2018-07-25 | 2018-12-18 | 浪潮电子信息产业股份有限公司 | 固态硬盘的数据读取方法以及固态硬盘 |
US10296517B1 (en) * | 2011-06-30 | 2019-05-21 | EMC IP Holding Company LLC | Taking a back-up software agnostic consistent backup during asynchronous replication |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6466932B1 (en) * | 1998-08-14 | 2002-10-15 | Microsoft Corporation | System and method for implementing group policy |
US20050289143A1 (en) * | 2004-06-23 | 2005-12-29 | Exanet Ltd. | Method for managing lock resources in a distributed storage system |
JP2006244191A (ja) * | 2005-03-04 | 2006-09-14 | Fujitsu Ltd | 計算機管理プログラム、管理対象計算機制御プログラム、計算機管理装置、管理対象計算機、計算機管理システム、計算機管理方法、管理対象計算機制御方法 |
US9542235B2 (en) * | 2010-12-14 | 2017-01-10 | Appsense, Limited | Process-safe read/write locks |
US10754710B1 (en) * | 2012-06-20 | 2020-08-25 | Amazon Technologies, Inc. | Transactional watch mechanism |
US9952788B2 (en) * | 2015-09-29 | 2018-04-24 | Cnex Labs, Inc. | Method and apparatus for providing a shared nonvolatile memory system using a distributed FTL scheme |
CN105550567A (zh) * | 2015-12-09 | 2016-05-04 | 国云科技股份有限公司 | 一种Windows虚拟机USB设备读写权限管控方法 |
CN109388645B (zh) * | 2017-08-11 | 2023-02-24 | 腾讯科技(深圳)有限公司 | 指令执行方法、指令执行装置及存储介质 |
CN111261206B (zh) * | 2020-01-17 | 2022-03-08 | 苏州浪潮智能科技有限公司 | 一种读写方法、装置和电子设备及可读存储介质 |
-
2020
- 2020-01-17 CN CN202010052597.XA patent/CN111261206B/zh active Active
- 2020-06-24 WO PCT/CN2020/098034 patent/WO2021143049A1/zh active Application Filing
- 2020-06-24 US US17/793,454 patent/US11868620B2/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1529243A (zh) * | 2003-09-29 | 2004-09-15 | 港湾网络有限公司 | 路由器流量管理芯片缓存管理实现方法与结构 |
CN101410905A (zh) * | 2006-03-28 | 2009-04-15 | 诺基亚公司 | 减小非易失性存储器读取延迟的方法和设备 |
EP2367100A2 (en) * | 2010-03-18 | 2011-09-21 | Kabushiki Kaisha Toshiba | Controller, data storage device, and program product |
US10296517B1 (en) * | 2011-06-30 | 2019-05-21 | EMC IP Holding Company LLC | Taking a back-up software agnostic consistent backup during asynchronous replication |
CN107885456A (zh) * | 2016-09-29 | 2018-04-06 | 北京忆恒创源科技有限公司 | 减少io命令访问nvm的冲突 |
CN106933512A (zh) * | 2017-02-27 | 2017-07-07 | 深圳怡化电脑股份有限公司 | 一种数据读写的方法及其设备 |
CN109032522A (zh) * | 2018-07-25 | 2018-12-18 | 浪潮电子信息产业股份有限公司 | 固态硬盘的数据读取方法以及固态硬盘 |
Also Published As
Publication number | Publication date |
---|---|
US20230117060A1 (en) | 2023-04-20 |
WO2021143049A1 (zh) | 2021-07-22 |
CN111261206A (zh) | 2020-06-09 |
US11868620B2 (en) | 2024-01-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109614377B (zh) | 分布式文件系统的文件删除方法、装置、设备及存储介质 | |
US9128615B2 (en) | Storage systems that create snapshot queues | |
CN107491355A (zh) | 一种基于共享内存的进程间功能调用方法及装置 | |
CN111008087B (zh) | 一种消息处理方法及装置 | |
CN110865888A (zh) | 一种资源加载方法、装置、服务器及存储介质 | |
CN103150149B (zh) | 处理数据库重做数据的方法和装置 | |
CN110188110B (zh) | 一种构建分布式锁的方法及装置 | |
CN108572876A (zh) | 一种读写锁的实现方法及装置 | |
CN105045632A (zh) | 一种多核环境下实现免锁队列的方法和设备 | |
CN109766317B (zh) | 一种文件的删除方法、装置、设备及存储介质 | |
CN110019873B (zh) | 人脸数据处理方法、装置及设备 | |
CN113419824A (zh) | 数据处理方法、装置、系统及计算机存储介质 | |
CN112799791A (zh) | 分布式锁的调用方法、装置、电子设备和存储介质 | |
CN111261206B (zh) | 一种读写方法、装置和电子设备及可读存储介质 | |
US20100262810A1 (en) | Concurrent instruction operation method and device | |
CN111177032A (zh) | 缓存空间申请方法、系统、装置及计算机可读存储介质 | |
CN115951845B (zh) | 一种磁盘管理方法、装置、设备及存储介质 | |
CN108062224B (zh) | 基于文件句柄的数据读写方法、装置及计算设备 | |
CN106357557A (zh) | 一种消息处理方法及装置 | |
CN111241594A (zh) | 交易信息的加签方法、装置、计算机设备和存储介质 | |
CN114138371B (zh) | 配置动态加载方法、装置及计算机设备、存储介质 | |
CN113704297B (zh) | 业务处理请求的处理方法、模块及计算机可读存储介质 | |
CN114218317A (zh) | 进度信息管控方法、微服务装置、电子设备及存储介质 | |
CN106980578A (zh) | 一种内存块管理方法及系统 | |
CN112231290A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |