技术开发 频道

阿里巴巴Web2.0经济型数据库平台解密

  体系架构介绍

  新的体系架构完全基于开放式的PC Server硬件,使用英特尔最新推出的基于Nehalem平台的服务器,配备高性能的SSD磁盘作为存储设备。从软件上看,新架构选择了Solaris作为操作系统,而MySQL则作为最终的数据库软件。同时为了解决数据的高可用和可扩展性两大难题,使用了阿里巴巴自主研发的数据库中间代理层软件(Cobar),使得基于新架构的数据库平台达到了非常理想的状态。

  人脉通系统的基本架构如下图所示:

  图表 1 阿里巴巴人脉通架构

  Cobar 通过数据的切分来解决数据库的扩展问题,不仅支持通过表名来进行垂直切分,还可以通过指定的“key”通过某种特定算法将同一个表中的数据水平切分到多个 MySQL 中,通过垂直和水平拆分,让数据库系统具有了几乎无限的扩展性。

  在高可用性方面,Cobar通过两种方式来实现了高可用需求。第一种方式是和MySQL 的 Replication 相结合,同时管理 Master 和 Slave 的连接,当现有 Master 不可用的时候,自动将所有写请求路由到原 Slave 上,在应用端几乎感受不到切换过程带来的任何异常。第二种方式则完全由 Cobar 自行实现,通过实时(或者异步)的将数据写入2个或者更多的数据库中,而且还支持同时写MySQL和Oracle数据库。在任何一个数据库出现异常的情况下,系统仍然可以继续提供完整的服务

  架构中新技术元素分析

   英特尔Nehalem平台。Nehalem处理器是英特尔公司2009年初推出的新一代处理器,基于45纳米改进的High-K技术,采用了全新的内存控制器嵌入和QPI互联的架构,增强的酷睿架构和动态智能能耗管理技术,其它还有一些平台技术比如PCIE 2.0,虚拟化IO支持的增强等。基于英特尔Nehalem处理器的服务器能达到高达60%的整形性能、超过100%的浮点性能以及超过200%的内存带宽性能提升。Nehalem 5500系列至强处理器的革命性,集中体现在了三个方面:

   智能高性能,可顺应不断变化的业务和应用要求自动优化性能。

   自动化高能效,可按比例调整工作负载的能耗使用情况,实现非常好的的性能功耗比,并减少运营成本。

   灵活强大的虚拟化支持:可在虚拟化环境中提供一流的性能和可管理性,提高IT基础设施的效率和利用率,降低总体拥有成本。

  图表 2 英特尔Nehalem系统架构

  同时,在数据库事务处理方面,Nehalem平台体现了强大的实力,最新的TPC-C评测结果创造了新的纪录(见图),表明了Nehalem在这方面无可比拟的进步。

  图表 3 Nehalem的TPCC性能

  英特尔SSD固态磁盘。I/O存储速度技术的发展一直落后于英特尔处理器的速度进步,伴随着摩尔定律的更迭,英特尔处理器在过去十几年性能得到了近百倍的提升,而传统硬盘的访问速度不过在1倍之内。两者之间不协调发展阻碍了某些应用,特别是需要大量数据访问应用对处理器的应用。英特尔在2008年适时推出基于Flash NAND技术的固态磁盘,内部10通道提供NATIVE的SATA访问接口。对传统硬盘最高能达到近百倍的IOPS提升。英特尔SSD改变的是I/O性能,提供了大量服务器架构革新的机会。

  图表 4 英特尔高性能SSD固态磁盘

  SSD可以非常完美地提供应用中对I/O的访问需求,提供了充分利用系统处理器的机会。结合Nehalem处理器,两者的配合使用,可以达到对类似数据库应用的比较充分的平衡高效解决方案。

  Solaris操作系统。免费、开放的Solaris操作系统是一个历史证明、业界领先的、可用于关键业务的操作系统,并能帮助客户节约时间和运营成本,它拥有很多其他操作系统所没有的,激动人心的技术特点来帮助提高系统的性能,可靠性,安全性和可管理性,这些重要的技术特点包括ZFS文件系统、DTrace动态跟踪技术、预测性自愈(Predictive Self Healing)以及用来提高系统利用率的Solaris容器。Intel和Sun公司从2007年开始建立了长期的合作关系,来自两个公司的工程师共同对x86平台上的Solaris操作系统进行了大量的性能优化,从而保证Solaris在x86平台上具有最优的性能表现。2009年5月才发布的Solaris 10 Update 7就对Intel最新发布的Nehalem平台进行了大量有针对性的优化工作,从而可以充分发挥出Nehalem平台的强大性能。

   高性能

  通过优化的调度器和内存分配优化(Memory Placement Optimization),Solaris操作系统可以充分发挥Intel的QPI(QuickPath Interconnect)技术的能力,从而在非内存访问一致性(NUMA)系统中给应用带来巨大的性能提升。Solaris操作系统还拥有一个杰出的线程模型,使得不管对于客户应用还是业界标准的测试程序,它都能提供超越其竞争对手的性能。尤其是对于Nehalem平台,优化过的Solaris操作系统能够充分发挥出该平台上多核和超线程的技术优势。

   可靠性

  通过预测性自愈技术,Solaris操作系统可以自动的诊断、隔离软硬件错误、并帮助系统自动恢复。FMA(Fault Management Architecture)是预测性自愈的重要组成部分,它通过接收相关的软硬件错误信息,自动诊断系统发生的问题。一旦诊断,FMA会对问题进行响应,比如停止相关硬件和服务,并建议相应的处理意见给系统管理员。预测性自愈技术可以大大降低Solaris系统宕机的概率。

   有效的能耗管理

  通过创新的能耗感知调度器(Power Aware Dispatcher),Solaris操作系统可以充分发挥Nehalem平台上能耗管理技术的优势,使得操作系统内核尽可能长时间待在C-state状态,在保证应用性能的前提下可以充分降低系统的能耗。

0
相关文章