【IT168 资讯】对于金融、通信行业等面临高交易及高挑战的企业来说,如何使那些重要且具有战略意义的业务信息高速到达使用者手中变得尤其重要,而复杂事件处理(CEP)在这一过程中起着极为关键的作用。依赖复杂事件处理(CEP)应用的企业通常对其性能有着极高的要求——而最大化的吞吐量以及最小程度的延迟(处理一条事件消息所需的时间)则成为企业最为关注的技术性能。
复杂事件处理(CEP)是由业界领先的企业级和移动软件公司Sybase率先开创的一项用于构建和管理信息系统的新兴技术,它通过定义事件操作代数对底层的原始事件进行聚合、在规则或查询语言中引用事件代数操作不断过滤连续到达的事件流,利用事件间的关联、事件提取以及事件分层等技术,从多个事件中提取有意义的、符合应用需求的复杂事件,供系统的不同使用者提取各自需要的信息。截至目前,Sybase已开发了两代的复杂事件处理(CEP)引擎。
事实上,这两代的Sybase复杂事件处理(CEP)平台解决方案在苛刻情况下的优异性能已经得到全球客户的广泛认可,然而这种评价却缺乏独立的、经过权威机构验证的证据。近期,为了获得第三方独立机构的权威验证,Aleri、Sun Microsystems以及Intel 联合向证券技术分析中心(Securities Technology Analysis Center ,简称STAC)提交了一份关于某商业CEP 平台的客观的性能数据,并委托STAC对该平台进行交易性能测试。
STAC 是一家专门为资本市场客户提供技术评估的独立机构,也是目前唯一一家对资本市场所使用技术进行分析的第三方机构。接受委托后,为了更好地评估下一代复杂事件处理(CEP)平台——Sybase Aleri Streaming Platform的应用性能,STAC为 Sybase Aleri Streaming Platform设计了两套单独的测试,以期对其吞吐量和延迟等技术指标进行深入分析——第一个测试基于Intel 四核处理器,第二个测试基于Intel 六核Dunnington 处理器,除此以外,两个测试的其他系统配置均是相同的。Sybase Aleri Streaming Platform也因此成为目前业界唯一一个经过第三方性能基准测试的CEP平台。
创建实际的测试环境
为了模拟实际的交易环境,STAC在测试中采用了“订单汇总测试模型”,汇总了来自多个交易所的股权订单数据。这一模型可以满足测试CEP 平台的需要,维持所有订单状态以及处理每个交易所的新消息如插入(新订单)、更新(修改一个已有的订单)、删除(订单取消)等等;另外,对比仅按简单的时间序列进行操作但无需维持状态的模型,“订单汇总测试模型”包含了更加密集型的处理,同时,该模型也不过滤数据,这意味着每条新进的消息都会触发输出流的更新。
系统配置
订单汇总测试模型由Aleri Reuters OMM 适配器提供输入,该适配器从一个Reuters RMDS 测试系统中订阅OMM 格式的订单数据,通过在事件源端的消息速率对吞吐量进行评估,这其中的消息速率指每秒被输入到Aleri 服务器上的消息总量,而延迟的定义是指Reuters RMDS 测试系统开始发送消息到Aleri OMM 适配器的起始时间,与订阅Aleri 服务器输出的客户应用接收到结果更新的终止时间之间的间隔。
测试结果
在“延迟”性能的测试中,对每个运行的延迟统计是从Aleri RMDS适配器读入订单事件即模拟的市场数据输入开始一直到订阅客户从汇总的订单读出事件为止(代表了最长的流路径)。它模拟了客户在由不断进入的市场输入事件所触发的汇总订单变化过程中对延迟监控的体验。
对于“吞吐量”性能的测试,则是通过在两个5 分钟的运行进程中,应用能够模拟实时市场数据动态过程(如微‐突发)的STAC 工具对实际的市场数据进行回放来评测每个运行过程的吞吐率。
通过在实际、实时交易状态下的测试,STAC得出了以下测试结果:
首先,在基于4 核配置的基准测试中,通过连续的订单事件吞吐率评估端对端的延迟,在20K/秒的增量下,延迟为20K/秒到180K/秒。而在第二个基于6 核配置的集中测试中,在20K/秒的增量下,吞吐率从20K/秒到300K/秒。平均延迟不超过大约1.5毫秒,这一数据再次印证了Sybase Aleri Streaming “拥有最小延迟”的超凡性能。
其次,从有关吞吐量的相应测试数据可以很明显地看出,在处理器核的数量增加50%的情况下,吞吐量增加了67%,这证明了Aleri 对多核架构的扩展能力。
这一测试不仅再次向业界展示了Sybase Aleri Streaming Platform的超凡性能,也使其成为目前业界唯一一家经过第三方性能基准测试的CEP平台。未来,相信Sybase复杂事件处理(CEP)平台将会帮助更多的企业最大化地实现更深层次的分析,促进全球市场的交易决策并成功管控运营风险。