预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共22页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

(19)中华人民共和国国家知识产权局(12)发明专利申请(10)申请公布号CN108370345A(43)申请公布日2018.08.03(21)申请号201680072287.6(74)专利代理机构北京东方亿思知识产权代理有限责任公司1(22)申请日2016.06.141258代理人宗晓斌(30)优先权数据14/879,6612015.10.09US(51)Int.Cl.H04L12/58(2006.01)(85)PCT国际申请进入国家阶段日2018.06.08(86)PCT国际申请的申请数据PCT/US2016/0373582016.06.14(87)PCT国际申请的公布数据WO2017/062073EN2017.04.13(71)申请人萨托里环球有限责任公司地址美国加利福尼亚州(72)发明人尤尼斯·海弗瑞权利要求书3页说明书12页附图6页(54)发明名称用于存储消息数据的系统和方法(57)摘要描述了用于将消息数据存储在PubSub系统中的方法、系统和装置,其包括编码在计算机存储介质上的计算机程序。在某些示例中,从多个不同信道的多个发布者接收消息。消息被排序并存储在多个缓冲器中,每个信道具有其自身相应的缓冲器。在消息已被写入到针对信道的缓冲器的可写入部分后,在原子操作中将区分缓冲器的可读取部分和缓冲器的可写入部分之间边界的指示器进行推进。在原子操作之后,消息驻留在可读取部分,并且可以由PubSub系统组件和/或进程访问。通常,一个或多个订户、组件或进程可以并行地从可读取部分读取消息。CN108370345ACN108370345A权利要求书1/3页1.一种方法,包括:由一台或多台计算机执行:从多个发布者接收多个消息,所述消息中的每一个与多个不同信道中的一个信道相关联;将与每个信道相关联的消息进行排序;根据分配给所述信道的消息的顺序,将所述信道中的每一个信道的每个消息存储在针对该信道的相应缓冲器中,其中,存储包括将所述消息存储在所述缓冲器的可写入部分中,以及在原子操作中将区分所述缓冲器的可读取部分和所述缓冲器的可写入部分之间的边界的指示器进行推进,使得所述消息在所述原子操作完成之后位于所述缓冲器的可读取部分中;以及允许一个或多个订户在所述存储期间从所述缓冲器中的一个或多个的可读取部分中进行读取。2.根据权利要求1所述的方法,其中,所述原子操作不能被另一进程或执行线程中断。3.根据权利要求1所述的方法,其中,将所述消息存储在所述缓冲器的可写入部分中包括:将所述消息的长度存储在所述缓冲器的可写入部分中的第一位置处,并将所述消息存储在所述缓冲器的可写入部分中的所述第一位置之后。4.根据权利要求1所述的方法,其中,在所述原子操作中将区分所述缓冲器的可读取部分与所述缓冲器的可写入部分之间的边界的指示器进行推进包括:在所述指示器中存储所述消息的长度与所述指示器的当前值之和。5.根据权利要求1所述的方法,其中,每个缓冲器仅存储单个信道的消息。6.根据权利要求1所述的方法,其中,基于所述缓冲器的生存时间,针对特定信道的每个缓冲器在不同的时间处到期。7.根据权利要求1所述的方法,其中,特定缓冲器对应于所述计算机中的一个计算机上的写入进程。8.根据权利要求1所述的方法,其中,每个缓冲器具有相应的生存时间,一旦该生存时间到期将导致所述缓冲器对于发布者和订户不可访问。9.根据权利要求1所述的方法,其中,将与每个信道相关联的所述消息进行排序包括根据所述消息的相应的接收时间对所述消息进行排序。10.一种系统,包括:其上存储有指令的非暂态计算机可读介质;以及数据处理装置,被配置为执行所述指令以执行操作,所述操作包括:从多个发布者接收多个消息,所述消息中的每一个与多个不同信道中的一个信道相关联;将与每个信道相关联的消息进行排序;根据分配给所述信道的消息的顺序,将所述信道中的每一个信道的每个消息存储在针对该信道的相应的缓冲器中,其中,存储包括将所述消息存储在所述缓冲器的可写入部分中,并且在原子操作中将区分所述缓冲器的可读取部分和所述缓冲器的可写入部分之间的边界的指示器进行推进,使得所述消息在所述原子操作完成之后位于所述缓冲器的可读取部分中;以及2CN108370345A权利要求书2/3页允许一个或多个订户在所述存储期间从所述缓冲器中的一个或多个的可读取部分中进行读取。11.根据权利要求10所述的系统,其中,所述原子操作不能被另一进程或执行线程中断。12.根据权利要求10所述的方法,其中,将所述消息存储在所述缓冲器的可写入部分中包括:将所述消息的长度存储在所述缓冲器的可写入部分中的第一位置处,并将所述消息存储在所述缓冲器的可写入部分中的所述第一位置之后。13.根据权利要求10所述的系统,其中,在所述原子操作中将区分所述缓冲器的可读取部分与所述缓冲器的可写入部分之