翻译文章:Amazon RDS和Xeround云数据库的详细比较

温馨提示:本文由厦门大学计算机系林子雨翻译自英文网站,转载请注明出处。

Amazon RDS和Xeround云数据库的详细比较

翻译:厦门大学计算机系林子雨(https://dblab.xmu.edu.cn/linziyu) 翻译时间:2012428日星期六

和通常的理解不同的是,Amazon RDS并不是一个真正弹性的云数据库服务,而是MySQL数据库在EC2平台上的实现,换句话说,它仅仅是一个运行在普通EC2机器实例上面的MySQL数据库。相反,Xeround是一个纯粹的云数据库,它提供了自动可扩展、弹性、高可用性,而且具备了DBaaS(Database-as-a-Service)的简单、自动和易用的特点。

Xeround和Amazon RDS之间的主要区别:

Xeround Amazon RDS
基于规则的自动可扩展,不需要停止服务 手工扩展,需要停止服务
根据实际使用情况付费 根据每个实例来付费,存在过度消费问题
从来不会失败,即使Amazon实例出现问题。Xeround提供了一个高可用性、自我修复的数据库,不需要对外停止服务。 不能保证不停止服务,包括计划中的和非计划中的。
无限的数据库尺寸 受到Amazon RDS实例尺寸的限制
数据库配置不会改变应用程序的代码
对于高负荷的MySQL应用而言,Xeround可以比RDS提供高出700%的吞吐量和1/10的延迟。

Xeround云数据库和Amazon RDS之间的详细比较:

Feature/Function Xeround Cloud DBaaS Amazon RDS MySQL on EC2
MySQL兼容性
可扩展性
  • 线性扩展和缩减
部分(读副本) 部分(读副本)
备注:Xeround云数据库的吞吐量和尺寸,可以实现线性的扩展和缩减,而且对读和写而言都是如此。相反,Amazon RDS只提供了部分读副本可扩展性,即通过增加更多的读副本来实现扩展,这对于读操作而言,可以实现更大的吞吐量,但是对于OLTP而言,并非如此。而且,这种方法会带来ACID兼容性问题。
  • 弹性
备注:Xeround云数据库可以实现基于负载的扩展和缩减,而不需要对应用做任何改变。
  • 自动可扩展
备注:Xeround云数据库提供了自动的吞吐量弹性扩展,可以根据负载的变化而动态扩展或缩减吞吐量,不需要停止服务,也不需要对应用做任何改变。
  • 应用透明性
备注:Xeround云数据库支持完整的应用透明性,在扩展的时候,不需要进行代码的变更。而在Amazon RDS中,在进行扩展的时候,应用必须负责对负载进行均衡。这就需要在代码中嵌入某种负载均衡机制。
  • 簇模型
对称(没有主从之分) 主/读副本 多主/主从
备注:对称簇模型,意味着所有的节点都是平等的。记录会在服务器之间平等地进行分发和复制。所有的副本都是主记录(master record)。
  • 写/更新操作
没有冲突 没有冲突 在多主方式中可能存在冲突
备注:当在多个节点上对相同的数据进行更新时,服务器之间的数据同步操作是异步执行的,会存在冲突,而且这个冲突不好解决。这会违反ACID四性。
  • 读并发性
对于Master可以并发,但是,对于读副本会有延迟 对于Master可以并发,但是,对于Slave会有延迟
备注:当采用异步复制技术时,在Master上执行的操作传播到其他副本上时,总会存在一定程度的延迟。这就使得读取副本时,会产生不一致性。
可用性和恢复性
  • 自我修复
备注:Xeround云数据库可以自动确定和隔离失败,并且可以自动从服务器失败中恢复,而不需要应用去感知到失败的发生。
  • 失效备援
可选 可选
备注:Xeround云数据库是分布式的,会维护数据的多个副本。因此,在失败时,数据库会利用现有的资源继续工作,不管这种失败是网络故障、硬件故障还是软件故障。新的资源会立即被分配去保证服务的可用性。
分布性
多分区
备注:Xeround云数据库可以分布在多个可用的区域,既可以保证每个分区之间的低延迟,也可以在某个分区发生失效时,由其他分区继续提供对外服务。
缓存
读/写 部分读 部分读
备注:Xeround对读和写都进行内存缓存。对于Amazon而言,只会对部分读进行数据缓存。
DBaaS&Web管理界面
备注:Xeround云数据库可以通过服务的方式获得,具备网页控制管理界面和自动配置功能。
基于使用的付费
备注:Xeround是基于实际使用情况来付费。当你需要时,数据库会自动扩展,而你不需要时,会自动收缩,你只需要为你实际使用的部分进行付费,不需要过度消费,也不需要为高峰期预留处理能力。

(厦门大学计算机系林子雨 翻译)