作者:刘旭晖 Raymond 转载请注明出处

Email:colorant at 163.com

BLOG:http://blog.csdn.net/colorant/

== 是什么 ==

Wasp是阿里集团开发的基于HBase的一个数据库方案,其根本出发点是仿效Google的Megastore,“在HBase系统上不牺牲线性拓展能力的同时又能提供跨行事务、索引、SQL的功能”

== 架构原理 ==

其设计原理可以参考Megastore的相关论文,Wasp自己的相关设计使用文档可以在下面两个地方找到

https://github.com/alibaba/wasp/wiki/Chinese

http://wenku.baidu.com/view/c85f50d984254b35eefd345c.html

Megastore框架的核心思想是将数据分割成不同的EntityGroup,EntityGroup的数据备份是跨Datacenter存放的,在EntityGroup内部提供完整的ACID支持,保证数据写操作在所有数据中心的同步备份。

从具体实现上来看,Wasp并没有实现Megastore在跨Data Center方面的相关设计思想,仅仅只是采用了Entity Groups这样的方案来划分和管理数据。

Megastore在很多设计上都是围绕超大规模的数据的并发这样一个核心思想,比如Entity Groups的跨地域备份,读数据时非主从式的平等节点由Paxos动态选主的思想等等,都是为了保证读操作时的去中心化,以提高性能,而Wasp的架构方案更像HBase自身的方案,存在FMaster节点和FServer节点,通过Zookeeper确定当前FMaster,每个FServer管理若干Entity Groups,基本还是固定的主从中心式的。在Entity Group的使用上,Wasp则基本保留了Megastore的原始设计,通过RedoLog / MVCC / 跨Entity两阶段提交等方式解决并发读写的一致性问题

== 具体实现 ==

Wasp使用Alibaba自己的Druid项目实现SQL语法的解析,采用Netty和Protobuf构建服务器内部通讯协议框架。

Wasp的数据主要映射为HBase上的4类表,全局的 _FMETA_ 表记录所有Wasp表的meta信息,每个wasp表数据对应的entity表,相同Entitygroup Key管辖下所有表对应的Redolog表,以及索引表。

目前Wasp对SQL的语法支持还很简陋,以Query为例,仅支持Equal condition和索引上的Compare类Range condition。对Int等数据结构的支持,在比较操作中也存在bug,其它稍微复杂一点的SQL语法,如UDF,limit, having, group by, join, order by 等等操作目前都是没有的,当然这可能也取决于wasp的具体应用场合,或许只需要最简单的Equal和特定字段上的Range condition类的查询。

此外从SQL Plan实现的角度来看,似乎目前只是简单的转换为Get/Put/Delete等HBase操作,以HBase的角度来看是纯粹的客户端应用程序,没有使用任何Hbase RS端的能力,如filter,coprocessor等等加以优化,因此如果要实现Aggregation类的功能,在性能上大概会受到比较大的影响。

== 总结 ==

总体看来,Wasp并不能提供一个海量数据跨数据中心的解决方案,其规模受单个Hbase cluster所限,因此一定程度上来说和MegaStore所解决的目标问题还是有很大差距的,Wasp更多的是在HBase之上提供一个增强的方案,提供简单的SQL接口,和跨行事务的支持。如果光从SQLon HBase的角度上看,与SaleForce的Phoenix有很大的差距。但在跨行事务支持方面还是优于Phoenix的 (Phoenix的在事务方面的支持几乎完全取决于HBase自身的能力),代码功能等目前看来还不成熟,还要看将来的发展情况。当然,从代码框架,设计模式等方面上看,作者的编程功力还是很不错的,要学习。

我只是快速的了解了一下Wasp的实现,自身能力有限,所以不保证以上看法的准确性,如有偏差还请指正。

粗看WASP :Alibaba的海量数据分布式数据库探索相关推荐

  1. 主流关系型分布式数据库选型与设计实战

    一.数据库从集中式到分布式的演进 1.1.传统单机数据库 从狭义概念来讲,"数据库"就是OLTP场景的关系型单机数据库,诸如老牌的Oracle.DB2等商业数据库以及开源产品MyS ...

  2. 干货,分布式数据库在金融核心场景的落地实践|腾讯云数据库

    金融行业作为国民经济的命脉和枢纽,对底层数据库的能力要求在不断提高.具有高性能.可扩展.高可用等特性的分布式数据库是金融行业数字化转型的重要支撑. 金融企业如何在不同的应用场景下,做好分布式数据库的选 ...

  3. 《程序员》9月:视频直播技术实践 分布式数据库华山论剑

    本期<程序员>封面报道,带来了以下实践分享: 视频直播技术实践 视频直播服务如何平稳应对热门节目带来的瞬时大流量访问?提升直播体验的互动功能具体如何实现?手机与服务器端各有哪些技术难点?熊 ...

  4. 什么是分布式数据库?小学生都能看懂。

    自从互联网进入了 web2.0 时代以来,数据库作为核心的底层基础设施软件也经历了蓬勃的发展期,从早期的单机关系型数据库到NoSQL 再到如今的 NewSQL,数据库领域不管是技术还是场景都发生了巨大 ...

  5. 【演讲实录】分布式数据库海量数据存储和实时查询实现与应用

    节选自OSC深圳源创会 演讲速记 分享嘉宾:巨杉数据库技术总监   乔国治 巨杉数据库,核心产品是SequoiaDB巨杉数据库.是我们的团队完全从零开始研发的.巨杉数据库是商业数据库,同时我们本身也将 ...

  6. 【巨杉访谈】分布式数据库如何实现海量数据实时查询

    巨杉数据库高访问量.海量数据业务背后的基础系统架构是如何设计和优化的?分布式数据库是如何做到数据的透明水平.垂直拆分,实现海量数据实时查询的? 访谈实录 1.巨杉数据库作为国内第一款自主研发的 New ...

  7. php 分布式数据库查询,分布式数据库 · Thinkphp5.0完全开发手册 · 看云

    # 分布式数据库 ThinkPHP内置了分布式数据库的支持,包括主从式数据库的读写分离,但是分布式数据库必须是相同的数据库类型. 配置`database.deploy` 为1 可以采用分布式数据库支持 ...

  8. 分布式数据库中间件对比总结MyCat Cobar Sharding-jdbc

    分布式数据库中间件对比总结(1) 目前数据库中间件有很多,基本这些中间件在下都有了解和使用,各种中间件优缺点及使用场景也都有些心的.所以总结一个关于中间件比较的系列,希望可以对大家有帮助. 1. 什么 ...

  9. Spring Cloud Alibaba 高级特性 分布式事务:Alibaba Seata 如何实现分布式事务

    本讲咱们要解决分布式事务这一技术难题,这一讲咱们将介绍三方面内容: 讲解分布式事务的解决方案: 介绍 Alibaba Seata 分布式事务中间件: 分析 Seata 的 AT 模式实现原理. 分布式 ...

最新文章

  1. endnote修改正文中参考文献标注_请问endnote里,如何把正文中插入参考文献处的格式由数字转为(作者,年份)?感恩!...
  2. 一杯水怎么测试_一杯水就能鉴别翡翠真假的高招
  3. C++ puts函数 打印字符串很方便
  4. linux查看网卡硬件 lsw,无人值守网络安装Linux系统
  5. 开源.NET(C#、VB.NET、J#等)脚本执行引擎(利用CodeDOM)
  6. select样式调整
  7. linux 用命令安装软件,Linux安装软件的三种常用命令
  8. flash cs4 和 flex builder 联合开发
  9. FreeBSD安装MySQL
  10. android截屏方法是黑屏,Android截屏SurfaceView黑屏问题的解决办法
  11. centos安装stress安装失败_Linux压力测试软件Stress使用指南
  12. 项目开发过程中业务流程图的绘制
  13. html圣诞节网页制作,圣诞节快乐——为你的网页添加一个可爱的HTML5圣诞节雪人!...
  14. Linux(1)- 服务器核心知识、Linux入门、VMware与centeos安装、远程连接linux、linux基本命令使用...
  15. LMV324MTX单通道,双通道和四通道通用低电压轨至轨输出运算放大器TI
  16. P1119 灾后重建(基础Floyd原理的理解和运用)
  17. boot版本是什么 cent os_CentOS下载及版本选择-CentOS LiveCD、LiveDVD和BinDVD区别
  18. 你的语言模型有没有“无法预测的词”?
  19. win10卸载程序时提示找不到xxx.msi文件
  20. PTA基础题考点汇总

热门文章

  1. Fliqlo时钟Windows、IOS屏保
  2. java带图形用户的聊天_java:带有图形化界面,可以发送和接收的聊天工具
  3. 推荐本书《博赞学习技巧》
  4. 贫苦家庭与野生公有云之间的 WireGuard Mesh 组网策略
  5. 商标45类分类表明细表_2017商标分类表第45类商标明细
  6. 【调剂】欢迎加入中科院深圳先进技术研究院空间信息中心江老师课题组
  7. 【原创】岁月如歌 一款网易歌单生成pdf的软件
  8. IE高级技巧不完全手册
  9. MacBook苹果电脑绕过BootCamp安装Win10双系统
  10. 给校园招聘中应聘嵌入式程序员的几点建议