技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> MySQL --> Clustrix Sierra关系数据库集群

Clustrix Sierra关系数据库集群

浏览:2072次  出处信息
Clustrix的Sierra数据库集群引擎是一个share-nothing架构的可伸缩关系数据库集群。官方宣传的非常诱人,说是功能像集中式关系数据库一样强大,可伸缩性超强,不需要规划什么数据分区,可用性也非常高。简直是集SQL和NoSQL的优点于一身。据说最近阿里云的RDS服务很可能是基于这个,因此仔细去了解了一下,发现架构上属于软硬一体化的路子,感觉架构上还是有些问题,对硬件的要求也不低。

    Sierra前端采用MySQL协议,但本身跟MySQL没有任何关系。系统是一层架构,每个节点既负责处理逻辑,又负责数据存储,没有做处理和存储分层。

    表数据根据某些可指定的属性或属性组合Hash/Range分区划分为slice。slice有多个复本保证可靠性。没有专门的主复本机或从复本机,每个节点都可以存储任意复本。slice的数目与表大小有关,太大时分裂,也可以由用户来设slice的数量。slice可以在集群中在线移来移去,新节点上线时分配一些slice给它。每个slice有个主复本,只有主复本处理读操作并有缓存,写操作要更新所有复本。索引是一张内部的独立的表,即全局索引,根据索引键值分区。没有局部索引。全局索引的优点是方便支持唯一性和外键。

    每个节点上都有分区信息,查询提交到任意一个节点,Database Personality Module负责将查询分解路由到多个节点并发执行。简单操作直接定位一个节点处理就行了,可伸缩性应该非常不错。复杂查询尽可能的将操作下推给数据所在节点,减少节点间交互。

    并发控制使用MVCC,保证事务ACID。读操作不加锁,不会被阻塞。并发控制只在本地做,不需要全局锁,当然更新时要用原子提交。比较麻烦的问题是更新的性能问题。所有更新都是分布式的,至少要更新多个复本,还要更新多个(全局)索引,每个索引都有多个复本,这个问题听上去很夸张。Clustrix为了搞定这个问题,使用了优化的Paxos协议,但更重要的是节点之间要用两路20Gb的Infiniband来互联,还得用带电支持的NVRAM,这样才能保证更新的吞吐率和提交时的响应时间。

    Clustrix不提供单独的软件,要用还得用它们的专有数据库服务器,网络设备也得配套。目前有4100和4110两种服务器,都是1U,4核CPU,内存为24/48G,7块80/160G SSD(存数据),1块500G SATA(估计是系统盘),两路20Gb Infiniband(节点间互联及数据迁移专用),4块千兆网卡,1G NVRAM。NVRAM不知道是带电支持的DRAM还是PCM。

    看完了架构,我觉得这东西还是有一些缺点。首先从配置可以看出来这玩意挺贵的,存储全用SSD,还要NVRAM和Infiniband。其次没有多表共享的分区策略,这使得联接操作基本上都要分布式处理。第三没有局部索引,使得全局索引的更新对硬件性能的要求非常高。设计中的有些选择总觉得值得怀疑,比如既然非主复本是不可读的,为什么要用原子提交保证一致性,应该异步去更新就行了。

    用了这么好的硬件,它的吞吐率估计还不错,但现实中有大量应用是因为数据量太大而需要分布式扩展,并不要求极高的吞吐率,这样用Sierra性价比就划不来。Clustrix是去年5月推出这个产品,现在应用情况好像很一般,估计也是由于这些原因。

    最终小结一下:

    1、兼容MySQL协议,支持关系数据库几乎没有功能,包括索引唯一性和外键。

    2、share-nothing

    3、动态可伸缩,高可用

    4、单层架构,节点即负责处理也负责存储

    5、根据指定属性或属性组合的Hash/Range分区

    6、全局索引

    7、更新所有复本,只读主复本

    8、高端硬件,SSD、NVRAM、Infiniband

建议继续学习:

  1. HBase技术介绍    (阅读:6736)
  2. 解析Google集群资源管理系统Omega    (阅读:4577)
  3. 快速构建实时抓取集群    (阅读:4355)
  4. Hadoop集群间Hadoop方案探讨    (阅读:3738)
  5. “集群和负载均衡”的通俗版解释    (阅读:3482)
  6. storm集群的监控    (阅读:3377)
  7. “集群和负载均衡”在实战当中的运用技巧    (阅读:3335)
  8. Ubuntu下PostgreSQL数据库集群(PL/Proxy)配置方法    (阅读:2943)
  9. 服务器集群架构的设计与选择    (阅读:2905)
  10. MySQL Cluster集群探索与实践    (阅读:2803)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1