继上篇<HBase源代码分析之HRegion上MemStore的flsuh流程(一)>之后.我们继续分析下HRegion上MemStore flush的核心方法internalFlushcache().它的主要流程如图所看到的: 当中.internalFlushcache()方法的代码例如以下: /** * Flush the memstore. Flushing the memstore is a little tricky. We have a lot of updates in the…
了解HBase架构的用户应该知道,HBase是一种基于LSM模型的分布式数据库.LSM的全称是Log-Structured Merge-Trees.即日志-结构化合并-树. 相比于Oracle普通索引所採用的B+树,LSM模型的最大特点就是,在读写之间採取一种平衡,牺牲部分读数据的性能,来大幅度的提升写数据的性能.通俗的讲,HBase写数据如此快,正是因为基于LSM模型,将数据写入内存和日志文件后即马上返回. 可是,数据始终在内存和日志中是不妥当的,首先内存毕竟是有限的稀缺资源.持续的写入会造成…
在<HBase源代码分析之HRegion上MemStore的flsuh流程(一)>.<HBase源代码分析之HRegion上MemStore的flsuh流程(二)>等文中.我们介绍了HRegion上Memstore flush的主体流程和主要细节. 可是,HRegion仅仅是HBase表中依照行的方向对一片连续的数据区域的抽象,它并不能对外提供单独的服务,供client或者HBase其他实体调用.而HRegion上MemStore的flush还是要通过HRegionServer来对…
继上篇文章<HBase源代码分析之HRegionServer上MemStore的flush处理流程(一)>遗留的问题之后,本文我们接着研究HRegionServer上MemStore的flush处理流程.重点讲述下怎样选择一个HRegion进行flush以缓解MemStore压力,还有HRegion的flush是怎样发起的. 我们先来看下第一个问题:怎样选择一个HRegion进行flush以缓解MemStore压力.上文中我们讲到过flush处理线程假设从flushQueue队列中拉取出的一个…
前面的几篇文章.我们具体介绍了HBase中HRegion上MemStore的flsuh流程,以及HRegionServer上MemStore的flush处理流程.那么,flush究竟是在什么情况下触发的呢?本文我们将具体探究下HBase中MemStore的flush流程的发起时机.看看究竟都有哪些操作.或者哪些后台服务进程会触发MemStore的flush. 首先.在<HBase源代码分析之HRegionServer上MemStore的flush处理流程(一)>和<HBase源代码分析之…
在<HBase源代码分析之MemStore的flush发起时机.推断条件等详情>一文中,我们具体介绍了MemStore flush的发起时机.推断条件等详情.主要是两类操作.一是会引起MemStore数据大小变化的Put.Delete.Append.Increment等操作,二是会引起HRegion变化的诸如Regin的分裂.合并以及做快照时的复制拷贝等.相同会触发MemStore的flush流程.同一时候.在<HBase源代码分析之compact请求发起时机.推断条件等详情(一)>…
本文继<Yarn源码分析之MRAppMaster上MapReduce作业处理总流程(一)>,接着讲述MapReduce作业在MRAppMaster上处理总流程,继上篇讲到作业初始化之后的作业启动,关于作业初始化主体流程的详细介绍,请参见<Yarn源码分析之MRAppMaster上MapReduce作业初始化解析>一文. (三)启动 作业的启动是通过MRAppMaster的startJobs()方法实现的,其代码如下: /** * This can be overridden to …
我们知道,如果想要在Yarn上运行MapReduce作业,仅需实现一个ApplicationMaster组件即可,而MRAppMaster正是MapReduce在Yarn上ApplicationMaster的实现,由其控制MR作业在Yarn上的执行.如此,随之而来的一个问题就是,MRAppMaster是如何控制MapReduce作业在Yarn上运行的,换句话说,MRAppMaster上MapReduce作业处理总流程是什么?这就是本文要研究的重点. 通过MRAppMaster类的定义我们就能看出…
运营商显示流程分析之运营商信息的读取流程 一. SIM卡运营商信息的读取 从前面的 运营商信息的获取和赋值 可以知道SIM卡运营商的赋值最终是在 SIMRecords 中完成的, 而SIM卡信息的相关读取是在Uicc模块中 1.1. SIMRecords的创建流程 SIMRecords 的创建是在 UiccCardApplication 中完成的: private IccRecords createIccRecords(AppType type, Context c, CommandsInter…
http://www.docin.com/p-647062205.html http://blog.csdn.net/luyee2010/article/category/1285622 http://www.cnblogs.com/gpcuster/archive/2011/04/12/2013411.html http://wenku.baidu.com/link?url=Rj8K3X-Qa-E5dRbdcii_9nLFUVkz_7FxATKxc6bVx2sSWNn_AI26psCBiFe4…