CN110597646A - 一种数据读写方法、系统、电子设备及存储介质 - Google Patents
一种数据读写方法、系统、电子设备及存储介质 Download PDFInfo
- Publication number
- CN110597646A CN110597646A CN201910871886.XA CN201910871886A CN110597646A CN 110597646 A CN110597646 A CN 110597646A CN 201910871886 A CN201910871886 A CN 201910871886A CN 110597646 A CN110597646 A CN 110597646A
- Authority
- CN
- China
- Prior art keywords
- data
- updating
- reading
- channel
- layer
- 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.)
- Granted
Links
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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2308—Concurrency control
- G06F16/2336—Pessimistic concurrency control approaches, e.g. locking or multiple versions without time stamps
- G06F16/2343—Locking methods, e.g. distributed locking or locking implementation details
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供的数据读写方法、系统、电子设备及存储介质,其中,所述方法包括:接收控制层发送的请求信息;通过可锁定的数据读取通道,传送待读取数据至所述控制层;通过可锁定的数据更新通道,接收所述控制层发送的改写后的数据;通过可锁定的数据交换通道,发送所述改写后的数据至所述数据层;其中,所述数据读取通道与所述数据更新通道之间、所述数据更新通道与所述数据交换通道之间至少一个呈锁定状态。可见,本申请不仅通过在控制层与数据层之间插入缓存层,以满足IO高并发时,多个线程同时读取同一数据的需求,同时,通过各个可锁定的数据通道有效保证插入缓存层之后,数据在缓存层中的有序传递。
Description
技术领域
本申请涉及数据传输技术领域,尤其涉及一种数据读写方法、系统、电子设备及存储介质。
背景技术
APP(Application,应用程序)的正常运行建立在数据读写系统的基础上,而数据读写系统中的数据交换是以控制层与数据层之间的IO(Input/Output,输入/输出)操作实现的。
当一个APP运行或者多个APP同时运行时,会出现多个线程的IO操作高并发情况,即数据层中的同一数据被多个线程同时读取或者改写,导致各个线程运行等待。为了解决上述问题,通常采用的方式是在数据层与控制层之间设置缓存层,令待读取数据和改写的数据在分别到达控制层和数据层之前,均先存储于缓存层中,通过同时从缓存层中读取待读取数据或者向缓存层中放入改写后的数据,兼容各个线程的IO操作并发情况。
但是,如果从缓存层中读取待读取数据与向缓存层中放入改写后的数据的操作同时发生,则会出现控制层所读取的数据是改写前的数据,令读取操作不准确,同时令数据层更新后的数据对于同时发出读取数据操作的控制层失去意义。而之后发出读取数据操作的控制层所读取的数据则为改写后的数据,此时之后发出读取数据操作的控制层与上述同时发出读取数据操作的控制层之间的数据无法保持一致,造成数据读写系统的混乱。而如果出现IO操作并发情况的线程数量庞大,则数据读写系统会更加混乱。
发明内容
本申请提供了一种数据读写方法、系统、电子设备及存储介质,以解决现有数据读写系统中缓存层读写混乱的问题。
第一方面,本申请提供了一种数据读写方法,包括:
接收控制层发送的请求信息,所述请求信息至少包含数据读取请求与数据更新请求中的一种;
通过可锁定的数据读取通道,传送待读取数据至所述控制层,所述数据读取通道设置于所述缓存层与所述控制层之间,用于流通待读取数据,所述待读取数据为存储于所述缓存层中且与所述控制层向所述数据层发送的数据读取请求相对应的数据;
通过可锁定的数据更新通道,接收所述控制层发送的改写后的数据,所述数据更新通道设置于所述缓存层与所述控制层之间,用于流通改写后的数据,所述改写后的数据为存储于所述控制层中且与所述控制层向所述数据层发送的数据更新请求相对应的数据;
通过可锁定的数据交换通道,发送所述改写后的数据至所述数据层,所述数据交换通道设置于所述缓存层与所述数据层之间,且用于流通所述待读取数据和所述改写后的数据;
其中,所述数据读取通道与所述数据更新通道之间、所述数据更新通道与所述数据交换通道之间至少一个呈锁定状态。
在本发明实施例第一方面一种可能的实现方式中,所述接收控制层发送的请求信息包括:
判断所述请求信息中是否包含数据更新请求;
如果包含,则开启更新解锁模块,并关闭更新锁定模块;
其中,所述更新解锁模块设置于所述数据更新通道上,且当数据更新通道满足更新解锁条件时,则允许所述改写后的数据流通的代码,所述更新锁定模块设置于所述数据更新通道上,且当数据更新通道满足更新锁定条件时,则阻止所述改写后的数据流通的代码;
开启读取锁定模块和交换锁定模块,并关闭读取解锁模块和交换解锁模块;
其中,所述读取解锁模块设置于所述数据读取通道上,且当数据读取通道满足读取解锁条件时,则允许所述待读取数据流通的代码;所述读取锁定模块设置于所述数据读取通道上,且当数据读取通道满足读取锁定条件时,则阻止所述待读取数据流通的代码;所述交换锁定模块设置于所述数据交换通道上,且当数据交换通道满足交换锁定条件时,则阻止所述待读取数据和所述改写后的数据流通的代码;所述交换解锁模块设置于所述数据交换通道上,且当数据交换通道满足交换解锁条件时,则允许所述待读取数据和所述改写后的数据流通的代码;
接收所述改写后的数据。
在本发明实施例第一方面一种可能的实现方式中,所述接收改写后的数据之后包括:
更新失效数据,所述失效数据为所述缓存层中与所述改写后的数据对应的数据;
判断所述失效数据是否更新结束;
如果更新结束,则开启所述更新锁定模块和所述交换解锁模块,并关闭所述更新解锁模块和所述交换锁定模块;
发送所述改写后的数据至所述数据层。
在本发明实施例第一方面一种可能的实现方式中,所述接收改写后的数据之后包括:
更新失效数据,所述失效数据为所述缓存层中与所述改写后的数据对应的数据;
判断所述失效数据是否更新结束;
如果更新结束,且所述请求信息中包含数据读取请求,则开启所述更新锁定模块和所述读取解锁模块,并关闭所述更新解锁模块和所述读取锁定模块;
按照所述数据读取请求,发送目标数据至所述控制层,所述目标数据为所述缓存层中与所述数据读取请求对应的数据。
在本发明实施例第一方面一种可能的实现方式中,所述按照数据读取请求,发送目标数据至控制层包括:
判断所述缓存层中是否存在目标数据;
如果不存在,则开启所述交换解锁模块,并关闭所述交换锁定模块,从所述数据层中获取所述目标数据。
在本发明实施例第一方面一种可能的实现方式中,所述数据读取通道为只读模式。
在本发明实施例第一方面一种可能的实现方式中,所述控制层与所述缓存层均设置于终端的内存区域。
第二方面,本申请实施例提供了一种数据读写系统,包括控制层和数据层,还包括:设置于所述控制层与所述数据层之间的缓存层;
可锁定的数据读取通道,所述数据读取通道设置于所述缓存层与所述控制层之间,用于流通待读取数据,所述待读取数据为存储于所述缓存层中且与所述控制层向所述数据层发送的数据读取请求相对应的数据;
可锁定的数据更新通道,所述数据更新通道设置于所述缓存层与所述控制层之间,用于流通改写后的数据,所述改写后的数据为存储于所述控制层中且与所述控制层向所述数据层发送的数据更新请求相对应的数据;
可锁定的数据交换通道,所述数据交换通道设置于所述缓存层与所述数据层之间,且用于流通所述待读取数据和所述改写后的数据;
所述数据读取通道与所述数据更新通道之间、所述数据更新通道与所述数据交换通道之间至少一个呈锁定状态。
在本发明实施例第二方面一种可能的实现方式中,还包括:
读取锁定模块,所述读取锁定模块设置于所述数据读取通道上,为当数据读取通道满足读取锁定条件时,则阻止所述待读取数据流通的代码,所述读取锁定条件为所述数据更新通道为非锁定状态;
读取解锁模块,所述读取解锁模块设置于所述数据读取通道上,为当数据读取通道满足读取解锁条件时,则允许所述待读取数据流通的代码,所述读取解锁条件为所述缓存层结束更新所述改写后的数据;
更新锁定模块,所述更新锁定模块设置于所述数据更新通道上,为当数据更新通道满足更新锁定条件时,则阻止所述改写后的数据流通的代码,所述更新锁定条件为所述缓存层结束更新所述改写后的数据;
更新解锁模块,所述更新解锁模块设置于所述数据更新通道上,为当数据更新通道满足更新解锁条件时,则允许所述改写后的数据流通的代码,所述更新解锁条件为所述控制层发出数据更新请求;
交换锁定模块,所述交换锁定模块设置于所述数据交换通道上,为当数据交换通道满足交换锁定条件时,则阻止所述待读取数据和所述改写后的数据流通的代码,所述交换锁定条件为所述数据更新通道为非锁定状态;
交换解锁模块,所述交换解锁模块设置于所述数据交换通道上,为当数据交换通道满足交换解锁条件时,则允许所述待读取数据和所述改写后的数据流通的代码,所述交换解锁条件为所述缓存层结束更新所述改写后的数据。
在本发明实施例第二方面一种可能的实现方式中,所述数据读取通道为只读模式。
在本发明实施例第二方面一种可能的实现方式中,所述控制层与所述缓存层均设置于终端的内存区域。
第三方面,本发明实施例提供了一种电子设备,包括:
处理器,以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行数据读写方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现数据读写方法。
本申请实施例提供的数据读写方法、系统、电子设备及存储介质,其中,在数据读写方法中,通过接收控制层发送的请求信息,或者控制层所要执行的任务,如果请求信息为数据读取请求,则缓存层通过可锁定的数据读取通道,将待读取数据传送至控制层,以供控制层读取。如果请求信息为数据更新请求,则控制层通过可锁定的数据更新通道,将改写后的数据发送至缓存层,然后,缓存层通过可锁定的数据交换通道,将改写后的数据发送至数据层,完成数据的改写任务。同时,为了保证数据在缓存层层面的有序和有效传递,所述数据读取通道与所述数据更新通道之间、所述数据更新通道与所述数据交换通道之间至少一个呈锁定状态,以避免同一个被共享的数据,既被读取,又被改写更新。可见,本申请不仅通过在控制层与数据层之间插入缓存层,以满足IO高并发时,多个线程同时读取同一数据的需求,同时,通过各个可锁定的数据通道有效保证插入缓存层之后,数据在缓存层中的有序传递。
附图说明
为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种数据读写方法的执行方法示意图;
图2为本申请实施例提供的一种带有缓存层的数据读写系统的结构示意图;
图3为本申请实施例提供的一种接收数据更新请求后实现改写后的数据的操作的流程图;
图4为本申请实施例提供的一种更新缓存层数据的方法的流程图;
图5为本申请实施例提供的一种请求信息中包含数据读取请求时的操作方法的流程图;
图6为本申请实施例提供的一种从数据层中获取目标数据的方法的流程图;
图7为本申请实施例提供的一种数据读写系统的结构示意图;
图8为本申请实施例提供的一种信息推送装置实施例二的结构示意图;
图9为本申请实施例提供的一种设置区域示意图;
图10为本申请实施例提供的电子设备的硬件结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,为本申请实施例提供的一种数据读写方法的执行方法示意图。该方法可以应用于服务器、PC(个人电脑)、平板电脑、手机等会出现IO高并发情况的终端中。
如图1所示,所述方法包括:
S1、接收控制层发送的请求信息,所述请求信息至少包含数据读取请求与数据更新请求中的一种。
图2展示了一种带有缓存层的数据读写系统的结构示意图。如图2所示,缓存层位于控制层与数据层之间,当控制层与数据层发生数据读取和改写操作时,缓存层会在数据传递的过程中,作为一个中间层级,辅助数据完成读取和改写的相关传递。
具体地,控制层首先发出请求信息,缓存层为接收该请求信息的直接层级,此时,缓存层能够准确获知控制层的请求,所述请求信息为数据读取请求、数据更新请求、数据读取请求以及数据更新请求中的一种情况。需要注意的是,控制层不可在同一时间对同一个数据出现读取和更新的请求,以避免造成该数据的读写混乱。
数据在各个层级上传递的操作是通过各个数据通道实现的,数据通道为设置在各个对应层级之间的,且具有传递数据功能的通道,还可称作接口等,在数据通道上添加锁定功能,通常采用在数据通道中添加具有锁定和解锁功能的代码,控制数据通道中数据的阻断和流通,得到可锁定的数据通道,从而能够简单有效地控制数据传递的时间、方向等。
缓存层接收到控制层发送的请求信息之后,根据具体的请求信息类型,采用不同的数据通道进行数据传递。
S2、通过可锁定的数据读取通道,传送待读取数据至所述控制层,所述数据读取通道设置于所述缓存层与所述控制层之间,用于流通待读取数据,所述待读取数据为存储于所述缓存层中且与所述控制层向所述数据层发送的数据读取请求相对应的数据。
当请求信息中包含数据读取请求时,需要启用数据读取通道来完成待读取数据的传递。具体地,缓存层中存储有对应于数据读取请求的数据,这些数据通常为之前在数据层中被读取过的数据,这些数据在被读取的同时存储于缓存层中,以便控制层再次读取该数据时,能够直接从缓存层中读取,而无需再次从数据层中读取该数据的对应的源数据,以减少对数据层的损坏;同时根据缓存层的读取特点,也可以实现,多个线程同时读取同一数据而互不影响,以有效解决IO高并发的问题。
当请求信息中包含数据读取请求时,可以通过数据读取通道,直接完成待读取数据从缓存层至控制程度的传递。需要注意的是,所述数据读取通道为可锁定的数据通道。因此,能够有效控制待读取数据是否能够经此流通,即使当前时刻接收到数据读取请求,且缓存层中存在对应的数据,但是,一旦满足锁定条件,也要立刻阻断待读取数据的流通,以保证缓存层中数据的有序读写。
S3、通过可锁定的数据更新通道,接收所述控制层发送的改写后的数据,所述数据更新通道设置于所述缓存层与所述控制层之间,用于流通改写后的数据,所述改写后的数据为存储于所述控制层中且与所述控制层向所述数据层发送的数据更新请求相对应的数据。
S4、通过可锁定的数据交换通道,发送所述改写后的数据至所述数据层,所述数据交换通道设置于所述缓存层与所述数据层之间,且用于流通所述待读取数据和所述改写后的数据。
当请求信息中包含数据更新请求时,需要启用数据更新通道来完成改写后的数据的传递。具体地,为了满足系统的升级、或者为了增加/减少系统的某些功能,需要对数据层中的数据进行改写,此时,改写后的数据通过控制层进入读写系统,首先,通过数据更新通道进入缓存层,以更新缓存层中的相关数据。然后,再通过数据交换通道从缓存层进入数据层,以更新数据层中的相关数据。
将改写后的数据首先传递至缓存层,实现缓存层的数据更新,能够保证缓存层的数据读取功能在最短时间内恢复正常,进而保证数据读写系统中数据读取功能的有效性。尤其是针对于同一数据的短时间内连续改写,如果直接将改写后的数据传递至数据层,以更新数据层,那么同一个数据则会在短时间内发生多次改写,令数据层受损。同时,当数据层的数据发生改写的过程中,如果需要读取数据,则需要重复将待读取数据从数据层读取出,并存储至缓存层的操作,此时,不仅操作步骤大大增多,且缓存层中对于同一数据将会保存多个版本,容易造成数据混乱。而将改写后的数据首先传递至缓存层,以更新缓存层,则可以有效解决上述问题。
需要注意的是,所述数据更新通道和数据交换通道均为可锁定的数据通道。因此,能够有效控制改写后的数据是否能够经此流通,即使当前时刻接收到数据更新请求,但是,一旦满足锁定条件,也要立刻阻断改写后的数据的流通,以保证缓存层中数据的有序读写。
其中,所述数据读取通道与所述数据更新通道之间、所述数据更新通道与所述数据交换通道之间至少一个呈锁定状态。这样能够保证缓存层中的同一个数据不会出现同时被改写和读取的问题,以保证缓存层中数据的有效性和可操作性。
由上文可知,针对不同的请求信息,需要选择不同的数据通道,以及控制数据通道的锁定功能传递数据,以保证缓存层中数据的有效性。具体地,图3展示了一种接收数据更新请求后实现改写后的数据的操作的流程图,所述方法包括:
S101、判断所述请求信息中是否包含数据更新请求。
数据更新请求是一个比较特殊的请求类型,数据更新请求代表存在需要改写、增加、和/或删除的数据,数据更新请求对应的是数据本身的修改,而数据读取请求是基于数据本身,因此,在理论上,同一时间发出的请求信息中,数据更新请求对应的操作要优先于数据读取请求,这样才能够保证读取的数据具有时效性。因此,需要严格判断请求信息中是否包含数据更新请求,如果包含数据更新请求,需要严格保证数据更新的相关操作。
S102、如果包含,则开启更新解锁模块,并关闭更新锁定模块。
其中,为了实现对数据更新通道的控制,在数据更新通道上设置具有锁定功能的更新锁定模块,以及具有解锁功能的更新解锁模块,具体地,更新锁定模块与更新解锁模块为分别实现锁定和解锁功能的代码。
如果请求信息中包含数据更新请求,则说明控制层要向数据层传递改写后的数据,以更新数据层内的相关数据。此时,需要开启更新解锁模块,并关闭更新锁定模块,以令改写后的数据可以顺利通过数据更新通道完成传递操作。
S103、开启读取锁定模块和交换锁定模块,并关闭读取解锁模块和交换解锁模块;
其中,为了实现对数据读取通道的控制,在数据读取通道上设置具有锁定功能的读取锁定模块,以及具有解锁功能的读取解锁模块,具体地,读取锁定模块与读取解锁模块为分别实现锁定和解锁功能的代码。同理,在数据交换通道上设置交换锁定模块和交换解锁模块。
当请求信息中包含数据更新请求时,说明需要对缓存层和数据层中的数据进行改写。为了避免需要被改写的数据同时被读取,出现系统不知先进行哪种操作的操作卡顿,或者出现先读取数据,再改写数据,造成本次所读取的数据不具有时效性的问题,则采用遇到数据更新请求时,优先更新数据,再执行读取数据的操作。因此,此时需要开启读取锁定模块和交换锁定模块,并关闭读取解锁模块和交换解锁模块。
需要注意的是,为了不影响数据读取的进度,可以有针对性的关闭数据读取通道,具体地,
S111、根据数据更新请求和数据读取请求,判断是否存在停摆数据,所述停摆数据为需要更新的目标数据与需要读取的目标数据一致的数据;
S112、如果存在,则执行S102-S103;
S113、如果不存在,则开启更新解锁模块,并关闭更新锁定模块,同时,开启读取解锁模块和交换解锁模块,关闭读取锁定模块和交换锁定模块。
如果数据更新请求和数据读取请求所针对的数据不是同一个,则说明数据改写操作和数据读取操作互不影响,此时,可以同时进行数据更新和数据读写的操作。
S104、接收所述改写后的数据。
当改写后的数据顺利通过数据更新通道后,缓存层完成改写后的数据的接收操作,以便缓存层以改写后的数据为基础更新数据,或者传递至数据层等操作。
具体地,图4展示了一种更新缓存层数据的方法的流程图,所述方法包括:
S121、更新失效数据,所述失效数据为所述缓存层中与所述改写后的数据对应的数据;
S122、判断所述失效数据是否更新结束;
S123、如果更新结束,则开启所述更新锁定模块和所述交换解锁模块,并关闭所述更新解锁模块和所述交换锁定模块;
S124、发送所述改写后的数据至所述数据层。
改写后的数据大多数情况下并非对应于缓存层中的全部数据,因此,不能够将缓存层中的全部数据替换为改写后的数据,只需要将失效部分的数据进行更新即可。同时,由于可以只更新部分数据,因此,改写后的数据也无需包含缓存层或者数据层的全部数据,只需要改写有需要的部分即可。这样不仅能够减轻改写工作,同时能够减轻更新工作。
在此部分操作时,必须要准确判断是否更新结束,之后更新结束,才能够关闭数据更新通道,同时开启数据交换通道,以使改写后的数据传递至数据层,以完成数据层相关数据的更新操作。
同时,如果请求信息中包含数据读取请求,则需要根据数据读取请求进行读取数据的相关操作,具体地,图5展示了一种请求信息中包含数据读取请求时的操作方法的流程图,所述方法包括:
S131、更新失效数据,所述失效数据为所述缓存层中与所述改写后的数据对应的数据;
S132、判断所述失效数据是否更新结束;
S133、如果更新结束,且所述请求信息中包含数据读取请求,则开启所述更新锁定模块和所述读取解锁模块,并关闭所述更新解锁模块和所述读取锁定模块;
S134、按照所述数据读取请求,发送目标数据至所述控制层,所述目标数据为所述缓存层中与所述数据读取请求对应的数据。
在失效数据更新结束之后,如果请求信息中包含数据读取请求,此时,需要进行数据读取操作,即开启数据读取通道,并关闭数据更新通道,以完成控制层此次请求中的数据读取请求,同时,避免控制层下一请求信息中的数据更新请求对此次数据读取请求的干扰。
需要注意的是,本申请所真的数据读取请求和数据更新请求均针对同一次请求信息,如果是不同次的请求信息,需要在各自的请求信息所对应的时间段进行处理,其中,不同次的请求信息之间,按照发起请求信息的先后顺序进行处理。
目标数据可以为存储于缓存层中的数据,如果缓存层中没有目标数据,则所述目标数据必然存储于数据层中,需要从数据层读取目标数据。
具体地,图6展示了一种从数据层中获取目标数据的方法的流程图,所述方法包括:
S1341、判断所述缓存层中是否存在目标数据;
S1342、如果不存在,则开启所述交换解锁模块,并关闭所述交换锁定模块,从所述数据层中获取所述目标数据。
如果缓存层中不存在目标数据,则开启数据交换通道,令数据层中的目标数据可以通过数据交换通道传递至缓存层,再经由数据读取通过从缓存层传递至控制层,以完成数据读取操作。
需要注意的是,本申请中所提供的数据读取通道为只读模式。
这样能够有效保证数据读取通道只支持读取操作,而无法从该通道进行数据改写。由于读取数据的终端数量众多,质量也参差不齐,因此,难免会存在具有违法操作的终端,想要通过数据读取通道来篡改数据层的数据,本申请所提供的只读模式的数据读取通道能够有效解决上述问题。
另外,本申请所提供的控制层与缓存层均设置于终端的内存区域。
由上文可知,数据读写操作多在于控制层与缓存层之间,如果控制层和缓存层在两个存储空间内,则数据读写操作需要进行跨空间操作,增加读写时间和读写难度,而将控制层与缓存层同时设置于终端的内存区域,则可以有效解决上述问题,有效提高数据的读写效率。
图7为本申请实施例提供的一种数据读写系统的结构示意图,所述系统包括:一种数据读写系统,包括控制层1和数据层2,其特征在于,还包括:设置于所述控制层1与所述数据层2之间的缓存层3;
可锁定的数据读取通道4,所述数据读取通道4设置于所述缓存层3与所述控制层1之间,用于流通待读取数据,所述待读取数据为存储于所述缓存层3中且与所述控制层1向所述数据层2发送的数据读取请求相对应的数据;
可锁定的数据更新通道5,所述数据更新通道5设置于所述缓存层3与所述控制层1之间,用于流通改写后的数据,所述改写后的数据为存储于所述控制层1中且与所述控制层1向所述数据层2发送的数据更新请求相对应的数据;
可锁定的数据交换通道6,所述数据交换通道6设置于所述缓存层3与所述数据层2之间,且用于流通所述待读取数据和所述改写后的数据;
所述数据读取通道4与所述数据更新通道5之间、所述数据更新通道5与所述数据交换通道6之间至少一个呈锁定状态。
图8为本发明实施例提供的一种信息推送装置实施例二的结构示意图,所述系统还包括:
读取锁定模块41,所述读取锁定模块设置于所述数据读取通道上,为当数据读取通道满足读取锁定条件时,则阻止所述待读取数据流通的代码,所述读取锁定条件为所述数据更新通道为非锁定状态;
读取解锁模块42,所述读取解锁模块设置于所述数据读取通道上,为当数据读取通道满足读取解锁条件时,则允许所述待读取数据流通的代码,所述读取解锁条件为所述缓存层结束更新所述改写后的数据;
更新锁定模块51,所述更新锁定模块设置于所述数据更新通道上,为当数据更新通道满足更新锁定条件时,则阻止所述改写后的数据流通的代码,所述更新锁定条件为所述缓存层结束更新所述改写后的数据;
更新解锁模块52,所述更新解锁模块设置于所述数据更新通道上,为当数据更新通道满足更新解锁条件时,则允许所述改写后的数据流通的代码,所述更新解锁条件为所述控制层发出数据更新请求;
交换锁定模块61,所述交换锁定模块设置于所述数据交换通道上,为当数据交换通道满足交换锁定条件时,则阻止所述待读取数据和所述改写后的数据流通的代码,所述交换锁定条件为所述数据更新通道为非锁定状态;
交换解锁模块62,所述交换解锁模块设置于所述数据交换通道上,为当数据交换通道满足交换解锁条件时,则允许所述待读取数据和所述改写后的数据流通的代码,所述交换解锁条件为所述缓存层结束更新所述改写后的数据。
可选地,所述数据读取通道4为只读模式。
图9为本申请实施例提供的一种设置区域示意图,其中,所述控制层1与所述缓存层3均设置于终端的内存区域7。
图10为本发明实施例提供的电子设备的硬件结构示意图,所述电子设备包括:存储器101和处理器102;
存储器101,用于存储计算机程序;
处理器102,用于执行存储器存储的计算机程序,以实现上述实施例中的数据读写方法。具体可以参见前述方法实施例中的相关描述。
可选地,存储器101既可以是独立的,也可以跟处理器102集成在一起。
当所述存储器101是独立于处理器102之外的器件时,所述电子设备还可以包括:
总线103,用于连接所述存储器101和处理器102。
本发明实施例提供的电子设备可用于执行上述实施例中任一所示的数据读写方法,其实现方式和技术效果类似,本发明实施例此处不再赘述。
本发明实施例还提供一种可读存储介质,可读存储介质中存储有计算机程序,当消息发送的装置的至少一个处理器执行该计算机程序时,消息发送的装置执行上述实施例任一所述的数据读写方法。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于以计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换,而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (13)
1.一种数据读写方法,其特征在于,包括:
接收控制层发送的请求信息,所述请求信息至少包含数据读取请求与数据更新请求中的一种;
通过可锁定的数据读取通道,传送待读取数据至所述控制层,所述数据读取通道设置于所述缓存层与所述控制层之间,用于流通待读取数据,所述待读取数据为存储于所述缓存层中且与所述控制层向所述数据层发送的数据读取请求相对应的数据;
通过可锁定的数据更新通道,接收所述控制层发送的改写后的数据,所述数据更新通道设置于所述缓存层与所述控制层之间,用于流通改写后的数据,所述改写后的数据为存储于所述控制层中且与所述控制层向所述数据层发送的数据更新请求相对应的数据;
通过可锁定的数据交换通道,发送所述改写后的数据至所述数据层,所述数据交换通道设置于所述缓存层与所述数据层之间,且用于流通所述待读取数据和所述改写后的数据;
其中,所述数据读取通道与所述数据更新通道之间、所述数据更新通道与所述数据交换通道之间至少一个呈锁定状态。
2.根据权利要求1所述的数据读写方法,其特征在于,所述接收控制层发送的请求信息包括:
判断所述请求信息中是否包含数据更新请求;
如果包含,则开启更新解锁模块,并关闭更新锁定模块;
其中,所述更新解锁模块设置于所述数据更新通道上,且当数据更新通道满足更新解锁条件时,则允许所述改写后的数据流通的代码,所述更新锁定模块设置于所述数据更新通道上,且当数据更新通道满足更新锁定条件时,则阻止所述改写后的数据流通的代码;
开启读取锁定模块和交换锁定模块,并关闭读取解锁模块和交换解锁模块;
其中,所述读取解锁模块设置于所述数据读取通道上,且当数据读取通道满足读取解锁条件时,则允许所述待读取数据流通的代码;所述读取锁定模块设置于所述数据读取通道上,且当数据读取通道满足读取锁定条件时,则阻止所述待读取数据流通的代码;所述交换锁定模块设置于所述数据交换通道上,且当数据交换通道满足交换锁定条件时,则阻止所述待读取数据和所述改写后的数据流通的代码;所述交换解锁模块设置于所述数据交换通道上,且当数据交换通道满足交换解锁条件时,则允许所述待读取数据和所述改写后的数据流通的代码;
接收所述改写后的数据。
3.根据权利要求2所述的数据读写方法,其特征在于,所述接收改写后的数据之后包括:
更新失效数据,所述失效数据为所述缓存层中与所述改写后的数据对应的数据;
判断所述失效数据是否更新结束;
如果更新结束,则开启所述更新锁定模块和所述交换解锁模块,并关闭所述更新解锁模块和所述交换锁定模块;
发送所述改写后的数据至所述数据层。
4.根据权利要求2所述的数据读写方法,其特征在于,所述接收改写后的数据之后包括:
更新失效数据,所述失效数据为所述缓存层中与所述改写后的数据对应的数据;
判断所述失效数据是否更新结束;
如果更新结束,且所述请求信息中包含数据读取请求,则开启所述更新锁定模块和所述读取解锁模块,并关闭所述更新解锁模块和所述读取锁定模块;
按照所述数据读取请求,发送目标数据至所述控制层,所述目标数据为所述缓存层中与所述数据读取请求对应的数据。
5.根据权利要求4所述的数据读写方法,其特征在于,所述按照数据读取请求,发送目标数据至控制层包括:
判断所述缓存层中是否存在目标数据;
如果不存在,则开启所述交换解锁模块,并关闭所述交换锁定模块,从所述数据层中获取所述目标数据。
6.根据权利要求1所述的数据读写方法,其特征在于,所述数据读取通道为只读模式。
7.根据权利要求1-6任一所述的数据读写方法,其特征在于,所述控制层与所述缓存层均设置于终端的内存区域。
8.一种数据读写系统,包括控制层和数据层,其特征在于,还包括:设置于所述控制层与所述数据层之间的缓存层;
可锁定的数据读取通道,所述数据读取通道设置于所述缓存层与所述控制层之间,用于流通待读取数据,所述待读取数据为存储于所述缓存层中且与所述控制层向所述数据层发送的数据读取请求相对应的数据;
可锁定的数据更新通道,所述数据更新通道设置于所述缓存层与所述控制层之间,用于流通改写后的数据,所述改写后的数据为存储于所述控制层中且与所述控制层向所述数据层发送的数据更新请求相对应的数据;
可锁定的数据交换通道,所述数据交换通道设置于所述缓存层与所述数据层之间,且用于流通所述待读取数据和所述改写后的数据;
所述数据读取通道与所述数据更新通道之间、所述数据更新通道与所述数据交换通道之间至少一个呈锁定状态。
9.根据权利要求8所述的数据读写系统,其特征在于,还包括:
读取锁定模块,所述读取锁定模块设置于所述数据读取通道上,为当数据读取通道满足读取锁定条件时,则阻止所述待读取数据流通的代码,所述读取锁定条件为所述数据更新通道为非锁定状态;
读取解锁模块,所述读取解锁模块设置于所述数据读取通道上,为当数据读取通道满足读取解锁条件时,则允许所述待读取数据流通的代码,所述读取解锁条件为所述缓存层结束更新所述改写后的数据;
更新锁定模块,所述更新锁定模块设置于所述数据更新通道上,为当数据更新通道满足更新锁定条件时,则阻止所述改写后的数据流通的代码,所述更新锁定条件为所述缓存层结束更新所述改写后的数据;
更新解锁模块,所述更新解锁模块设置于所述数据更新通道上,为当数据更新通道满足更新解锁条件时,则允许所述改写后的数据流通的代码,所述更新解锁条件为所述控制层发出数据更新请求;
交换锁定模块,所述交换锁定模块设置于所述数据交换通道上,为当数据交换通道满足交换锁定条件时,则阻止所述待读取数据和所述改写后的数据流通的代码,所述交换锁定条件为所述数据更新通道为非锁定状态;
交换解锁模块,所述交换解锁模块设置于所述数据交换通道上,为当数据交换通道满足交换解锁条件时,则允许所述待读取数据和所述改写后的数据流通的代码,所述交换解锁条件为所述缓存层结束更新所述改写后的数据。
10.根据权利要求8所述的数据读写系统,其特征在于,所述数据读取通道为只读模式。
11.根据权利要求8-10任一所述的数据读写系统,其特征在于,所述控制层与所述缓存层均设置于终端的内存区域。
12.一种电子设备,其特征在于,所述电子设备包括:
处理器,以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1-7任一所述的数据读写方法。
13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-7任一所述的数据读写方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910871886.XA CN110597646B (zh) | 2019-09-16 | 2019-09-16 | 一种数据读写方法、系统、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910871886.XA CN110597646B (zh) | 2019-09-16 | 2019-09-16 | 一种数据读写方法、系统、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110597646A true CN110597646A (zh) | 2019-12-20 |
CN110597646B CN110597646B (zh) | 2021-09-07 |
Family
ID=68859866
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910871886.XA Active CN110597646B (zh) | 2019-09-16 | 2019-09-16 | 一种数据读写方法、系统、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110597646B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022142529A1 (zh) * | 2020-12-29 | 2022-07-07 | 浙江中控技术股份有限公司 | 一种安全与常规控制应用间数据隔离的方法及装置 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103095686A (zh) * | 2012-12-19 | 2013-05-08 | 华为技术有限公司 | 热点元数据访问控制方法和服务器 |
CN104572917A (zh) * | 2014-12-29 | 2015-04-29 | 成都致云科技有限公司 | 数据锁定方法、装置及分布式存储系统 |
CN105095354A (zh) * | 2015-06-19 | 2015-11-25 | 北京奇虎科技有限公司 | 数据更新的方法及装置 |
CN105262542A (zh) * | 2015-09-18 | 2016-01-20 | 北京鼎实创新科技股份有限公司 | 一种用于profibus的光纤接口转换模块的实现方法 |
CN107526537A (zh) * | 2016-06-22 | 2017-12-29 | 伊姆西公司 | 用于锁定存储系统中的存储区域的方法和系统 |
CN109240614A (zh) * | 2018-08-30 | 2019-01-18 | 郑州云海信息技术有限公司 | 一种数据存储方法、装置及相关设备 |
CN109614048A (zh) * | 2018-12-10 | 2019-04-12 | 深圳市硅格半导体有限公司 | 基于闪存的数据读写方法、装置及计算机可读存储介质 |
CN109716279A (zh) * | 2016-09-15 | 2019-05-03 | 净睿存储股份有限公司 | 用于写入持久性的自适应并发 |
US10339059B1 (en) * | 2013-04-08 | 2019-07-02 | Mellanoz Technologeis, Ltd. | Global socket to socket cache coherence architecture |
-
2019
- 2019-09-16 CN CN201910871886.XA patent/CN110597646B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103095686A (zh) * | 2012-12-19 | 2013-05-08 | 华为技术有限公司 | 热点元数据访问控制方法和服务器 |
US10339059B1 (en) * | 2013-04-08 | 2019-07-02 | Mellanoz Technologeis, Ltd. | Global socket to socket cache coherence architecture |
CN104572917A (zh) * | 2014-12-29 | 2015-04-29 | 成都致云科技有限公司 | 数据锁定方法、装置及分布式存储系统 |
CN105095354A (zh) * | 2015-06-19 | 2015-11-25 | 北京奇虎科技有限公司 | 数据更新的方法及装置 |
CN105262542A (zh) * | 2015-09-18 | 2016-01-20 | 北京鼎实创新科技股份有限公司 | 一种用于profibus的光纤接口转换模块的实现方法 |
CN107526537A (zh) * | 2016-06-22 | 2017-12-29 | 伊姆西公司 | 用于锁定存储系统中的存储区域的方法和系统 |
CN109716279A (zh) * | 2016-09-15 | 2019-05-03 | 净睿存储股份有限公司 | 用于写入持久性的自适应并发 |
CN109240614A (zh) * | 2018-08-30 | 2019-01-18 | 郑州云海信息技术有限公司 | 一种数据存储方法、装置及相关设备 |
CN109614048A (zh) * | 2018-12-10 | 2019-04-12 | 深圳市硅格半导体有限公司 | 基于闪存的数据读写方法、装置及计算机可读存储介质 |
Non-Patent Citations (3)
Title |
---|
TOSIRON ADEGBIJA: "PhLock: A Cache Energy Saving Technique Using Phase-Based Cache Locking", 《IEEE TRANSACTIONS ON VERY LARGE SCALE INTEGRATION (VLSI) SYSTEMS 》 * |
曾辉: "最小化最坏执行时间的指令缓存锁定算法", 《武汉大学学报(理学版)》 * |
曾辉等: "一类新思路的指令缓存锁定算法", 《2008年全国高性能计算机学术年会论文》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022142529A1 (zh) * | 2020-12-29 | 2022-07-07 | 浙江中控技术股份有限公司 | 一种安全与常规控制应用间数据隔离的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110597646B (zh) | 2021-09-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9176713B2 (en) | Method, apparatus and program storage device that provides a user mode device interface | |
US9727380B2 (en) | Global register protection in a multi-threaded processor | |
KR20120052406A (ko) | 펌웨어 이미지 갱신 및 관리 | |
CN102135900B (zh) | 信息处理装置和信息处理方法 | |
US10209925B2 (en) | Queue control for shared memory access | |
CN104246727A (zh) | 数据处理系统以及用于操作数据处理系统的方法 | |
US20090198920A1 (en) | Processing Units Within a Multiprocessor System Adapted to Support Memory Locks | |
US20180083632A1 (en) | Enabling a field programmable device on-demand | |
CN110597646B (zh) | 一种数据读写方法、系统、电子设备及存储介质 | |
TW201525870A (zh) | 可更新積體電路無線電 | |
US20090198849A1 (en) | Memory Lock Mechanism for a Multiprocessor System | |
US8458151B2 (en) | Network device and method for updating data of the network device | |
CN114925015A (zh) | 基于多核处理器的数据处理方法、装置、设备及介质 | |
US11137995B2 (en) | Updating firmware of a microcontroller | |
US8214603B2 (en) | Method and apparatus for handling multiple memory requests within a multiprocessor system | |
US10089704B2 (en) | Digital rights management system | |
US20090198916A1 (en) | Method and Apparatus for Supporting Low-Overhead Memory Locks Within a Multiprocessor System | |
US20200184068A1 (en) | Device such as a connected object provided with means for checking the execution of a program executed by the device | |
US11768943B2 (en) | Secure element and method for starting an application by a low-level operating system | |
US20200137059A1 (en) | Method, device and computer program product for service access | |
US10547619B1 (en) | USB device for network security | |
CN109976675B (zh) | 一种数据更新、读取方法、装置、设备及存储介质 | |
US11836255B1 (en) | Microcontroller unit (MCU) secure boot | |
US11537718B2 (en) | Method for reprogramming data of a software function executed by at least one computer provided with at least one execution core, at least one security core and at least one non-volatile memory | |
CN110462624A (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 |