CN105868123A - 一种并发数据的缓存结构及方法 - Google Patents

一种并发数据的缓存结构及方法 Download PDF

Info

Publication number
CN105868123A
CN105868123A CN201610210213.6A CN201610210213A CN105868123A CN 105868123 A CN105868123 A CN 105868123A CN 201610210213 A CN201610210213 A CN 201610210213A CN 105868123 A CN105868123 A CN 105868123A
Authority
CN
China
Prior art keywords
data
write
cache
group
caching
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
Application number
CN201610210213.6A
Other languages
English (en)
Other versions
CN105868123B (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.)
Hefei Ruishi Digital Technology Co.,Ltd.
Original Assignee
WUHAN DIGITAL PEAK 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 WUHAN DIGITAL PEAK TECHNOLOGY Co Ltd filed Critical WUHAN DIGITAL PEAK TECHNOLOGY Co Ltd
Priority to CN201610210213.6A priority Critical patent/CN105868123B/zh
Publication of CN105868123A publication Critical patent/CN105868123A/zh
Application granted granted Critical
Publication of CN105868123B publication Critical patent/CN105868123B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • G06F12/0669Configuration or reconfiguration with decentralised address assignment

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

一种并发数据的缓存结构,包括多组数据写入线程与数据读取线程、多组数据缓存、多个写、读管道;每组数据缓存包括多组数据缓存模块,每组数据缓存模块分别包括若干组缓存分区以及与一分区控制单元,分区控制单元与每一缓存分区分别通信连接的以控制多个缓存分区的工作状态以及被访问顺序;每组数据写入线程经由一组写管道与数据缓存通信连接,每组数据读取线程经由一组读管道与数据缓存通信连接,多组数据写入、读取线程分别覆盖全部数据缓存模块设置,写、读管道分别确定数据写入、地球线程在相应数据缓存中访问数据缓存模块的顺序,不同的写、读管道所映射的数据缓存模块不相交,可用于支持多个网络端口接收或多线程并行处理的业务需求。

Description

一种并发数据的缓存结构及方法
技术领域
本发明涉及辐射检测领域的数据采集技术,具体涉及一种高速数据采集的缓存方法和设备。
背景技术
现有技术中的高速数据采集系统,其每个数据通道一般都对应设有一个独立的用于缓存通道数据的FIFO(First Input First Ouput,先入先出队列),然而在实际的数据采集中,经常遇到数据采集率高、速度快,而数据处理时间长,速度较慢的矛盾,当缓存容量大时,这种原始数据的速率较高,对网络接收和数据处理提出了较高的要求。
以全数字PET为例,图1为全数字PET设备中数据采集与处理流程示意图,探测器各通道对接收到信号进行采样和编码,以特定格式的数据包发送到网络。PET成像所需的有效事件分布于不同的探测器通道,两者之间的匹配关系可通过事件采样时间来标定。来自各探测器通道的有效事件以及噪声数据混合在一起,串行分布于网络传输链路中,当采集服务器接收到这些数据后,基于符合算法从中筛选出有效事件,并进行时间、能量校正,然后根据重建算法将筛选结果转换为PET图像。理想情况下数据采集应与符合处理并发执行,实时完成数据筛选、时间校正、能量校正,从而降低重建前数据存储所需的资源要求。但是由于通道数量多,且每个通道中数据量十分巨大,每秒需要同时处理1.5GB至3GB的数据,若无法及时进行处理,会导致有效事件的丢包,进而导致数据筛选、时间校正、能量校正的有效性降低,图像重建无法实现或者虽然能实现但是严重影响精准性。
发明内容
本发明的目的在于提供一种并发数据的缓存方法及缓存结构,能够有效解决数据采集率高、速度块,而数据处理时间长、速度慢的问题,尤其应用于全数字PET中的数据采集。
为达到上述目的,本发明的解决方案是:
本发明公开了一种并发数据的缓存结构,其同时进行数据的写入与读取,包括多组数据写入线程、多组数据读取线程、多组数据缓存、多个写管道以及多个读管道;
所述每组数据缓存包括多组数据缓存模块,每组数据缓存模块分别包括若干组缓存分区以及与一分区控制单元,所述分区控制单元与所述每一缓存分区分别通信连接的以控制所述多个缓存分区的工作状态以及被访问顺序,所述分区控制单元用于将所述相应缓存分区的工作状态设置为空闲状态、写锁定状态、写满状态以及读锁定状态中的任意一种,仅当所述缓存分区为空闲状态时支持写锁定,且所述缓存分区处于写锁定状态时支持数据写入,仅当所述缓存分区为写满状态时支持读锁定,且所述缓存分区处于读锁定状态时支持数据读出;
每组数据写入线程经由一组写管道与数据缓存通信连接,多组数据写入线程覆盖全部数据缓存模块设置,所述写管道用于确定数据写入线程在相应数据缓存中访问数据缓存模块的顺序,不同的写管道所映射的数据缓存模块不相交;
每组数据读取线程经由一组读管道与数据缓存通信连接,多组数据读取线程覆盖全部的数据缓存模块设置,所述读管道用于确定数据读取线程在相应数据缓存中访问数据缓存模块的顺序,不同读管道所映射的数据缓存模块不相交。
所述读管道数量不少于所述写管道数量设置。
所述数据缓存的数量为数据写入线程与数据读取线程数量的最小公倍数的整数倍。
所述数据缓存模块为生产者与消费者模型。
所述每组缓存分区包括一控制单元以及多组缓存扇区,所述缓存扇区一一编码设置,所述控制单元与所述每组缓存扇区通信连接,以控制每组缓存分区中,数据写入缓存扇区的顺序;
进一步优选的,所述每组缓存扇区包括一控制组件以及多个缓存页面,所述缓存页面一一编码且每组写入数据的大小与缓存页面相同设置,所述控制组件与所述缓存页面分别通向连接,以控制每组缓存扇区中,数据写入缓存页码的顺序。
所述分区控制单元包括一写锁定判断单元以及一读锁定判断单元;
所述写锁定判断单元与相应的写管道以及缓存分区通信连接,以控制数据缓存模块中缓存分区的访问顺序、写锁定与去写锁定,所述数据写入线程经由所述写管道以及写锁定判断单元与指定数据缓存模块中的缓存分区通信连续剧,以根据所述写锁定判断单元确定的访问顺序访问的缓存分区,并根据当前访问缓存分区的工作状态进行数据的写入操作;
所述读锁定判断单元与相应的读管道以及缓存分区通信连接,以控制数据缓存模块中缓存分区的访问顺序、读锁定与去读锁定,所述数据读取线程经由所述读管道以及读锁定判断单元与与指定数据缓存模块中的缓存分区通信连接,以根据所访问的缓存分区的当前状态判断是否读取缓存数据。
本发明还公开了一种并发数据的缓存方法,包括以下步骤:缓存分区的工作状态设置为空闲状态、写锁定状态、写满状态以及读锁定状态中的任意一种,
(A)所述多个数据缓存同时进行数据写入,一组数据写入至相应数据缓存时,(A1)确定数据缓存中各数据缓存模块的写入顺序,按照既定顺序将该组数据写入至指定数据缓存模块中:(A21)实时监测指定数据缓存模块是否存在写锁定状态缓存分区:若有写锁定状态缓存分区直接转入步骤(A22-2)进行该组数据写入;若没有写锁定状态缓存分区,(A22)实时监测是否存在空闲状态的缓存分区:若没有处于空闲状态的缓存分区,则转入步骤(A1);若有处于空闲状态的缓存分区,(A22-1)选定一组空闲状态的缓存分区置为写锁定状态;(A22-2)向所述写锁定状态的缓存分区写入该组数据;(A22-3)判断所述数据是否写入成功:若写入成功,则该组数据写入完成,结束该组数据写入,若写入失败,则将当前缓存分区置为写满状态,并转入步骤(A3),判断指定数据缓存模块是否写满,若指定数据缓存模块写满,转入步骤(A1),将下一组数据按照既定顺序写入另一数据缓存模块中;若指定数据缓存模块未写满,则转入步骤(A21),将下一组数据继续写入至指定数据缓存模块中;
步骤(B),所述多个数据缓存同时进数据读取,每组数据缓存的数据读取包括:(B1)确定各数据缓存中数据缓存模块数据读取的顺序,并依照确定的顺序选择指定数据缓存模块进行数据读取,(B2)实时监测指定数据缓存模块是否存在写满状态下的缓存分区:若没有写满状态的缓存分区,转入步骤(B1),继续下一数据缓存模块的数据读取;若有处于写满状态下的缓存分区,(B21)选定该组写满状态的缓存分区置为读锁定状态;(B22)读取该读锁定状态缓存分区内的缓存数据,当判断所述读锁定状态缓存分区读取完毕时,将所述缓存设置为空闲状态,同时转入步骤(B3),判断指定数据缓据缓存模块内的数据是否读完,若该指定数据缓存模块数据读取完毕,则转入步骤(B1),继续所述数据缓存中下一数据缓存模块的数据读取;若该指定数据缓存模块未读完,转入步骤(B2),继续指定数据缓存模块中下一组缓存分区的数据读取。
优选的,所述每组数据缓存模块中,同时只存在一组写锁定缓存分区和/或一组读锁定缓存分区,仅当所述缓存分区为空闲状态时支持写锁定,仅当所述缓存分区为写满状态时支持读锁定;
优选的,全部数据写入进程结束时,若存在一组未写满的缓存分区,则所述未写满缓存分区被置为写满状态以进行数据的读取;
优选的,所述步骤(A21)中,采取遍历的方式访问各缓存分区以判断是否存在空闲状态的缓存分区;
优选的,所述步骤(A22)中,当没有处于空闲状态的缓存分区后,还包括判断该缓存分区所在的指定数据缓存模块是否为本组数据缓存中的最后一组数据缓存模块,若不是,则转入步骤A(1),继续数据写入,若是,则结束数据写入。
所述步骤(A22-3)中,所述数据写入成功判断包括以下步骤:向所述写锁定状态的缓存分区写入数据组:当判断所述写锁定状态缓存分区未写满时,写入成功,继续该组缓存分区的数据写入;当判断所述写锁定状态缓存分区写满时,将该组缓存分区置为写满状态,并转入步骤(A3),继续下一组外部数据的写入;
优选的,所述步骤(B2)之前,还包括实时监测是否存在读锁定状态缓存分区的步骤,若有,直接转入步骤(B22)读取所述读锁定状态缓存分区内的缓存数据;若无,则转入步骤(B2);
优选的,所述步骤(B2)中,采取遍历、与数据写入访问相同的顺序、缓存分区写满主动上报中的任一方式判断是否存在写满状态下的未锁定的缓存分区。
进一步的,所述写锁定状态的缓存分区写满判断包括以下步骤:向所述写锁定状态的缓存分区写入数据时,比较该组数据与所述写锁定状态的缓存分区剩余空间大小,若该组数据大于所述写锁定状态的缓存分区剩余空间,判断所述写锁定状态的缓存分区写满;或,向所述写锁定状态的缓存分区写入该组数据时,系统报错,则判断所述写锁定状态的缓存分区写满。
所述缓存分区内部采用分级管理的方式进行数据写入操作,所述缓存分区中包括多个大小相同的缓存扇区,且所述缓存扇区一一编码,且包括多个大小相同的缓存页面,所述每组写入数据的大小与所述缓存页面大小相同设置,所述步骤(A22-3)中,判断所述数据是否写入成功包括以下步骤:每组数据写入缓存分区的每一缓存扇区后,缓存扇区内部计数,确定当前缓存扇区编码,比较所述缓存扇区编码与所述缓存扇区的最大编码数大小:若该缓存扇区编码小于所述缓存分区的最大编码数,判断下一组数据能够在本缓存分区中写入成功,若缓存扇区编码等于所述缓存分区的最大编码数,则判断所述缓存分区已写满,转入步骤(A3);
优选的,所述数据按照编码顺序写入至所述缓存扇区中,且所述缓存页面一一编码,所述数据写入至缓存扇区时,按照缓存页面的编码顺序依次写入。
所述多个数据写管道与多个数据读管道分别覆盖全部的数据缓存模块,且所述多个数据写管道所映射的数据缓存模块不相交设置,多个数据读管道所映射的数据缓存模块不相交设置;
优选的,所述数据缓存模块的数量为数据写入线程与数据读取线程数量的最小公倍数的整数倍;
优选的,所述数据读取速度大于数据写入速度;
优选的,所述数据缓存模块为生产者与消费者模型。
由于采用上述方案,本发明的有益效果是:本发明所示的并发数据的缓存结构及方法,将多个数据缓存组合起来,并针对数据写入线程和数据读取线程的数量分别配置不同规格的访问管道,数据写入线程通过与之绑定的写管道来访问数据缓存,数据读取线程通过与之绑定的读管道来访问数据缓存。不同的读管道所映射的数据缓存模块集合不存在相交,不同的写管道所映射的数据缓存模块集合也不存在相交,且读管道、写管道可以结合有关设定来定制遍历策略以调节内部缓存单元的数据饱和程度,可用于支持多个网络端口接收或多线程并行处理的业务需求,减少或避免生产者之间或消费者之间的锁冲突,以期实现更好的读写效率。
附图说明
图1为全数字PET的数据采集与处理流程示意图;
图2为本发明所示的并发数据的缓存结构一实施例的结构示意图;
图3为图2所示实施例中数据缓存模块的结构示意图;
图4为图3所示实施例中缓存分区的结构示意图;
图5为本发明所示的并发数据缓存方法中数据写入的流程示意图;
图6为并发数据缓存方法中数据读取的流程示意图;
其中,数据写入线程100、数据读取线程200、数据缓存300、数据缓存模块310、缓存分区311、控制单元311-1、缓存扇区311-2、控制组件a、缓存页面b、分区控制单元312、写锁定判断单元312-1、读锁定判断单元312-2写管道400、读管道500。
具体实施方式
以下结合附图所示实施例对本发明作进一步的说明。
如图2所示,本发明公开了一种并发数据的缓存结构,同时进行数据的写入与读取,包括多组数据写入线程100、多组数据读取线程200、多组数据缓存300、多个写管道400以及多个读管道500。其中如图3所示,每组数据缓存300包括多组数据缓存模块310,数据缓存模块310又分别包括若干组缓存分区311以及与一分区控制单元312,分区控制单元312与每一缓存分区311分别通信连接以控制多个缓存分区311的工作状态以及被访问顺序。每组数据写入线程100经由一组写管道400与数据缓存300通信连接,多组数据写入线程100覆盖全部数据缓存模块310设置,写管道400用于确定数据写入线程100在相应数据缓存300中访问数据缓存模块310的顺序,不同的写管道400所映射的数据缓存模块310不相交;数据写入线程100通过与之绑定的写管道400来访问数据缓存300。不同的写管道400所映射的数据缓存模块310不存在相交。写管道400可以定制遍历策略来调节数据在内部缓存单元的分布。例如,当针对单条数据记录采取顺序遍历写入策略时,可使得各数据缓存模块310的数据输入相对均衡。
每组数据读取线程200由一组读管道500与数据缓存300通信连接,多组数据读取线程200覆盖全部数据缓存模块310设置,读管道500用于确定数据读取线程200在相应数据缓存300中访问数据缓存模块310的顺序,不同读管道500所映射的数据缓存模块310不相交。数据读取线程200通过与之绑定的读管道500来访问数据缓存300。不同的读管道500所映射的数据缓存模块310不存在相交。读管道500可以结合写管道400有关设定来定制遍历策略以调节内部数据缓存模块310的数据饱和程度。
本发明所示的并发数据的缓存结构将多个数据缓存模块310组合起来,并针对数据写入与读取线程的数量分别配置不同规格的访问管道,即如图3所示,每组数据写入线程经由一写管道与一数据缓存通信连接,用于控制相应数据缓存中全部数据缓存模块的数据写入,每组数据读取线程经由一读管道与某一个或多个数据缓存通信连接,用于控制相应数据缓存中部分数据缓存模块的数据读取,这样设置保证所有的读管道500或写管道400所映射的数据缓存模块310相对均衡,可支持多个网络端口接收或多线程并行处理的业务需求,同时减少或避免数据写入线程100之间或数据读取线程200之间的锁冲突,实现更好的读写效率。
具体而言,每个数据缓存300内包括多个数据缓存模块310,为使得数据写入有序进行,写管道400用于确定相应数据写入线程100访问数据缓存300顺序,数据写入线程100按照对应写管道400确定的顺序访问其中一数据缓存模块310时,各数据缓存模块310的分区控制模块312对数据写入进行进一步的控制。分区控制模块312将每个缓存分区311的工作状态设置为空闲状态、写锁定状态、写满状态以及读锁定状态中的任意一种。仅当缓存分区311为空闲状态时支持写锁定,且当缓存分区311的工作状态为写锁定时支持数据的写入;仅当缓存分区311为写满状态时支持读锁定,且当缓存分区311的工作状态为读锁定状态时支持数据的读出,同时分区控制单元312还用于控制各个缓存分区311的被访问顺序,数据写入线程100与数据读取线程200分别经由写管道400以及分区控制单元312的配合与各缓存分区311通信连接,数据写入线程100与数据读取线程200按照分区控制单元312确定的访问顺序分别访问数据缓存模块310中的多组缓存分区311,然后根据其所访问缓存分区311的状态来进行数据的写入或者读取操作。
在其中一实施例中,为了便于数据的写入与读取,分区控制单元312将读写操作分开进行,其包括一写锁定判断单元312-1以及一读锁定判断单元312-2,且在所有的缓存分区311中,同时只设置一组写锁定状态缓存分区311与一组读锁定状态缓存分区311。
写锁定判断单元312-1与相应的写管道400以及数据缓存模块310分别通信连接,用于控制数据缓存模块310中缓存分区311的访问顺序、写锁定(将空闲状态的缓存分区311置为写锁定状态)与去写锁定(将写满的写锁定状态缓存分区311置为写满状态)。数据写入线程100经由写管道400与写锁定判断单元312-1通信连接,在将数据写入至指定的数据缓存模式时,其根据写锁定判断单元312-1确定的访问顺序来访问各缓存分区311,并根据当前所访问缓存分区311的工作状态进行数据的写入操作。
为了使得数据缓存模块310中各缓存分区311的数据输入相对均衡,写锁定判断单元312-1采用定制遍历策略来调节数据在缓存模块中的分布,即顺序遍历,可任意选取其中一组缓存分区311作为起始点并按照编码顺序对缓存分区311进行控制。缓存构建完成后,一般情况下,各缓存分区311均为空闲状态,写锁定判断单元312-1将处于起始点的空闲状态的缓存分区311置为写锁定状态,数据写入线程100按照写锁定判断单元312-1确定的访问顺序访问起始点的缓存分区311,由于其为写锁定状态,则可开始进行数据写入,待该缓存分区311写满以后,写锁定判断单元312-1将起始点的缓存分区311置为写满状态,并将起始点下一编码处的空闲状态缓存分区311置为写锁定状态,数据写入线程100按照写锁定判断单元312-1确定的继续访问下一编码缓存分区311,然后进行数据写入操作。
读锁定判断单元312-2与相应的读管道500以及数据缓存模块310也分别通信连接,用于控制数据缓存模块310中缓存分区311的访问顺序、读锁定(将写满状态的缓存分区311置为读锁定状态)与去读锁定(将读取完毕的缓存分区311置为空闲状态),数据读取线程200经由写管道400以及读锁定判断单元312-2与缓存分区311通信连接,以根据所访问的缓存分区311的当前状态判断是否读取缓存数据。
在数据写入的同时,数据读取线程200也在进行数据的读取操作,数据读取的访问顺序可采用与数据写入访问相同的顺序的进行数据的读出,即数据读取写入线程访问指定数据缓存模块310时,该数据缓存模块310的读锁定判断单元312-2控制数据读取线程200按照写锁定判断单元312-1所确定的访问顺序,来访问各缓存分区311,这样设置,当缓存分区311写满并置为写满状态后,数据读取线程200能在第一时间内访问该缓存分区311,进而该缓存分区311被置为读锁定状态并进行数据的读取,能够更进一步的提高数据的读出效率。此外,读锁定判断单元312-2也可采取遍历顺序,或者由各缓存分区311写满主动上报,读锁定判断单元312-2以及缓存分区311上报的顺序确定数据读取线程200的访问顺序。
由于数据写入的过程是人为无法控制的过程,可能出现在上述设置的基础上,为了有效的进行数据的写入管理,减少数据丢包事件的发生,同时提高缓存的利用率,如图3所示,每组缓存分区311内部分层级管理设置,其包括一控制单元311-1以及多组缓存扇区311-2,缓存扇区311-2一一编码设置,控制单元311-1与该组缓存分区311-2中的所有缓存扇区311-2通信连接,用于控制每组缓存分区311中,外部数据写入缓存扇区311-2的顺序。进一步的,如图4所示,每组缓存扇区311-2包括一控制组件a以及多个缓存页面bb,缓存页面b一一编码且每组写入数据的大小与缓存页面b相同设置,控制组件a与缓存页面b分别通向连接,以控制每组缓存扇区311-2中,数据写入缓存页码的顺序。
当该组缓存分区311设置为写锁定状态且与数据写入线程100通信成功进行数据写入操作时,缓存分区311内部对数据写入的过程二次导向。在其中一实施例中,控制单元311-1311控制缓存分区311内部也采用顺序写入的方式进行,一组数据写入时,将本组数据按照顺序写入各缓存扇区311-2的缓存页面b中,即首先将该组数据写入第一组缓存扇区311-2的第一个缓存页面b中,下一组数据写入第一组缓存扇区311-2的第二个缓存页面b中,依次进行,直至该组缓存扇区311-2写满,则缓存扇区311-2内部自己计数,确定当前缓存扇区311-2编码,并自动将未写完的数据或者下一组数据写入至第二组缓存扇区311-2(下一缓存扇区311-2)的第一个缓存页面b中,直至该缓存分区311中所有的缓存页面b均被写满。相应的数据写入时缓存分区311写满判断的步骤如下:每组缓存分区311中,控制单元311-1比较缓存扇区311-2编码与缓存扇区311-2的最大编码数大小:若该缓存扇区311-2编码小于缓存分区311的最大编码数,判断下一组数据能够在本缓存分区311中写入成功,若缓存扇区311-2编码等于缓存分区311的最大编码数,则判断缓存分区311已满,将下一组数据写入下一个缓存分区311中。
理论上各数据缓存300的容量越大越好,这样可以保证数据丢失少,但数据缓存300容量越大对物理内存的要求也就越高。为了尽量避免数据丢失的情形,本实施例中,读管道500数量不少于写管道400数量设置。
作为一个优选方案,数据缓存模块310可为生产者与消费者模型。此外,本发明所示的并发数据的缓存结构中,数据缓存模块310的数量可通过生产者和消费者数量的最小公倍数来确定,即保证每个读管道500和写管道400负责的缓存分区311数量相同,从而保证所有的读管道500或写管道400所映射的基本缓存数量相对均衡。
本发明还公开了一种并发数据的缓存方法,如图包括以下步骤:缓存分区311的工作状态被设置为空闲状态、写锁定状态、写满状态以及读锁定状态中的任意一种:
如图5所示,(A)多个数据缓存300同时进行数据写入,一组数据写入至相应数据缓存300时,(A1)确定数据缓存300中各数据缓存模块310的写入顺序,按照既定顺序将该组数据写入至指定数据缓存模块310中:(A21)实时监测指定数据缓存模块310是否存在写锁定状态缓存分区311:若有写锁定状态缓存分区311直接转入步骤(A22-2)进行该组数据写入;若没有写锁定状态缓存分区311,(A22)实时监测是否存在空闲状态的缓存分区311:若没有处于空闲状态的缓存分区311,则转入步骤(A1);若有处于空闲状态的缓存分区311,(A22-1)选定一组空闲状态的缓存分区311置为写锁定状态;(A22-2)向写锁定状态的缓存分区311写入该组数据;(A22-3)判断数据是否写入成功:若写入成功,则该组数据写入完成,结束该组数据写入,若写入失败,则将当前缓存分区311置为写满状态,并转入步骤(A3),判断指定数据缓存模块310是否写满,若指定数据缓存模块310写满,转入步骤(A1),将下一组数据按照既定顺序写入另一数据缓存模块310中;若指定数据缓存模块310未写满,则转入步骤(A21),将下一组数据继续写入至指定数据缓存模块310中;
其中,步骤(A22)中,当没有处于空闲状态的缓存分区后,还包括判断该缓存分区所在的指定数据缓存模块是否为本组数据缓存中的最后一组数据缓存模块,若不是,说明该组数据缓存中仍有空间进行数据存储,则则转入步骤A(1),继续数据写入,若该组数据缓存模块按照写入顺序已经是最后一组数据缓存模块,为防止出现无法有效处理后续数据写入,导致数据丢失的情况,则结束该组数据缓存的数据写入进程。
上述步骤(A22-3)中,可通过判断选定的写锁定状态缓存分区311是否写满的步骤来确定数据是否写入成功。在向写锁定状态的缓存分区311写入外部发送的数据组时,若判断写锁定状态缓存分区311还未写满时,则说明有足够的空间写入当前数据,则当该组数据写入时可判断其写入成功;当判断选定的写锁定状态缓存分区311已写满时,没有足够的空间继续写入新的数据,则说明无法将该组数据写入至上述写锁定状态缓存分区311,判断其写入失败,此时,需将该组缓存分区311置为写满状态,并转入步骤(A3),以将本组数据写入至其他合适的缓存分区311中。
进一步的,上述写锁定状态的缓存分区311写满判断具体又包括以下步骤:向写锁定状态的缓存分区311写入外部发送的数据时,首先比较该组数据与写锁定状态的缓存分区311剩余空间大小,若外部数据大于写锁定状态的缓存分区311剩余空间,则判断写锁定状态的缓存分区311写满;若外部数据不大于写锁定状态的缓存分区311剩余空间,则判断写锁定状态的缓存分区311未写满,本组数据可继续写入;也可采取主动上报的方式判断写锁定状态的缓存分区311是否写满,即当向写锁定状态的缓存分区311写入外部发送的数据时,若系统主动报错,则判断写锁定状态的缓存分区311写满。
此外,全部数据写入进程结束时,若存在一组未写满的缓存分区311,则未写满缓存分区311被置为写满状态以进行数据的读取;考虑到外部数据的大小无法确定,某一时间段内数据写入进程结束时,所接收的外部数据可能无法写满一组数据缓存300,或者最后一段数据无法写满一组数据缓存300,此时为了读取该部分数据,防止数据丢失,故将写入该部分数据的缓存分区311也置为写满状态。
如图6所示,步骤(B),多个数据缓存300同时进数据读取,每组数据缓存300的数据读取包括:(B1)确定各数据缓存300中数据缓存模块310数据读取的顺序,并依照确定的顺序选择指定数据缓存模块310进行数据读取,(B2)实时监测指定数据缓存模块310是否存在写满状态下的缓存分区311:若没有写满状态的缓存分区311,转入步骤(B1),继续下一数据缓存模块310的数据读取;若有处于写满状态下的缓存分区311,(B21)选定该组写满状态的缓存分区311置为读锁定状态;(B22)读取该读锁定状态缓存分区311内的缓存数据,当判断读锁定状态缓存分区311读取完毕时,将缓存设置为空闲状态,同时转入步骤(B3),判断指定数据缓据缓存模块内的数据是否读完,若该指定数据缓存模块310数据读取完毕,则转入步骤(B1),继续数据缓存300中下一数据缓存模块310的数据读取;若该指定数据缓存模块310未读完,转入步骤(B2),继续指定数据缓存模块310中下一组缓存分区311的数据读取。
所述步骤(B2)之前,还包括实时监测是否存在读锁定状态缓存分区311的步骤,若有,直接转入步骤(B22)读取选定读锁定状态缓存分区311内的缓存数据;若无,则转入步骤(B2),判断是否存在写满状态下的缓存分区311以继续数据的读取。
为了便于数据写入与读取的管理,每个数据缓存模块310的所有的缓存分区311中,同时只设置一组写锁定状态缓存分区311与一组读锁定状态缓存分区311,即缓存中同时只进行一组缓存分区311的数据写入和/或一组缓存分区311的数据读取,这样设置,一方面可使得数据的写入与读取更为有序,只有一组缓存分区311写完或读完之后,才能对下一分区进行读写操作,另一方面,也可充分利用缓存分区311的空间,保证每组缓存分区311都得到有效利用,而不会出现多组缓存分区311只有一部分空间被利用的情形。
在上述基础上,本发明所示的缓存方法,步骤(A21)中,每个数据缓存模块310内部采取遍历的方式访问各缓存分区311以判断是否存在空闲状态的缓存分区311;以更好的实现数据写入与读取的合理管理。
当一组数据按照写管道400确定的顺序写入至指定的数据缓存模块310中时,指定缓存模块内部,该组数据根据写锁定判断单元312-1的指令依次顺序访问各缓存分区311以监测是否存在写锁定或空闲状态的缓存分区311,即数据写入线程100在寻找写锁定或空闲状态的缓存分区311时,写锁定判断单元312-1任意设置一缓存分区311作为起点,然后控制相应的数据写入线程100按照顺序循环依次访问各缓存分区311,具体而言,各缓存分区311构建和初始化完成后一般即为空闲状态,由于同时只存在一组写锁定状态的缓存分区311,在进行数据写入时,数据写入线程100按照从起始点开始的顺序依次访问各缓存分区311,首先起始点的空闲状态缓存分别被置为写锁定状态以进行数据写入,当起始点的缓存分区311写满后,起始点的下一缓存分区311被置为写锁定状态,写入线程直接转入下一缓存分区311继续数据的写入,直至该缓存分区311写满,依次循环实现数据的写入。
由于数据写入的时间以及写入量是人为无法控制的,为了更好的应对各种突发的数据写入情况,更进一步的,缓存分区311中包括多个大小相同的缓存扇区311-2,缓存扇区311-2一一编码且包括多个大小相同的缓存页面b,将每组写入数据的大小与缓存页面b大小相同设置。当确定一组写锁定状态下的缓存分区311进行数据写入时,将本组数据按照顺序写入各缓存扇区311-2的缓存页面b中,即首先本组数据写入第一组缓存扇区311-2的第一个缓存页面b中,下一组数据写入第一组缓存扇区311-2的第二个缓存页面b中,依次进行,直至该组缓存扇区311-2写满,则缓存扇区311-2内部自己计数,确定当前缓存扇区311-2编码,并自动将未写完的数据或者下一组数据写入至第二组缓存分区311(下一缓存扇区311-2)的第一个缓存页面b中,直至该缓存分区311中所有的缓存页面b均被写满。步骤(A22-3)中,相应的数据写入时缓存分区311写满判断的步骤如下:比较缓存扇区311-2编码与缓存扇区311-2的最大编码数大小:若该缓存扇区311-2编码小于缓存分区311的最大编码数,判断下一组数据能够在本缓存分区311中写入成功,若缓存扇区311-2编码等于缓存分区311的最大编码数,则判断缓存分区311已满,转入步骤(A3),进行下一组数据的写入。
在进行数据读取时,若数据写入线程100已经访问过该数据缓存模块310,则读锁定判断单元312-2可控制数据写入线程100按照与数据写入访问相同的顺序的进行数据的读出,从而当缓存分区311写满并置为写满状态后,数据读出线程能在第一时间内访问该缓存分区311,进而该缓存分区311被置为读锁定状态并进行数据的读取,这样设置,可尽量节约时间,提高数据的读出效率。同时,也可采取遍历、缓存分区311写满主动上报等方式实时监测是否存在写满状态的缓存分区311,从进行数据的读出。
此外,考虑到若出现外部数据量较大,缓存空间存储能力有限的,可能导致数据丢失的情形,故本发明所示的缓存方法中,数据读取速度大于数据写入速度设置。
为实现支持多个网络端口接收或多线程并行处理的业务需求,同时减少或避免数据写入线程100之间或数据读取线程200之间的锁冲突,多个数据写管道400与多个数据读管道500分别覆盖全部的数据缓存模块310,且多个数据写管道400所映射的数据缓存模块310不相交设置,多个数据读管道500所映射的数据缓存模块310不相交设置;数据写入线程100通过与之绑定的写管道400来访问数据缓存300。不同的写管道400所映射的数据缓存模块310不存在相交。写管道400可以定制遍历策略来调节数据在内部缓存单元的分布。例如,当针对单条数据记录采取顺序遍历写入策略时,可使得各数据缓存模块310的数据输入相对均衡。数据读取线程200通过与之绑定的读管道500来访问数据缓存300。不同的读管道500所映射的数据缓存模块310不存在相交。读管道500可以结合写管道400有关设定来定制遍历策略以调节内部数据缓存模块310的数据饱和程度。在其中一实施例中,数据缓存模块310的数量为数据写入线程100与数据读取线程200数量的最小公倍数的整数倍;
优选的,数据缓存模块310为生产者与消费者模型。
上述的对实施例的描述是为便于该技术领域的普通技术人员能理解和使用本发明。熟悉本领域技术的人员显然可以容易地对这些实施例做出各种修改,并把在此说明的一般原理应用到其他实施例中而不必经过创造性的劳动。因此,本发明不限于上述实施例,本领域技术人员根据本发明的揭示,不脱离本发明范畴所做出的改进和修改都应该在本发明的保护范围之内。

Claims (11)

1.一种并发数据的缓存结构,其特征在于:其同时进行数据的写入与读取,包括多组数据写入线程、多组数据读取线程、多组数据缓存、多个写管道以及多个读管道;
所述每组数据缓存包括多组数据缓存模块,每组数据缓存模块分别包括若干组缓存分区以及与一分区控制单元,所述分区控制单元与所述每一缓存分区分别通信连接以控制所述多个缓存分区的工作状态以及被访问顺序,所述分区控制单元用于将所述相应缓存分区的工作状态设置为空闲状态、写锁定状态、写满状态以及读锁定状态中的任意一种,仅当所述缓存分区为空闲状态时支持写锁定,且所述缓存分区处于写锁定状态时支持数据写入,仅当所述缓存分区为写满状态时支持读锁定,且所述缓存分区处于读锁定状态时支持数据读出;
每组数据写入线程经由一组写管道与数据缓存通信连接,多组数据写入线程覆盖全部数据缓存模块设置,所述写管道用于确定数据写入线程在相应数据缓存中访问数据缓存模块的顺序,不同的写管道所映射的数据缓存模块不相交;
每组数据读取线程经由一组读管道与数据缓存通信连接,多组数据读取线程覆盖全部的数据缓存模块设置,所述读管道用于确定数据读取线程在相应数据缓存中访问数据缓存模块的顺序,不同读管道所映射的数据缓存模块不相交。
2.根据权利要求1所述的并发数据的缓存结构,其特征在于:所述读管道数量不少于所述写管道数量设置。
3.根据权利要求1所述的并发数据的缓存结构,其特征在于:所述数据缓存的数量为数据写入线程与数据读取线程数量的最小公倍数的整数倍。
4.根据权利要求1所述的并发数据的缓存结构,其特征在于:所述数据缓存模块为生产者与消费者模型。
5.根据权利要求1所述的并发数据的缓存结构,其特征在于:所述每组缓存分区包括一控制单元以及多组缓存扇区,所述缓存扇区一一编码设置,所述控制单元与所述每组缓存扇区通信连接,以控制每组缓存分区中,数据写入缓存扇区的顺序;
进一步优选的,所述每组缓存扇区包括一控制组件以及多个缓存页面,所述缓存页面一一编码且每组写入数据的大小与缓存页面相同设置,所述控制组件与所述缓存页面分别通向连接,以控制每组缓存扇区中,数据写入缓存页码的顺序。
6.根据权利要求1所述的缓存结构,其特征在于:所述分区控制单元包括一写锁定判断单元以及一读锁定判断单元;
所述写锁定判断单元与相应的写管道以及缓存分区通信连接,以控制数据缓存模块中缓存分区的访问顺序、写锁定与去写锁定,所述数据写入线程经由所述写管道以及写锁定判断单元与指定数据缓存模块中的缓存分区通信连续剧,以根据所述写锁定判断单元确定的访问顺序访问的缓存分区,并根据当前访问缓存分区的工作状态进行数据的写入操作;
所述读锁定判断单元与相应的读管道以及缓存分区通信连接,以控制数据缓存模块中缓存分区的访问顺序、读锁定与去读锁定,所述数据读取线程经由所述读管道以及读锁定判断单元与与指定数据缓存模块中的缓存分区通信连接,以根据所访问的缓存分区的当前状态判断是否读取缓存数据。
7.一种并发数据的缓存方法,其特征在于:包括以下步骤:缓存分区的工作状态设置为空闲状态、写锁定状态、写满状态以及读锁定状态中的任意一种,
(A)所述多个数据缓存同时进行数据写入,一组数据写入至相应数据缓存时,(A1)确定数据缓存中各数据缓存模块的写入顺序,按照既定顺序将该组数据写入至指定数据缓存模块中:(A21)实时监测指定数据缓存模块是否存在写锁定状态缓存分区:若有写锁定状态缓存分区直接转入步骤(A22-2)进行该组数据写入;若没有写锁定状态缓存分区,(A22)实时监测是否存在空闲状态的缓存分区:若没有处于空闲状态的缓存分区,则转入步骤(A1);若有处于空闲状态的缓存分区,(A22-1)选定一组空闲状态的缓存分区置为写锁定状态;(A22-2)向所述写锁定状态的缓存分区写入该组数据;(A22-3)判断所述数据是否写入成功:若写入成功,则该组数据写入完成,结束该组数据写入,若写入失败,则将当前缓存分区置为写满状态,并转入步骤(A3),判断指定数据缓存模块是否写满,若指定数据缓存模块写满,转入步骤(A1),将下一组数据按照既定顺序写入另一数据缓存模块中;若指定数据缓存模块未写满,则转入步骤(A21),将下一组数据继续写入至指定数据缓存模块中;
步骤(B),所述多个数据缓存同时进数据读取,每组数据缓存的数据读取包括:(B1)确定各数据缓存中数据缓存模块数据读取的顺序,并依照确定的顺序选择指定数据缓存模块进行数据读取,(B2)实时监测指定数据缓存模块是否存在写满状态下的缓存分区:若没有写满状态的缓存分区,转入步骤(B1),继续下一数据缓存模块的数据读取;若有处于写满状态下的缓存分区,(B21)选定该组写满状态的缓存分区置为读锁定状态;(B22)读取该读锁定状态缓存分区内的缓存数据,当判断所述读锁定状态缓存分区读取完毕时,将所述缓存设置为空闲状态,同时转入步骤(B3),判断指定数据缓据缓存模块内的数据是否读完,若该指定数据缓存模块数据读取完毕,则转入步骤(B1),继续所述数据缓存中下一数据缓存模块的数据读取;若该指定数据缓存模块未读完,转入步骤(B2),继续指定数据缓存模块中下一组缓存分区的数据读取。
8.根据权利要求7所述的并发数据的缓存方法,其特征在于:所述每组数据缓存模块中,同时只存在一组写锁定缓存分区和/或一组读锁定缓存分区,仅当所述缓存分区为空闲状态时支持写锁定,仅当所述缓存分区为写满状态时支持读锁定;
优选的,全部数据写入进程结束时,若存在一组未写满的缓存分区,则所述未写满缓存分区被置为写满状态以进行数据的读取;
优选的,所述步骤(A21)中,采取遍历的方式访问各缓存分区以判断是否存在空闲状态的缓存分区;
优选的,所述步骤(A22)中,当没有处于空闲状态的缓存分区后,还包括判断该缓存分区所在的指定数据缓存模块是否为本组数据缓存中的最后一组数据缓存模块,若不是,则转入步骤A(1),继续数据写入,若是,则结束数据写入;
优选的,所述步骤(B2)之前,还包括实时监测是否存在读锁定状态缓存分区的步骤,若有,直接转入步骤(B22)读取所述读锁定状态缓存分区内的缓存数据;若无,则转入步骤(B2);
优选的,所述步骤(B2)中,采取遍历、与数据写入访问相同的顺序、缓存分区写满主动上报中的任一方式判断是否存在写满状态下的未锁定的缓存分区。
9.根据权利要求7所述的并发数据的缓存方法,其特征在于:所述步骤(A22-3)中,所述数据写入成功判断包括以下步骤:向所述写锁定状态的缓存分区写入数据组:当判断所述写锁定状态缓存分区未写满时,写入成功,继续该组缓存分区的数据写入;当判断所述写锁定状态缓存分区写满时,将该组缓存分区置为写满状态,并转入步骤(A3),继续下一组外部数据的写入;
进一步的,所述写锁定状态的缓存分区写满判断包括以下步骤:向所述写锁定状态的缓存分区写入数据时,比较该组数据与所述写锁定状态的缓存分区剩余空间大小,若该组数据大于所述写锁定状态的缓存分区剩余空间,判断所述写锁定状态的缓存分区写满;或,向所述写锁定状态的缓存分区写入该组数据时,系统报错,则判断所述写锁定状态的缓存分区写满。
10.根据权利要求7至9任一项所述的并发数据的缓存方法,其特征在于:所述缓存分区内部采用分级管理的方式进行数据写入操作,所述缓存分区中包括多个大小相同的缓存扇区,且所述缓存扇区一一编码,且包括多个大小相同的缓存页面,所述每组写入数据的大小与所述缓存页面大小相同设置,所述步骤(A22-3)中,判断所述数据是否写入成功包括以下步骤:每组数据写入缓存分区的每一缓存扇区后,缓存扇区内部计数,确定当前缓存扇区编码,比较所述缓存扇区编码与所述缓存扇区的最大编码数大小:若该缓存扇区编码小于所述缓存分区的最大编码数,判断下一组数据能够在本缓存分区中写入成功,若缓存扇区编码等于所述缓存分区的最大编码数,则判断所述缓存分区已写满,转入步骤(A3);
优选的,所述数据按照编码顺序写入至所述缓存扇区中,且所述缓存页面一一编码,所述数据写入至缓存扇区时,按照缓存页面的编码顺序依次写入。
11.根据权利要求7所述的并发数据的缓存方法,其特征在于:所述多个数据写管道与多个数据读管道分别覆盖全部的数据缓存模块,且所述多个数据写管道所映射的数据缓存模块不相交设置,多个数据读管道所映射的数据缓存模块不相交设置;
优选的,所述数据缓存模块的数量为数据写入线程与数据读取线程数量的最小公倍数的整数倍;
优选的,所述数据读取速度大于数据写入速度;
优选的,所述数据缓存模块为生产者与消费者模型。
CN201610210213.6A 2016-04-07 2016-04-07 一种并发数据的缓存装置及方法 Active CN105868123B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610210213.6A CN105868123B (zh) 2016-04-07 2016-04-07 一种并发数据的缓存装置及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610210213.6A CN105868123B (zh) 2016-04-07 2016-04-07 一种并发数据的缓存装置及方法

Publications (2)

Publication Number Publication Date
CN105868123A true CN105868123A (zh) 2016-08-17
CN105868123B CN105868123B (zh) 2018-10-09

Family

ID=56627849

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610210213.6A Active CN105868123B (zh) 2016-04-07 2016-04-07 一种并发数据的缓存装置及方法

Country Status (1)

Country Link
CN (1) CN105868123B (zh)

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106557437A (zh) * 2016-11-22 2017-04-05 上海联影医疗科技有限公司 一种生数据的高速存储方法和系统
CN106648476A (zh) * 2017-01-20 2017-05-10 郑州云海信息技术有限公司 一种生产者消费者模式优化方法及系统
CN107065610A (zh) * 2017-04-17 2017-08-18 浙江德塔森特数据技术有限公司 一种机房控制中数据的快速处理方法及装置
CN107222669A (zh) * 2017-06-30 2017-09-29 维沃移动通信有限公司 一种拍摄的方法和移动终端
WO2017173919A1 (zh) * 2016-04-07 2017-10-12 武汉数字派特科技有限公司 一种并发数据的缓存方法及结构
CN107908361A (zh) * 2017-11-10 2018-04-13 湖北锐世数字医学影像科技有限公司 针对全数字pet的符合事件筛选的方法及装置
CN107908362A (zh) * 2017-11-10 2018-04-13 湖北锐世数字医学影像科技有限公司 针对全数字pet的符合事件筛选的方法及装置
CN107908363A (zh) * 2017-11-10 2018-04-13 湖北锐世数字医学影像科技有限公司 基于cuda的pet符合事件筛选的方法、系统及装置
CN107928692A (zh) * 2017-11-10 2018-04-20 湖北锐世数字医学影像科技有限公司 针对全数字pet的符合事件筛选的方法及装置
CN108255420A (zh) * 2017-12-22 2018-07-06 深圳忆联信息系统有限公司 一种固态硬盘缓存管理方法及固态硬盘
CN108494704A (zh) * 2018-03-05 2018-09-04 电子科技大学 一种基于通道的双缓冲技术的实时数据流处理方法
CN108509144A (zh) * 2017-02-27 2018-09-07 中兴通讯股份有限公司 数据保存方法和装置
CN108846288A (zh) * 2018-06-06 2018-11-20 浙江华途信息安全技术股份有限公司 一种驱动层进程读取缓存的管理方法
CN108958655A (zh) * 2018-06-26 2018-12-07 郑州云海信息技术有限公司 一种固态硬盘的数据擦写方法、装置、设备及存储介质
CN111259994A (zh) * 2020-05-07 2020-06-09 上海飞旗网络技术股份有限公司 一种基于时序特征学习的数据流分类方法及装置
CN112818703A (zh) * 2021-01-19 2021-05-18 传神语联网网络科技股份有限公司 基于多线程通信的多语种共识翻译系统与方法
CN113220335A (zh) * 2021-05-26 2021-08-06 西安热工研究院有限公司 一种避免多线程并发写快照数据乱序的方法
CN113311994A (zh) * 2021-04-09 2021-08-27 中企云链(北京)金融信息服务有限公司 一种基于高并发的数据缓存方法
CN114253477A (zh) * 2021-12-15 2022-03-29 威创集团股份有限公司 一种超高并发影像数据写入方法、装置及可读存储介质
CN115529453A (zh) * 2022-08-10 2022-12-27 北京罗克维尔斯科技有限公司 车载摄像头的测试方法和装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6122712A (en) * 1996-10-11 2000-09-19 Nec Corporation Cache coherency controller of cache memory for maintaining data anti-dependence when threads are executed in parallel
CN1703041A (zh) * 2005-06-08 2005-11-30 武汉虹信通信技术有限责任公司 通信服务器并发处理大数据量的方法
CN1731530A (zh) * 2004-08-06 2006-02-08 华为技术有限公司 读改写并发处理系统及读改写并发处理方法
CN102298561A (zh) * 2011-08-10 2011-12-28 北京百度网讯科技有限公司 一种对存储设备进行多通道数据处理的方法、系统和装置
CN103412786A (zh) * 2013-08-29 2013-11-27 苏州科达科技股份有限公司 一种高性能服务器架构系统及数据处理方法
CN104881258A (zh) * 2015-06-10 2015-09-02 北京金山安全软件有限公司 缓冲区并发访问方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6122712A (en) * 1996-10-11 2000-09-19 Nec Corporation Cache coherency controller of cache memory for maintaining data anti-dependence when threads are executed in parallel
CN1731530A (zh) * 2004-08-06 2006-02-08 华为技术有限公司 读改写并发处理系统及读改写并发处理方法
CN1703041A (zh) * 2005-06-08 2005-11-30 武汉虹信通信技术有限责任公司 通信服务器并发处理大数据量的方法
CN102298561A (zh) * 2011-08-10 2011-12-28 北京百度网讯科技有限公司 一种对存储设备进行多通道数据处理的方法、系统和装置
CN103412786A (zh) * 2013-08-29 2013-11-27 苏州科达科技股份有限公司 一种高性能服务器架构系统及数据处理方法
CN104881258A (zh) * 2015-06-10 2015-09-02 北京金山安全软件有限公司 缓冲区并发访问方法及装置

Cited By (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017173919A1 (zh) * 2016-04-07 2017-10-12 武汉数字派特科技有限公司 一种并发数据的缓存方法及结构
CN106557437A (zh) * 2016-11-22 2017-04-05 上海联影医疗科技有限公司 一种生数据的高速存储方法和系统
CN106648476A (zh) * 2017-01-20 2017-05-10 郑州云海信息技术有限公司 一种生产者消费者模式优化方法及系统
CN108509144A (zh) * 2017-02-27 2018-09-07 中兴通讯股份有限公司 数据保存方法和装置
CN108509144B (zh) * 2017-02-27 2020-12-15 中兴通讯股份有限公司 数据保存方法和装置
CN107065610A (zh) * 2017-04-17 2017-08-18 浙江德塔森特数据技术有限公司 一种机房控制中数据的快速处理方法及装置
CN107065610B (zh) * 2017-04-17 2019-07-30 浙江德塔森特数据技术有限公司 一种机房控制中数据的快速处理方法及装置
CN107222669A (zh) * 2017-06-30 2017-09-29 维沃移动通信有限公司 一种拍摄的方法和移动终端
CN107908363A (zh) * 2017-11-10 2018-04-13 湖北锐世数字医学影像科技有限公司 基于cuda的pet符合事件筛选的方法、系统及装置
CN107908363B (zh) * 2017-11-10 2021-12-07 湖北锐世数字医学影像科技有限公司 基于cuda的pet符合事件筛选的方法、系统及装置
CN107908361B (zh) * 2017-11-10 2021-11-09 湖北锐世数字医学影像科技有限公司 针对全数字pet的符合事件筛选的方法及装置
CN107928692A (zh) * 2017-11-10 2018-04-20 湖北锐世数字医学影像科技有限公司 针对全数字pet的符合事件筛选的方法及装置
CN107908361A (zh) * 2017-11-10 2018-04-13 湖北锐世数字医学影像科技有限公司 针对全数字pet的符合事件筛选的方法及装置
CN107908362A (zh) * 2017-11-10 2018-04-13 湖北锐世数字医学影像科技有限公司 针对全数字pet的符合事件筛选的方法及装置
CN108255420A (zh) * 2017-12-22 2018-07-06 深圳忆联信息系统有限公司 一种固态硬盘缓存管理方法及固态硬盘
CN108494704A (zh) * 2018-03-05 2018-09-04 电子科技大学 一种基于通道的双缓冲技术的实时数据流处理方法
CN108846288B (zh) * 2018-06-06 2020-08-18 浙江华途信息安全技术股份有限公司 一种驱动层进程读取缓存的管理方法
CN108846288A (zh) * 2018-06-06 2018-11-20 浙江华途信息安全技术股份有限公司 一种驱动层进程读取缓存的管理方法
CN108958655A (zh) * 2018-06-26 2018-12-07 郑州云海信息技术有限公司 一种固态硬盘的数据擦写方法、装置、设备及存储介质
CN108958655B (zh) * 2018-06-26 2021-08-10 郑州云海信息技术有限公司 一种固态硬盘的数据擦写方法、装置、设备及存储介质
CN111259994B (zh) * 2020-05-07 2020-07-17 上海飞旗网络技术股份有限公司 一种基于时序特征学习的数据流分类方法及装置
CN111259994A (zh) * 2020-05-07 2020-06-09 上海飞旗网络技术股份有限公司 一种基于时序特征学习的数据流分类方法及装置
CN112818703A (zh) * 2021-01-19 2021-05-18 传神语联网网络科技股份有限公司 基于多线程通信的多语种共识翻译系统与方法
CN112818703B (zh) * 2021-01-19 2024-02-27 传神语联网网络科技股份有限公司 基于多线程通信的多语种共识翻译系统与方法
CN113311994A (zh) * 2021-04-09 2021-08-27 中企云链(北京)金融信息服务有限公司 一种基于高并发的数据缓存方法
CN113220335A (zh) * 2021-05-26 2021-08-06 西安热工研究院有限公司 一种避免多线程并发写快照数据乱序的方法
CN113220335B (zh) * 2021-05-26 2023-03-14 西安热工研究院有限公司 一种避免多线程并发写快照数据乱序的方法
CN114253477A (zh) * 2021-12-15 2022-03-29 威创集团股份有限公司 一种超高并发影像数据写入方法、装置及可读存储介质
CN115529453A (zh) * 2022-08-10 2022-12-27 北京罗克维尔斯科技有限公司 车载摄像头的测试方法和装置

Also Published As

Publication number Publication date
CN105868123B (zh) 2018-10-09

Similar Documents

Publication Publication Date Title
CN105868123A (zh) 一种并发数据的缓存结构及方法
CN105912479A (zh) 一种并发数据的缓存方法及结构
CN105183662B (zh) 一种无cache一致性协议的分布式共享片上存储架构
CN103902467B (zh) 压缩内存访问控制方法、装置及系统
CN105094751B (zh) 一种用于流式数据并行处理的内存管理方法
CN108829611A (zh) 查表装置以及查表方法
CN104394096B (zh) 一种基于多核处理器的报文处理方法及多核处理器
CN103345451B (zh) 一种在多核处理器中缓冲数据的方法
CN110209490A (zh) 一种内存管理方法及相关设备
CN103425538A (zh) 进程通讯方法及系统
CN101673244B (zh) 多核或集群系统的存储器控制方法
CN109145255A (zh) 一种稀疏矩阵lu分解行更新的异构并行计算方法
CN115168247B (zh) 用于并行处理器中动态共享存储空间的方法及相应处理器
CN102866923B (zh) 对称多核的高效一致性侦听过滤装置
CN105335323B (zh) 一种数据突发的缓存装置和方法
CN103778086B (zh) 一种基于粗粒度动态可重构系统的多模式数据访问装置及办法
CN110442533A (zh) 一种提高访问性能的方法、设备及存储介质
CN108804347A (zh) 一种用于工业大数据汇聚的缓存层、汇聚系统及方法
CN206946471U (zh) 一种多通道共享读写sdram的电路装置
CN103164440B (zh) 面向虚拟现实的空间数据引擎方法
CN101753580B (zh) 包处理芯片及其数据存储、转发方法
CN103778069B (zh) 高速缓冲存储器的高速缓存块长度调整方法及装置
CN110347615B (zh) 动态资源配置方法及缓存单元
CN103268293B (zh) 多通道多速率数据采集系统存储器管理方法
CN110191010A (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
GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: 230000 China (Anhui) pilot Free Trade Zone, Hefei, Anhui Province, the first floor of building C2, national health big data Industrial Park, the intersection of Xiyou road and kongtai Road, Hefei high tech Zone

Patentee after: Hefei Ruishi Digital Technology Co.,Ltd.

Address before: 430074 building B1, R & D building, zones B, C and D, Wuhan National biological industry base project, No. 666, Gaoxin Avenue, East Lake Development Zone, Ezhou City, Hubei Province

Patentee before: THE WUHAN DIGITAL PET Co.,Ltd.