Clustrix Sierra关系数据库集群

标签: clustrix sierra 关系 | 发表时间:2011-08-29 09:58 | 作者:风轻扬 2sin18
出处:http://wangyuanzju.blog.163.com
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

相关 [clustrix sierra 关系] 推荐:

Clustrix Sierra关系数据库集群

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

有关系,没关系?

- jinn - 左岸读书_blog
我们常说「有关系就没关系,没关系就有关系. 这话一点都没错,而且何止中国人. 不信你看看,连好莱坞都有多少演员,是圈里人的孩子. 原因很简单:第一,近水楼台先得月;第二,你有孩子,我也有,今天我照顾你的,明天你照顾我的,这关系可以利益交换. 政军商界就更甭说了,除了提拔自家人,将来可以利益交换,而且出自同一个圈子,比较安全无虞,用自己人总比用外面来的安全.

互动与关系

- 韩叙 - 坏脾气的小肥
两周前夜观产品,看了美丽说与蘑菇街,短暂观察的结论是美丽说展示强而互动弱,蘑菇街反之. 此外,用人妖号注册美丽说之后,很快有一个人来加我好友,而这时的我无头像,无昵称,无发言,典型的三无人士. 再看加我的这个人,她的好友95%都是三无人士,猜测为运营人员,帮助新人融入社区. 由此引申开来,2.0风格的内容产品有两颗脆弱的蛋蛋,第一是增强互动,第二是发展关系.

关系是王道

- 品味视界 - FT中文网_英国《金融时报》(Financial Times)
马克西米利安•约翰逊为英国《金融时报》撰稿. 在研究了所有我可能攻读的学位后,我决定去读MBA. 有一次在北京旅行时,我发现清华大学提供清华-麻省理工(MIT)国际MBA课程,英文授课. 如今,我已在北京为英国金属和矿产交易公司英国五金资源(Wogen Resources)工作了两年. 毕业后,我去过很多地方,从山东到新疆,从广东到内蒙古,参与过很多谈判.

Linux进程关系

- - 博客园_首页
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明. Linux的进程相互之间有一定的关系. 比如说,在 Linux进程基础中,我们看到,每个进程都有父进程,而所有的进程以init进程为根,形成一个树状结构. 我们在这里讲解进程组和会话,以便以更加丰富的方式了管理进程.

狗与人类的关系

- apple - 玩意儿
狗一向都被视为人类最好的朋友,在某些家庭而言,狗也不再是宠物,而是自身的家庭成员. 这里是一系列人与狗感情上动人的瞬间. 本文原始链接:http://www.cngadget.cn/dogs-and-humans.html. Drawbone:可爱,狗骨头水彩笔.

JPA 实现继承关系

- - ITeye博客
JPA支持继承关系,使开发者可以利用继承的思想建模.        有一个实体Person,他是一个抽象实体,他有两个子实体:Man,Woman.        先写Person类:. //@DiscriminatorColumn(name="tableName")可选. 注意,对于抽象父类,必须设置两个注释:.

随谈社交关系

- - 互联网的那点事
社交关系按用户之间联系及互动频率分强关系和弱关系. 强关系社交网络中的关系以维系为主,特点是:. 一是因为强关系是双方的,所以存在匹配的情况,匹配比不匹配,连接的可能性就更小,二是互动频率强,而一个人的精力有限,所以是现实导致的结果;. 2:优质内容与唠叨型内容并存:互动频率强,关系更密切,更了解彼此,更信任,才会更宽容.

UML中的六大关系

- - CSDN博客推荐文章
       通过不断的学习结合机房收费系统绘制UML图,整个画图的过程中深刻体会到其核心部分还是理解事物之间的关系,总结六大关系来深入学习,主要关系有六种:继承、实现、依赖、组合、聚合、组合.         继承(泛华)关系(Generalization).         继承关系是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力,继承是类与类或者接口与接口之间最常见的关系;在Java中此类关系通过关键字extends明确标识,在设计时一般没有争议性.