HBase Compaction-(1)何時(shí)會(huì)進(jìn)行compaction

目前在看HBase中跟Compaction相關(guān)的代碼通危。

對(duì)于Compaction卓舵,我們最關(guān)心的一點(diǎn)归露,就是,何時(shí)會(huì)進(jìn)行Compaction杖刷。因?yàn)檫@會(huì)直接影響我們HBase的讀寫(xiě)性能励饵。

環(huán)境

HBase rel-2.1.0

解析

HBase會(huì)在這三種情況下,進(jìn)行Compact:

  • MemStore flush時(shí)
  • 檢測(cè)線程檢測(cè)到需要進(jìn)行Compact時(shí)
  • 主動(dòng)調(diào)用

MemStore flush

第一種情況滑燃,我們可以簡(jiǎn)單看一下HRegion.internalFlushcache(WAL wal, long myseqid, Collection<HStore> storesToFlush, MonitoredTask status, boolean writeFlushWalMarker, FlushLifeCycleTracker tracker)的注釋:

  /**
   * Flush the memstore. Flushing the memstore is a little tricky. We have a lot of updates in the
   * memstore, all of which have also been written to the wal. We need to write those updates in the
   * memstore out to disk, while being able to process reads/writes as much as possible during the
   * flush operation.
   * <p>
   * This method may block for some time. Every time you call it, we up the regions sequence id even
   * if we don't flush; i.e. the returned region id will be at least one larger than the last edit
   * applied to this region. The returned id does not refer to an actual edit. The returned id can
   * be used for say installing a bulk loaded file just ahead of the last hfile that was the result
   * of this flush, etc.
   * @param wal Null if we're NOT to go via wal.
   * @param myseqid The seqid to use if <code>wal</code> is null writing out flush file.
   * @param storesToFlush The list of stores to flush.
   * @return object describing the flush's state
   * @throws IOException general io exceptions
   * @throws DroppedSnapshotException Thrown when replay of WAL is required.
   */
  protected FlushResultImpl internalFlushcache(WAL wal, long myseqid,
      Collection<HStore> storesToFlush, MonitoredTask status, boolean writeFlushWalMarker,
      FlushLifeCycleTracker tracker) throws IOException {
    ......
  }

這個(gè)方法的調(diào)用鏈役听,最終會(huì)檢測(cè),是否需要進(jìn)行compact.

這段代碼,在HStore.updateStorefiles(List<HStoreFile> sfs, long snapshotId)方法的最后:

  /**
   * Change storeFiles adding into place the Reader produced by this new flush.
   * @param sfs Store files
   * @param snapshotId
   * @throws IOException
   * @return Whether compaction is required.
   */
  private boolean updateStorefiles(List<HStoreFile> sfs, long snapshotId) throws IOException {
    ......
    return needsCompaction();
  }

檢測(cè)線程

具體的類是HRegionServer.CompactionChecker典予,它會(huì)每隔一段時(shí)間檢測(cè)一下甜滨,是否有Region需要進(jìn)行Compaction.默認(rèn)是10s檢測(cè)一次,當(dāng)然瘤袖,我們可以用hbase.server.thread.wakefrequency這個(gè)選項(xiàng)來(lái)控制.

主動(dòng)調(diào)用

這種就沒(méi)什么好說(shuō)的了.無(wú)論是hbase shell里面衣摩,還是通過(guò)Admin API,我們都可以手動(dòng)進(jìn)行Compaction.而且捂敌,通常在性能調(diào)優(yōu)時(shí)艾扮,都是更加推薦對(duì)于Major Compaction,使用手動(dòng)的方式黍匾,而不是自動(dòng)的方式.

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末栏渺,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子锐涯,更是在濱河造成了極大的恐慌磕诊,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,198評(píng)論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件纹腌,死亡現(xiàn)場(chǎng)離奇詭異霎终,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)升薯,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門(mén)莱褒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人涎劈,你說(shuō)我怎么就攤上這事广凸。” “怎么了蛛枚?”我有些...
    開(kāi)封第一講書(shū)人閱讀 167,643評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵谅海,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我蹦浦,道長(zhǎng)扭吁,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,495評(píng)論 1 296
  • 正文 為了忘掉前任盲镶,我火速辦了婚禮侥袜,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘溉贿。我一直安慰自己枫吧,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,502評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布宇色。 她就那樣靜靜地躺著九杂,像睡著了一般闽寡。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上尼酿,一...
    開(kāi)封第一講書(shū)人閱讀 52,156評(píng)論 1 308
  • 那天爷狈,我揣著相機(jī)與錄音,去河邊找鬼裳擎。 笑死涎永,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的鹿响。 我是一名探鬼主播羡微,決...
    沈念sama閱讀 40,743評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼惶我!你這毒婦竟也來(lái)了妈倔?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,659評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤绸贡,失蹤者是張志新(化名)和其女友劉穎盯蝴,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體听怕,經(jīng)...
    沈念sama閱讀 46,200評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡捧挺,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,282評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了尿瞭。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片闽烙。...
    茶點(diǎn)故事閱讀 40,424評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖声搁,靈堂內(nèi)的尸體忽然破棺而出黑竞,到底是詐尸還是另有隱情,我是刑警寧澤疏旨,帶...
    沈念sama閱讀 36,107評(píng)論 5 349
  • 正文 年R本政府宣布很魂,位于F島的核電站,受9級(jí)特大地震影響充石,放射性物質(zhì)發(fā)生泄漏莫换。R本人自食惡果不足惜霞玄,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,789評(píng)論 3 333
  • 文/蒙蒙 一骤铃、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧坷剧,春花似錦惰爬、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,264評(píng)論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)陵叽。三九已至,卻和暖如春丛版,著一層夾襖步出監(jiān)牢的瞬間巩掺,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,390評(píng)論 1 271
  • 我被黑心中介騙來(lái)泰國(guó)打工页畦, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留胖替,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,798評(píng)論 3 376
  • 正文 我出身青樓豫缨,卻偏偏與公主長(zhǎng)得像独令,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子好芭,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,435評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容