花钱的年华

--今天开始成为主站

用户操作
[即时聊天] [发私信] [加为好友]
江南白衣ID:calvinxiu
707589次访问,排名53,好友0人,关注者54人。
calvinxiu的文章
原创 161 篇
翻译 0 篇
转载 0 篇
评论 677 篇
江南白衣的公告

肖桦,江南白衣,
开源项目SpringSide
春天的旁边
发起者

最近评论
liseo1:
网络营销策划 网络公关 品牌管理 搜索引擎公关 搜索引擎排名 网站优化 软文发布 QQ:441843869
工业门
afd:adgfdahfdah
dsfahgfgjhkj
jfrjunbcbxzx,mbbu
afd:adgfdahfdah
dsfahgfgjhkj
jfrjunbcbxzx,mbbu
afd:adgfdahfdah
dsfahgfgjhkj
jfrjunbcbxzx,mbbu
afd:adgfdahfdah
dsfahgfgjhkj
jfrjunbcbxzx,mbbu
文章分类
    收藏
      相册
      Blog用图
      Friends
      @_@
      Anders小明
      buaawhl
      cac
      canonical
      cctvx1
      david.turing
      femto
      g9
      JohnsonQu
      Michael Chen
      Raimundox
      robbin
      SimonLei
      totodo
      wuyu
      周爱民
      孟岩
      差沙
      庄表伟
      落魄的程序员
      透明
      郁也风
      铁手
      银狐999
      飞云小侠
      存档
      订阅我的博客
      XML聚合  FeedSky
      订阅到鲜果
      订阅到Google
      订阅到抓虾
      订阅到BlogLines
      订阅到Yahoo
      订阅到GouGou
      订阅到飞鸽
      订阅到Rojo
      订阅到newsgator
      订阅到netvibes

      原创 高性能大吞吐量系统中Oracle与Bea旗下的两支奇兵收藏

      新一篇: 架构师书单 2nd Edition | 旧一篇: 架构师核心技能养成计划

         在那些开口闭口就是多少TPS(Transaction per Second)的系统里,Oracle  TimesTen内存数据库与BEA的Weblogic RealTime算是两支奇兵。

      一、Oracle TimesTen
             
             Oracle TimesTen是Oracle收购的一款内存数据库。Oracle的SQL无论如何打生打死的优化,始终逃不开两个性能的瓶颈:
              1.读取硬盘。
             虽然大家一般都开了几G内存作缓存,但你毕竟不能编程控制把哪些数据载入缓存,更重要是数据库的基本算法设计是按读取硬盘为前提。而内存数据库是天生就完全基于内存的。
        
              2. C/S模式的进程间通信。
              无论是管道,本地Socket还是远程Socket形式的进程间通信(IPC),性能消耗都不能无视,所以我们经常要注意数据库交互的往返次数。而TimesTen直接开在共享内存中,Client通过Driver直接读取共享内存,快呀。

              以上两点天然优势是众多内存数据库都拥有的,如做了好多电信生意的Altibase,如ExtremeDB,但Oracle TimesTen好在被Oracle收购了,与Oracle能够很好的互联。
              内存数据库可以将自己持久化到硬盘文件,但在很多场景中,它只负责部分数据的读缓存,实际的整体业务数据仍在统一的大数据库里。这时候TimesTen就显示出无比的社会主义优越性:
              1. 启动时快速的从Oracle载入部分表的部分数据(用SQL配置)到TimesTen,速度比自己用程序手工查询再放入内存数据库要快得多。

              2. 当Oracle的数据发生变化,会自动增量同步到TimesTen,这个解放了好多生产力阿。以往处理同步只有两条路子走:
                一是业务系统在更改数据的同时发送JMS消息,由负责维护内存数据库的进程侦听这条消息。
                二是利用Oracle SQLJ功能,设Trigger调度由Java写的存储过程,将变动的消息发出去。

      二、Weblogic Real Time Core Edition

              Weblogic 提供实时环境所要求的快速、可预测的响应时间与无暂停的应用平台,benchmark 应用最多只有30ms的延迟。
               所谓实时其实分两种
               1:硬实时:定义了一个系统,其中所有可调度和不可调度的实体的执行都要遵守规定的完成时间约束。其它时间约束(也称为“上界”)可能也必须满足。实体的行为和运行时间是可预测的、确定的。
               2:软实时:表示不属于硬实时的所有其它实时情况。所有时间约束都是软性的。基本上,这就意味着所有可调度和不可调度的实体都可能被优化以便以最佳状态执行,但是执行时间不可预测。 
              
               WLRT明显属于软实时,它由几个部分组成:
               1. Weblogic Express Basic 
                   A webserver with JDBC, JSP, Servlets, and RMI, but not EJB, JCA, JMS, or XA Transactions。

               2. JRocket
                   使用确定性垃圾收集(DetGC)的高性能JVM。DetGC是整个WLRT的核心卖点。垃圾收集对Java性能有着很大的影响。在full垃圾收集期间,Java进程会完全停止。确定性垃圾收集避免了其他虚拟机中无法预测的暂停时间,从而支持最短的事务延迟。

               3. Weblogic Spring Framework
                   不要笑啊,就是Spring了,使用POJO作为EJB的替代方案。配合Weblogic Basic Express,不知道Tomcat+Spring与它的差距有多大。

               另外,看这篇WebLogic Real Time 1.0“Trader”应用程序性能分析http://dev2dev.bea.com.cn/techdoc/20060620820.html,可以看到金融实时系统里全用JMS,而不是Corba,EJB或者Web Service,即使是Request/Response的形式,而不是那种典型的异步调用,照样JMS不误。其中询价这种操作还取消了持久化消息的步骤。 

      发表于 @ 2007年02月27日 11:25:00|评论(loading...)|编辑

      新一篇: 架构师书单 2nd Edition | 旧一篇: 架构师核心技能养成计划

      评论

      #xumingming64398966 发表于2007-03-01 13:18:27  IP: 222.66.123.*
      关注SpringSide有一段时间了,遇到了很多问题,去google搜到的相关的信息几乎都是出自
      http://www.springside.org.cn,
      但是论坛上的问题太多的没人回答,许多问题在我看来如果是开发人员回答应该是不难的,但是就是很少有人回答,要不就说什么"配置文件错误"之类的话,几乎没有帮助.
      你博客好像写的蛮多的,所以我想您可不可以哪怕少写一篇博客,多去解答解答论坛上的问题,比如下面这个:我遇到很久了,就是没人回答。
      http://forum.springside.org.cn/viewthread.php?tid=1545&extra=page%3D1
      #calvinxiu 发表于2007-03-01 14:11:51  IP: 10.17.35.*
      :)
      发表评论  


      登录
      Csdn Blog version 3.1a
      Copyright © 江南白衣