CN102122256A - 一种用于进程间通信的管道式通信方法及系统 - Google Patents
一种用于进程间通信的管道式通信方法及系统 Download PDFInfo
- Publication number
- CN102122256A CN102122256A CN 201110075377 CN201110075377A CN102122256A CN 102122256 A CN102122256 A CN 102122256A CN 201110075377 CN201110075377 CN 201110075377 CN 201110075377 A CN201110075377 A CN 201110075377A CN 102122256 A CN102122256 A CN 102122256A
- Authority
- CN
- China
- Prior art keywords
- data
- cache pool
- buffer
- cache
- pond
- 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
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种用于进程间通信的管道式通信方法,包括:接收上一级服务器的进程处理后的数据;缓存所述数据至第一缓存池;读取第一缓存池中的所述数据并缓存至第一内存缓冲区,以便本服务器的进程进行处理;将本服务器的进程处理后的数据写入第二内存缓冲区;缓存第二内存缓冲区的数据至第二缓存池;将第二缓存池中的数据发送至下一级服务器的进程进行处理;其中,所述第一缓存池、第二缓存池为设置在外存上的存储空间。本发明还公开了一种用于进程间通信的管道式通信系统。采用本发明所述方法及系统,能够利用外存设备的大容量存储空间对流水并行处理过程中的管道式通信方式中的数据进行缓存,从而提高管道式通信时的数据传输可靠性和效率。
Description
技术领域
本发明涉及数据处理技术领域,特别是涉及一种用于进程间通信的管道式通信方法及系统。
背景技术
在采用多个服务器对数据进行协同处理时,通常会采用如下方式:假设需要处理的数据分别为:D1,D2,D3,D4,D5......对每个数据都需要进行四个步骤的处理。服务器1对数据D1进行步骤一的处理,处理后的结果传输给服务器2进行步骤二的处理。这样,当服务器4对数据D1进行步骤四的处理时,服务器3对数据D2进行步骤三的处理,服务器2对数据D3进行步骤二的处理,服务器1对数据D4进行步骤一的处理。这种数据处理方式称为流水并行。
现有技术下,在流水并行式的数据处理过程中,不同服务器之间通常采用管道式的通信方式进行数据的传输。如果将产生数据的进程叫做第一进程,将使用数据的进程叫做第二进程,那么在管道式通信中,数据就是从第一进程的内存缓冲区传输至第二进程的内存缓冲区。
但是现有技术中的管道是通信方式存在如下问题。
以前述应用场景为例:当服务器1与服务器2之间的数据处理速度不匹配时,例如服务器1的处理速度较快,生成了大量的需要服务器2处理的数据。服务器2来不及对服务器1发送的数据进行处理。这些数据都缓存在服务器2的第二进程的内存缓冲区中。当数据量较大时,服务器2的第二进程的内存缓冲区的空间被全部占用后,第二进程就无法再接收服务器1发送的数据。这会造成第一进程发送的数据丢失,或者,第一进程需要等待第二进程处理完当前正在处理的数据,第一进程才能向第二进程发送数据。前者会降低管道式通信的可靠性,后者会降低管道式通信的效率。当服务器1接收到的数据量很大时,服务器1的第一进程的内存缓冲区也可能会被全部占用,导致上述问题的发生。
可见,由于现有技术中的管道通信方式主要采用内存空间缓冲数据,而内存的存储空间有限,当内存缓冲区的空间全部被占用后,会降低管道式通信的可靠性和效率。
发明内容
本发明的目的是提供一种用于进程间通信的管道式通信方法及系统,能够利用外存上的大量空间,对进程之间传输的数据进行缓存,提高管道式通信时的数据传输可靠性和效率。
为实现上述目的,本发明提供了如下方案:
一种用于进程间通信的管道式通信方法,包括:
接收上一级服务器的进程处理后的数据;
缓存所述数据至第一缓存池;
读取第一缓存池中的所述数据并缓存至第一内存缓冲区,以便本服务器的进程进行处理;
将本服务器的进程处理后的数据写入第二内存缓冲区;
缓存第二内存缓冲区的数据至第二缓存池;
将第二缓存池中的数据发送至下一级服务器的进程进行处理;
其中,所述第一缓存池、第二缓存池为设置在外存上的存储空间。
优选的,所述第一缓存池包括,用于缓存需要接收的上一级服务器的进程处理后的数据的第一从缓存池,和,用于缓存第一内存缓冲区需要读取的数据的第一主缓存池;
所述缓存所述数据至第一缓存池;读取第一缓存池中的所述数据并缓存至第一内存缓冲区,包括:
缓存所述数据至第一从缓存池;
设置所述第一从缓存池为第一主缓存池;
读取第一主缓存池中的数据并缓存至第一内存缓冲区。
优选的,所述第二缓存池包括,用于缓存需要读取的第二内存缓冲区的数据的第二主缓存池,和,用于缓存需要发送至下一级服务器的进程进行处理的数据的第二从缓存池;
所述缓存第二内存缓冲区的数据至第二缓存池;将第二缓存池中的数据发送至下一级服务器的进程进行处理,包括:
缓存第二内存缓冲区的数据至第二主缓存池;
设置所述第二主缓存池为第二从缓存池;
将第二从缓存池中的数据发送至下一级服务器的进程进行处理。
优选的,所述第一缓存池包括,用于缓存需要接收的上一级服务器的进程处理后的数据的第一从缓存池,和,用于缓存第一内存缓冲区需要读取的数据的第一主缓存池;所述第二缓存池包括,用于缓存需要读取的第二内存缓冲区的数据的第二主缓存池,和,用于缓存需要发送至下一级服务器的进程进行处理的数据的第二从缓存池;
所述缓存所述数据至第一缓存池;读取第一缓存池中的所述数据并缓存至第一内存缓冲区,包括:
缓存所述数据至第一从缓存池;
设置所述第一从缓存池为第一主缓存池;
读取第一主缓存池中的数据并缓存至第一内存缓冲区;
所述缓存第二内存缓冲区的数据至第二缓存池;将第二缓存池中的数据发送至下一级服务器的进程进行处理,包括:
缓存第二内存缓冲区的数据至第二主缓存池;
设置所述第二主缓存池为第二从缓存池;
将第二从缓存池中的数据发送至下一级服务器的进程进行处理。
优选的,所述缓存所述数据至第一从缓存池之前,还包括:
判断第一从缓存池是否存在;
如果第一从缓存池不存在,则创建第一从缓存池。
优选的,所述设置所述第一从缓存池为第一主缓存池,包括:
判断第一主缓存池是否存在;
如果存在,则休眠一个时间周期;
否则,设置所述第一从缓存池为第一主缓存池。
优选的,所述读取第一主缓存池中的数据并缓存至第一内存缓冲区,包括:
获取本服务器的进程需要读入的待读入数据长度和第一内存缓冲区的剩余数据长度;
判断所述待读入数据长度,是否小于或等于所述剩余数据长度;
如果是,则将待读入数据长度的剩余数据读入所述进程,并结束;
否则,判断所述第一主缓存池中是否存在剩余数据;
如果存在,则将所述第一内存缓冲区中的剩余数据读入所述进程,并修改所述待读入数据长度;
从所述第一主缓存池向所述第一内存缓冲区读入新的数据;
如果第一主缓存池中不存在剩余数据,则将所述第一内存缓冲区中的剩余数据读入所述进程,并删除所述第一主缓存池。
优选的,所述缓存第二内存缓冲区的数据至第二主缓存池,包括:
获取本服务器的进程处理后的需要写入第二内存缓冲区的待写入数据长度和第二内存缓冲区的剩余空间大小;
判断所述第二内存缓冲区的剩余空间大小,是否大于或等于所述待写入数据长度;
如果是,则将所述待写入数据写入所述第二内存缓冲区,并结束;
否则,将所述待写入数据中与所述第二内存缓冲区的剩余空间大小相等的数据写入所述第二内存缓冲区;
从所述待写入数据中删除已写入第二内存缓冲区的那部分数据;
将第二内存缓冲区中的数据写入第二主缓存池。
优选的,所述设置所述第二主缓存池为第二从缓存池,包括:
判断第二从缓存池是否存在;
如果存在,则休眠一个时间周期;
否则,设置所述第二主缓存池为第二从缓存池;
创建新的第二主缓存池。
优选的,所述第一内存缓冲区包括用于读取并缓存第一缓存池中的数据的第一从缓冲区,和,用于缓存本服务器的进程需要读取并处理的数据的第一主缓冲区;
所述读取第一缓存池中的所述数据并缓存至第一内存缓冲区,以便本服务器的进程进行处理,包括:
读取第一缓存池中的数据并缓存至第一从缓冲区;
设置所述第一从缓冲区为第一主缓冲区;
以便本服务器的进程读取所述第一主缓冲区中的数据并进行处理。
优选的,所述第二内存缓冲区包括用于缓存需要写入第二缓存池中的数据的第二从缓冲区,和,用于缓存本服务器的进程处理后的数据的第二主缓冲区;
所述将本服务器的进程处理后的数据写入第二内存缓冲区;
缓存第二内存缓冲区的数据至第二缓存池,包括:
将本服务器的进程处理后的数据写入第二主缓冲区;
设置所述第二主缓冲区为第二从缓冲区;
将第二从缓冲区的数据写入第二缓存池并缓存。
一种用于进程间通信的管道式通信系统,包括:
数据接收单元,用于接收上一级服务器的进程处理后的数据;
第一缓存池,用于缓存所述数据接收单元接收到的数据;
第一内存缓冲区,用于读取第一缓存池中的所述数据并缓存,以便本服务器的进程进行处理;
第二内存缓冲区,用于缓存本服务器的进程处理后的数据;
第二缓存池,用于缓存第二内存缓冲区写入的数据;
数据发送单元,用于将第二缓存池中的数据发送至下一级服务器的进程进行处理;
其中,所述第一缓存池、第二缓存池为设置在外存上的存储空间。
优选的,所述第一缓存池包括:
第一从缓存池,用于缓存需要接收的上一级服务器的进程处理后的数据;
第一主从缓存池设置单元,用于设置所述第一从缓存池为第一主缓存池;
第一主缓存池,用于缓存第一内存缓冲区需要读取的数据。
优选的,所述第二缓存池包括:
第二主缓存池,用于缓存需要读取的第二内存缓冲区的数据;
第二主从缓存池设置单元,用于设置所述第二主缓存池为第二从缓存池;
第二从缓存池,用于缓存需要发送至下一级服务器的进程进行处理的数据。
优选的,所述第一缓存池包括:
第一从缓存池,用于缓存需要接收的上一级服务器的进程处理后的数据;
第一主从缓存池设置单元,用于设置所述第一从缓存池为第一主缓存池;
第一主缓存池,用于缓存第一内存缓冲区需要读取的数据;
所述第二缓存池包括:
第二主缓存池,用于缓存需要读取的第二内存缓冲区的数据;
第二主从缓存池设置单元,用于设置所述第二主缓存池为第二从缓存池;
第二从缓存池,用于缓存需要发送至下一级服务器的进程进行处理的数据。
优选的,还包括:
第一从缓存池创建单元,用于判断第一从缓存池是否存在;如果第一从缓存池不存在,则创建第一从缓存池。
优选的,所述第一主从缓存池设置单元,包括:
第一主缓存池判断子单元,用于判断第一主缓存池是否存在;
第一休眠子单元,用于当第一主缓存池判断子单元的判断结果为是时,令第一主从缓存池设置子单元休眠一个时间周期;
第一主从缓存池设置子单元,用于当第一主缓存池判断子单元的判断结果为否时,设置所述第一从缓存池为第一主缓存池。
优选的,所述第一内存缓冲区包括:
第一数据长度获取子单元,用于获取本服务器的进程需要读入的待读入数据长度和第一内存缓冲区的剩余数据长度;
第一数据长度判断子单元,用于判断所述待读入数据长度,是否小于或等于所述剩余数据长度;
第一数据读入子单元,用于当第一数据长度判断子单元的判断结果为是时,将第一内存缓冲区中待读入数据长度的剩余数据读入所述进程;
第一剩余数据判断子单元,用于当第一数据长度判断子单元的判断结果为否时,判断所述第一主缓存池中是否存在剩余数据;
待读入数据长度修改子单元,用于当第一剩余数据判断子单元的判断结果为是时,将所述第一内存缓冲区中的剩余数据读入所述进程,并修改所述待读入数据长度;
第一主缓存池数据读入子单元,用于从所述第一主缓存池向所述第一内存缓冲区读入新的数据;
第一主缓存池删除子单元,用于当第一剩余数据判断子单元的判断结果为否时,将所述第一内存缓冲区中的剩余数据读入所述进程,并删除所述第一主缓存池。
优选的,所述第二内存缓冲区包括:
第二数据长度获取子单元,用于获取本服务器的进程处理后的需要写入第二内存缓冲区的待写入数据长度和第二内存缓冲区的剩余空间大小;
第二数据长度判断子单元,用于判断所述第二内存缓冲区的剩余空间大小,是否大于或等于所述待写入数据长度;
第二数据写入子单元,用于当第二数据长度判断子单元的判断结果为是时,将所述待写入数据写入所述第二内存缓冲区;
待写入数据删除子单元,用于当第二数据长度判断子单元的判断结果为否时,将所述待写入数据中与所述第二内存缓冲区的剩余空间大小相等的数据写入所述第二内存缓冲区;从所述待写入数据中删除已写入第二内存缓冲区的那部分数据;
第二内存缓冲区数据写入子单元,用于将第二内存缓冲区中的数据写入第二主缓存池。
优选的,所述第二主从缓存池设置单元,包括:
第二从缓存池判断单元,用于判断第二从缓存池是否存在;
第二休眠子单元,用于当第二从缓存池判断单元的判断结果为是时,令第二主从缓存池设置子单元休眠一个时间周期;
第二主从缓存池设置子单元,用于当第二从缓存池判断子单元的判断结果为否时,设置所述第二主缓存池为第二从缓存池;
第二主缓存池创建子单元,用于创建新的第二主缓存池。
优选的,所述第一内存缓冲区,还包括:
第一从缓冲区,用于读取并缓存第一缓存池中的数据;
第一主缓冲区,用于缓存本服务器的进程需要读取并处理的数据;
第一主从缓冲区设置单元,用于设置所述第一从缓冲区为第一主缓冲区。
优选的,所述第二内存缓冲区,还包括:
第二主缓冲区,用于缓存本服务器的进程处理后的数据;
第二从缓冲区,用于缓存需要写入第二缓存池中的数据;
第二主从缓冲区设置单元,用于设置所述第二主缓冲区为第二从缓冲区。
本发明公开的用于进程间通信的管道式通信方法及系统,通过在外存设备上设置缓存池,能够利用外存设备的大容量存储空间对流水并行处理过程中的管道式通信方式中的数据进行缓存,从而提高了管道式通信时的数据传输可靠性和效率。
此外,本发明中,第一从缓存池用于接收上一级服务器处理后的数据(即数据写入第一从缓存池)操作,第一缓冲区可以同时对第一主缓存池的数据进行读取操作,数据的写和读两种操作可以异步并行,提高了数据流水并行过程中数据接收部分的效率。
在本服务器的进程处理后的数据写入第二主缓存池的同时,第二从缓存池中的数据可以被读取,并发送至下一级服务器,能够实现数据写和读两种操作的异步并行,提高了数据流水并行过程中数据发送部分的效率。
本发明中,缓存池缓存的数据量是可以动态变化的。当本服务器的进程处于繁忙状态时,第一从缓存池可以一直缓存上一级服务器处理后的数据,使本发明所述管道式通信的管道的数据接收部分具有伸缩性。
本发明中,还对内存缓冲区做了进一步的优化。通过将内存缓冲区划分为两个区域,一个区域用于写入数据,另一个区域用于读取数据,进而能够在同一时刻进行数据的写入与读取,提高数据流水并行处理的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一所述管道式通信方法流程图;
图2为本发明实施例二所述管道式通信方法流程图;
图3为本发明实施例三所述管道式通信方法流程图;
图4为本发明实施例四所述管道式通信方法流程图;
图5为本发明所述设置所述第一从缓存池为第一主缓存池的方法流程图;
图6为本发明所述读取第一主缓存池中的数据并缓存至第一内存缓冲区的方法流程图;
图7为本发明所述缓存第二内存缓冲区的数据至第二主缓存池的方法流程图;
图8为本发明所述设置所述第二主缓存池为第二从缓存池的方法流程图;
图9为本发明所述用于进程间通信的管道式通信系统结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
本方法的执行主体为多个进行数据流水并行处理的服务器中的任意一个。参见图1,为本发明实施例一所述管道式通信方法流程图。如图1所示,该方法包括步骤:
S101:接收上一级服务器的进程处理后的数据;
所述上一级服务器,是指对数据进行流水并行处理的多台服务器中,对数据进行上一个步骤的处理的服务器。例如,本服务器负责对数据进行步骤三的处理,那么,所述上一级服务器就是指对数据进行步骤二的处理的服务器。
S102:缓存所述数据至第一缓存池;
所述缓存池为设置在外存上的存储空间。外存,即外储存器,是指除计算机内存及CPU缓存以外的储存器。通常,外存上的存储空间很大,可以缓存海量(TB级别以上)的数据。
S103:读取第一缓存池中的所述数据并缓存至第一内存缓冲区,以便本服务器的进程进行处理;
第一内存缓冲区是内存上的存储区域,也是服务器上的进程读取数据的直接来源。由于第一内存缓冲区读取的是第一缓存池中的数据,所以当第一内存缓冲区满(即存储空间全部被占用)的时候,上一级服务器发送来的数据都可以缓存在第一缓存池中,而不会造成由于内存缓冲区满导致的数据丢失等现象。
S104:将本服务器的进程处理后的数据写入第二内存缓冲区;
第二内存缓冲区也会内存上的存储区域。本服务器的进程处理后的数据会直接写入第二内存缓冲区。
S105:缓存第二内存缓冲区的数据至第二缓存池;
第二缓存池也是设置在外存上的存储空间。
S106:将第二缓存池中的数据发送至下一级服务器的进程进行处理;
假设下一级服务器与本服务器的管道结构相同,那么第二缓存池中的数据将发送到下一级服务器的第一缓存池。由于第一缓存池、第二缓存池为设置在外存上的存储空间,所以可以采用现有技术中的外存之间传输数据的方法进行传输。例如,可以采用网络蚂蚁等工具,或者通过ftp的传输方式将本服务器第二缓存池中的数据传输至下一级服务器的第一缓存池。
本实施例,通过在外存设备上设置缓存池,能够利用外存设备的大容量存储空间对流水并行处理过程中的管道式通信方式中的数据进行缓存,从而提高了管道式通信时的数据传输可靠性和效率。
实施例二
参见图2,为本发明实施例二所述管道式通信方法流程图。如图2所示,该方法包括步骤:
S201:接收上一级服务器的进程处理后的数据;
S202:缓存所述数据至第一从缓存池;
本实施例中,第一缓存池包括第一从缓存池和第一主缓存池。所述第一从缓存池为设置在外存上的存储空间,用于缓存需要接收的上一级服务器的进程处理后的数据。
S203:设置所述第一从缓存池为第一主缓存池;
所述第一主缓存池为设置在外存上的存储空间,用于缓存第一内存缓冲区需要读取的数据。由于外存上的存储空间,在同一时刻内,只能对其进行读或写的操作,所以,所述设置第一从缓存池为第一主缓存池,也可以理解为,第一从缓存池是指在某一时刻内用来写入数据的空间,第一主缓存池是指在该时刻内用来读取数据的空间。
S204:读取第一主缓存池中的数据并缓存至第一内存缓冲区,以便本服务器的进程进行处理;
S205:将本服务器的进程处理后的数据写入第二内存缓冲区;
S206:缓存第二内存缓冲区的数据至第二缓存池;
S207:将第二缓存池中的数据发送至下一级服务器的进程进行处理。
因为对于外存(例如硬盘)上的某一存储空间,在同一时刻只能进行读或写的操作。本实施例中,将第一缓存池划分为第一从缓存池和第一主缓存池。第一从缓存池专门用于接收上一级服务器发送来的数据,也就是对第一从缓存池进行的是数据的写入操作。第一主缓存池缓存的数据,专门用于提供给第一内存缓冲区进行读取,也就是对第一主缓存池进行的是数据的读取操作。
本实施例中,第一从缓存池用于接收上一级服务器处理后的数据(即数据写入第一从缓存池)操作,第一缓冲区可以同时对第一主缓存池的数据进行读取操作,数据的写和读两种操作可以异步并行,提高了数据流水并行过程中数据接收部分的效率。
需要说明的是,本发明实施例中所述第一从缓存池和第一主缓存池(包括下面实施例中的第二从缓存池和第二主缓存池)是根据功能对存储空间进行的划分。如果站在同一存储空间的角度进行描述,那么在某一时刻该存储空间可以是第一从缓存池,用于接收上一级服务器发送来的数据并缓存;在下一时刻,该存储空间被设置为第一主缓存池,于是第一内存缓冲区可以读取该存储空间内的数据。
实施例三
参见图3,为本发明实施例三所述管道式通信方法流程图。如图3所示,该方法包括步骤:
S301:接收上一级服务器的进程处理后的数据;
S302:缓存所述数据至第一缓存池;
S303:读取第一缓存池中的所述数据并缓存至第一内存缓冲区,以便本服务器的进程进行处理;
S304:将本服务器的进程处理后的数据写入第二内存缓冲区;
S305:缓存第二内存缓冲区的数据至第二主缓存池;
S306:设置所述第二主缓存池为第二从缓存池;
S307:将第二从缓存池中的数据发送至下一级服务器的进程进行处理。
本实施例中,第二缓存池包括第二主缓存池和第二从缓存池。所述第二主缓存池和第二从缓存池,均为设置在外存上的存储空间。所述第二主缓存池用于缓存需要读取的第二内存缓冲区的数据。所述第二从缓存池,用于缓存需要发送至下一级服务器的进程进行处理的数据。也就是说,设置为第二主缓存池的存储空间可以缓存第二内存缓冲区向其写入的数据,设置为第二从缓存池的存储空间缓存的数据将向下一级服务器发送(即第二从缓存池中的数据将被读取)。
与实施例二的原理相类似,本实施例中,在本服务器的进程处理后的数据写入第二主缓存池的同时,第二从缓存池中的数据可以被读取,并发送至下一级服务器,能够实现数据写和读两种操作的异步并行,提高了数据流水并行过程中数据发送部分的效率。
实施例四
本实施例中,所述第一缓存池包括,用于缓存需要接收的上一级服务器的进程处理后的数据的第一从缓存池,和,用于缓存第一内存缓冲区需要读取的数据的第一主缓存池;所述第二缓存池包括,用于缓存需要读取的第二内存缓冲区的数据的第二主缓存池,和,用于缓存需要发送至下一级服务器的进程进行处理的数据的第二从缓存池;
参见图4,为本发明实施例四所述管道式通信方法流程图。如图4所示,该方法包括步骤:
S401:接收上一级服务器的进程处理后的数据;
S402:缓存所述数据至第一从缓存池;
S403:设置所述第一从缓存池为第一主缓存池;
S404:读取第一主缓存池中的数据并缓存至第一内存缓冲区,以便本服务器的进程进行处理;
S405:将本服务器的进程处理后的数据写入第二内存缓冲区;
S406:缓存第二内存缓冲区的数据至第二主缓存池;
S407:设置所述第二主缓存池为第二从缓存池;
S408:将第二从缓存池中的数据发送至下一级服务器的进程进行处理。
本实施例的原理与实施例二和三的原理相似,此处不再赘述。本实施例兼具实施例二和三的优点,能够提高数据流水并行过程中数据发送和接收部分的效率。
下面对上述实施例中的步骤做更加详细的描述。
对于实施例二至四所述的方法,所述缓存所述数据至第一从缓存池之前,还可以包括步骤:
判断第一从缓存池是否存在;
如果第一从缓存池不存在,则创建第一从缓存池。
上述实施例中,所述设置所述第一从缓存池为第一主缓存池,具体可以包括如图5所示步骤:
S501:判断第一主缓存池是否存在;
如果存在,则执行步骤S502;否则,执行步骤S503。
S502:休眠一个时间周期;
S503:设置所述第一从缓存池为第一主缓存池。
本发明实施例中,对缓存池的大小并没有严格的限制或规定。在图5所示的步骤中,当第一主缓存池存在时,说明本服务器的进程正在对第一主缓存池中的数据进行处理,也即第一主缓存池的数据正在被读取。由于同一时刻外存上的存储空间只能进行读取或写入的操作,所以此时第一主缓存池不能写入数据,第一从缓存池将一直接收上一级服务器处理后的数据并缓存。当第一主缓存池的数据被读取完以后,第一从缓存池才被设置为第一主缓存池。
可见,本发明中,第一缓存池缓存的数据量是可以动态变化的。当本服务器的进程处于繁忙状态时,第一从缓存池可以一直缓存上一级服务器处理后的数据,使本发明所述管道式通信的管道的数据接收部分具有伸缩性。
上述实施例中,所述读取第一主缓存池中的数据并缓存至第一内存缓冲区,如图6所示,可以包括步骤:
S601:获取本服务器的进程需要读入的待读入数据长度L1和第一内存缓冲区的剩余数据长度S1;
设待读入数据长度为L1,第一内存缓冲区的剩余数据长度为S1
S602:判断所述待读入数据长度L1,是否小于或等于所述剩余数据长度S1;
如果是,执行步骤S603;否则,执行步骤S604;
判断所述第一主缓存池中是否存在剩余数据;
S603:将待读入数据长度的剩余数据读入所述进程,并结束;
S604:判断所述第一主缓存池中是否存在剩余数据;
如果存在,执行步骤S605至S606;否则,执行步骤S607;
S605:将所述第一内存缓冲区中的剩余数据读入所述进程,并修改所述待读入数据长度;
具体就是,将所述待读入数据长度修改为:L1-S1。
S606:从所述第一主缓存池向所述第一内存缓冲区读入新的数据;
S607:将所述第一内存缓冲区中的剩余数据读入所述进程,并删除所述第一主缓存池。
图6所示步骤,可以将第一主缓存池中的数据完全读入第一内存缓冲区,保证读取数据的完整性和有序性。
上述实施例中,所述缓存第二内存缓冲区的数据至第二主缓存池,如图7所示,可以包括步骤:
S701:获取本服务器的进程处理后的需要写入第二内存缓冲区的待写入数据长度L2和第二内存缓冲区的剩余空间大小S2;
S702:判断所述第二内存缓冲区的剩余空间大小S2,是否大于或等于所述待写入数据长度L2;
如果是,执行步骤S703;否则,执行步骤S704。
S703:将所述待写入数据写入所述第二内存缓冲区,并结束;
S704:将所述待写入数据中与所述第二内存缓冲区的剩余空间大小相等的数据写入所述第二内存缓冲区;
S705:从所述待写入数据中删除已写入第二内存缓冲区的那部分数据;
删除后的待写入数据的长度为:L2-S2。
S706:将第二内存缓冲区中的数据写入第二主缓存池后,返回步骤S701。
图7所示步骤,可以将第二内存缓冲区中的数据完全写入第二主缓存池,保证写入数据的完整性和有序性。
上述实施例中,所述设置所述第二主缓存池为第二从缓存池,如图8所示,可以包括步骤:
S801:判断第二从缓存池是否存在;
如果存在,执行步骤S802;否则,执行步骤S803;
S802:休眠一个时间周期;
S803:设置所述第二主缓存池为第二从缓存池;
S804:创建新的第二主缓存池。
与图5所示步骤的原理相似,图8所示步骤使得本发明中的第二缓存池缓存的数据量可以动态变化,使本发明所述管道式通信的管道的数据发送部分具有伸缩性。
此外,本发明上述实施例中的第一内存缓冲区和第二内存缓冲区,还可以进行进一步的优化。
对于第一内存缓冲区,可以包括用于读取并缓存第一缓存池中的数据的第一从缓冲区,和,用于缓存本服务器的进程需要读取并处理的数据的第一主缓冲区;
相应的,上述实施例中,所述读取第一缓存池中的所述数据并缓存至第一内存缓冲区,以便本服务器的进程进行处理,可以包括步骤:
读取第一缓存池中的数据并缓存至第一从缓冲区;
设置所述第一从缓冲区为第一主缓冲区;
以便本服务器的进程读取所述第一主缓冲区中的数据并进行处理。
对于第二内存缓冲区,可以包括用于缓存需要写入第二缓存池中的数据的第二从缓冲区,和,用于缓存本服务器的进程处理后的数据的第二主缓冲区;
相应的,上述实施例中,所述将本服务器的进程处理后的数据写入第二内存缓冲区;
缓存第二内存缓冲区的数据至第二缓存池,可以包括步骤:
将本服务器的进程处理后的数据写入第二主缓冲区;
设置所述第二主缓冲区为第二从缓冲区;
将第二从缓冲区的数据写入第二缓存池并缓存。
上述对于第一内存缓冲区和第二内存缓冲区的优化,其原理都是将内存缓冲区划分为两个区域,一个区域用于写入数据,另一个区域用于读取数据,进而能够在同一时刻进行数据的写入与读取,提高数据流水并行处理的效率。
与本发明所述的用于进程间通信的管道式通信方法相对应,本发明还公开了一种用于进程间通信的管道式通信系统。
参见图9,为本发明所述用于进程间通信的管道式通信系统结构图。如图9所示,该系统包括:
数据接收单元901,用于接收上一级服务器的进程处理后的数据;
第一缓存池902,用于缓存所述数据接收单元接收到的数据;
第一内存缓冲区903,用于读取第一缓存池中的所述数据并缓存,以便本服务器的进程进行处理;
第二内存缓冲区904,用于缓存本服务器的进程处理后的数据;
第二缓存池905,用于缓存第二内存缓冲区写入的数据;
数据发送单元906,用于将第二缓存池中的数据发送至下一级服务器的进程进行处理;
其中,所述第一缓存池、第二缓存池为设置在外存上的存储空间。
本发明所述系统,通过设置在外存设备上的缓存池,能够利用外存设备的大容量存储空间对流水并行处理过程中的管道式通信方式中的数据进行缓存,从而能够提高管道式通信时的数据传输可靠性和效率。
所述第一缓存池902,可以包括:
第一从缓存池,用于缓存需要接收的上一级服务器的进程处理后的数据;
第一主从缓存池设置单元,用于设置所述第一从缓存池为第一主缓存池;
第一主缓存池,用于缓存第一内存缓冲区需要读取的数据。
所述第二缓存池905,可以包括:
第二主缓存池,用于缓存需要读取的第二内存缓冲区的数据;
第二主从缓存池设置单元,用于设置所述第二主缓存池为第二从缓存池;
第二从缓存池,用于缓存需要发送至下一级服务器的进程进行处理的数据。
所述系统还可以包括:
第一从缓存池创建单元,用于判断第一从缓存池是否存在;如果第一从缓存池不存在,则创建第一从缓存池。
所述第一主从缓存池设置单元,可以包括:
第一主缓存池判断子单元,用于判断第一主缓存池是否存在;
第一休眠子单元,用于当第一主缓存池判断子单元的判断结果为是时,令第一主从缓存池设置子单元休眠一个时间周期;
第一主从缓存池设置子单元,用于当第一主缓存池判断子单元的判断结果为否时,设置所述第一从缓存池为第一主缓存池。
所述第一内存缓冲区903,可以包括:
第一数据长度获取子单元,用于获取本服务器的进程需要读入的待读入数据长度和第一内存缓冲区的剩余数据长度;
第一数据长度判断子单元,用于判断所述待读入数据长度,是否小于或等于所述剩余数据长度;
第一数据读入子单元,用于当第一数据长度判断子单元的判断结果为是时,将第一内存缓冲区中待读入数据长度的剩余数据读入所述进程;
第一剩余数据判断子单元,用于当第一数据长度判断子单元的判断结果为否时,判断所述第一主缓存池中是否存在剩余数据;
待读入数据长度修改子单元,用于当第一剩余数据判断子单元的判断结果为是时,将所述第一内存缓冲区中的剩余数据读入所述进程,并修改所述待读入数据长度;
第一主缓存池数据读入子单元,用于从所述第一主缓存池向所述第一内存缓冲区读入新的数据;
第一主缓存池删除子单元,用于当第一剩余数据判断子单元的判断结果为否时,将所述第一内存缓冲区中的剩余数据读入所述进程,并删除所述第一主缓存池。
所述第二内存缓冲区904,可以包括:
第二数据长度获取子单元,用于获取本服务器的进程处理后的需要写入第二内存缓冲区的待写入数据长度和第二内存缓冲区的剩余空间大小;
第二数据长度判断子单元,用于判断所述第二内存缓冲区的剩余空间大小,是否大于或等于所述待写入数据长度;
第二数据写入子单元,用于当第二数据长度判断子单元的判断结果为是时,将所述待写入数据写入所述第二内存缓冲区;
待写入数据删除子单元,用于当第二数据长度判断子单元的判断结果为否时,将所述待写入数据中与所述第二内存缓冲区的剩余空间大小相等的数据写入所述第二内存缓冲区;从所述待写入数据中删除已写入第二内存缓冲区的那部分数据;
第二内存缓冲区数据写入子单元,用于将第二内存缓冲区中的数据写入第二主缓存池。
所述第二主从缓存池设置单元,可以包括:
第二从缓存池判断单元,用于判断第二从缓存池是否存在;
第二休眠子单元,用于当第二从缓存池判断单元的判断结果为是时,令第二主从缓存池设置子单元休眠一个时间周期;
第二主从缓存池设置子单元,用于当第二从缓存池判断子单元的判断结果为否时,设置所述第二主缓存池为第二从缓存池;
第二主缓存池创建子单元,用于创建新的第二主缓存池。
所述第一内存缓冲区903,还可以包括:
第一从缓冲区,用于读取并缓存第一缓存池中的数据;
第一主缓冲区,用于缓存本服务器的进程需要读取并处理的数据;
第一主从缓冲区设置单元,用于设置所述第一从缓冲区为第一主缓冲区。
所述第二内存缓冲区904,还可以包括:
第二主缓冲区,用于缓存本服务器的进程处理后的数据;
第二从缓冲区,用于缓存需要写入第二缓存池中的数据;
第二主从缓冲区设置单元,用于设置所述第二主缓冲区为第二从缓冲区。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
Claims (22)
1.一种用于进程间通信的管道式通信方法,其特征在于,包括:
接收上一级服务器的进程处理后的数据;
缓存所述数据至第一缓存池;
读取第一缓存池中的所述数据并缓存至第一内存缓冲区,以便本服务器的进程进行处理;
将本服务器的进程处理后的数据写入第二内存缓冲区;
缓存第二内存缓冲区的数据至第二缓存池;
将第二缓存池中的数据发送至下一级服务器的进程进行处理;
其中,所述第一缓存池、第二缓存池为设置在外存上的存储空间。
2.根据权利要求1所述的方法,其特征在于,所述第一缓存池包括,用于缓存需要接收的上一级服务器的进程处理后的数据的第一从缓存池,和,用于缓存第一内存缓冲区需要读取的数据的第一主缓存池;
所述缓存所述数据至第一缓存池;读取第一缓存池中的所述数据并缓存至第一内存缓冲区,包括:
缓存所述数据至第一从缓存池;
设置所述第一从缓存池为第一主缓存池;
读取第一主缓存池中的数据并缓存至第一内存缓冲区。
3.根据权利要求1所述的方法,其特征在于,所述第二缓存池包括,用于缓存需要读取的第二内存缓冲区的数据的第二主缓存池,和,用于缓存需要发送至下一级服务器的进程进行处理的数据的第二从缓存池;
所述缓存第二内存缓冲区的数据至第二缓存池;将第二缓存池中的数据发送至下一级服务器的进程进行处理,包括:
缓存第二内存缓冲区的数据至第二主缓存池;
设置所述第二主缓存池为第二从缓存池;
将第二从缓存池中的数据发送至下一级服务器的进程进行处理。
4.根据权利要求1所述的方法,其特征在于,所述第一缓存池包括,用于缓存需要接收的上一级服务器的进程处理后的数据的第一从缓存池,和,用于缓存第一内存缓冲区需要读取的数据的第一主缓存池;所述第二缓存池包括,用于缓存需要读取的第二内存缓冲区的数据的第二主缓存池,和,用于缓存需要发送至下一级服务器的进程进行处理的数据的第二从缓存池;
所述缓存所述数据至第一缓存池;读取第一缓存池中的所述数据并缓存至第一内存缓冲区,包括:
缓存所述数据至第一从缓存池;
设置所述第一从缓存池为第一主缓存池;
读取第一主缓存池中的数据并缓存至第一内存缓冲区;
所述缓存第二内存缓冲区的数据至第二缓存池;将第二缓存池中的数据发送至下一级服务器的进程进行处理,包括:
缓存第二内存缓冲区的数据至第二主缓存池;
设置所述第二主缓存池为第二从缓存池;
将第二从缓存池中的数据发送至下一级服务器的进程进行处理。
5.根据权利要求2或4所述的方法,其特征在于,所述缓存所述数据至第一从缓存池之前,还包括:
判断第一从缓存池是否存在;
如果第一从缓存池不存在,则创建第一从缓存池。
6.根据权利要求2或4所述的方法,其特征在于,所述设置所述第一从缓存池为第一主缓存池,包括:
判断第一主缓存池是否存在;
如果存在,则休眠一个时间周期;
否则,设置所述第一从缓存池为第一主缓存池。
7.根据权利要求2或4所述的方法,其特征在于,所述读取第一主缓存池中的数据并缓存至第一内存缓冲区,包括:
获取本服务器的进程需要读入的待读入数据长度和第一内存缓冲区的剩余数据长度;
判断所述待读入数据长度,是否小于或等于所述剩余数据长度;
如果是,则将待读入数据长度的剩余数据读入所述进程,并结束;
否则,判断所述第一主缓存池中是否存在剩余数据;
如果存在,则将所述第一内存缓冲区中的剩余数据读入所述进程,并修改所述待读入数据长度;
从所述第一主缓存池向所述第一内存缓冲区读入新的数据;
如果第一主缓存池中不存在剩余数据,则将所述第一内存缓冲区中的剩余数据读入所述进程,并删除所述第一主缓存池。
8.根据权利要求3或4所述的方法,其特征在于,所述缓存第二内存缓冲区的数据至第二主缓存池,包括:
获取本服务器的进程处理后的需要写入第二内存缓冲区的待写入数据长度和第二内存缓冲区的剩余空间大小;
判断所述第二内存缓冲区的剩余空间大小,是否大于或等于所述待写入数据长度;
如果是,则将所述待写入数据写入所述第二内存缓冲区,并结束;
否则,将所述待写入数据中与所述第二内存缓冲区的剩余空间大小相等的数据写入所述第二内存缓冲区;
从所述待写入数据中删除已写入第二内存缓冲区的那部分数据;
将第二内存缓冲区中的数据写入第二主缓存池。
9.根据权利要求3或4所述的方法,其特征在于,所述设置所述第二主缓存池为第二从缓存池,包括:
判断第二从缓存池是否存在;
如果存在,则休眠一个时间周期;
否则,设置所述第二主缓存池为第二从缓存池;
创建新的第二主缓存池。
10.根据权利要求1至4任一项所述的方法,其特征在于,所述第一内存缓冲区包括用于读取并缓存第一缓存池中的数据的第一从缓冲区,和,用于缓存本服务器的进程需要读取并处理的数据的第一主缓冲区;
所述读取第一缓存池中的所述数据并缓存至第一内存缓冲区,以便本服务器的进程进行处理,包括:
读取第一缓存池中的数据并缓存至第一从缓冲区;
设置所述第一从缓冲区为第一主缓冲区;
以便本服务器的进程读取所述第一主缓冲区中的数据并进行处理。
11.根据权利要求1至4任一项所述的方法,其特征在于,所述第二内存缓冲区包括用于缓存需要写入第二缓存池中的数据的第二从缓冲区,和,用于缓存本服务器的进程处理后的数据的第二主缓冲区;
所述将本服务器的进程处理后的数据写入第二内存缓冲区;
缓存第二内存缓冲区的数据至第二缓存池,包括:
将本服务器的进程处理后的数据写入第二主缓冲区;
设置所述第二主缓冲区为第二从缓冲区;
将第二从缓冲区的数据写入第二缓存池并缓存。
12.一种用于进程间通信的管道式通信系统,其特征在于,包括:
数据接收单元,用于接收上一级服务器的进程处理后的数据;
第一缓存池,用于缓存所述数据接收单元接收到的数据;
第一内存缓冲区,用于读取第一缓存池中的所述数据并缓存,以便本服务器的进程进行处理;
第二内存缓冲区,用于缓存本服务器的进程处理后的数据;
第二缓存池,用于缓存第二内存缓冲区写入的数据;
数据发送单元,用于将第二缓存池中的数据发送至下一级服务器的进程进行处理;
其中,所述第一缓存池、第二缓存池为设置在外存上的存储空间。
13.根据权利要求12所述的系统,其特征在于,所述第一缓存池包括:
第一从缓存池,用于缓存需要接收的上一级服务器的进程处理后的数据;
第一主从缓存池设置单元,用于设置所述第一从缓存池为第一主缓存池;
第一主缓存池,用于缓存第一内存缓冲区需要读取的数据。
14.根据权利要求12所述的系统,其特征在于,所述第二缓存池包括:
第二主缓存池,用于缓存需要读取的第二内存缓冲区的数据;
第二主从缓存池设置单元,用于设置所述第二主缓存池为第二从缓存池;
第二从缓存池,用于缓存需要发送至下一级服务器的进程进行处理的数据。
15.根据权利要求12所述的系统,其特征在于,所述第一缓存池包括:
第一从缓存池,用于缓存需要接收的上一级服务器的进程处理后的数据;
第一主从缓存池设置单元,用于设置所述第一从缓存池为第一主缓存池;
第一主缓存池,用于缓存第一内存缓冲区需要读取的数据;
所述第二缓存池包括:
第二主缓存池,用于缓存需要读取的第二内存缓冲区的数据;
第二主从缓存池设置单元,用于设置所述第二主缓存池为第二从缓存池;
第二从缓存池,用于缓存需要发送至下一级服务器的进程进行处理的数据。
16.根据权利要求13或15所述的系统,其特征在于,还包括:
第一从缓存池创建单元,用于判断第一从缓存池是否存在;如果第一从缓存池不存在,则创建第一从缓存池。
17.根据权利要求13或15所述的系统,其特征在于,所述第一主从缓存池设置单元,包括:
第一主缓存池判断子单元,用于判断第一主缓存池是否存在;
第一休眠子单元,用于当第一主缓存池判断子单元的判断结果为是时,令第一主从缓存池设置子单元休眠一个时间周期;
第一主从缓存池设置子单元,用于当第一主缓存池判断子单元的判断结果为否时,设置所述第一从缓存池为第一主缓存池。
18.根据权利要求13或15所述的系统,其特征在于,所述第一内存缓冲区包括:
第一数据长度获取子单元,用于获取本服务器的进程需要读入的待读入数据长度和第一内存缓冲区的剩余数据长度;
第一数据长度判断子单元,用于判断所述待读入数据长度,是否小于或等于所述剩余数据长度;
第一数据读入子单元,用于当第一数据长度判断子单元的判断结果为是时,将第一内存缓冲区中待读入数据长度的剩余数据读入所述进程;
第一剩余数据判断子单元,用于当第一数据长度判断子单元的判断结果为否时,判断所述第一主缓存池中是否存在剩余数据;
待读入数据长度修改子单元,用于当第一剩余数据判断子单元的判断结果为是时,将所述第一内存缓冲区中的剩余数据读入所述进程,并修改所述待读入数据长度;
第一主缓存池数据读入子单元,用于从所述第一主缓存池向所述第一内存缓冲区读入新的数据;
第一主缓存池删除子单元,用于当第一剩余数据判断子单元的判断结果为否时,将所述第一内存缓冲区中的剩余数据读入所述进程,并删除所述第一主缓存池。
19.根据权利要求14或15所述的系统,其特征在于,所述第二内存缓冲区包括:
第二数据长度获取子单元,用于获取本服务器的进程处理后的需要写入第二内存缓冲区的待写入数据长度和第二内存缓冲区的剩余空间大小;
第二数据长度判断子单元,用于判断所述第二内存缓冲区的剩余空间大小,是否大于或等于所述待写入数据长度;
第二数据写入子单元,用于当第二数据长度判断子单元的判断结果为是时,将所述待写入数据写入所述第二内存缓冲区;
待写入数据删除子单元,用于当第二数据长度判断子单元的判断结果为否时,将所述待写入数据中与所述第二内存缓冲区的剩余空间大小相等的数据写入所述第二内存缓冲区;从所述待写入数据中删除已写入第二内存缓冲区的那部分数据;
第二内存缓冲区数据写入子单元,用于将第二内存缓冲区中的数据写入第二主缓存池。
20.根据权利要求14或15所述的系统,其特征在于,所述第二主从缓存池设置单元,包括:
第二从缓存池判断单元,用于判断第二从缓存池是否存在;
第二休眠子单元,用于当第二从缓存池判断单元的判断结果为是时,令第二主从缓存池设置子单元休眠一个时间周期;
第二主从缓存池设置子单元,用于当第二从缓存池判断子单元的判断结果为否时,设置所述第二主缓存池为第二从缓存池;
第二主缓存池创建子单元,用于创建新的第二主缓存池。
21.根据权利要求12至15任一项所述的系统,其特征在于,所述第一内存缓冲区,还包括:
第一从缓冲区,用于读取并缓存第一缓存池中的数据;
第一主缓冲区,用于缓存本服务器的进程需要读取并处理的数据;
第一主从缓冲区设置单元,用于设置所述第一从缓冲区为第一主缓冲区。
22.根据权利要求12至15任一项所述的系统,其特征在于,所述第二内存缓冲区,还包括:
第二主缓冲区,用于缓存本服务器的进程处理后的数据;
第二从缓冲区,用于缓存需要写入第二缓存池中的数据;
第二主从缓冲区设置单元,用于设置所述第二主缓冲区为第二从缓冲区。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110075377 CN102122256B (zh) | 2011-03-28 | 2011-03-28 | 一种用于进程间通信的管道式通信方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110075377 CN102122256B (zh) | 2011-03-28 | 2011-03-28 | 一种用于进程间通信的管道式通信方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102122256A true CN102122256A (zh) | 2011-07-13 |
CN102122256B CN102122256B (zh) | 2013-01-09 |
Family
ID=44250818
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201110075377 Expired - Fee Related CN102122256B (zh) | 2011-03-28 | 2011-03-28 | 一种用于进程间通信的管道式通信方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102122256B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013056420A1 (zh) * | 2011-10-18 | 2013-04-25 | 中联重科股份有限公司 | 搅拌站以及用于该搅拌站的数据存储方法、服务器、系统 |
CN103605529A (zh) * | 2013-05-17 | 2014-02-26 | 华为终端有限公司 | 应用程序的处理方法和装置 |
CN104683861A (zh) * | 2013-11-27 | 2015-06-03 | 北京大唐高鸿软件技术有限公司 | 局域网中基于udp缓存播放媒体流的方法 |
CN106776369A (zh) * | 2016-12-12 | 2017-05-31 | 郑州云海信息技术有限公司 | 一种缓存镜像的方法及装置 |
CN106790599A (zh) * | 2016-12-29 | 2017-05-31 | 中国人民解放军国防科学技术大学 | 一种基于多核无锁环形缓冲区的共生虚拟机通信方法 |
CN107038075A (zh) * | 2015-07-14 | 2017-08-11 | 阿里巴巴集团控股有限公司 | 消息队列系统以及实现消息通信的方法 |
CN109189577A (zh) * | 2018-08-31 | 2019-01-11 | 武汉达梦数据库有限公司 | 一种数据同步时防止内存溢出的方法和装置 |
CN109246085A (zh) * | 2018-08-15 | 2019-01-18 | 腾讯科技(深圳)有限公司 | 一种匿名网络访问方法、客户端、系统、服务器及介质 |
CN109918381A (zh) * | 2019-03-13 | 2019-06-21 | 北京百度网讯科技有限公司 | 用于存储数据的方法和装置 |
CN113641306A (zh) * | 2021-07-28 | 2021-11-12 | 通号城市轨道交通技术有限公司 | 车载ato与车载atp的数据交互方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0936554A2 (en) * | 1998-02-17 | 1999-08-18 | International Business Machines Corporation | Cache coherency protocol including a hovering (H) state having a precise mode and an imprecise mode |
US6192452B1 (en) * | 1999-02-26 | 2001-02-20 | International Business Machines Corporation | Method and system for avoiding data loss due to cancelled transactions within a non-uniform memory access system |
CN1497448A (zh) * | 2002-09-30 | 2004-05-19 | �Ҵ���˾ | 在操作系统内核环境中高速缓存应用数据的系统和方法 |
CN101441616A (zh) * | 2008-11-24 | 2009-05-27 | 中国人民解放军信息工程大学 | 基于寄存器文件的快速数据交换结构及其管理方法 |
-
2011
- 2011-03-28 CN CN 201110075377 patent/CN102122256B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0936554A2 (en) * | 1998-02-17 | 1999-08-18 | International Business Machines Corporation | Cache coherency protocol including a hovering (H) state having a precise mode and an imprecise mode |
US6192452B1 (en) * | 1999-02-26 | 2001-02-20 | International Business Machines Corporation | Method and system for avoiding data loss due to cancelled transactions within a non-uniform memory access system |
CN1497448A (zh) * | 2002-09-30 | 2004-05-19 | �Ҵ���˾ | 在操作系统内核环境中高速缓存应用数据的系统和方法 |
CN101441616A (zh) * | 2008-11-24 | 2009-05-27 | 中国人民解放军信息工程大学 | 基于寄存器文件的快速数据交换结构及其管理方法 |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013056420A1 (zh) * | 2011-10-18 | 2013-04-25 | 中联重科股份有限公司 | 搅拌站以及用于该搅拌站的数据存储方法、服务器、系统 |
CN103605529B (zh) * | 2013-05-17 | 2018-01-23 | 华为终端(东莞)有限公司 | 应用程序的处理方法和装置 |
CN103605529A (zh) * | 2013-05-17 | 2014-02-26 | 华为终端有限公司 | 应用程序的处理方法和装置 |
CN104683861A (zh) * | 2013-11-27 | 2015-06-03 | 北京大唐高鸿软件技术有限公司 | 局域网中基于udp缓存播放媒体流的方法 |
CN107038075B (zh) * | 2015-07-14 | 2020-12-25 | 阿里巴巴集团控股有限公司 | 消息队列系统以及实现消息通信的方法 |
CN107038075A (zh) * | 2015-07-14 | 2017-08-11 | 阿里巴巴集团控股有限公司 | 消息队列系统以及实现消息通信的方法 |
CN106776369A (zh) * | 2016-12-12 | 2017-05-31 | 郑州云海信息技术有限公司 | 一种缓存镜像的方法及装置 |
CN106790599B (zh) * | 2016-12-29 | 2019-06-28 | 中国人民解放军国防科学技术大学 | 一种基于多核无锁环形缓冲区的共生虚拟机通信方法 |
CN106790599A (zh) * | 2016-12-29 | 2017-05-31 | 中国人民解放军国防科学技术大学 | 一种基于多核无锁环形缓冲区的共生虚拟机通信方法 |
CN109246085A (zh) * | 2018-08-15 | 2019-01-18 | 腾讯科技(深圳)有限公司 | 一种匿名网络访问方法、客户端、系统、服务器及介质 |
CN109246085B (zh) * | 2018-08-15 | 2021-06-15 | 腾讯科技(深圳)有限公司 | 一种匿名网络访问方法、客户端、系统、服务器及介质 |
CN109189577A (zh) * | 2018-08-31 | 2019-01-11 | 武汉达梦数据库有限公司 | 一种数据同步时防止内存溢出的方法和装置 |
CN109918381A (zh) * | 2019-03-13 | 2019-06-21 | 北京百度网讯科技有限公司 | 用于存储数据的方法和装置 |
CN109918381B (zh) * | 2019-03-13 | 2021-06-11 | 北京百度网讯科技有限公司 | 用于存储数据的方法和装置 |
CN113641306A (zh) * | 2021-07-28 | 2021-11-12 | 通号城市轨道交通技术有限公司 | 车载ato与车载atp的数据交互方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN102122256B (zh) | 2013-01-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102122256B (zh) | 一种用于进程间通信的管道式通信方法及系统 | |
US20160132541A1 (en) | Efficient implementations for mapreduce systems | |
US9135190B1 (en) | Multi-profile memory controller for computing devices | |
CN105320640B (zh) | 输入/输出拦截器及使用其的输入/输出拦截方法 | |
CN102906726B (zh) | 协处理加速方法、装置及系统 | |
CN107526534B (zh) | 管理存储设备的输入输出(i/o)的方法和设备 | |
CN103678172A (zh) | 一种本地数据缓存管理方法及装置 | |
CN109542814A (zh) | 通过pci-express的p2p连接在存储设备之间传输数据的方法和系统 | |
KR20140050941A (ko) | 비휘발성 메모리 장치의 데이터 관리 방법 | |
CN104407933A (zh) | 一种数据的备份方法及装置 | |
CN111080510B (zh) | 数据处理装置、方法、芯片、处理器、设备及存储介质 | |
CN103154920A (zh) | 统一i/o适配器 | |
CN112181293B (zh) | 固态硬盘控制器、固态硬盘、存储系统及数据处理方法 | |
CN109117386A (zh) | 一种网络远程读写二级存储的系统及方法 | |
CN104834484A (zh) | 基于嵌入式可编程逻辑阵列的数据处理系统及处理方法 | |
CN102291298B (zh) | 一种高效的面向长消息的计算机网络通信方法 | |
CN105094691A (zh) | 一种数据操作的方法、设备和系统 | |
CN109478171B (zh) | 提高openfabrics环境中的吞吐量 | |
CN101271458A (zh) | 一种分布式计算文件管理方法、系统及其装置 | |
CN104461966B (zh) | 一种基于Nand Flash芯片的数据缓存传输方法及其控制器 | |
CN111625180B (zh) | 数据写入方法及装置、存储介质 | |
CN103064749A (zh) | 一种进程间通信方法 | |
US8209470B2 (en) | CPU data bus PLD/FPGA interface using dual port RAM structure built in PLD | |
KR101465447B1 (ko) | 외부 병합 정렬 방법, 외부 병합 정렬 시스템 및 외부 병합 정렬을 위한 분산 처리 시스템 | |
US9594714B2 (en) | Multi-channel storage system supporting a multi-command protocol |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130109 Termination date: 20150328 |
|
EXPY | Termination of patent right or utility model |