同步的消息队列制造技术

技术编号:2835973 阅读:233 留言:0更新日期:2012-04-11 18:40
一种方法包括:接收写请求;添加写请求到一批基本相连的盘写;确定将该批基本相连的盘写写到非易失性存储器;将该批基本相连的盘写写到该非易失性存储器;发送写该批基本相连的盘写的确认;接收确认写的确认;和清除该批基本相连的盘写。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术的实施例主要涉及通信。更特别地,这些实施例涉及在消息中继服务器中有效地存储消息的系统和方法。
技术介绍
随着互联网和无线通信越来越普及,网络设计者和服务提供商面临着许多性能关注。一个特别的关注涉及消息路由选择。消息路由器从发送器主机接收消息并将这些消息转发到一个或多个目的地主机。该接收和发送消息的进程有时被称为事务处理(transaction),是任何联网结构的重要组件。对于一个高性能消息路由器来说被要求每秒完成好几百次事务处理并不罕见。传统的消息接发系统使用存储-转发模型用于消息路由选择。在这种方法下,当路由器接收消息时,该消息被存储在非易失性存储器(“NVM”)中,这样当没有电源提供给该存储器时,内容能够被保存。NVM的实例包括,但并不仅限于,电子可擦除可编程只读存储器(“EEPROM”)和磁盘。将消息存储到NVM使得在系统崩溃或者电源故障的事件中能够恢复消息。从NVM读取和向NVM写入的初级技术相对慢,会产生网络中的性能瓶颈。附图说明 图1是根据本专利技术一个实施例的一种通信系统的框图。图2是根据本专利技术一个实施例的,图1中网关服务器的框图。图3是根据本专利技术一个实施例的,一种恢复队列索引文件的方法的流程图。图4是根据本专利技术一个实施例的,一种处理流进数据的方法的实例的流程图。图5是根据本专利技术一个替换实施例的,一种处理流进数据的方法的实例的流程图。图6是根据本专利技术一个实施例的,确定写请求是否应当触发一批写的进程的进程流程图。具体实施例方式本专利技术的实施例可以组合几种技术来最小化由于写数据到非易失性存储器而产生的性能瓶颈。这些技术可以包括相连地和/或基本相连地写数据到盘以便利用大多数现代硬盘系统的相连布局。这些技术还可以包括分批执行写请求以便最小化对盘系统的写请求的总数量,还包括使用单独的同步助手进程以便让同步的盘写入被异步地执行。这些技术还可以包括最小化要被同步写入到盘的数据;并最小化从队列中删除数据的成本。根据本专利技术的一个实施例,一个或多个足够大尺寸的文件可以在非易失性存储器(NVM)中被建立并且存储器映射到易失性存储器。要被列队的消息和/或数据可以被复制到其中一个文件的存储器映射区域中,其可以被称为队列数据文件。索引数据结构可以在与队列数据文件相关联的易失性存储器中被维护,并且在索引数据结构中的入口可以被用来记录在队列数据文件中已经写消息/数据的位置。通常,消息/数据可以被写入到队列数据文件中的顺序区域中以便减小写的等待时间。消息/数据的处理可以涉及操作索引数据结构并访问在存储器映射的队列数据文件区域中的消息/数据,其本质上使得队列数据文件在消息/数据被最初写入队列数据文件之后不被物理地接触。如果由于某些原因,消息不能被立即处理,那么该消息可以被忽略并稍后处理或者移动到二级队列中。为了帮助最小化数据丢失并提高恢复效率,该索引数据结构可以被周期性地写入到非易失性存储器(NVM)中。类似地,在本专利技术的当前实施例中,为了防止数据丢失并为了确保顺序的盘写,队列数据文件写可以被同步地写入到盘中。因为同步写数据到盘中是与异步输入/输出(“I/O”)环境不相兼容的,并且通常显著降低了写性能,所以同步助手进程可以被用来分批处理和分类队列数据文件写请求。该同步助手进程可以分批处理和分类所述队列数据文件写请求,这样在队列数据文件中的存储器映射区域以有效和可靠的方式与盘同步(也就是说,物理地被写)。图1是根据本专利技术一个实施例的,一种通信系统的框图。在图1中,系统10可以具有耦接到网关服务器12a的终端14和耦接到网关服务器12b的终端18。根据本实施例,终端14可以是发送器主机,诸如邮件客户终端,终端18可以是目的地主机,诸如邮件服务器。例如,终端14,18可以包括计算机、工作站、个人数字助理(PDA)、陆上线路和无线电话。发送器主机14可以与网关服务器12a(例如,邮件网关)通信,目的地主机18可以和网关服务器12b(例如,邮件网关)通信,而服务器12a,12b可以经由网络16互相通信。网络16可以包括互联网,局域网(LAN),和/或广域网(WAN)。应当认识到,网关服务器12a和12b可以是服务器,路由器,交换机等等。还应当认识到,系统10可以包括其他被省略的组件,设备和/或系统。虽然在这里将参考至目的地主机的消息的路由选择来描述某些实例,但是本专利技术的实施例并不是这样限制的。实际上,这里描述的原理可以被容易地应用于任何类型的流进数据而不偏离本专利技术实施例的实质和范围。例如,图像、声音文件和其他类型的数据也可以获益于在这里所述的原理。仍然,还有许多非常适合于本专利技术实施例的消息的方面。还应当注意,一条消息可以去往多个接收方(未示出)和/或目的地主机,而每个目的地主机服务于被连接到特定接收器主机的接收方。应当注意,数据分组的传统的互联网协议(“IP”)路由选择被设计来容忍一定数量的数据丢失,而路由选择消息(诸如电子邮件消息)需要更高级别的可靠性。结果,消息路由器或服务器通常更少地容忍数据丢失,并且已经传统地使用了上面讨论的存储-转发模型。虽然某些实施例将参考一个或多个上述协议来描述,但是应当注意本专利技术的实施例并不是这样限制的。实际上,任何当前存储技术可以被实现的协议可以被使用。图2是根据本专利技术一个实施例的,图1的网关服务器的框图。在图2中,网关服务器12a可以包括多媒体消息网关(“MMG”)20,其可以耦接到终端14和网络16。MMG 20还可以耦接到盘队列22,更具体而言耦接到盘队列22中的队列数据文件24和索引文件26。MMG 20可以进一步耦接到同步组件28,其进而又可以耦接到队列数据文件24。同步组件28可以实现为分批处理和分类队列数据文件24写请求的进程,以便在队列数据文件24中的存储器映射区域可以被有效地和可靠地同步(也就是说,物理地同步地被写)到队列数据文件24被存储器映射的盘文件。在图2中,MMG20可以在所有流出和流进消息(例如,电子邮件消息)被传递之前将这些消息存储到盘队列22中。例如,在本实施例中,写入盘队列22(其可以包括队列数据文件24和索引文件26)是顺序的;在确认之前每次写可以与盘队列22同步;并且在启动时MMG 20可以恢复盘队列22以便重新开始队列活动。在队列数据文件24中的每个消息可以被存储器映射到存储器并且被MMG20上所有活动的进程共享。在队列数据文件24中的每个消息可以具有一个相关联的索引文件26,当系统崩溃时可以从该索引文件26中恢复队列处理状态。索引文件26在下文中可互换地被称为队列索引文件26。此外,有限数量的消息可以被列队,如果队列数据文件24满的话可以拒绝新消息。索引入口的数量可以由主要存储器、盘大小和队列文件的大小来限制。索引文件26还可以被存储器映射到MMG20中并且可以被所有其他的MMG 20进程共享。根据本实施例,队列数据文件24中的每个消息可以在索引文件26中具有一个入口。索引文件26可以在系统安装的时候被创建成在专用盘分区上最大允许的大小。索引文件26可以由MMG 20进行存储器映射,并且与盘文件的同步可以周期地发生(例如,每10秒)。索引文件26到非易失性存储器(NVM)的周期的同步可以被异步地执行,并且通常MMG 20并不等待确认本文档来自技高网...

【技术保护点】
一种方法,包括:接收写请求;添加该写请求到一批基本相连的盘写;确定将该批基本相连的盘写写到非易失性存储器;将该批基本相连的盘写写到该非易失性存储器;发送对写该批基本相连的盘写的确认;接收对该写 确认的确认;和清除该批基本相连的盘写。

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:GH奥加萨瓦拉J施瓦茨D斯通
申请(专利权)人:双子星移动科技公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1