February 2012
M T W T F S S
« Aug    
 12345
6789101112
13141516171819
20212223242526
272829  

OLTP Performance Video – Concurrent Mid-Tier Connections and Trouble of Parsing

下一个Demo是关于OLTP性能的。与Retail Demo对应,这个Demo内部的名字叫做Connection Demo。Retail Demo主要展现的是数据仓库的性能,而Connection Demo展现的主要是OLTP的性能。这个Demo首次出现于2010年的OOW,往事不堪回首,那段时间我刚好在Oracle总部,刚好负责这个Demo的开发工作,怀念那段与bug做斗争的日子。

Exadata V2 架构分析 (6)

从第一篇开始到现在,Cell Flash Cache, Exadata Hybrid Columnar Compression, Storage Index轮番上场,加上V1版本里出现的Smart Scan,Infiniband等等,多少会给人以眼花缭乱的感觉。

最根本的一点,当然在于Exadata本身是一个balanced system。

不过,这些技术做为一个整体对实际应用会带来多大的好处呢?这不是一个很好回答的问题,当然也可以用一句话回答——具体问题具体分析……

Exadata V2 架构分析 (5)

Exadata上另一个聪明的软件设计是实现了storage index.
如果Exadata给你的印象就是有很强大的硬件,却不会利用传统的性能优化方法,比如索引,去加快查询速度的话,那么Storage Index的出现或许会改变你的这种观念。而且,storage index是完全自动化的,它甚至不需要人工的干涉就能工作得很好……

Exadata V2 架构分析 (4)

下一个要出场的是HCC, Hybrid Columnar Compression. 目前它是Exadata上面才有的一个特性。
在Exadata V2 架构分析 (1)中,曾提到“在软件设计上,还有另一个重头戏,它更是大大的利用起了存贮节点上的CPU处理能力,同时还能减少对带宽的争用”。Exadata的很多设计,或许从根本上讲,就在于充分利用起存贮节点上的处理能力,Smart Scan和这里所要提及的HCC,就是两个典型的代表了。HCC中文翻译过来或许就叫做混合列压缩,它是在单纯的行存贮和列存贮之间取得的一个折衷……

无奈的DBA

在检查客户的代码中,有时会深刻地感觉到原代码编写者在调试代码时的无奈。
这使我想起以前调试代码时的经历。一个SQL迟迟不返回结果,一小时过去了,又一小时过去了…… 于是,想了好多调优的方法,调整系统参数,为这个SQL建立很多Index,加上各种各样的Hint ……
于是,现在在代码中看到似曾相识的/*+ index(t_xx, idx_xx) */时,有时会发自内心的笑了,同时,轻巧地把里面的+号删掉了,我就让这些个hint不起作用,不强迫CBO走index了,结果当然是CBO选择了Hash Join,而不是原代码编写者指定的Nested Loop,于是,执行速度嗖一下上去了。
有另一个有趣的事情……

Exadata V2 架构分析 (3)

关于Cell Flash Cache,或许大家都余兴未尽,例如:
1. 一个真正的生产系统,真的需要1,000,000 IOPS吗?
2. Cell Flash Cache对用户带来的真正的好处在哪里?
假设用户的逻辑IOPS达到1,000,000 IO/s. buffer cache命中率为98%。则落在Cell Flash Cache中的IOPS为20,000次……

Exadata V2 架构分析 (2)

既然提到了Flash Cache,如果不提下对OLTP的提速好象会缺少点什么。对OLTP系统而言,缓存是一个极其重要的设计,不管是数据库节点上的内存上的Buffer Cache,还是存贮节点上的Flash Cache(Exadata),还有数据库节点上的Flash Cache(某些平台,如Linux)……

利用Instance Caging实现数据库服务器的资源整合

随着业务的发展,IT部门的服务器数量会越来越庞大,另一方面,这些服务器的利用率却得不到充分利用,于是,服务器的资源整合就被提上了议事日程,这方面的相应的解决方案一般有
Hardware Partitions,
O/S Workload Managers,
Virtualization
等等。
在11gR2中,Oracle也提供了一种简单有效的方法实现对服务器资源的整合,这就是Instance Caging技术……

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

前面分析的主要是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

这是一个经过实践证明过的平衡的一个配置。
记得今年9月底和阿里巴巴的DBA的一个关于Exadata的交流活动上,新成立的阿里云的同事也到场了。Exadata的架构引起了大家的共鸣,会后一个反应是,有人觉得Exadata与云计算有些异曲同工之妙。其实这也难怪,Exadata本来就是一个关注大规模并行计算的集群系统。特别是智能的存贮节点的引入,更使得每个存贮节点能够分担一个大计算里的一小部分,并且这些智能的存贮节点还有线性的可扩展性,当需要更好的性能时,只要简单地相应增加存贮节点和/或DB节点就可以实现了。这难怪不是一个“云计算”的例子吗……

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

下一个问题,Exadata如何解决CPU方面的瓶颈呢?

在Exadata之前,我想无非两种思路,第一在原来节点上用更多更强的CPU,第二采用更多的RAC节点。

不过在Exadata的架构中,CPU的瓶颈已经从基本上得到很大的缓解,这就是存贮节点上CPU处理能力的介入……