September 2010
M T W T F S S
« Jul    
 12345
6789101112
13141516171819
20212223242526
27282930  

Oracle Database未来的发展方向 – Exadata (1)

Kaya 发表于 os2ora.com

Exadata应该说代表着Oracle Database未来的发展方向。这句话可不是一句广告词,依我看来,Exadata完全有这个资格享受这种待遇。

一个计算系统,最主要的是追求CPU,IO,Network之间的平衡。使这些计算资源能充分地发挥潜能。比如说,如果IO的扫描能力能达到10GB/s,如果存贮阵列到计算结点的带宽不能达到10GB/s,那么IO的扫描能力就不能得到充分发挥。又比如,如果CPU每秒钟只能处理6GB/s的数据量,10GB/s的IO扫描能力也不能能到充分发挥。

对一个计算系统另一个重要的衡量指标是如何有效地利用计算资源,这同样地包括CPU,IO,Network。比如说,虽然Network可以达到每秒10GB/s的带宽,但如果这些数据都是无效的(与本次操作无关的其它业务数据),那么这只是对网络带宽的浪费。这就涉及到一个重要的课题:如何高效地利用最少的计算资源在最适当的时候对数据进行操作。

在原来Oracle Database的基础上,为满足上面提到的两个基本点,Exadata进行了富有创新的对基本设施的改进。举一个例子,当数据刚从存贮结点扫描出来时,马上进行初步的加工,把无效的数据丢弃。同时,Exadata推出了一个实现了CPU,IO,Network之间平衡的典型的机器配置。这可以说是Oracle为业界推出了自己在Oracle Database的最佳实践的一个最佳解决方案。

那么,Exadata如何解决Network方面的瓶颈呢?

首先是Infiniband的运用。一个Infiniband的端口一般可以提供2GB/s的流量,这是千兆网的16倍以上,4Gb的光纤网络的5倍以上。

同时,Exadata只进行有效数据的传输,最具体讲,则是Smart Scan 技术的运用。举个例子,对于下面这个查询

SELECT a.no,
       sum(case
             when a.KEY IN ('A') then
              a.score * 2
             else
              a.score * 5
           end) score
  FROM fact_table a
 GROUP BY a.no

下面是一个可能的结果,第一行的数据是没有启用Smart Scan技术的结果,第二行是启用了Smart Scan的结果。

Type Elapsed DB CPU% IO(GB/s) Storage CPU Storage Network(GB/s)
Non-Exadata 90s 57 7 1 7
Exadata 45s 81 11 30 4

第一行比较容易理解,存贮阵列/结点的数据以7GB/s的速度通过Storage network传输到DB结点进行,DB CPU的利用率达到了57%。

显而易见,这时瓶颈出现在存贮网络上,如果启用了Smart Scan,则Exadata会在存贮结点上首先对数据进行处理(存贮结点的CPU利用率为30%),然后把其中有效的数据以4GB/s的速度传输到DB结点进行处理,由于DB结点接收到更多的有效数据(90*7/45=14GB/s),CPU也变得更加繁忙起来(81%)。

Exadata在这里做了哪些事情呢?

1. 只进行有效数据的传输,这里,只传输表fact_table里三列的数据(no, key和score)

2. 解决了原来pre-Exadata可能碰到的网络瓶颈问题

3. 让DB结点的CPU更加高效的利用起来

5 comments to Oracle Database未来的发展方向 – Exadata (1)

  • Wu, Qihua

    为什么exadata的IO比pre-Exadata的IO大呢(11GB/s vs 7GB/s)?

    • admin

      因为对于pre-exadata碰到了存贮网络的瓶颈,这里的均值已经达到了7GB/s。也就是说,pre-exadata的IO带宽由于网络瓶颈的原因不能完全发挥出来。
      而在exadata的情形下,由于cell丢弃了大部分无用的数据,从而让存贮网络不再成为瓶颈.

  • neilkoo

    只进行有效数据的传输,这里,只传输表fact_table里三列的数据(no, key和score)

    那么数据从storage传送到db buffer cache里,怎么cache的呢? cache的是什么形式的数据?

  • 可以设想一下,为了和以前的block format兼容,应该会构造出一些虚拟块出来,从而使buffer cache能够以原有的方式统一地进行处理。

    呵,还好,这部分用户也不用进行干涉。

  • neilkoo

    呵呵 你说的这个好像有点问题哈 :)
    我看到D64772这篇文档的第1-18/1-22这两页似乎不是这样 :)
    这篇文档是
    oracle exadata storage server v2 overview seminar
    student guide

    另外 我有点问题想请教,是否方便透露一下OIC或者mail。

Leave a Reply

 

 

 

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">