我觉得这句话很有道理……
Haeinsa
韩国人如何实现大数据的事务
带墨镜的番茄哥
文档修订记录
第 2 页共16 页
目录
文档修订记录 (2)
1.前言 (4)
1.1.文档说明 (4)
1.2.目标读者 (4)
2.Haeinsa (5)
2.1.Haeinsa的业务背景 (5)
2.2.Haeinsa的特性 (6)
2.3.Haeinsa的设计原则 (6)
2.3.1.不改动Hbase (7)
2.3.2.乐观的并发控制Optimistic concurrency control (7)
2.3.3.Lock (7)
2.3.4.两阶段提交 (8)
2.4.事务实现 (8)
2.4.1.样例代码 (8)
2.4.2.读操作 (8)
2.4.3.写操作 (9)
2.4.4.事务的例子 (9)
2.4.5.Lock (13)
2.4.6.提交COMMIT (14)
2.4.7.宕机的处理 (15)
2.5.Haeinsa的局限 (16)
3.总结 (16)
1. 前言
1.1. 文档说明
事务性是一个共性的问题,在大数据的发展中,HBase已经有了不少事务框架,让我等有志青年来看看几个典型的框架及其实现原理吧。
Haeinsa,海印寺,是韩国的一座庙。
画外音飘过,听说,韩国的有些和尚是可以结婚的……
没错,这个韩国公司VCNC出品的框架就叫做Haeinsa。
1.2. 目标读者
架构师、程序员、测试人员、热爱妹子的猥琐大叔、看金鱼的怪叔叔、不可救药的腐女、屌丝、宅基、各种非人类、外星生命体等爱好大数据的、热衷于为大数据生态环境卖萌的优秀青年。
建议各位先去了解一下Percolator,再来看Haeinsa会比较容易理解。
2. Haeinsa
Haeinsa是HBase上的一个事务框架,对HBase的跨行跨表操作提供强ACID的支持。
说是一个框架,其实Haeinsa只是一个客户端jar,很轻巧,它不需要一个复杂的集支持。唯一要做的就是在HBase表中增加一个Lock列。它的API也简单易用,很容易上手。
Haeinsa框架的学习使用成本基本为零,可以在极短的时间内投入到生产。
目前Haeinsa已经在Between中投入使用。
Between一家韩国公司开发的,一个专门给夫妻情侣使用的移动APP,后台使用Haeinsa来保证HBase的事务性。现在Between每天处理超过3亿次事务。
所以,开发Haeinsa的韩国程序猿十分自豪,在Haeinsa介绍的pdf中,颇有指点江山睥睨自雄的气势:
hbase官方文档●谷歌实现了大数据的ACID,但是只能用在谷歌封闭式系统中。
●其它的HBase事务支持系统,没有良好的扩展性,规模越大,性能就跟不上,而且没有大
规模地在生产环境上验证。
在我看来,Haeinsa确实有牛逼的底气,但它的简单易用也是牺牲了一些特性来获得的,比如不支持长事务。
题外话:在我研究Hbase事务支持的时候,发现一个有趣的事情,基本上每个框架或系统的作者都会感谢谷歌给他带来了启发,然后开始鄙视其它同行、鼓吹自己。
2.1. Haeinsa的业务背景
要研究一个系统,最好从它的业务背景开始。
Haeinsa的程序员没有说的很详细,简单提了一下Haeinsa在Between这个应用中使用。
Between应用的具体用途是什么呢?
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论