性能神化,聊聊的Exadata的“七宗罪”

  

  
  

  

  性能神化,聊聊的Exadata的“七宗罪”   

  

  

  

  什么是Exadata ?它跟国内的一些甲骨文数据库一体机品牌一样,是一套专为oracle数据库打造的软硬一体化的数据库平台,俗称“数据库一体机”,你可以简单理解成,它们是一个平台,只要把甲骨文数据库跑在这个平台上面,就可以跑的又快又稳又安全。   

  

  接下我来跟大家聊下的Exadata的七宗罪,用“罪”这个词当然是夸张的,主要的目的还是让大家了解到的Exadata那些可能还不为人知的一些缺陷,有些缺陷甚至是巨大的,甚至会让你感觉的Exadata的这些专有技术非常的鸡肋。   <强>   如果甲骨文公司可以看到这篇文章,能够对产品加以改进,那为写这篇文章花费的数个小时也就不白费了。      

  

  性能,吾将上下而求索   

  

  说“罪”之前,先说说性能的事,因为性能很重要。   

  
  

  自然和自然的法则在黑夜中隐藏;上帝说,让牛顿去吧!于是一切都被照的亮。   

     

  在性能方面很多人把Exadata神化了,Exadata不是牛顿。   

  

  造成这一局面,很大程度来自于甲骨文收服了大量的技术人员的心,这些人对Exadata的专有技术津津乐道。至于这些技术是不是容易应用,以及应用的条件,技术人员很多时候是不关心的,如果不经过训练,他们很多时候缺乏产品思维。   

  

  人类在历史上有三个问题一直未曾解决,饥饿,战争和瘟疫,未来简史的作者尤瓦尔。赫拉利说,人类直到21世纪,才总算解决了这三大难题。   

  

  数据库领域也一直被一个问题困扰着,那就是性能。特别是,互联网来了,性能的问题更是捉襟见肘。   

  

  很多老人的记忆里都有着吃不饱的经历,一旦浪费一些粮食,会遭遇巨大的心理谴责,不过根据我的观察,如果他们浪费了一些衣服(买了几乎不穿)这种谴责会非常少。其实不管是衣服和粮食,都是人类劳动的产物,本质没有任何区别,都不应该浪费。   

  

  性能犹如粮食,在数据库的历史上,一直就不够用,当年在阿里从事应用DBA的那会儿,数据库都是要精细化调优的。到了现在,借助于技术进步,各种高性能的架构其实已经让性能不成为问题了,但是,还是会发现,这种担心性能不够的心理还在影响着非常多的人。   

  

  此外,用户特别在意性能还有其他的一些原因,也一并列在这里:   

  
      <李>   

      性能指标好量化。性能作为一个好度量的指标,用户容易把各个供应商的产品区分开。就像我们的高考一样,它的本质目的并不是为了培养人才,而是为了区分人才,通过一个非常简单的标准也就是分数把人区分开。性能的道理也是一样的,它非容易测量。当然,我自己不是非常认可这种区分的方法,对于产品的选择,性能只是一个小的方面,就像你选择一个车,不能只看跑得快不快,你一定还关注它的内饰、安全性等等因素。   

      李   <李>   

      性能如果是无限的,那么就可以充分解放业务的想象力。某证券的涨乐财富通的应用可以做到5秒自动刷新账户信息,要知道每秒有几百万客户在线,这个在传统的埃克斯波特学院架构下是不可想象的,有了数据库一体机,就可以释放业务的想象力。   

      李   
  

  Exadata第一罪,第一杀手锏功能无法在真实环境中落地   

  

  那么的Exadata的性能怎么样呢?花开两朵,各表一枝。   

  
  OLTP,杀手锏毫无用处   
  

  在OLTP方面,相对于国产的数据库一体机品牌,Exadata并没有优势。主要都是通过利用SSD,以及高效的存储层协议来最大程度提高IOPS,降低IO延迟,毕竟对于OLTP系统延迟是关键。对于IOPS来说,IOPS的值越大,越能保证并发量。这里还需要提一下serversan,传统的集中式存储,机头控制器还有存储的前端口很容易成为性能瓶颈,但是一体机都是使用的serversan,相当于每一个serversan的节点都是一个个可以单独提供动力的节点,保证了IOPS和带宽的可扩展性。可以把集中式存储想象成绿皮火车,火车跑得快全靠车头带,而serversan是动车,每个动车组都单独提供动力。   

  

  可能有Exadata的技术极客会提到Exadata的RDS协议,这个协议是用来集群间传递数据块的,那什么时候需要传递数据块?在多个节点都需要修改这个块时,所以如果去设定一些极端场景,例如多个集群节点对少量的热点数据频繁做更新,那么数据块需要不断的在集群间传递,这种极端场景下,RDS协议可能会比IPoIB协议会有优势,例如用HammerDB或者Swingbench这种压测工具去做性能测试把压力开到最大(CPU跑满),两者可能会有5%左右的差异.RDS并不是银弹,锦上添花而已。   

性能神化,聊聊的Exadata的“七宗罪”