CN103514261B - 一种应用于工业控制系统的数据异步存储及访问方法 - Google Patents

一种应用于工业控制系统的数据异步存储及访问方法 Download PDF

Info

Publication number
CN103514261B
CN103514261B CN201310351073.0A CN201310351073A CN103514261B CN 103514261 B CN103514261 B CN 103514261B CN 201310351073 A CN201310351073 A CN 201310351073A CN 103514261 B CN103514261 B CN 103514261B
Authority
CN
China
Prior art keywords
data
queue
tail
head
pointer
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.)
Expired - Fee Related
Application number
CN201310351073.0A
Other languages
English (en)
Other versions
CN103514261A (zh
Inventor
吴克河
安思成
崔文超
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Huadian Tianyi Information Technology Co ltd
Original Assignee
BEIJING HUADIAN TIANYI INFORMATION TECHNOLOGY Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by BEIJING HUADIAN TIANYI INFORMATION TECHNOLOGY Co Ltd filed Critical BEIJING HUADIAN TIANYI INFORMATION TECHNOLOGY Co Ltd
Priority to CN201310351073.0A priority Critical patent/CN103514261B/zh
Publication of CN103514261A publication Critical patent/CN103514261A/zh
Application granted granted Critical
Publication of CN103514261B publication Critical patent/CN103514261B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及一种应用于工业控制系统的数据异步存储及访问机制,包括工业控制系统的实时数据缓存步骤和工业控制系统的数据读取步骤,在工业控制系统的实时数据缓存步骤和工业控制系统的数据读取步骤中均采用内存数据库,所述内存数据库中的实时数据结构为先进先出的环形队列,所述环形队列中的数据项采用变长方式,并且设置头指针和尾指针,所述头指针指向环形队列头部待读取的数据的第一个字节,所述尾指针指向队列尾部已写入数据的下一个可用空字节。本发明应用在广域测量、实时交易、军事监测等领域的数据交换中,使用变长循环队列结构的内存数据库,通过对数据的缓存、组织,使数据访问做到异步、可延时。

Description

一种应用于工业控制系统的数据异步存储及访问方法
技术领域
本发明涉及一种数据异步存储及访问机制,更具体的说涉及一种应用于工业控制系统的数据异步存储及访问方法。
背景技术
对于实时、高并发数据访问的应用系统环境下,恰当地处理和组织数据的方法越来越多地倾向于使用内存数据库,由于其自身较高的性能,尤其适合应用在广域测量、实时交易、军事监测等领域。与传统基于磁盘存储的数据库相比,内存数据库特点十分明显,由于数据存储、处理都在物理内存中进行,使得数据访问的响应时间在本机内达到微秒级甚至更高,在广域网络访问方面,能提供高达普通数据库几十倍的吞吐量。鉴于这些优点,内存数据库能解决广域测量系统中测量值与实际测量时间准确对应、网络交易系统高并发访问的实时性等问题。
内存数据库的另一个重要作用就是实时数据的缓存、组织和延时异步访问,它可以把工业控制系统产生的实时数据高速进行缓存,在读取和处理这些数据的过程存在延时或者不确定时,暂时保存数据,解决数据的产生与处理之间的速率不匹配问题。同时,由于缓存技术的应用,使得系统可以应对复杂的运行中的不可预期事件和错误,甚至系统的停止和间断出现时,也能以最大程度保证数据的可靠、有效、不丢失,极大地提高了系统的容错性。
现有的大多数内存数据库的设计不是以缓存和异步访问为出发点进行构造的,它们多倾向于复杂的系统结构和丰富的附加功能(如客户端/服务器网络访问,和sql语句的解释执行等),这样的产品使用于工业控制系统的缓存和异步访问中,往往得不到预期的效果,由于复杂的功能使得数据库访问效率大幅度降低,面对工业控制系统缓存的环境中对高速实时要求较高对复杂sql语句功能并不需要的情况,尤其显得不能合适和胜任。
因此对于工业控制系统数据交换和高速缓存情况需要建立高效、简捷、良好的结构化设计的内存数据库系统,提供数据的异步访问机制。
发明内容
为解决现有技术的不足,本发明的目的在于提供一种应用于工业控制系统的数据异步存储及访问机制,使工业控制系统的数据交换和高速缓存变得高效、简捷,大大提高了工业系统的效率。
为达到上述目的,本发明是通过以下的技术方案来实现的:一种应用于工业控制系统的数据异步存储及访问机制,包括工业控制系统的实时数据缓存步骤和工业控制系统的数据读取步骤,在工业控制系统的实时数据缓存步骤和工业控制系统的数据读取步骤中均采用内存数据库,所述内存数据库中的实时数据结构为先进先出的环形队列,所述环形队列中的数据项采用变长方式,并且设置头指针和尾指针,所述头指针指向环形队列头部待读取的数据的第一个字节,所述尾指针指向队列尾部已写入数据的下一个可用空字节。
本发明技术方案的进一步限定为,所述内存数据库中的实时数据结构为先进先出的环形队列的方式为:内存数据库的数据区域采用操作系统的共享内存技术,预先开辟一块一定大小的操作系统级别的共享内存区域,所述共享内存区域独立于系统中运行的各进程,并被各个进程映射访问;当进程映射访问了所述共享内存区域,在进程中得到映射的共享内存区域首地址,内存数据库依据得到的共享内存区域首地址把共享内存区域结构化成环形队列。
进一步地,所述工业控制系统的实时数据缓存步骤中,将工业控制系统的实时数据处理为环形队列的数据包,数据包的缓存在队尾进行,按顺序使数据包节点入队,数据包节点入队包括数据长度入队步骤和数据内容入队步骤,其中,所述数据长度入队步骤具体为:
①在数据包中获取需要入队的数据长度data_size和数据内容;
②获取队列当前的头指针head和尾指针tail的位置;
③判断环形队列的空间是否可容纳当前需要入队的数据,如果data_size>(tail_p+total_size-head_p)%total_size,则执行步骤④,否则,返回步骤①,其中data_siz为需要入队的数据包中数据长度所占的字节数,tail_p为环形队列的尾指针的位置,head_p为环形队列的头指针的位子,total_size为环形队列的总长度;
④将数据包中的数据长度data_size入队,入队时判断尾指针tail是否到达环形队列的末端;
⑤如果尾指针tail到达环形队列末端或到达环形队列末端长度不够容纳数据长度,则使用分拆方法将数据长度分成两段存储;如果尾指针tail未到达环形队列末端,则将数据长度直接存储;
所述数据内容入队步骤具体为:
①数据内容入队时,判断队尾指针tail到达环形队列末端的长度是否可容纳数据内容的长度,如果队尾指针到末端不够容纳数据,使用拆分方法将数据内容分成两段存储;如果尾指针tail未到达环形队列末端,则把数据内容直接存储;
②更新环形队列队尾指针tail,完成数据包节点入队。
进一步地,所述工业控制系统的数据读取步骤在队头进行,按入队顺序和长度依次使数据包出队,具体步骤为;
①判断环形队列中是否有数据,如果head_p==tail_p,则直接返回;否则,执行步骤②;
②如果环形队列头指针head到尾指针tail的长度大于等于4字节,在环形队列头指针head处直接读出4字节长度的数据;否则,使用聚合方法将环形队列末端和首端数据组合成4字节长度,然后读出4字节长度的数据;
③根据读出4字节长度的数据承载的数据值,判断头指针head到环形队列末端的数据长度是否大于等于此数据值,如果大于等于此数据值,则直接读取数据内容,否则使用聚合方法将环形队列末端和首端数据组成完整的数据,再读取数据内容;
④数据内容读取后,更新环形队列头指针head,完成数据出队。
进一步地,步骤②中,读出4字节长度的数据后,判断长度的合理性,如果长度不在合理范围内,则将环形队列内数据清空,头指针head和尾指针tail归零,然后返回。
进一步地,所述内存数据库中设置一个互斥锁mutexWrite,两个信号量used和free,其中,信号量used的值对应使用的空间大小,信号量free的值对应空闲的空间大小,且used+free==size-1。
进一步地,所述内存数据库中设置写入数据时使用的互斥锁mutexWrite及消息队列writeQueue,当完成工业控制系统的实时数据缓存步骤时,发送无数据的通知消息WRITE_MSG到消息队列writeQueue,监控进程实时读取消息队列里的消息,读取到写入消息WRITE_MSG时,对共享内存区域的循环队列进行读取,一直读取到队列为空。
进一步地,所述内存数据库中设置对循环队列的写访问之间保护的互斥锁mutexWrite和对循环队列的读访问之间保护的互斥锁mutexRead,所述写访问和读访问之间设置一个标识队列中可读数据包格式的信号量readable。
本发明的有益效果是:本发明所述的一种应用于控制系统的数据异步存储及访问机制,应用在广域测量、实时交易、军事监测等领域的数据交换中,使用变长循环队列结构的内存数据库,通过对数据的缓存、组织,使数据访问做到异步、可延时,主要起到3方面作用:①数据缓存,解决读写速率不匹配造成的操作等待或数据丢失;②高速访问,毫秒级响应时间,使数据读写在内存中进行,极高的访问效率;③实现了无缝的数据交换与进程间的通信。鉴于这些作用,使大型工业系统的可靠性、容错性大大加强,使系统效率大幅提升。
附图说明
图1为本发明所述的环形队列内存数据库结构示意图;
图2为本发明所述的工业控制系统的实时数据缓存步骤的流程示意图;
图3为本发明工业控制系统的数据读取步骤的流程示意图;
图4为本发明所述的同步互斥实施方法1的伪代码流程示意图;
图5为本发明所述的同步互斥实施方法2的伪代码流程示意图;
图6为本发明所述的同步互斥实施方法3的伪代码流程示意图。
具体实施方式
以下结合附图和具体实施例对本发明作具体的介绍。
实施例1:
本发明提供一种应用于工业控制系统的数据异步存储及访问机制,解决大型工业控制系统数据交换和缓存的异步数据访问问题,提供较高的系统数据交换效率和容错性。
本发明包括工业控制系统的实时数据缓存步骤和工业控制系统的数据读取步骤,在工业控制系统的实时数据缓存步骤和工业控制系统的数据读取步骤中均采用内存数据库,所述内存数据库中的实时数据结构为先进先出的环形队列,环形队列的数据结构如图1所示。所述环形队列中的数据项采用变长方式,并且设置头指针和尾指针,所述头指针指向环形队列头部待读取的数据的第一个字节,所述尾指针指向队列尾部已写入数据的下一个可用空字节。本发明保证数据交换时有序数据的正确高速访问,由于数据在内存中组织和缓存,空间的利用率相对重要,考虑到队列中缓存的数据内容长度的不确定性,使用定长数据项的队列可能出现空间的浪费、或者数据的超长丢失,所以设计队列中数据项采用变长方式,数据包的结构定义如下:
数据包数据长度使用整形,限制单个包最大为2G。
上述内存数据库中的实时数据结构为先进先出的环形队列的方式为:内存数据库的数据区域采用操作系统的共享内存技术,预先开辟一块一定大小的操作系统级别的共享内存区域,所述共享内存区域独立于系统中运行的各进程,并被各个进程映射访问;当进程映射访问了所述共享内存区域,在进程中得到映射的共享内存区域首地址,内存数据库依据得到的共享内存区域首地址把共享内存区域结构化成环形队列。共享内存区域结构如下:
其中包括一个初始化标志位,和队列空间的总长度。
循环队列设置队列的头指针和尾指针,分别指向队列头部待读取的数据的第一个字节和队列尾部已写入数据的下一个可用空字节。为了保证队列的空和满的判定条件有效,牺牲一个可存储数据字节。这样队列为空的理论判定条件为:head==tail,队列满的理论判定条件为head==(tail+1)%size。由于在实际情况下数据项为变长,很少时候能满足理论判定条件,所以在实际数据情况下队列已满(是否可容纳当前数据)的判定条件变为:data_size>(tail+size-head)%size,其中data_size为当前数据的长度。
所述工业控制系统的实时数据缓存步骤的流程图如图2所示,将工业控制系统的实时数据处理为环形队列的数据包,数据包的缓存在队尾进行,按顺序使数据包节点入队,数据包节点入队包括数据长度入队步骤和数据内容入队步骤,其中,所述数据长度入队步骤具体为:
①在数据包中获取需要入队的数据长度data_size和数据内容;
②获取队列当前的头指针head和尾指针tail的位置;
③判断环形队列的空间是否可容纳当前需要入队的数据,如果data_size>(tail_p+total_size-head_p)%total_size,则执行步骤④,否则,返回步骤①,其中data_siz为需要入队的数据包中数据长度所占的字节数,tail_p为环形队列的尾指针的位置,head_p为环形队列的头指针的位子,total_size为环形队列的总长度;
④将数据包中的数据长度data_size入队,入队时判断尾指针tail是否到达环形队列的末端;
⑤如果尾指针tail到达环形队列末端或到达环形队列末端长度不够容纳数据长度,则使用分拆方法将数据长度分成两段存储;如果尾指针tail未到达环形队列末端,则将数据长度直接存储。
所述数据内容入队步骤具体为:
①数据内容入队时,判断队尾指针tail到达环形队列末端的长度是否可容纳数据内容的长度,如果队尾指针到末端不够容纳数据,使用拆分方法将数据内容分成两段存储;如果尾指针tail未到达环形队列末端,则把数据内容直接存储。
②更新环形队列队尾指针tail,完成数据包节点入队。
]由于入队时有数据长度2G的限制,而入队时队尾指针的前一条数据位置无法读取,故不作指针位置的容错检查。考虑到数据长期读写和运行中不可预期的错误的出现,在出队时对队头指针的位置正确性由读出的长度的合理性进行标识,并进行检查和容错处理。
所述工业控制系统的数据读取步骤在队头进行,其流程图如图3所示,按入队顺序和长度依次使数据包出队,具体步骤为:
①判断环形队列中是否有数据,如果head_p==tail_p,则直接返回;否则,执行步骤②。
②如果环形队列头指针head到尾指针tail的长度大于等于4字节,在环形队列头指针head处直接读出4字节长度的数据;否则,使用聚合方法将环形队列末端和首端数据组合成4字节长度,然后读出4字节长度的数据。
读出4字节长度的数据后,判断长度的合理性,如果长度不在合理范围内,则将环形队列内数据清空,头指针head和尾指针tail归零,然后返回。
③根据读出4字节长度的数据承载的数据值,判断头指针head到环形队列末端的数据长度是否大于等于此数据值,如果大于等于此数据值,则直接读取数据内容,否则使用聚合方法将环形队列末端和首端数据组成完整的数据,再读取数据内容。
④数据内容读取后,更新环形队列头指针head,完成数据出队。
以上数据的入队和出队流程是针对原始数据操作的基本环节,未涉及到数据并发访问时的同步与互斥问题,考虑到实际系统运行中普遍的环境为并发环境,多线程或多进程的同步与互斥问题是其中重要的问题之一。
对于变长循环队列结构的内存数据库的同步问题,主要的需要注意问题有两个:各写入访问之间和各读取访问之间不能同时进行,需要互斥;一个写入访问和一个读取访问之间是有时序的,需要进行同步。
本发明针对同步和互斥提供如下3种实施方案:
同步互斥实施方法1的伪代码流程示意图如图4所示,所述内存数据库中设置一个互斥锁mutexWrite,两个信号量used和free,其中,信号量used的值对应使用的空间大小,信号量free的值对应空闲的空间大小,且used+free==size-1。这个模型是一个典型的生产者-消费者模型,生产者为入队进程,首先进行标识空闲资源字节数的信号量free的P操作,减去4+data_size个资源,然后通过互斥锁保护进行写入,写入后更新尾指针位置。写入后进行标识已用资源字节数的信号量used的V操作,加上4+data_size个资源,这个V操作可能激活正在used信号量P操作上等待的消费者进程的阻塞状态,这时消费者进程对数据开始读入,读入过程先读长度,然后读数据,最后更新头指针。读入后进行free信号量的V操作,这是可能激活正在free上等待的消费者的继续写入(此时可能空闲资源很多,消费者并不需要在free上等待)。
同步互斥实施方法2的伪代码流程示意图如图5所示,所述内存数据库中设置写入数据时使用的互斥锁mutexWrite及消息队列writeQueue,当完成工业控制系统的实时数据缓存步骤时,发送无数据的通知消息WRITE_MSG到消息队列writeQueue,监控进程实时读取消息队列里的消息,读取到写入消息WRITE_MSG时,对共享内存区域的循环队列进行读取,一直读取到队列为空。此模型通过一个消息队列通知数据的读取。入队操作进程在互斥写入数据之后发送一条消息到消息队列,通知出队进程,有数据可以读取了,出队进程可以进行读取一条数据操作。这样的方式可以使数据的出入队消息保存在不依赖于出队或入队进程的独立的消息队列中,这样即使出入或入队进程出现不可预知错误中断甚至退出依然不会影响循环队列中数据的顺序准确和内容正确性。
同步互斥实施方法3的伪代码流程示意图如图6所示,所述内存数据库中设置对循环队列的写访问之间保护的互斥锁mutexWrite和对循环队列的读访问之间保护的互斥锁mutexRead,所述写访问和读访问之间设置一个标识队列中可读数据包格式的信号量readable。此模型最常用的而且稳定性和效率都比较好的一种模型。这种模型用二个互斥锁和一个信号量。两个互斥锁分别保护入队和出队的流程,信号量用来控制循环队列中数据的条数,每次入队一条数据后,入队进程对信号量进行V操作,加1个资源,这时有可能激活正在信号量上进行P操作等待的出队进程,激活后进行读取操作。
上述实施例不以任何形式限制本发明,凡采用等同替换或等效变换的方式所获得的技术方案,均落在本发明的保护范围内。

Claims (4)

1.一种应用于工业控制系统的数据异步存储及访问方法,包括工业控制系统的实时数据缓存步骤和工业控制系统的数据读取步骤,在工业控制系统的实时数据缓存步骤和工业控制系统的数据读取步骤中均采用内存数据库,其特征在于,所述内存数据库中的实时数据结构为先进先出的环形队列,所述环形队列中的数据项采用变长方式,并且设置头指针和尾指针,所述头指针指向环形队列头部待读取的数据的第一个字节,所述尾指针指向队列尾部已写入数据的下一个可用空字节;形成所述内存数据库中的实时数据结构为先进先出的环形队列的方式为:内存数据库的数据区域采用操作系统的共享内存技术,预先开辟一块一定大小的操作系统级别的共享内存区域,所述共享内存区域独立于系统中运行的各进程,并被各个进程映射访问;当进程映射访问了所述共享内存区域,在进程中得到映射的共享内存区域首地址,内存数据库依据得到的共享内存区域首地址把共享内存区域结构化成环形队列;所述工业控制系统的实时数据缓存步骤中,将工业控制系统的实时数据处理为环形队列的数据包,数据包的缓存在队尾进行,按顺序使数据包节点入队,数据包节点入队包括数据长度入队步骤和数据内容入队步骤,其中,所述数据长度入队步骤具体为:①在数据包中获取需要入队的数据长度data_size和数据内容;②获取队列当前的头指针head和尾指针tail的位置;③判断环形队列的空间是否可容纳当前需要入队的数据,如果data_size>(tail_p+total_size–head_p)%total_size,则执行步骤④,否则,返回步骤①,其中data_size为需要入队的数据包中数据长度所占的字节数,tail_p为环形队列的尾指针的位置,head_p为环形队列的头指针的位子,total_size为环形队列的总长度;④将数据包中的数据长度data_size入队,入队时判断尾指针tail是否到达环形队列的末端;⑤如果尾指针tail到达环形队列末端或到达环形队列末端长度不够容纳数据长度,则使用拆分方法将数据长度分成两段存储;如果尾指针tail未到达环形队列末端,则将数据长度直接存储;所述数据内容入队步骤具体为:①数据内容入队时,判断队尾指针tail到达环形队列末端的长度是否可容纳数据内容的长度,如果队尾指针到末端不够容纳数据,使用拆分方法将数据内容分成两段存储;如果尾指针tail未到达环形队列末端,则把数据内容直接存储;②更新环形队列队尾指针tail,完成数据包节点入队;
所述内存数据库中设置写入数据时使用的互斥锁mutexWrite及消息队列writeQueue,当完成工业控制系统的实时数据缓存步骤时,发送无数据的通知消息WRITE_MSG到消息队列writeQueue,监控进程实时读取消息队列里的消息,读取到写入 消息WRITE_MSG时,对共享内存区域的循环队列进行读取,一直读取到队列为空;
所述内存数据库中设置对循环队列的写访问之间保护的互斥锁mutexWrite和对循环队列的读访问之间保护的互斥锁mutexRead,所述写访问和读访问之间设置一个标识队列中可读数据包格式的信号量readable。
2.根据权利要求1所述的一种应用于工业控制系统的数据异步存储及访问方法,其特征在于,所述工业控制系统的数据读取步骤在队头进行,按入队顺序和长度依次使数据包出队,具体步骤为;①判断环形队列中是否有数据,如果head_p==tail_p,则直接返回;否则,执行步骤②;②如果环形队列头指针head到尾指针tail的长度大于等于4字节,在环形队列头指针head处直接读出4字节长度的数据;否则,使用聚合方法将环形队列末端和首端数据组合成4字节长度,然后读出4字节长度的数据;③根据读出4字节长度的数据承载的数据值,判断头指针head到环形队列末端的数据长度是否大于等于此数据值,如果大于等于此数据值,则直接读取数据内容,否则使用聚合方法将环形队列末端和首端数据组成完整的数据,再读取数据内容;④数据内容读取后,更新环形队列头指针head,完成数据出队。
3.根据权利要求2所述的一种应用于工业控制系统的数据异步存储及访问方法,其特征在于,步骤②中,读出4字节长度的数据后,判断长度的合理性,其方法为比较长度的上下限范围,上限为队列中现有数据的总长度(tail_p+data_size–head_p)%data_size,下限为大于0;如果长度不在合理范围内,则将环形队列内数据清空,头指针head和尾指针tail归零,然后返回。
4.根据权利要求1所述的一种应用于工业控制系统的数据异步存储及访问方法,其特征在于,所述内存数据库中设置一个互斥锁mutexWrite,两个信号量used和free,其中,信号量used的值对应使用的空间大小,信号量free的值对应空闲的空间大小,且used+free==size–1。
CN201310351073.0A 2013-08-13 2013-08-13 一种应用于工业控制系统的数据异步存储及访问方法 Expired - Fee Related CN103514261B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310351073.0A CN103514261B (zh) 2013-08-13 2013-08-13 一种应用于工业控制系统的数据异步存储及访问方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310351073.0A CN103514261B (zh) 2013-08-13 2013-08-13 一种应用于工业控制系统的数据异步存储及访问方法

Publications (2)

Publication Number Publication Date
CN103514261A CN103514261A (zh) 2014-01-15
CN103514261B true CN103514261B (zh) 2017-03-15

Family

ID=49896985

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310351073.0A Expired - Fee Related CN103514261B (zh) 2013-08-13 2013-08-13 一种应用于工业控制系统的数据异步存储及访问方法

Country Status (1)

Country Link
CN (1) CN103514261B (zh)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105657472B (zh) * 2014-11-14 2018-09-18 北京四达时代软件技术股份有限公司 收视率数据处理方法和装置
KR101666440B1 (ko) * 2015-01-23 2016-10-17 주식회사 리얼타임테크 환형큐 기반의 인-메모리 데이터베이스 시스템에서의 데이터 처리방법
CN104809093A (zh) * 2015-04-13 2015-07-29 苏州凌犀物联网技术有限公司 对串行接口传输的数据进行处理的方法及装置
CN105446660B (zh) * 2015-11-13 2018-08-03 东软集团股份有限公司 一种数据读写方法及装置
CN106484817B (zh) * 2016-09-26 2020-06-26 广州致远电子有限公司 一种数据搜索方法及系统
CN106648461A (zh) * 2016-11-15 2017-05-10 努比亚技术有限公司 一种内存管理装置和方法
CN108496161A (zh) * 2017-09-29 2018-09-04 深圳市大疆创新科技有限公司 数据缓存装置及控制方法、数据处理芯片、数据处理系统
WO2020010492A1 (zh) * 2018-07-09 2020-01-16 大族激光科技产业集团股份有限公司 数控系统的数据处理方法、计算机设备和存储介质
CN109117268A (zh) * 2018-07-20 2019-01-01 首钢集团有限公司 一种轧机控制系统通信中间件的实现方法和装置
KR102569177B1 (ko) * 2018-11-29 2023-08-23 에스케이하이닉스 주식회사 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 시스템의 동작 방법
CN110018914B (zh) * 2019-03-26 2021-08-13 中国人民银行清算总中心 基于共享内存的消息采集方法及装置
CN110673554A (zh) * 2019-09-19 2020-01-10 深圳市爱康生物科技有限公司 一种应用于工业控制系统的数据缓存处理机制
CN110764703A (zh) * 2019-10-17 2020-02-07 山东神戎电子股份有限公司 一种基于数组实现的用于实时读写pcm数据的方法
CN112860684A (zh) * 2019-11-12 2021-05-28 阿里巴巴集团控股有限公司 数据访问方法、装置、设备及存储介质
CN111124953B (zh) * 2019-12-18 2021-04-27 海光信息技术股份有限公司 数据交换方法、装置、处理器及计算机系统
CN111240599B (zh) * 2020-01-17 2021-06-25 北京马赫谷科技有限公司 数据流存储方法及装置
CN111443873A (zh) * 2020-03-27 2020-07-24 深圳天岳创新科技有限公司 一种Nand Flash存储器的管理方法和装置
CN111399781B (zh) * 2020-04-21 2023-09-19 中国科学院光电技术研究所 一种提高实时图像记录系统可靠性的存储方法
CN112735450B (zh) * 2020-12-30 2023-03-17 北京百瑞互联技术有限公司 基于语音通道传输数据的方法、装置、存储介质及设备
CN113220716B (zh) * 2021-05-08 2023-03-03 西安热工研究院有限公司 一种提高实时数据库数据处理性能的装置及处理方法
CN113312388A (zh) * 2021-05-28 2021-08-27 中国船舶重工集团公司第七0七研究所 一种多线程且安全的数据库存储框架的构建方法
CN114089707B (zh) * 2021-11-18 2023-09-22 佛山冠湾智能科技有限公司 一种伺服驱动系统报警装置及报警方法
CN114785714B (zh) * 2022-03-01 2023-08-22 阿里巴巴(中国)有限公司 一种报文传输时延检测方法、存储介质及设备
CN115098733B (zh) * 2022-06-10 2023-04-07 深圳市移文科技有限公司 一种移动终端数据读取方法、装置及移动终端
CN115118676B (zh) * 2022-08-29 2022-11-11 科来网络技术股份有限公司 基于中心平台的异构系统数据通信交互方法、系统及终端

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6253197B1 (en) * 1998-10-06 2001-06-26 International Business Machines Corporation System and method for hash loops join of data using outer join and early-out join

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100594498C (zh) * 2008-09-02 2010-03-17 北京开拓天际信息技术有限公司 海量数据实时处理架构及用于该架构的实时随需处理平台

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6253197B1 (en) * 1998-10-06 2001-06-26 International Business Machines Corporation System and method for hash loops join of data using outer join and early-out join

Also Published As

Publication number Publication date
CN103514261A (zh) 2014-01-15

Similar Documents

Publication Publication Date Title
CN103514261B (zh) 一种应用于工业控制系统的数据异步存储及访问方法
CN102609378B (zh) 一种消息式内存访问装置及其访问方法
CN102331923B (zh) 一种基于多核多线程处理器的功能宏流水线实现方法
CN102999522B (zh) 一种数据存储方法和装置
CN104111804B (zh) 一种分布式文件系统
CN101452400B (zh) 处理多处理器系统中事务缓冲器溢出的方法和系统
US9218204B2 (en) Processing engine for complex atomic operations
CN104508639B (zh) 使用一致性域表的一致性管理
CN108475194A (zh) 在片上网络架构中的寄存器通信
CN110362504A (zh) 对一致性链路和多级存储器的管理
CN107728937A (zh) 一种使用非易失性内存介质的键值对持久存储方法及系统
CN104317770B (zh) 用于众核处理系统的数据存储结构及数据访问方法
CN103488565B (zh) 一种分布式实时测试系统测试数据收集方法
CN103299281A (zh) 防止硬件事务存储器系统非故意丢失事务数据
CN106557442A (zh) 一种芯片系统
CN107025130A (zh) 处理节点、计算机系统及事务冲突检测方法
CN106250348B (zh) 一种基于gpu访存特性的异构多核架构缓存管理方法
CN103731364B (zh) 基于x86平台实现万兆大流量快速收包的方法
CN103729166B (zh) 程序的线程关系确定方法、设备及系统
CN104699550B (zh) 一种基于lockstep架构的错误恢复方法
CN108664335A (zh) 通过代理进行队列通信的方法与装置
CN107704603A (zh) 一种实现读写分离的方法及装置
CN107784073A (zh) 一种本地缓存的数据查询方法、存储介质和服务器
CN102929935A (zh) 一种基于事务的大容量数据读写方法
CN108170544A (zh) 面向数据无冲突程序的共享数据动态更新方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20170215

Address after: 102206 Beijing Changping District city Huilongguan Town Road No. 1 Building No. 5 hospital 8 floor 1 unit 906

Applicant after: BEIJING HUADIAN TIANYI INFORMATION TECHNOLOGY Co.,Ltd.

Address before: Shishi Fuda Road Park 212000 city of Jiangsu Province, Zhenjiang Jurong Economic Development Zone, building 02, room 315

Applicant before: JIANGSU HUADA TIANYI ELECTRIC POWER SCIENCE & TECHNOLOGY Co.,Ltd.

C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20170315