Exadata上另一个聪明的软件设计是实现了storage index.
如果Exadata给你的印象就是有很强大的硬件,却不会利用传统的性能优化方法,比如索引,去加快查询速度的话,那么Storage Index的出现或许会改变你的这种观念。而且,storage index是完全自动化的,它甚至不需要人工的干涉就能工作得很好……
|
||||||
|
Exadata上另一个聪明的软件设计是实现了storage index. 下一个要出场的是HCC, Hybrid Columnar Compression. 目前它是Exadata上面才有的一个特性。 既然提到了Flash Cache,如果不提下对OLTP的提速好象会缺少点什么。对OLTP系统而言,缓存是一个极其重要的设计,不管是数据库节点上的内存上的Buffer Cache,还是存贮节点上的Flash Cache(Exadata),还有数据库节点上的Flash Cache(某些平台,如Linux)…… 准备写一系列的文章,专门分析下Exadata的架构。时间真过得很快,自从Exadata问世以来,一直围绕着它做各种各样的性能测试,从V1过渡到V2。Exadata在大踏步地前进着,我总认为,这应该是一个很优秀的产品,而我也相信时间会证明这一点的。 direct read是直接把数据块读到PGA的一种操作,在并行查询中这是唯一的模式。这明显地区别于非并行查询把数据块读到SGA的做法。读到SGA的目的主要是为了共享,这特别适用于OLTP场合。不过,与此同时,访问SGA会引入更多的latch等待,例如cache buffer chains, cache buffer lru等等。 在非并行查询中也可以使用direct read,可以通过一个隐含参数_serial_direct_read进行设置。 值得注意,_serial_direct_read对解析过程起作用,这意味着为了使_serial_direct_read对当前运行中的SQL起作用,我们必须先flush当前的shared_pool。 11g中,Oracle有了一个自适应的算法决定是否对serial execution启用direct read。不过,这是在运行时才决定的。它取决于多个统计信息,例如当前buffer cache的大小,_small_table_threshold的大小,当前dirty blocks还占的比例等等。因此,即使在11g中_serial_direct_read的值为false,serial direct read也可能起作用。这个算法其实就叫做Adaptive Direct Read……. 前面分析的主要是Exadata如何高效地进行计算。通过在存贮结点加入数据处理能力,Exdata不仅大大地提升了处理性能,而且解决了以前的Oracle架构上可能存在的CPU和网络的瓶颈问题。 一个Database Machine有8个DB节点,14个Cell (存贮)结点。在V1版本中,一个Cell可以提供1GB/s的带宽,14个Cell节点总共能提供的带宽为14GB/s。对于8个DB节点,每个节点都是两个CPU,每个CPU 4 个Cores。所以一个Database Machine中DB节点总共有64个Cores。 8 DB Nodes + 14 Cell Nodes = Balanced System 这是一个经过实践证明过的平衡的一个配置。 下一个问题,Exadata如何解决CPU方面的瓶颈呢? 在Exadata之前,我想无非两种思路,第一在原来节点上用更多更强的CPU,第二采用更多的RAC节点。 不过在Exadata的架构中,CPU的瓶颈已经从基本上得到很大的缓解,这就是存贮节点上CPU处理能力的介入…… 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的最佳实践的一个最佳解决方案…… |
||||||
|
Copyright © 2012 OS与Oracle - All Rights Reserved |
||||||
最近评论