云计算时代的MySQL-Clustrix Sierra分布式数据库系统

Sina WeiboBaiduLinkedInQQGoogle+RedditEvernote分享




本文是2010-5-12号的《最新云计算信息》,而且也是第一期,希望大家能喜欢。本文部分参考了工作在Amazon的顶级云计算专家James Hamilton(长发飘逸男)的一篇博文,如果大家对英语不感冒的话,可以看一下

 

在这个云计算的时代,网络将会覆盖社会的方方面面,但这也导致了不论是商务网站还是社交网站都承受着与日剧增的负载。在业界,有些技术实力很强的公司都开始尝试NoSQL的解决方案来帮助他们解决这方面问题,但是对大多数互联网企业而言,因为技术和学习难度等原因,他们不得不继续使用着传统的关系型数据库,比如MySQL,并且做着各种细小的优化来使其数据库勉强支撑庞大的流量。就在这个月Clustrix推出了能兼容MySQL的Sierra分布式数据库系统来帮助那些对NoSQL不感冒的企业来应对日益增长的流量。接下来,让我们一探究竟:

 

简介

Clustrix Sierra是一款分布式数据库系统,它既支持最简单的Key-Value格式,又兼容MySQL的功能,同时能非常简单通过添加新的节点来存储数十亿条数据。它的功能主要体现在下面这四个方面:

  1. 扩展和高可用性方面:只要添加一个节点,就能在吞吐量等性能指标上实现线性提升,最多能扩展到几百个节点。
  2. 速度方面:其解决传统数据库写数据慢的情况,并保证了读数据的速度。
  3. 兼容MySQL:其支持MySQL所有功能,并支持ACID(Atomicity, Consistency, Isolation, Durability),而且在迁移现有MySQL方面非常方便。
  4. 在线修改和扩展方面:不仅能在生产环境中动态添加新的节点,而且能在在线的情况下修改数据库的表结构。

技术特点

主要有五个方面:

  1. 模拟了MySQL的通信协议,也就是说能让使用它的应用能够沿用之前MySQL的客户端,比如JDBC等。
  2. 以1U大小的器件(Hardware Appliance)形式交付给用户,并内置NVRAM和硬盘等硬件设备。这种器件模式不仅在安装和使用方面非常简单,而且能支持一定程度的硬件优化,同时这种器件模式也被IBM WebSphere所推崇,并推出DataPower系列来支撑企业SOA环境的运作。
  3. 支持Infniband Interconnect(互联),虽然在支持RDMA(Remote Direct Memory Access)协议方面10G以太网比Infniband更经济,但是10G以太网在这方面还需要两年才能成熟,所以现在使用Infniband来支持RDMA协议是一个不错的选择。
  4. 采用Shared-Nothing的架构,这种架构不仅无需使用那些昂贵的共享存储,而且避免由于使用分布式锁管理程序而导致扩展瓶颈。
  5. 支持在线执行部分DDL操作,比如,修改数据库表或者添加一个列(column)。

硬件组成

每个Clustrix Sierra数据库器件主要包括下面这些硬件设备:

  1. 两个四核CPU(总共八核),
  2. 32G内存。
  3. 7个160GB的SSD硬盘。
  4. 两个20G的Infiniband后台互联(back-end interconnect),应该可以理解为类似于网卡的东西。
  5. 两个1G的以太网卡。
  6. 有电池支持的NVRAM卡。

比较

在关系型数据库集群方面,主要有Shared-Everything和Shared-Nothing这两种架构,著名的Oracle RAC和新近的IBM DB2 PureScale都属于Shared-Everything架构,而Clustrix Sierra和IBM DB2 DPF(DB Partition Feature)则属于Shared-Nothing架构。

运作机制

首先,Clustrix Sierra系统主要有三个核心模块组成:其一是Distributed Query Compiler(分布式查询编译器)。其二是分布式Shared-Nothing执行引擎(Execution Engine)。其三是支持同步事务(ransactional concurrent)的存储引擎(Storage Engine)。而且整个系统通过整合这三大核心模块来实现其主要功能。

接着,讲一下其运行流程:当很多查询发送至Front-end Network,系统会通过Database Personality Module来将这些查询翻译成系统内部的格式,接着系统会通过上面提到的Distributed Query Compiler和执行引擎以并行的方式执行这些查询,并通过存储引擎在SSD上来存储数据,在NVRAM上存储日志方面的修改,最后通过Infiniband来在多个节点之间进行通信和同步。下面是Clustrix Sierra数据库架构图:

Clustrix DB Architecture

图1. Clustrix Sierra数据库架构图

 

问题

问题主要集中三个方面:

  1. Oracle的态度: 由于Oracle对MySQL准备采取的策略现在还不是很明朗,所以虽然现在Oracle对Clustrix没有什么异议,但是在今后不能排除提出意见的可能性。
  2. 技术难度:连在数据库方面有几十年经验,并设计过DB2和MS SQL Server的James Hamilton都认为实现类似于Clustrix是极度艰难(incredibly hard)的,可以想见这“海”有多深,希望Clustrix团队能够在这“海”上驰骋。
  3. 缺乏实际案例:虽然根据现有官方资料,Clustrix Sierra数据库的确非常吸引人,但是因为到现在为止它还没有在恶劣的生产环境下长时间的工作过,所以无法确定它到底是货真价实,还是言过其实。

 

总结

之前谈到分布式数据库,大家肯定联想到在企业界得到广泛使用的Oracle RAC和IBM DB2 for z/OS等,但是在云计算的时代,由于经济等因素,使得类似Clustrix数据库这样的基于廉价硬件并可扩展的分布式系统也成为了一种不错的选择,那么在最后引用华为首席DBA李强先生的一段话作为结尾:“关键性业务系统中,除了考虑长数据库的在OLAP和OLTP方面的高性能、可扩展性之外,还要考虑高可靠性以及成本问题,成本不仅仅包括购买软硬件的开销,还要考虑开发工作量和后期维护等等,基于廉价硬件搭建可扩展的集群系统是大势所趋”。

下篇《最新云计算信息》,将关注EMC刚在EMC World发布的VPLEX系统,敬请期待。

参考资料:

  1. Clustrix Database Appliance
  2. 数据库创业公司Clustrix推MySQL杀手解决方案
  3. 专访华为DBA李强:数据库架构设计与选型
  4. CLX 4000 Series
  5. Clustrix: A New Approach
  6. Shared nothing architecture
(1个打分, 平均:5.00 / 5)

雁过留声

“云计算时代的MySQL-Clustrix Sierra分布式数据库系统”有8个回复

  1. manjusri 于 2010-05-14 11:43 上午

    海量数据处理方案无论对于internet企业还是大型企业,都极其重要,数据库在解决大量容量、低成本、低冗余、高可靠方面的难度,比网络难
    NVRAM是无源的吧,怎么还要“有电池支持的NVRAM卡”?

  2. ikewu83 于 2010-05-14 4:50 下午

    呵呵,在英文的产品介绍上写的是“Battery-backed NVRAM card”,我也不确信翻译成“有电池支持的NVRAM卡”是否正确?如果有哪位牛人比较熟这块,那么请指正!

  3. dropletzhu 于 2010-05-14 7:47 下午

    没找到Battery-backed啊,在哪里说的?分布式数据库和p2p哪个更好一点,对分布式解决方案有很多,不知道这个用的是哪一个?

  4. manjusri 于 2010-05-14 11:50 下午

    对硬件知之甚少,NVRAM应该大多数都是这种实现方式:CMOS SRAM + primary lithium battery (replaceable)+ secondary battery (fixed/charging type)

  5. ikewu83 于 2010-05-14 11:59 下午

    to dropletzhu:
    Battery-backed在这里
    http://www.clustrix.com/products/clx-4000-series/
    好像p2p没有数据库实现。
    这个采用Shared-Nothing架构!

  6. dropletzhu 于 2010-05-15 7:42 上午

    技术都是相通的,share-nothing,我的理解就是没有master server,这个和p2p比较像。

  7. 邓侃 于 2010-05-16 4:30 上午

    能不能搞个山寨版Clustrix Sierra?

    弄几个便宜的刀片Servers,组装成几个预设的标准配置,例如存储空间多少,并发用户多少等等。

    不同配置,价格不同。但是低配的今后可以扩容到高配。

  8. ikewu83 于 2010-05-16 5:18 下午

    @邓侃:
    其实现在Clustrix Sierra只是刚推出而言,还不知道它到底什么情况。
    山寨的话,其实有一定技术难度,需要多个非常顶尖的工程师!