随笔分类 -  HBase

摘要:摘要:腾讯CKV,是腾讯自主研发的高性能、低延时、持久化、分布式KV存储服务。在腾讯的微信平台、开放平台、腾讯云、腾讯游戏和电商平台广泛使用,日访问量超过万亿次。本文将全面剖析CKV的实现原理和技术挑战。与Memcached和Redis等开源NoSQL相比,CKV具有以下优点。低成本:CKV利用数据冷热自动分离技术,将热数据存储在内存,冷数据存储在SSD中,从而大幅度降低成本,且保证99%以上的访问命中内存。而Memcached和Redis的数据都存储在内存中,成本是CKV的3倍。可扩展性强:CKV单表存储空间可以在1GB到1PB之间在线自动无损伸缩,业务基本无感知,适合各种规模的业务和业务的 阅读全文
posted @ 2014-03-27 13:52 D调的晨星 阅读(974) 评论(0) 推荐(0)
摘要:写代码流程分析文档把一些难理解的、重要的代码流程写成分析文档,按方法调用顺序排好,通常第一次分析时不可能完全理解透的,无法理解透的可以加TODO,也有可能会理解错的,这都是没关系的,代码分析通常看一遍是不能全理解透的,需要反复几次,一步步把分析文档完善。最好是把分析文档提交到svn中,免得丢失,还可以从这些历史记录中观察自己的整个分析过程。如果你好几个月不关注某个开源项目的源代码了,当再次需要研究代码时,分析文档是非常有用的,对照代码和分析文档可以让你快速恢复到当初对代码的理解水平,如果没有分析文档,通常又会浪费大量时间再重做一次。以下两个例子就是我在分析HBase的HMaster和HRegi 阅读全文
posted @ 2014-01-02 16:27 D调的晨星 阅读(874) 评论(0) 推荐(0)
摘要:HBase是基于hadoop的非关系分布式数据库,其存储的是按字典序排序的keyvalue块,与关系数据库相比,HBase具有以下特征: 1.分布式系统,集群规模可平行扩展。 2.解散事务,保证单行写的事务性。 3.日志写系统,不必做写时查找,写入效率较高。 4.表自动分区,提高访问的并行程度。 5.表内数据成kv形式,按字典序自动排序。 6.简单API,仅提供查找或扫描工作。 7.多版本kv,强一致性,增加延迟。综上所述,hbase的设计目的是为了廉价的存储和实时访问海量半结构化数据。 1.实时写入大量数据(日志写功能,多版本kv,minercompact,majorcomp... 阅读全文
posted @ 2013-06-17 14:47 D调的晨星 阅读(494) 评论(0) 推荐(0)
摘要:org.apache.zookeeper.ClientCnxn.java该类管理客户端到HBase集群的socket I/O所有需要通过socket发送的消息全部打包成Packet对象,然后放到ClentCnxn的outgoingQueue(LinkedList<Packet>)中,对outgoingQueue的操作需要同步控制。需要接受的消息也会被打包成Packet对象,放入pendingQueue(LinkedList<Packet>)中,等待一个答复。下面介绍一下设计的其他类及各类的使用方法及处理逻辑。(一)Packet.javastatic class Pack 阅读全文
posted @ 2012-10-09 19:18 D调的晨星 阅读(597) 评论(0) 推荐(0)
摘要:NoSQL架构实践(一)——以NoSQL为辅本文为凤凰网负责底层组的研发工作的孙立同学在InfoQ上发表的NoSQL系列文章之一,本文探讨了使用NoSQL作存储的几种典型模式,对NoSQL的实践及应用,具有很强的指导意义。前面《为什么要使用NoSQL》和《关系数据库还是NoSQL数据库》两篇从大体上介绍了为什么要用NoSQL,何时该用NoSQL。经常有朋友遇到困惑,看到NoSQL的介绍,觉得很好,但是却不知道如何正式用到自己的项目中。很大的原因就是思维固定在MySQL中了,他们问得最多的问题就是用了NoSQL,我如何做关系查询。那么接下来,我们看下怎么样在我们的系统中使用NoSQL。怎么样把N 阅读全文
posted @ 2012-09-27 11:09 D调的晨星 阅读(1209) 评论(0) 推荐(0)
摘要:(一)HTablePool介绍 HTablePool是HBase API中的重要类,可以通过HTablePool的getTable(String tableName)方法获得相应的HTable对象实体,用于进行对HBase表的增删改成等操作。一般情况下,客户端通过new 的方式来创建和销毁HTable的操作相对有较大的开销,而是用HTablePool方法创建的HTable则可以在jvm进程的生命周期内循环使用,以降低开销。(二)HTablePool的原理 如果对某表的操作仅执行一次或连续执行的时间较短,则使用new的方法和使用HTablePool的getTable()方法的开销基本无区别,.. 阅读全文
posted @ 2012-09-25 14:32 D调的晨星 阅读(557) 评论(0) 推荐(1)