摘要: [上一篇](http://www.cnblogs.com/foxmailed/p/4137949.html)说了datanode端如何处理pipeline写请求的,这里主要看DFSClient。这里以append为例, write差不多。创建一个pipeline用于append操作的流程:FileS... 阅读全文
posted @ 2014-12-03 15:11 吴镝 阅读(2187) 评论(0) 推荐(0) 编辑
摘要: 站在DataNode的视角,看看pipeline写的流程,本文不分析客户端部分,从客户端写数据之前拿到了3个可写的block位置说起。每个datanode会创建一个线程DataXceiverServer,接收上游过来的TCP连接,对于每个新建的TCP连接,都会创建一个叫做DataXceiver的线程... 阅读全文
posted @ 2014-12-02 17:00 吴镝 阅读(4031) 评论(0) 推荐(0) 编辑
摘要: ##HBase Compaction策略RegionServer这种类LSM存储引擎需要不断的进行Compaction来减少磁盘上数据文件的个数和删除无用的数据从而保证读性能。RegionServer后台有一组负责flush region的线程(MemStoreFlusher),每次从flushQu... 阅读全文
posted @ 2014-09-19 17:37 吴镝 阅读(6631) 评论(0) 推荐(1) 编辑
摘要: ###分裂策略不同的分裂策略的实现需要继承RegionSplitPolicy,主要实现两个方法:1. shouldSplit()表示是否需要分裂2. getSplitPoint()得到分裂点rowkey从 HBase 0.94之后,默认的分裂策略是IncreasingToUpperBoundRegi... 阅读全文
posted @ 2014-09-13 17:23 吴镝 阅读(5015) 评论(0) 推荐(0) 编辑
摘要: ##HBase Scan流程分析HBase的读流程目前看来比较复杂,主要由于:* HBase的表数据分为多个层次,HRegion->HStore->[HFile,HFile,...,MemStore]* RegionServer的LSM-Like存储引擎,不断flush产生新的HFile,同时产生新... 阅读全文
posted @ 2014-09-05 18:00 吴镝 阅读(8571) 评论(0) 推荐(1) 编辑
摘要: HBase 从0.95开始引入了Snapshot,可以对table进行Snapshot,也可以Restore到Snapshot。Snapshot可以在线做,也可以离线做。Snapshot的实现不涉及到table实际数据的拷贝,仅仅拷贝一些元数据,比如组成table的region info,表的de... 阅读全文
posted @ 2014-08-15 14:35 吴镝 阅读(8535) 评论(0) 推荐(1) 编辑
摘要: HBase 可以根据当前集群的负载以region为单位进行rebalance。在HMaster中,后台会起一个线程定期检查是否需要进行rebalance,线程叫做BalancerChore。线程每隔hbase.balancer.period会定期执行 master.balance()函数,配置项默... 阅读全文
posted @ 2014-08-08 15:54 吴镝 阅读(9434) 评论(0) 推荐(1) 编辑
摘要: MVCC是实现高性能数据库的关键技术,主要为了读不影响写。几乎所有数据库系统都用这技术,比如Spanner,看这里。Percolator,看这里。当然还有mysql。本文说HBase的MVCC和0.98引入的新写线程模型。 HBase region server的存储模型类LSM,将随机写转换为顺... 阅读全文
posted @ 2014-08-08 11:48 吴镝 阅读(3176) 评论(0) 推荐(0) 编辑
摘要: 本文分析RegionServer宕机后这个region server上的region是如何在其他region server上恢复的。region server宕机后发生了什么 HMaster有一个RegionServerTracker对象,监控zk上/hbase/rs目录下的结点,达到监控reg... 阅读全文
posted @ 2014-08-07 14:13 吴镝 阅读(5612) 评论(0) 推荐(0) 编辑
摘要: Google为了解决网页索引的增量处理,以及维护数据表和索引表的一致性问题,基于BigTable实现了一个支持分布式事务的存储系统。这里重点讨论这个系统的分布式事务实现,不讨论percolator中为了支持增量计算而实现的Notifications机制。 该系统基于BigTable,支持snaps... 阅读全文
posted @ 2014-08-04 13:05 吴镝 阅读(8927) 评论(0) 推荐(2) 编辑