แแแฆแแแ แจแแกแ แฃแแแแ แแ แ-แแ แแ แแแแแแ แ แแแแฎแแแแแ แแแ แแแแแชแแแแแแแ แแฃแจแแแแแกแแก. Sberbank-แแก แแแแแชแแแแ แฉแแขแแแ แแแแก แแแแงแแคแแแแแแจแ, แฉแแแ แแแแฅแแแก แงแแแแ แขแ แแแแแฅแชแแแก แแแแแแกแแแ แฉแแแแก Hadoop-แแ แแแคแฃแซแแแแฃแ แแแแแชแแแแ แฆแ แฃแแแแจแ แแ, แจแแกแแแแแแกแแ, แแแฃแจแแแแ แแแคแแ แแแชแแแก แแแ แแแแช แแแ แแแแแแแแแแ. แแฃแแแแ แแแแ, แฉแแแ แงแแแแแแแแก แแแซแแแ แแฃแจแแแแแก แแแฃแแฏแแแแกแแแแก แแแแแก แแ แแฎแแ แแแแแแ แแแแฎแ แแ, แ แแแแ แแแแแฎแแ แฎแแ RegionServer HBase แแ HDFS แแแแแแขแแก แแแงแแแแแ, แ แแก แฌแงแแแแแแแแช แฉแแแ แจแแแซแแแแ แแแแจแแแแแแแแแ แแแแแแ แแแ แฌแแแแแฎแแแก แแแแ แแชแแแแแก แกแแฉแฅแแ แ.
แแฃแแชแ, แกแแแแ แแแฃแแฏแแแแกแแแแก แแ แกแแ แแแแแแแแแแแ, แฆแแ แก แแแกแแฃแแ แแ แจแแแฆแฃแแแแแแ, แ แแแแแแ แแแแ แแแก แแแแ, แแ แแแชแแแจแ, แจแแฃแซแแแแแแแ, แแฃ HDD-แแ แแแฏแแแแแ.
แ แแขแแ แแ แแก HDD แแ แกแฌแ แแคแ แจแแแแฎแแแแแแ แฌแแแแแแก แแแแฎแแ แจแแฃแแแแกแแแแแ
แแแแแฎแกแแแแแแ, HBase แแ แแ แแแแแ แกแฎแแ แแแแแชแแแแ แแแแ แแแแฎแแแก แแแแแชแแแแแก แ แแแแแแแแ แแแแฃแแ แแแแแแแแขแแก แแแแแก แแแแแแแจแ. แแแแฃแแแกแฎแแแแแ แแก แแ แแก แแแแฎแแแแแแ 64 KB. แแฎแแ แฌแแ แแแแแแแแแแ, แ แแ แฉแแแ แฃแแแ แแแแแฆแแ แแฎแแแแ 100 แแแแขแ แแ แแแฎแแแ HBase-แก แแแแแแฌแแแแก แแก แแแแแชแแแแแ แแแ แแแแฃแแ แแแกแแฆแแแแก แแแแแงแแแแแแ. แแแแแแแแ HFiles-แจแ แแแแแแก แแแแ แแ แแก 64 KB, แแแแฎแแแแ แแฅแแแแ 640-แฏแแ แแแขแ (แแฎแแแแ แแ แแ แฌแฃแแ!) แแแแ แ แกแแญแแ แแ.
แจแแแแแแ, แ แแแแแ แแแแฎแแแแ แแแแแแแก HDFS แแ แแแกแ แแแขแแแแแแชแแแแแแก แฅแแจแแ แแแแก แแแฅแแแแแแก ShortCircuitCache (แ แแแแแแช แคแแแแแแแ แแแ แแแแแ แฌแแแแแแก แกแแจแฃแแแแแแก แแซแแแแ), แแก แแฌแแแแก แแแกแแแแแ แฃแแแ 1 MB แฌแแแแแฎแแแก. แแฃแแชแ, แแก แจแแแซแแแแ แแแ แแแฃแแแ แแแก แแแ แแแแขแ แแ dfs.client.read.shortcircuit.buffer.size แแ แฎแจแแ แจแแแแฎแแแแแจแ แแแ แ แแฅแแก แแ แแแแจแแแแแแแแก แจแแแชแแ แแแแก, แแแแแแแแแ 126 แแ-แแแ.
แแแฅแแแ, แแแแแแแแ แแแแก, แแแแ แแ แแแ แแ แแแแกแ, แ แแแแกแแช แแแฌแงแแแ แแแแแชแแแแแแก แแแแฎแแแก java api-แแ, แ แแแแ แแชแแ FileChannel.read แคแฃแแฅแชแแแแ แแ แแแฎแแแ แแแแ แแชแแฃแ แกแแกแขแแแแก แฌแแแแแแฎแแก แแแแแแแแฃแแ แ แแแแแแแแแก แแแแแชแแแแแ, แแก แแแแฎแฃแแแแก โแงแแแแ แจแแแแฎแแแแแจแโ 2-แฏแแ แแแขแก. , แ.แ. 256 KB แฉแแแแก แจแแแแฎแแแแแจแ. แแก แแแแขแแ แฎแแแแ, แ แแ java-แก แแ แแฅแแก FADV_RANDOM แแ แแจแแก แแแงแแแแแแก แแแ แขแแแ แแแ แแ แฅแชแแแแก แแแแแแแ แแกแแชแแแแแแแ.
แจแแแแแแ, แฉแแแแ 100 แแแแขแแก แแแกแแฆแแแแ, แฅแฃแแแก แฅแแแจ 2600-แฏแแ แแแขแ แแแแแฎแแแ. แ แแแแ แช แฉแแแก, แแแแแกแแแแแ แแจแแแ แแ, แแแแแ แจแแแแแชแแ แแ แแแแแแก แแแแ แแแแแแแแขแแแแ, แแแแแงแแแแ แแฆแแแจแแฃแแ แแ แแจแ แแ แแแแแฆแแ แแแแ แแแแแแแแแแแแแแแแก แแฉแฅแแ แแแ. แแแแ แแ แฃแแแแฃแ แแแ แแก แแ แแก, แ แแ แแแแแแก แแแแแก 2-แฏแแ แจแแแชแแ แแแแ, แฉแแแ แแกแแแ แแแแชแแ แแแ แแ แแแก แแ แแแฃแแแ แฌแแแแแฎแฃแแ แแแแขแแแแก แ แแแแแแแแแก 2-แฏแแ .
FADV_RANDOM แแ แแจแแก แแแงแแแแแแแแ แแแ แแแแฃแแ แกแแ แแแแแแก แแแฆแแแ แจแแกแแซแแแแแแแ, แแแแ แแ แแฎแแแแ แแแฆแแแ แแ แแแแแฌแแฎแแแแแแแ แแ แแแแแแก แแแแแ 128 KB, แแแแ แแ แแก แแ แแก แแแฅแกแแแฃแ แ แแแแแแแแ แแแแฃแแ แแ แแชแแแขแ:
แขแแกแขแแแ แฉแแขแแ แแ 100 แคแแแแแ, แแแแแแฃแแ 1 GB แแแแแก แแ แแแแแแแกแแแฃแแ แแงแ 10 HDD-แแ.
แแแแแ แแแแแแแแแแแ แ แแกแ แแแแแ แจแแแแแซแแแ, แแ แแแชแแแจแ, แแ แกแแฉแฅแแ แแ:
แแแฅแแแ, แแแแแฎแฃแแแแ 10 แแแกแแแแแ 280 แแ/แฌแ แกแแฉแฅแแ แแ, แ.แ. 3 แแแแแแแ แฏแแ 100 แแแแขแ. แแแแ แแ แ แแแแ แช แแแแฎแกแแแก, แฉแแแแแแแก แกแแญแแ แ แแแแแชแแแแแ 2600-แฏแแ แแแแแแแแ แแแแ แ แฌแแแแแฎแฃแแ. แแแ แแแแ, 3 แแแแแแแก แแงแแคแ 2600-แแ แแ แแแฆแแแ 1100 แฉแแแแฌแแ แ แฌแแแจแ.
แแแแ แแกแแฃแแ, แแ แ? แแกแแแแ แแฃแแแแ แฒฌแแแแแ แฌแแแแแ แแแแแชแแแแแแ HDD-แแ - แแแแแแก แแแแแก แแแฃแฎแแแแแแ. แแก แแ แแก แจแแแแฎแแแแแแ แฌแแแแแแก แคแแแแแฃแ แ แแแแแขแ แแ แแ แชแแ แ แแแแแชแแแแ แแแแแก แแ แจแแฃแซแแแ แแแขแแก แจแแแฃแแจแแ แแกแแ แแแ แแแแแจแ.
แแแจแแ แ แแแแ แแฆแฌแแแก แแแแแชแแแแ แแแแแแ แแแแ แแ แฃแคแ แ แแแฆแแ แกแแฉแฅแแ แแก? แแ แแแแฎแแแแ แแแกแฃแฎแแก แแแกแแชแแแแ, แแแแแ แจแแแฎแแแแ แ แ แฎแแแแ แจแแแแแ แกแฃแ แแแแ:
แแฅ แฉแแแ แแฎแแแแแ, แ แแ แแแ แแแแ แ แแแแแแแแ แฌแฃแแแก แแแแแแแแแแแจแ แกแแฉแฅแแ แ แแแ แแแแช แแแแฎแแแแแแ แแแแกแ แฉแแแแฌแแ แแ แฌแแแจแ. แแแแกแแแ, แแแแก แแแแ, แ แแ แแแชแแแแแแ แแแขแ แแแแแฎแแแ, แแแแ แ แแแแฎแแแแแแ แแงแ, แแแแแชแแแแแ แแแแแ แแแแ แแแแ แแชแแฃแแ แกแแกแขแแแแก (linux) แแฃแค/แฅแแจแจแ แแ แกแแฉแฅแแ แ แแแ แแแแ แฃแคแ แ แฆแแ แกแแฃแ 60 แแแแก แฌแแแจแ.
แแแ แแแแ, แจแแแแแแแจแ แฉแแแ แแแแฃแจแแแแแ แฌแแแแแแก แแแฉแฅแแ แแแแกแแแ แแฎแแแแ แแ แแแแแชแแแแแแ, แ แแแแแแแช แแ แแก แแแแ แแชแแฃแแ แกแแกแขแแแแก แฅแแจแ แแ แแแแแแ แแแแก SSD/NVMe แจแแกแแแแฎแ แฌแแแแแแก แกแแฉแฅแแ แแก แจแแกแแแแฎ แแแฌแงแแแแแแแแแจแ.
แฉแแแแก แจแแแแฎแแแแแจแ, แฉแแแ แฉแแแแขแแ แแแ แขแแกแขแแแก 4 แกแแ แแแ แแกแแแ แจแแแแแแ แกแแแแแ, แ แแแแแแแแแ แแแแแแฃแแ แแแ แแชแฎแฃแแแ แจแแแแแแแแแ แแ:
แแ แแชแแกแแ แ: Xeon E5-2680 v4 @ 2.40 GHz 64 แซแแคแแแ.
แแแแ แแขแแฃแแ แแแฎแกแแแ แแแ: 730 GB.
java แแแ แกแแ: 1.8.0_111
แแ แแฅ แแแแแแ แแ แชแฎแ แแแแแจแ แแ แกแแแฃแแ แแแแแชแแแแแแก แ แแแแแแแแ, แ แแแแแแช แฃแแแ แฌแแแแแแฎแแ. แคแแฅแขแแ, แ แแ แแฃ แฌแแแแแแฎแแแ แแแแแชแแแแแก แชแฎแ แแแแแแ, แ แแแแแแช แแแแแแแแ แแแแแแกแแแฃแแแ HBase แฅแแจแจแ, แแแจแแ แแก แแแ แช แแ แแแแ แแแแ แแชแแฃแแ แกแแกแขแแแแก buff/cache-แแแ แฌแแแแแฎแแแแแ. แแแแก แแแแ, แ แแ HBase แแแแฃแแแกแฎแแแแแ แแแแแงแแคแก แแแฎแกแแแ แแแแก 40% แกแขแ แฃแฅแขแฃแ แแก, แ แแแแแกแแช แแฌแแแแแ BlockCache. แแ แกแแแแแแ, แแก แแ แแก ConcurrentHashMap, แกแแแแช แแแกแแฆแแแ แแ แแก แคแแแแแก แกแแฎแแแ + แแแแแแก แแคแกแแขแ, แแ แแแแจแแแแแแแ แแ แแก แคแแฅแขแแแ แแแ แแแแแชแแแแแ แแ แแคแกแแขแจแ.
แแแ แแแแ, แ แแแแกแแช แแแแแฎแฃแแแแ แแฎแแแแ แแ แกแขแ แฃแฅแขแฃแ แแแแ, แฉแแแ
แแแแแแแแแ, แฉแแแแก แจแแแแฎแแแแแจแ, BlockCache-แแก แแแชแฃแแแแ แแ แ RS-แแ แแ แแก แแแแฎแแแแแแ 12 GB. แแ แ แแแแแซแแ แแ แ แ แก-แ แฉแแแแแงแแ แแ, แ.แ. 96 GB แแแแแงแแคแแแแ BlockCache-แกแแแแก แงแแแแ แแแแแซแแ. แแ แแแแ แฏแแ แแแขแ แแแแแชแแแแ, แแแแแแแแแ, แแงแแก 4 แชแฎแ แแแ, แแแแ 130 แ แแแแแแ, แ แแแแแแจแแช แคแแแแแแ แแ แแก 800 แแ แแแแแก, แจแแแฃแแจแฃแแ FAST_DIFF-แแ, แ.แ. แกแฃแ 410 GB (แแก แแ แแก แกแฃแคแแ แแแแแชแแแแแ, แแแฃ แ แแแแแแแชแแแก แคแแฅแขแแ แแก แแแแแแแแกแฌแแแแแแก แแแ แแจแ).
แแแ แแแแ, BlockCache แแ แแก แแแแแชแแแแ แแแแแแแ แแแชแฃแแแแแก แแฎแแแแ 23% แแ แแก แแแแ แแ แฃแคแ แ แแฎแแแกแแ แ แแแแฃแ แแแ แแแแแแแ, แ แแกแแช BigData แฐแฅแแแ. แแ แกแฌแแ แแ แแฅ แแฌแงแแแ แแแ แแแแ - แ แแแแแ แชแฎแแแแ, แ แแช แฃแคแ แ แแแแแแแ แฅแแจแ แแแฎแแแแแ, แแแ แฃแคแ แ แฃแแ แแกแแ แจแแกแ แฃแแแแ. แแแแแก แแ แแแแแก, แแฃ แแแชแแแแ, แแแแ แ แกแแแฃแจแแ แแแแแฌแแแ - แ.แ. แแแแแแแ แกแแกแขแแแแก แคแฃแแฅแชแแแแแก แแแแแซแแฎแแแแแ. แแฃแแชแ, แแแแก แแแแแแแ แแชแแแแแ แจแแฃแซแแแแแแแ, แแแแขแแ แแแแแ แจแแแฎแแแแ แกแ แฃแแแแ แแแแกแฎแแแแแแฃแ แแกแแแฅแขแก - แ แ แแแแ แแแแ แฅแแจแแก แจแแแแแ แแ แกแแแฃแ แแแแแชแแแแแก?
แแแแแ แแแแแแแ แขแแแแ แกแแขแฃแแชแแ แแ แแแแฃแจแแแ, แ แแ แแแแฅแแก แฅแแจแ, แ แแแแแแช แแฎแแแแ 1 แแแแแฅแขแก แแ แแแแ. แแฅ แแ แแก แแแแแแแแ แแแแกแ, แแฃ แ แ แแแฎแแแแ, แ แแแแกแแช แฉแแแ แแชแแแแแแ แแแแฃแจแแแ แแแแแชแแแแ แแแชแฃแแแแแแ 3-แฏแแ แแฆแแแแขแแแ แฅแแจแก, แแแแแแฌแแแก:
1. แแแแแแแกแแ แแแแแ 1 แฅแแจแจแ
2. แแแแแฆแแ แแแแแ 1 แฅแแจแแแแ
3. แแแแแแแกแแ แแแแแ 2 แฅแแจแจแ
4. แแแแแฆแแ แแแแแ 2 แฅแแจแแแแ
5. แแแแแแแกแแ แแแแแ 3 แฅแแจแจแ
แแแกแ แฃแแแ 5 แแแฅแแแแแแ! แแฃแแชแ, แแ แกแแขแฃแแชแแแก แแ แจแแแซแแแแ แแฃแฌแแแแ แแแ แแแแฃแ แ, แคแแฅแขแแแ แแแแ, แฉแแแ แแแแซแฃแแแแ HBase-แก, แกแ แฃแแแแ แฃแกแแ แแแแแ แกแแแฃแจแแแก แจแแกแ แฃแแแแแก. แแก แแฃแแแแแแ แแแแฎแฃแแแแก แแแแแชแแแแแก OS-แแก แฅแแจแแแแ, แแแแแกแแแก แแแก BlockCache-แจแ, แแฎแแแแ แแแจแแแแ แแแแแแแแแก แแแก, แ แแแแแ แแแแแชแแแแ แแฎแแแ แแแฌแแแ แแแแแแ. แแแกแขแแก แแแกแแฌแงแแกแจแ แแแชแแแฃแแ แแแแแแชแแ แแแแฉแแแแแแก แแ แแแแแแแก แแ แกแก - แแแแแแก แจแแแแ แแแแแแแ แกแชแแแแแแ แแแกแจแขแแแแแก, แแขแแแกแคแแ แ แชแฎแแแแแแ, แแแขแแ แ แแ แแขแ แจแแ แแฃแ แแ แชแฎแแ แจแแแแแแจแ แแแ แแแฃแแแแก. แแ แฉแแแ IT แแแแแแแแแแก แแแแแแแแแ แแ แแแแงแแแ แก, แ แแแแกแแช แแแแจแแแแ แแแฌแงแแแแแแ แแ แแแ, แแแแขแแ แแแฌแงแแแ แคแแฅแ แก แแแแแ, แแฃ แ แ แจแแแแแซแแแ แแแแก แแแแแแแแ.
แ แ แแแฎแแแแ, แแฃ แฅแแจแจแ แงแแแแ แแแแแก แแ แแ แ, แแแ แแฎแแแแ แแแ แแแแฃแ แแ แแชแแแขแก แฉแแแงแแแแแ, แ แแแ แฅแแจแ แแ แแแแแแแแ แแแก? แแแแแฌแงแแ แแแแ, แ แแ แฃแแ แแแแ แแแแแแแขแแแ แแแแแก แ แแแแแแแแ แกแขแ แแฅแแแก แคแฃแแฅแชแแแก แแแกแแฌแงแแกแจแ, BlockCache-แจแ แแแแแชแแแแแแก แฉแแกแแ แแแแแ:
public void cacheBlock(BlockCacheKey cacheKey, Cacheable buf, boolean inMemory) {
if (cacheDataBlockPercent != 100 && buf.getBlockType().isData()) {
if (cacheKey.getOffset() % 100 >= cacheDataBlockPercent) {
return;
}
}
...
แแฅ แกแแฅแแ แจแแแแแแแ: แแคแกแแขแ แแ แแก แแแแแแก แแแแแชแแ แคแแแแจแ แแ แแแกแ แแแแ แชแแคแ แแแ แจแแแแฎแแแแแ แแ แแแแแแ แแ แแแฌแแแแแแ 00-แแแ 99-แแแ. แแแแขแแ, แฉแแแ แแแแแแขแแแแแ แแฎแแแแ แแแ, แแแแช แฉแแแ แแแญแแ แแแแ.
แแแแแแแแแ, แแแแงแแแแ cacheDataBlockPercent = 20 แแ แแแฎแแ, แ แ แแแฎแแแแ:
แจแแแแแ แแจแแแ แแ. แฅแแแแแ แแแชแแแฃแ แแ แแคแแแแแจแ แแ แแแแแ, แแฃ แ แแขแแ แแแฎแแ แแกแแแ แแฉแฅแแ แแแ - แฉแแแ แแแแแแแ แฃแแแ แแ GC แ แแกแฃแ แกแก แแกแ, แ แแ แแ แแแกแ แฃแแแแ แกแแแแคแฃแ แ แกแแแฃแจแแแก แฅแแจแจแ แแแแแชแแแแแแก แแแแแแแกแแแแก, แแฎแแแแ แแแแกแแแแก, แ แแ แกแแกแฌแ แแคแแ แแแแแแแแแแ แแกแแแ แแแ แกแแก แซแแฆแแแแแก แแแแแแแแแจแ:
แแแแแแ แแฃแแแ, แแ แแชแแกแแ แแก แแแแแงแแแแแ แแแ แแแแ, แแแแ แแ แแแแ แแ แแแแแแแแ แแแแ แ แแ แแแฃแฅแขแแฃแแแแ:
แแกแแแ แแฆแกแแแแจแแแแแ, แ แแ BlockCache-แจแ แจแแแแฎแฃแแ แแแแแแแ แแแแกแฎแแแแแแฃแแแ. แฃแแแขแแกแแแ, แแแแฎแแแแแแ 95%, แแ แแก แแแแแ แแแแแชแแแแแ. แแ แแแแแ แฉแแแ แแ แแก แแแขแแแแแแชแแแแแ, แ แแแแ แแชแแ Bloom แคแแแขแ แแแ แแ LEAF_INDEX แแ
แแแแขแแ, แแแแจแ แแฎแแแแแ แจแแแแฌแแแแแก แแแแแแแ แแแแแก buf.getBlockType().isData() แแ แแ แแแขแ-แก แฌแงแแแแแแ, แฉแแแ แแแก แแแแแกแแแแ แจแแแแฎแแแแแจแ แแแแขแแแแแ แฅแแจแจแ.
แแฎแแ แแแแแ แแแแแแ แแแ แแแขแแแ แแแ แแ แแแแแ แแแแแแแแชแ แแ แคแฃแแฅแชแแ แแ แแ แแแแแฏแแ. แแแ แแแ แขแแกแขแจแ แฉแแแ แจแแแฅแแแแแ แแแแแแก แแ แแชแแแขแ = 20 แแ BlockCache แแแแแ แแแแแแแแ แแงแ แแแแแงแแแแแฃแแ. แแฎแแ แแแแแ แแแแแงแแแแ แแก 23%-แแ แแ แแแแแแแขแแ 100 แซแแคแ แงแแแแ 5 แฌแฃแแจแ, แ แแ แแแแฎแแ แ แแแแ แแแแแแขแจแ แฎแแแแ แแแฏแแ แแแ:
แแฅ แฉแแแ แแฎแแแแแ, แ แแ แแ แแแแแแแฃแ แ แแแ แกแแ แแแแฅแแแก แแแจแแแแ แฎแแแแแ แญแแ แก แฌแแแจแ แแแแฎแแแแแแ 100 แแแแกแ แแแแฎแแแแแ. แแแจแแ แ แแชแ แแแขแฉแ แแซแแแแ 300 แแแแกแแแแ แแฉแฅแแ แแแแก. แแแแแแ แแฃแแแ, แชแฎแแแแ, แ แแ แจแแแแแแแ แแฉแฅแแ แแแ แแฆแแ แแ แแก แแกแ โแฃแคแแกแโ; แแแ แแแแ แแ แแชแแกแแ แแก แแแแแงแแแแแแช.
แแฃแแชแ, แแก แแ แแ แแก แซแแแแแ แแแแแแแขแฃแ แ แแแแแฌแงแแแขแ, แ แแแแแ แฌแแแแกแฌแแ แแ แแแชแแ, แแแแแแแแก แ แแแแแแ แแ แแชแแแขแแ แกแแญแแ แ แฅแแจแแ แแแแแ, แแก แแแแแแแแแแฃแแแ แแแขแแแ แแแแก แแ แแคแแแแ. แแฅแแแแ แแแแแแแแแแ แ, แแแแฎแแ แชแแแแแ แแแฅแแแแแแ, แ แแแแแแช แแแขแแแแขแฃแ แแ แแ แแแฃแแแ แแแก แแ แแแ แแแแขแ แก แแแแฎแแแก แแแแ แแชแแแแแก แแฅแขแแแแแแแแ แแแแแแแแแแ แ.
แแแแก แแแกแแแแแขแ แแแแแแแ แแแแแขแแแฃแแแ แกแแแ แแแ แแแแขแ:
hbase.lru.cache.heavy.eviction.count.limit โ แแแแแแก แ แแแแแแฏแแ แฃแแแ แแแแแ แแก แฅแแจแแแแ แแแแแชแแแแแแก แแแแแแแแแแก แแ แแชแแกแ, แกแแแแ แแแแแฌแงแแแ แแแขแแแแแแชแแแก แแแแแงแแแแแแก (แแแฃ แแแแแแแแก แแแแแขแแแแแ). แแแแฃแแแกแฎแแแแแ แแก แฃแแ แแก MAX_INT = 2147483647 แแ แคแแฅแขแแแ แแแแ แแแจแแแแก, แ แแ แคแฃแแฅแชแแ แแ แแกแแแแก แแแแฌแงแแแก แแฃแจแแแแแก แแ แแแแจแแแแแแแแ. แแแแก แแแแ, แ แแ แแแแแกแแฎแแแแแก แแ แแชแแกแ แแฌแงแแแ แงแแแแ 5 - 10 แฌแแแจแ (แแก แแแแแแแแแแฃแแแ แแแขแแแ แแแแแ) แแ 2147483647 * 10 / 60 / 60 / 24 / 365 = 680 แฌแแแ. แแฃแแชแ, แฉแแแ แจแแแแแซแแแ แแแแแงแแแแ แแก แแแ แแแแขแ แ 0-แแ แแ แคแฃแแฅแชแแ แแแแแแฅแขแแฃแ แแ แแแจแแแแแกแแแแแแ.
แแฃแแชแ, แแ แแแ แแแแขแ แจแ แแกแแแ แแ แแก แแแขแแแ แแแ. แแฃ แฉแแแแ แแแขแแแ แแแ แแกแแแแ, แ แแ แแแแแแแแแแแแ แแแแฎแแ (แแแฅแแแ แแฆแแก แแแแแแแแแแแจแ) แแ แแ แซแแแแแแแแแ แแแแฎแแ (แฆแแแแ) แแฃแแแแแแ แแแแแแแแ, แแแจแแ แฉแแแ แจแแแแแซแแแ แแแแ แฌแแฃแแแแ, แ แแ แคแฃแแฅแชแแ แฉแแ แแฃแแแ แแฎแแแแ แแแจแแ, แ แแแแกแแช แฎแแแแ แซแแแแ แฌแแแแแฎแแแก แแแแ แแชแแแแ แแแแแแแแ แแแแก.
แแแแแแแแแ, แฉแแแ แแแชแแ, แ แแ แแแแแแแแแแแแ แแแแฎแแ แฉแแแฃแแแแ แแ แแแแฎแแแแแแ 1 แฌแฃแแ แแ แซแแแแแแ. แแ แแ แแก แกแแญแแ แ แแแแแแแแก แแแแแงแ แแก แแแฌแงแแแ, แฅแแจแก แแ แแฅแแแแ แแ แ, แ แแ แแแซแแแแแแก แแ แจแแแแแ แจแแแแแซแแแ แแแแแงแแแแ แแก แแแ แแแแขแ แ, แแแแแแแแแ, 10-แแก แขแแแ. แแก แแแแแแฌแแแแก แแ แคแแฅแขแก, แ แแ แแแขแแแแแแชแแ แแแแฌแงแแแก แแฃแจแแแแแก แแฎแแแแ แแแจแแ, แ แแแแกแแช แแแแฎแแแก- แขแแ แแแแ แแฅแขแแฃแ แ แแแแฎแแ แแแแฌแงแ, แ.แ. 100 แฌแแแจแ. แแแ แแแแ, แแฃ แฉแแแ แแแแฅแแก แแแแแแแแแแแแ แฌแแแแแฎแแ, แแแจแแ แงแแแแ แแแแแ แจแแแ แฅแแจแจแ แแ แฎแแแแแกแแฌแแแแแ แแฅแแแแ (แแแ แแ แแแแ, แ แแแแแแแช แกแขแแแแแ แขแฃแแ แแแแแ แแแแแ แแแแแแแแแแแแ). แแ แ แแแแกแแช แฉแแแ แแแแแแแแ แแ แซแแแแแแแแ แแแแฎแแแก, แคแฃแแฅแชแแ แฉแแ แแฃแแแ แแ แแแชแแแแแแ แแแฆแแแ แจแแกแ แฃแแแแ แแแแฅแแแแแแ.
hbase.lru.cache.heavy.eviction.mb.size.limit โ แแแแแแก แ แแแแแแ แแแแแแแแขแ แแแแแแ แแแแแแแแกแแ แฅแแจแจแ (แแ, แ แ แแฅแแ แฃแแแ, แแแแแแแแแ) 10 แฌแแแจแ. แคแฃแแฅแชแแ แจแแแชแแแแ แแแแฆแฌแแแก แแ แแแแจแแแแแแแแก แแ แจแแแแแ แฉแฃแแแก แแแ. แกแแฅแแ แแกแแ: แแฃ แฅแแจแจแ แฉแแแงแ แแ แแแแแแแแขแแแก, แแแจแแ แแแแแแฌแแแก แแแแแแแแขแแแแก แแแแแแแแแ แแ แแก, แ แแแแ แช แแแแแ แแแแฎแแ, แซแแแแแ แซแแแ แแ. แแฃแแชแ, แแ แฃแแแ แกแชแแแแ แแแกแ แซแแแแแ แแชแแ แ แแแงแแแแแ, แ แแแแแ แแก แแแแแแฌแแแแก แแแแแแก แแแแแขแแแแแแก แ แแแแแแก แแแแแ แแแแ แแแแแกแแแแก. แซแแแแ แ แกแแ แแแ แแแแกแแแแก (แแแแฎแแแแแแ 20-40 แคแแแแแฃแ แ แแแ แแแ), แแแขแแแแแฃแ แแ แแแแงแแแแ แแแแฎแแแแแแ 300-400 แแ. แกแแจแฃแแแ แแแแกแแกแแแแก (~10 แแแ แแแ) 200-300 แแ. แกแฃแกแขแ แกแแกแขแแแแแแกแแแแก (2-5 แแแ แแแ) 50-100 แแ แจแแแซแแแแ แแงแแก แแแ แแแแฃแ แ (แแแแแ แแ แแ แแก แแแแแชแแแแ).
แแแแฎแแ, แ แแแแ แแฃแจแแแแก แแก: แแแฅแแแ, แแแแแงแแแแ hbase.lru.cache.heavy.eviction.mb.size.limit = 500, แแ แแก แแแ แแแแฃแแ แแแขแแแ แแแ (แแแแฎแแ) แแ แจแแแแแ แงแแแแ ~10 แฌแแแจแ แแแแแแแ แแจแแแ แ แแแแแแ แแแแขแ แแงแ. แแแแแกแแฎแแแแ แคแแ แแฃแแแก แแแแแงแแแแแแ:
แแแแแแแแแ = แแแแแแแกแฃแคแแแแฃแแ แแแแขแแแแก แฏแแแ (MB) * 100 / แแแแแขแ (MB) - 100;
แแฃ แ แแแแฃแ แแ 2000 แแ แแแแแแกแแฎแแแก, แแแจแแ แแแแแแแแแ แฃแแ แแก:
2000 * 100 / 500 - 100 = 300%
แแแแแ แแแแแแ แชแแแแแแแ แจแแแแแ แฉแฃแแแ แแ แแฃแแแขแแก แ แแแแแแแแ แแแแฃแแ แแ แแชแแแขแ, แแแแขแแ แคแฃแแฅแชแแ แจแแแแชแแ แแแก แฅแแจแแ แแแฃแแ แแแแแแแแก แแ แแชแแแขแก, แ แแแแช แแฎแแ แชแแแแแแก แแแขแแแแขแฃแ แ แ แแแฃแแแ แแแแก แแแฅแแแแแแก.
แแฃแแชแ, แแฃ แแแขแแแ แแแ แแแแชแแแ, แแแฅแแแ แแฎแแแแ 200 แแ แแ แแก แแแแแแแแแแแ แแ แแแแ แฐแแแ แฎแแแแ แฃแแ แงแแคแแแ (แ.แฌ. แแแแแญแแ แแแแ):
200 * 100 / 500 - 100 = -60%
แแแ แแฅแแ, แคแฃแแฅแชแแ แแแแ แแแก แฅแแจแแ แแแฃแแ แแแแแแแแก แแ แแชแแแขแก, แกแแแแ แแแแ แฐแแแ แแ แแแฎแแแแ แแแแแแแแ.
แฅแแแแแ แแแชแแแฃแแแ แแแแแแแแ แแแแกแ, แแฃ แ แแแแ แแแแแแงแฃแ แแแ แแก แ แแแแฃแ แแแแแชแแแแแแ. แแ แแ แแก แกแแญแแ แ 0%-แแก แแแฆแฌแแแแก แแชแแแแแแ, แแก แจแแฃแซแแแแแแแ. แซแแแแแ แแแ แแแ, แ แแแแกแแช แแก แแ แแก แแแแฎแแแแแแ 30 - 100%, แแก แฎแแแก แฃแฌแงแแแก แแแขแแแแแแชแแแก แ แแแแแแแแ แแแแแ แแแ แแแกแแแแก แแแแแแแ แแชแแแแแแก แแแแแแแแแแแแ แขแแแฆแแแแก แแ แแก.
hbase.lru.cache.heavy.eviction.overhead.coefficient โ แแแแแแก, แ แแแแแแแ แกแฌแ แแคแแ แแแแแแ แจแแแแแแก แแแฆแแแ. แแฃ แฉแแแ แแฃแกแขแแ แแแชแแ, แ แแ แฉแแแแ แฌแแแแแฎแแ แซแแ แแแแแแ แแ แซแแแแ แแ แแ แแแแแแ แแแแแแ, แจแแแแแซแแแ แแแแแแ แแแ แแก แแแแแคแแ แแแแ แแ แฃแคแ แ แกแฌแ แแคแแ แแแแแฆแแ แแแฆแแแ แจแแกแ แฃแแแแ.
แแแแแแแแแ, แฉแแแ แแแแแงแแแแ แแก แแแแคแแชแแแแขแ = 0.01. แแก แแแจแแแแก, แ แแ Overhead (แแฎ. แแแแแ) แแแแ แแแแแแแ แแ แ แแชแฎแแแ แแแฆแแแฃแ แจแแแแแแ แแ แจแแแชแแ แแแแ แฅแแจแแ แแแฃแแ แแแแแแแแก แแ แแชแแแขแ. แแแแฃแจแแแ, แ แแ Overhead = 300% แแ แแแแคแแชแแแแขแ = 0.01, แแแจแแ แฅแแจแแ แแแฃแแ แแแแแแแแก แแ แแชแแแขแ แจแแแชแแ แแแแ 3%-แแ.
แแกแแแแกแ "Backpressure" แแแแแแ แแกแแแ แแแแแ แแแแแ แฃแแ แงแแคแแแ แแแแ แฐแแแแก (แแแแแญแแ แแแแแก) แแแแจแแแแแแแแแแกแแแแก. แแแแแแแแ แฌแแแแแฎแแแกแ แแ แแแแแกแแฎแแแแแก แแแชแฃแแแแแก แแแแแแแแแแแแ แ แงแแแแแ แงแแแแแแแแก แจแแกแแซแแแแแแแ, แแก แแแฅแแแแแแ แกแแจแฃแแแแแแก แแแซแแแแ แแแแแแแ แแแชแแแแ แแแขแแแแแแชแแแก แ แแแแแแแแ แแแแแ แแแ แแแกแแแ. Backpressure-แก แแฅแแก แจแแแ แฃแแแแฃแแ แแแแแแ: แ แแช แฃแคแ แ แซแแแแ แแ แแแแแญแแ แแแแ, แแแ แฃแคแ แ แแแขแ แแแแแ แแแแฎแแแ.
แแแแฎแแ แชแแแแแแแก แแแแ
LruBlockCache cache = this.cache.get();
if (cache == null) {
break;
}
freedSumMb += cache.evict()/1024/1024;
/*
* Sometimes we are reading more data than can fit into BlockCache
* and it is the cause a high rate of evictions.
* This in turn leads to heavy Garbage Collector works.
* So a lot of blocks put into BlockCache but never read,
* but spending a lot of CPU resources.
* Here we will analyze how many bytes were freed and decide
* decide whether the time has come to reduce amount of caching blocks.
* It help avoid put too many blocks into BlockCache
* when evict() works very active and save CPU for other jobs.
* More delails: https://issues.apache.org/jira/browse/HBASE-23887
*/
// First of all we have to control how much time
// has passed since previuos evict() was launched
// This is should be almost the same time (+/- 10s)
// because we get comparable volumes of freed bytes each time.
// 10s because this is default period to run evict() (see above this.wait)
long stopTime = System.currentTimeMillis();
if ((stopTime - startTime) > 1000 * 10 - 1) {
// Here we have to calc what situation we have got.
// We have the limit "hbase.lru.cache.heavy.eviction.bytes.size.limit"
// and can calculte overhead on it.
// We will use this information to decide,
// how to change percent of caching blocks.
freedDataOverheadPercent =
(int) (freedSumMb * 100 / cache.heavyEvictionMbSizeLimit) - 100;
if (freedSumMb > cache.heavyEvictionMbSizeLimit) {
// Now we are in the situation when we are above the limit
// But maybe we are going to ignore it because it will end quite soon
heavyEvictionCount++;
if (heavyEvictionCount > cache.heavyEvictionCountLimit) {
// It is going for a long time and we have to reduce of caching
// blocks now. So we calculate here how many blocks we want to skip.
// It depends on:
// 1. Overhead - if overhead is big we could more aggressive
// reducing amount of caching blocks.
// 2. How fast we want to get the result. If we know that our
// heavy reading for a long time, we don't want to wait and can
// increase the coefficient and get good performance quite soon.
// But if we don't sure we can do it slowly and it could prevent
// premature exit from this mode. So, when the coefficient is
// higher we can get better performance when heavy reading is stable.
// But when reading is changing we can adjust to it and set
// the coefficient to lower value.
int change =
(int) (freedDataOverheadPercent * cache.heavyEvictionOverheadCoefficient);
// But practice shows that 15% of reducing is quite enough.
// We are not greedy (it could lead to premature exit).
change = Math.min(15, change);
change = Math.max(0, change); // I think it will never happen but check for sure
// So this is the key point, here we are reducing % of caching blocks
cache.cacheDataBlockPercent -= change;
// If we go down too deep we have to stop here, 1% any way should be.
cache.cacheDataBlockPercent = Math.max(1, cache.cacheDataBlockPercent);
}
} else {
// Well, we have got overshooting.
// Mayby it is just short-term fluctuation and we can stay in this mode.
// It help avoid permature exit during short-term fluctuation.
// If overshooting less than 90%, we will try to increase the percent of
// caching blocks and hope it is enough.
if (freedSumMb >= cache.heavyEvictionMbSizeLimit * 0.1) {
// Simple logic: more overshooting - more caching blocks (backpressure)
int change = (int) (-freedDataOverheadPercent * 0.1 + 1);
cache.cacheDataBlockPercent += change;
// But it can't be more then 100%, so check it.
cache.cacheDataBlockPercent = Math.min(100, cache.cacheDataBlockPercent);
} else {
// Looks like heavy reading is over.
// Just exit form this mode.
heavyEvictionCount = 0;
cache.cacheDataBlockPercent = 100;
}
}
LOG.info("BlockCache evicted (MB): {}, overhead (%): {}, " +
"heavy eviction counter: {}, " +
"current caching DataBlock (%): {}",
freedSumMb, freedDataOverheadPercent,
heavyEvictionCount, cache.cacheDataBlockPercent);
freedSumMb = 0;
startTime = stopTime;
}
แแแแแ แแฎแแ แจแแแฎแแแแ แแ แงแแแแแคแแ แก แ แแแแฃแ แ แแแแแแแแแก แแแแแงแแแแแแ. แฉแแแ แแแแฅแแก แจแแแแแแ แขแแกแขแแก แกแแ แแแขแ:
- แแแแแฌแงแแ แกแแแแแ แแแแก แแแแแแแแ (25 แซแแคแ, แแแ แขแแ = 100)
- 5 แฌแฃแแแก แจแแแแแ แแแแแแขแแ แแ แแแแแฏแแ แแแ (25 แซแแคแ, แแแ แขแแ = 100)
- 5 แฌแฃแแแก แจแแแแแ แแแแแ แแแ multi-gets (แ แฉแแแ แแฎแแแแ แกแแแแแ แแแ แแกแแ)
แฉแแแ แแแแแแแแ แแ แแแจแแแแแก, แฏแแ hbase.lru.cache.heavy.eviction.count.limit = 10000 (แ แแช แ แแแแฃแ แแ แแแแแ แแแแก แคแฃแแฅแชแแแก) แแ แจแแแแแ แแแงแแแแแ แแแแแขแก = 0 (แฉแแ แแแแก แแแก).
แฅแแแแแ แแแงแแแแแ แแฃแ แแแแแแจแ แแฎแแแแแ, แแฃ แ แแแแ แแ แแก แฉแแ แแฃแแ แคแฃแแฅแชแแ แแ แแฆแแแแแแก Overshooting 14-71%-แแแ. แแ แแแแแ แ แแแขแแแ แแแ แแชแแ แแแแ, แ แแช แฉแแ แแแแก Backpressure-แก แแ HBase แแกแแ แฅแแจแแ แแแก แแแข แแแแแก.
แ แแแแแแแก แกแแ แแแ แแก แจแแกแแแ
แแแแแแแแแแแ (MB): 0, แแแแแคแแ แแแแ 0.0, แแแแแแแแแ (%): -100, แแซแแแ แแแแแกแแฎแแแแแก แแ แแชแฎแแแแ: 0, แแแแแแแแ แ แฅแแจแแ แแแ DataBlock (%): 100
แแแแแแแแแแแ (MB): 0, แแแแแคแแ แแแแ 0.0, แแแแแแแแแ (%): -100, แแซแแแ แแแแแกแแฎแแแแแก แแ แแชแฎแแแแ: 0, แแแแแแแแ แ แฅแแจแแ แแแ DataBlock (%): 100
แแแแแแแแแแแ (MB): 2170, แแแแแคแแ แแแแ 1.09, แแแแแแแแแ (%): 985, แแซแแแ แแแแแกแแฎแแแแแก แแ แแชแฎแแแแ: 1, แแแแแแแแ แ แฅแแจแแ แแแ DataBlock (%): 91 < แแแฌแงแแแ
แแแแแกแแฎแแแแฃแแ (MB): 3763, แแแแแคแแ แแแแ 1.08, แแแแแแแแแ (%): 1781, แแซแแแ แแแแแกแแฎแแแแแก แแ แแชแฎแแแแ: 2, แแแแแแแแ แ แฅแแจแแ แแแ DataBlock (%): 76
แแแแแกแแฎแแแแฃแแ (MB): 3306, แแแแแคแแ แแแแ 1.07, แแแแแแแแแ (%): 1553, แแซแแแ แแแแแกแแฎแแแแแก แแ แแชแฎแแแแ: 3, แแแแแแแแ แ แฅแแจแแ แแแ DataBlock (%): 61
แแแแแกแแฎแแแแฃแแ (MB): 2508, แแแแแคแแ แแแแ 1.06, แแแแแแแแแ (%): 1154, แแซแแแ แแแแแกแแฎแแแแแก แแ แแชแฎแแแแ: 4, แแแแแแแแ แ แฅแแจแแ แแแ DataBlock (%): 50
แแแแแกแแฎแแแแฃแแ (MB): 1824, แแแแแคแแ แแแแ 1.04, แแแแแแแแแ (%): 812, แแซแแแ แแแแแกแแฎแแแแแก แแ แแชแฎแแแแ: 5, แแแแแแแแ แ แฅแแจแแ แแแ DataBlock (%): 42
แแแแแกแแฎแแแแฃแแ (MB): 1482, แแแแแคแแ แแแแ 1.03, แแแแแแแแแ (%): 641, แแซแแแ แแแแแกแแฎแแแแแก แแ แแชแฎแแแแ: 6, แแแแแแแแ แ แฅแแจแแ แแแ DataBlock (%): 36
แแแแแกแแฎแแแแฃแแ (MB): 1140, แแแแแคแแ แแแแ 1.01, แแแแแแแแแ (%): 470, แแซแแแ แแแแแกแแฎแแแแแก แแ แแชแฎแแแแ: 7, แแแแแแแแ แ แฅแแจแแ แแแ DataBlock (%): 32
แแแแแกแแฎแแแแฃแแ (MB): 913, แแแแแคแแ แแแแ 1.0, แแแแแแแแแ (%): 356, แแซแแแ แแแแแกแแฎแแแแแก แแ แแชแฎแแแแ: 8, แแแแแแแแ แ แฅแแจแแ แแแ DataBlock (%): 29
แแแแแกแแฎแแแแฃแแ (MB): 912, แแแแแคแแ แแแแ 0.89, แแแแแแแแแ (%): 356, แแซแแแ แแแแแกแแฎแแแแแก แแ แแชแฎแแแแ: 9, แแแแแแแแ แ แฅแแจแแ แแแ DataBlock (%): 26
แแแแแกแแฎแแแแฃแแ (MB): 684, แแแแแคแแ แแแแ 0.76, แแแแแแแแแ (%): 242, แแซแแแ แแแแแกแแฎแแแแแก แแ แแชแฎแแแแ: 10, แแแแแแแแ แ แฅแแจแแ แแแ DataBlock (%): 24
แแแแแกแแฎแแแแฃแแ (MB): 684, แแแแแคแแ แแแแ 0.61, แแแแแแแแแ (%): 242, แแซแแแ แแแแแกแแฎแแแแแก แแ แแชแฎแแแแ: 11, แแแแแแแแ แ แฅแแจแแ แแแ DataBlock (%): 22
แแแแแกแแฎแแแแฃแแ (MB): 456, แแแแแคแแ แแแแ 0.51, แแแแแแแแแ (%): 128, แแซแแแ แแแแแกแแฎแแแแแก แแ แแชแฎแแแแ: 12, แแแแแแแแ แ แฅแแจแแ แแแ DataBlock (%): 21
แแแแแกแแฎแแแแฃแแ (MB): 456, แแแแแคแแ แแแแ 0.42, แแแแแแแแแ (%): 128, แแซแแแ แแแแแกแแฎแแแแแก แแ แแชแฎแแแแ: 13, แแแแแแแแ แ แฅแแจแแ แแแ DataBlock (%): 20
แแแแแกแแฎแแแแฃแแ (MB): 456, แแแแแคแแ แแแแ 0.33, แแแแแแแแแ (%): 128, แแซแแแ แแแแแกแแฎแแแแแก แแ แแชแฎแแแแ: 14, แแแแแแแแ แ แฅแแจแแ แแแ DataBlock (%): 19
แแแแแกแแฎแแแแฃแแ (MB): 342, แแแแแคแแ แแแแ 0.33, แแแแแแแแแ (%): 71, แแซแแแ แแแแแกแแฎแแแแแก แแ แแชแฎแแแแ: 15, แแแแแแแแ แ แฅแแจแแ แแแ DataBlock (%): 19
แแแแแกแแฎแแแแฃแแ (MB): 342, แแแแแคแแ แแแแ 0.32, แแแแแแแแแ (%): 71, แแซแแแ แแแแแกแแฎแแแแแก แแ แแชแฎแแแแ: 16, แแแแแแแแ แ แฅแแจแแ แแแ DataBlock (%): 19
แแแแแกแแฎแแแแฃแแ (MB): 342, แแแแแคแแ แแแแ 0.31, แแแแแแแแแ (%): 71, แแซแแแ แแแแแกแแฎแแแแแก แแ แแชแฎแแแแ: 17, แแแแแแแแ แ แฅแแจแแ แแแ DataBlock (%): 19
แแแแแกแแฎแแแแฃแแ (MB): 228, แแแแแคแแ แแแแ 0.3, แแแแแแแแแ (%): 14, แแซแแแ แแแแแกแแฎแแแแแก แแ แแชแฎแแแแ: 18, แแแแแแแแ แ แฅแแจแแ แแแ DataBlock (%): 19
แแแแแกแแฎแแแแฃแแ (MB): 228, แแแแแคแแ แแแแ 0.29, แแแแแแแแแ (%): 14, แแซแแแ แแแแแกแแฎแแแแแก แแ แแชแฎแแแแ: 19, แแแแแแแแ แ แฅแแจแแ แแแ DataBlock (%): 19
แแแแแกแแฎแแแแฃแแ (MB): 228, แแแแแคแแ แแแแ 0.27, แแแแแแแแแ (%): 14, แแซแแแ แแแแแกแแฎแแแแแก แแ แแชแฎแแแแ: 20, แแแแแแแแ แ แฅแแจแแ แแแ DataBlock (%): 19
แแแแแกแแฎแแแแฃแแ (MB): 228, แแแแแคแแ แแแแ 0.25, แแแแแแแแแ (%): 14, แแซแแแ แแแแแกแแฎแแแแแก แแ แแชแฎแแแแ: 21, แแแแแแแแ แ แฅแแจแแ แแแ DataBlock (%): 19
แแแแแกแแฎแแแแฃแแ (MB): 228, แแแแแคแแ แแแแ 0.24, แแแแแแแแแ (%): 14, แแซแแแ แแแแแกแแฎแแแแแก แแ แแชแฎแแแแ: 22, แแแแแแแแ แ แฅแแจแแ แแแ DataBlock (%): 19
แแแแแกแแฎแแแแฃแแ (MB): 228, แแแแแคแแ แแแแ 0.22, แแแแแแแแแ (%): 14, แแซแแแ แแแแแกแแฎแแแแแก แแ แแชแฎแแแแ: 23, แแแแแแแแ แ แฅแแจแแ แแแ DataBlock (%): 19
แแแแแกแแฎแแแแฃแแ (MB): 228, แแแแแคแแ แแแแ 0.21, แแแแแแแแแ (%): 14, แแซแแแ แแแแแกแแฎแแแแแก แแ แแชแฎแแแแ: 24, แแแแแแแแ แ แฅแแจแแ แแแ DataBlock (%): 19
แแแแแกแแฎแแแแฃแแ (MB): 228, แแแแแคแแ แแแแ 0.2, แแแแแแแแแ (%): 14, แแซแแแ แแแแแกแแฎแแแแแก แแ แแชแฎแแแแ: 25, แแแแแแแแ แ แฅแแจแแ แแแ DataBlock (%): 19
แแแแแกแแฎแแแแฃแแ (MB): 228, แแแแแคแแ แแแแ 0.17, แแแแแแแแแ (%): 14, แแซแแแ แแแแแกแแฎแแแแแก แแ แแชแฎแแแแ: 26, แแแแแแแแ แ แฅแแจแแ แแแ DataBlock (%): 19
แแแแแแแแแแแ (MB): 456, แแแแแคแแ แแแแ 0.17, แแแแแแแแแ (%): 128, แแซแแแ แแแแแกแแฎแแแแแก แแ แแชแฎแแแแ: 27, แแแแแแแแ แ แฅแแจแแ แแแ DataBlock (%): 18 < แแแแแขแแแฃแแแ แแฆแแแก (แแแแ แแ แชแฎแ แแแ แแแแแแ)
แแแแแกแแฎแแแแฃแแ (MB): 456, แแแแแคแแ แแแแ 0.15, แแแแแแแแแ (%): 128, แแซแแแ แแแแแกแแฎแแแแแก แแ แแชแฎแแแแ: 28, แแแแแแแแ แ แฅแแจแแ แแแ DataBlock (%): 17
แแแแแกแแฎแแแแฃแแ (MB): 342, แแแแแคแแ แแแแ 0.13, แแแแแแแแแ (%): 71, แแซแแแ แแแแแกแแฎแแแแแก แแ แแชแฎแแแแ: 29, แแแแแแแแ แ แฅแแจแแ แแแ DataBlock (%): 17
แแแแแกแแฎแแแแฃแแ (MB): 342, แแแแแคแแ แแแแ 0.11, แแแแแแแแแ (%): 71, แแซแแแ แแแแแกแแฎแแแแแก แแ แแชแฎแแแแ: 30, แแแแแแแแ แ แฅแแจแแ แแแ DataBlock (%): 17
แแแแแกแแฎแแแแฃแแ (MB): 342, แแแแแคแแ แแแแ 0.09, แแแแแแแแแ (%): 71, แแซแแแ แแแแแกแแฎแแแแแก แแ แแชแฎแแแแ: 31, แแแแแแแแ แ แฅแแจแแ แแแ DataBlock (%): 17
แแแแแกแแฎแแแแฃแแ (MB): 228, แแแแแคแแ แแแแ 0.08, แแแแแแแแแ (%): 14, แแซแแแ แแแแแกแแฎแแแแแก แแ แแชแฎแแแแ: 32, แแแแแแแแ แ แฅแแจแแ แแแ DataBlock (%): 17
แแแแแกแแฎแแแแฃแแ (MB): 228, แแแแแคแแ แแแแ 0.07, แแแแแแแแแ (%): 14, แแซแแแ แแแแแกแแฎแแแแแก แแ แแชแฎแแแแ: 33, แแแแแแแแ แ แฅแแจแแ แแแ DataBlock (%): 17
แแแแแกแแฎแแแแฃแแ (MB): 228, แแแแแคแแ แแแแ 0.06, แแแแแแแแแ (%): 14, แแซแแแ แแแแแกแแฎแแแแแก แแ แแชแฎแแแแ: 34, แแแแแแแแ แ แฅแแจแแ แแแ DataBlock (%): 17
แแแแแกแแฎแแแแฃแแ (MB): 228, แแแแแคแแ แแแแ 0.05, แแแแแแแแแ (%): 14, แแซแแแ แแแแแกแแฎแแแแแก แแ แแชแฎแแแแ: 35, แแแแแแแแ แ แฅแแจแแ แแแ DataBlock (%): 17
แแแแแกแแฎแแแแฃแแ (MB): 228, แแแแแคแแ แแแแ 0.05, แแแแแแแแแ (%): 14, แแซแแแ แแแแแกแแฎแแแแแก แแ แแชแฎแแแแ: 36, แแแแแแแแ แ แฅแแจแแ แแแ DataBlock (%): 17
แแแแแกแแฎแแแแฃแแ (MB): 228, แแแแแคแแ แแแแ 0.04, แแแแแแแแแ (%): 14, แแซแแแ แแแแแกแแฎแแแแแก แแ แแชแฎแแแแ: 37, แแแแแแแแ แ แฅแแจแแ แแแ DataBlock (%): 17
แแแแแแแแแแแ (MB): 109, แแแแแคแแ แแแแ 0.04, แแแแแแแแแ (%): -46, แแซแแแ แแแแแกแแฎแแแแแก แแ แแชแฎแแแแ: 37, แแแแแแแแ แ แฅแแจแแ แแแ DataBlock (%): 22 < แฃแแแแ แฌแแแแ
แแแแแกแแฎแแแแฃแแ (MB): 798, แแแแแคแแ แแแแ 0.24, แแแแแแแแแ (%): 299, แแซแแแ แแแแแกแแฎแแแแแก แแ แแชแฎแแแแ: 38, แแแแแแแแ แ แฅแแจแแ แแแ DataBlock (%): 20
แแแแแกแแฎแแแแฃแแ (MB): 798, แแแแแคแแ แแแแ 0.29, แแแแแแแแแ (%): 299, แแซแแแ แแแแแกแแฎแแแแแก แแ แแชแฎแแแแ: 39, แแแแแแแแ แ แฅแแจแแ แแแ DataBlock (%): 18
แแแแแกแแฎแแแแฃแแ (MB): 570, แแแแแคแแ แแแแ 0.27, แแแแแแแแแ (%): 185, แแซแแแ แแแแแกแแฎแแแแแก แแ แแชแฎแแแแ: 40, แแแแแแแแ แ แฅแแจแแ แแแ DataBlock (%): 17
แแแแแกแแฎแแแแฃแแ (MB): 456, แแแแแคแแ แแแแ 0.22, แแแแแแแแแ (%): 128, แแซแแแ แแแแแกแแฎแแแแแก แแ แแชแฎแแแแ: 41, แแแแแแแแ แ แฅแแจแแ แแแ DataBlock (%): 16
แแแแแกแแฎแแแแฃแแ (MB): 342, แแแแแคแแ แแแแ 0.16, แแแแแแแแแ (%): 71, แแซแแแ แแแแแกแแฎแแแแแก แแ แแชแฎแแแแ: 42, แแแแแแแแ แ แฅแแจแแ แแแ DataBlock (%): 16
แแแแแกแแฎแแแแฃแแ (MB): 342, แแแแแคแแ แแแแ 0.11, แแแแแแแแแ (%): 71, แแซแแแ แแแแแกแแฎแแแแแก แแ แแชแฎแแแแ: 43, แแแแแแแแ แ แฅแแจแแ แแแ DataBlock (%): 16
แแแแแกแแฎแแแแฃแแ (MB): 228, แแแแแคแแ แแแแ 0.09, แแแแแแแแแ (%): 14, แแซแแแ แแแแแกแแฎแแแแแก แแ แแชแฎแแแแ: 44, แแแแแแแแ แ แฅแแจแแ แแแ DataBlock (%): 16
แแแแแกแแฎแแแแฃแแ (MB): 228, แแแแแคแแ แแแแ 0.07, แแแแแแแแแ (%): 14, แแซแแแ แแแแแกแแฎแแแแแก แแ แแชแฎแแแแ: 45, แแแแแแแแ แ แฅแแจแแ แแแ DataBlock (%): 16
แแแแแกแแฎแแแแฃแแ (MB): 228, แแแแแคแแ แแแแ 0.05, แแแแแแแแแ (%): 14, แแซแแแ แแแแแกแแฎแแแแแก แแ แแชแฎแแแแ: 46, แแแแแแแแ แ แฅแแจแแ แแแ DataBlock (%): 16
แแแแแกแแฎแแแแฃแแ (MB): 222, แแแแแคแแ แแแแ 0.04, แแแแแแแแแ (%): 11, แแซแแแ แแแแแกแแฎแแแแแก แแ แแชแฎแแแแ: 47, แแแแแแแแ แ แฅแแจแแ แแแ DataBlock (%): 16
แแแแแแแแแแแ (MB): 104, แแแแแคแแ แแแแ 0.03, แแแแแแแแแ (%): -48, แแซแแแ แแแแแกแแฎแแแแแก แแ แแชแฎแแแแ: 47, แแแแแแแแ แ แฅแแจแแ แแแ DataBlock (%): 21 < แแแแฆแแแ แจแแคแแ แฎแแแ
แแแแแกแแฎแแแแฃแแ (MB): 684, แแแแแคแแ แแแแ 0.2, แแแแแแแแแ (%): 242, แแซแแแ แแแแแกแแฎแแแแแก แแ แแชแฎแแแแ: 48, แแแแแแแแ แ แฅแแจแแ แแแ DataBlock (%): 19
แแแแแกแแฎแแแแฃแแ (MB): 570, แแแแแคแแ แแแแ 0.23, แแแแแแแแแ (%): 185, แแซแแแ แแแแแกแแฎแแแแแก แแ แแชแฎแแแแ: 49, แแแแแแแแ แ แฅแแจแแ แแแ DataBlock (%): 18
แแแแแกแแฎแแแแฃแแ (MB): 342, แแแแแคแแ แแแแ 0.22, แแแแแแแแแ (%): 71, แแซแแแ แแแแแกแแฎแแแแแก แแ แแชแฎแแแแ: 50, แแแแแแแแ แ แฅแแจแแ แแแ DataBlock (%): 18
แแแแแกแแฎแแแแฃแแ (MB): 228, แแแแแคแแ แแแแ 0.21, แแแแแแแแแ (%): 14, แแซแแแ แแแแแกแแฎแแแแแก แแ แแชแฎแแแแ: 51, แแแแแแแแ แ แฅแแจแแ แแแ DataBlock (%): 18
แแแแแกแแฎแแแแฃแแ (MB): 228, แแแแแคแแ แแแแ 0.2, แแแแแแแแแ (%): 14, แแซแแแ แแแแแกแแฎแแแแแก แแ แแชแฎแแแแ: 52, แแแแแแแแ แ แฅแแจแแ แแแ DataBlock (%): 18
แแแแแกแแฎแแแแฃแแ (MB): 228, แแแแแคแแ แแแแ 0.18, แแแแแแแแแ (%): 14, แแซแแแ แแแแแกแแฎแแแแแก แแ แแชแฎแแแแ: 53, แแแแแแแแ แ แฅแแจแแ แแแ DataBlock (%): 18
แแแแแกแแฎแแแแฃแแ (MB): 228, แแแแแคแแ แแแแ 0.16, แแแแแแแแแ (%): 14, แแซแแแ แแแแแกแแฎแแแแแก แแ แแชแฎแแแแ: 54, แแแแแแแแ แ แฅแแจแแ แแแ DataBlock (%): 18
แแแแแกแแฎแแแแฃแแ (MB): 228, แแแแแคแแ แแแแ 0.14, แแแแแแแแแ (%): 14, แแซแแแ แแแแแกแแฎแแแแแก แแ แแชแฎแแแแ: 55, แแแแแแแแ แ แฅแแจแแ แแแ DataBlock (%): 18
แแแแแแแแแแแ (MB): 112, แแแแแคแแ แแแแ 0.14, แแแแแแแแแ (%): -44, แแซแแแ แแแแแกแแฎแแแแแก แแ แแชแฎแแแแ: 55, แแแแแแแแ แ แฅแแจแแ แแแ DataBlock (%): 23 < แฃแแแแ แฌแแแแ
แแแแแกแแฎแแแแฃแแ (MB): 456, แแแแแคแแ แแแแ 0.26, แแแแแแแแแ (%): 128, แแซแแแ แแแแแกแแฎแแแแแก แแ แแชแฎแแแแ: 56, แแแแแแแแ แ แฅแแจแแ แแแ DataBlock (%): 22
แแแแแกแแฎแแแแฃแแ (MB): 342, แแแแแคแแ แแแแ 0.31, แแแแแแแแแ (%): 71, แแซแแแ แแแแแกแแฎแแแแแก แแ แแชแฎแแแแ: 57, แแแแแแแแ แ แฅแแจแแ แแแ DataBlock (%): 22
แแแแแกแแฎแแแแฃแแ (MB): 342, แแแแแคแแ แแแแ 0.33, แแแแแแแแแ (%): 71, แแซแแแ แแแแแกแแฎแแแแแก แแ แแชแฎแแแแ: 58, แแแแแแแแ แ แฅแแจแแ แแแ DataBlock (%): 22
แแแแแกแแฎแแแแฃแแ (MB): 342, แแแแแคแแ แแแแ 0.33, แแแแแแแแแ (%): 71, แแซแแแ แแแแแกแแฎแแแแแก แแ แแชแฎแแแแ: 59, แแแแแแแแ แ แฅแแจแแ แแแ DataBlock (%): 22
แแแแแกแแฎแแแแฃแแ (MB): 342, แแแแแคแแ แแแแ 0.33, แแแแแแแแแ (%): 71, แแซแแแ แแแแแกแแฎแแแแแก แแ แแชแฎแแแแ: 60, แแแแแแแแ แ แฅแแจแแ แแแ DataBlock (%): 22
แแแแแกแแฎแแแแฃแแ (MB): 342, แแแแแคแแ แแแแ 0.33, แแแแแแแแแ (%): 71, แแซแแแ แแแแแกแแฎแแแแแก แแ แแชแฎแแแแ: 61, แแแแแแแแ แ แฅแแจแแ แแแ DataBlock (%): 22
แแแแแกแแฎแแแแฃแแ (MB): 342, แแแแแคแแ แแแแ 0.33, แแแแแแแแแ (%): 71, แแซแแแ แแแแแกแแฎแแแแแก แแ แแชแฎแแแแ: 62, แแแแแแแแ แ แฅแแจแแ แแแ DataBlock (%): 22
แแแแแกแแฎแแแแฃแแ (MB): 342, แแแแแคแแ แแแแ 0.33, แแแแแแแแแ (%): 71, แแซแแแ แแแแแกแแฎแแแแแก แแ แแชแฎแแแแ: 63, แแแแแแแแ แ แฅแแจแแ แแแ DataBlock (%): 22
แแแแแกแแฎแแแแฃแแ (MB): 342, แแแแแคแแ แแแแ 0.32, แแแแแแแแแ (%): 71, แแซแแแ แแแแแกแแฎแแแแแก แแ แแชแฎแแแแ: 64, แแแแแแแแ แ แฅแแจแแ แแแ DataBlock (%): 22
แแแแแกแแฎแแแแฃแแ (MB): 342, แแแแแคแแ แแแแ 0.33, แแแแแแแแแ (%): 71, แแซแแแ แแแแแกแแฎแแแแแก แแ แแชแฎแแแแ: 65, แแแแแแแแ แ แฅแแจแแ แแแ DataBlock (%): 22
แแแแแกแแฎแแแแฃแแ (MB): 342, แแแแแคแแ แแแแ 0.33, แแแแแแแแแ (%): 71, แแซแแแ แแแแแกแแฎแแแแแก แแ แแชแฎแแแแ: 66, แแแแแแแแ แ แฅแแจแแ แแแ DataBlock (%): 22
แแแแแกแแฎแแแแฃแแ (MB): 342, แแแแแคแแ แแแแ 0.32, แแแแแแแแแ (%): 71, แแซแแแ แแแแแกแแฎแแแแแก แแ แแชแฎแแแแ: 67, แแแแแแแแ แ แฅแแจแแ แแแ DataBlock (%): 22
แแแแแกแแฎแแแแฃแแ (MB): 342, แแแแแคแแ แแแแ 0.33, แแแแแแแแแ (%): 71, แแซแแแ แแแแแกแแฎแแแแแก แแ แแชแฎแแแแ: 68, แแแแแแแแ แ แฅแแจแแ แแแ DataBlock (%): 22
แแแแแกแแฎแแแแฃแแ (MB): 342, แแแแแคแแ แแแแ 0.32, แแแแแแแแแ (%): 71, แแซแแแ แแแแแกแแฎแแแแแก แแ แแชแฎแแแแ: 69, แแแแแแแแ แ แฅแแจแแ แแแ DataBlock (%): 22
แแแแแกแแฎแแแแฃแแ (MB): 342, แแแแแคแแ แแแแ 0.32, แแแแแแแแแ (%): 71, แแซแแแ แแแแแกแแฎแแแแแก แแ แแชแฎแแแแ: 70, แแแแแแแแ แ แฅแแจแแ แแแ DataBlock (%): 22
แแแแแกแแฎแแแแฃแแ (MB): 342, แแแแแคแแ แแแแ 0.33, แแแแแแแแแ (%): 71, แแซแแแ แแแแแกแแฎแแแแแก แแ แแชแฎแแแแ: 71, แแแแแแแแ แ แฅแแจแแ แแแ DataBlock (%): 22
แแแแแกแแฎแแแแฃแแ (MB): 342, แแแแแคแแ แแแแ 0.33, แแแแแแแแแ (%): 71, แแซแแแ แแแแแกแแฎแแแแแก แแ แแชแฎแแแแ: 72, แแแแแแแแ แ แฅแแจแแ แแแ DataBlock (%): 22
แแแแแกแแฎแแแแฃแแ (MB): 342, แแแแแคแแ แแแแ 0.33, แแแแแแแแแ (%): 71, แแซแแแ แแแแแกแแฎแแแแแก แแ แแชแฎแแแแ: 73, แแแแแแแแ แ แฅแแจแแ แแแ DataBlock (%): 22
แแแแแกแแฎแแแแฃแแ (MB): 342, แแแแแคแแ แแแแ 0.33, แแแแแแแแแ (%): 71, แแซแแแ แแแแแกแแฎแแแแแก แแ แแชแฎแแแแ: 74, แแแแแแแแ แ แฅแแจแแ แแแ DataBlock (%): 22
แแแแแกแแฎแแแแฃแแ (MB): 342, แแแแแคแแ แแแแ 0.33, แแแแแแแแแ (%): 71, แแซแแแ แแแแแกแแฎแแแแแก แแ แแชแฎแแแแ: 75, แแแแแแแแ แ แฅแแจแแ แแแ DataBlock (%): 22
แแแแแกแแฎแแแแฃแแ (MB): 342, แแแแแคแแ แแแแ 0.33, แแแแแแแแแ (%): 71, แแซแแแ แแแแแกแแฎแแแแแก แแ แแชแฎแแแแ: 76, แแแแแแแแ แ แฅแแจแแ แแแ DataBlock (%): 22
แแแแแแแแแแแ (MB): 21, แแแแแคแแ แแแแ 0.33, แแแแแแแแแ (%): -90, แแซแแแ แแแแแกแแฎแแแแแก แแ แแชแฎแแแแ: 76, แแแแแแแแ แ แฅแแจแแ แแแ DataBlock (%): 32
แแแแแแแแแแแ (MB): 0, แแแแแคแแ แแแแ 0.0, แแแแแแแแแ (%): -100, แแซแแแ แแแแแกแแฎแแแแแก แแ แแชแฎแแแแ: 0, แแแแแแแแ แ แฅแแจแแ แแแ DataBlock (%): 100
แแแแแแแแแแแ (MB): 0, แแแแแคแแ แแแแ 0.0, แแแแแแแแแ (%): -100, แแซแแแ แแแแแกแแฎแแแแแก แแ แแชแฎแแแแ: 0, แแแแแแแแ แ แฅแแจแแ แแแ DataBlock (%): 100
แกแแแแแ แแแ แกแแญแแ แ แแงแ แแ แแ แแ แแแแแ แแ แแชแแกแแก แแแแแกแแฉแแแแ แแ แฅแแจแแก แกแแฅแชแแแก แจแแ แแก แฃแ แแแแ แแแแแก แแ แแคแแแแก แกแแฎแแ - แแ แแฏแแ แแแ (แกแแแแช แแแแแแแ, แ แแแแแแแช แแฅแแแแ แแ แแกแแ แแก แงแแคแแแ แแแแฎแแแแแแ) แแ แแ แแแแ (แแแแแชแแแแแ "แแแแฎแแแแแแ" แแ แแฎแแ แแแแแช แแแแฎแแแ แแฅ):
แแ แแแแแก, แ แแแแ แแแแแแงแฃแ แแแ แแแ แแแแขแ แแแแก แแแฅแแแแแแ แแ แแคแแแแก แกแแฎแแ. แจแแแแ แแแแกแแแแก, แฅแแจแ แแแแแแแแแ แแแแแแแแ แแแแแ แแฃแแ แแงแ, แจแแแแแ แแแแฌแงแ HBase แฅแแจแแ แแแแ แแ แแแขแแแแแแชแแแก แกแแแฃแจแแแแแแก แแแฌแงแแแแก แแแแแแแแแแแ 5 แฌแฃแแแ (30 แแแแแกแแฎแแแแแก แชแแแแ).
แกแ แฃแแ แแแแ แจแแแแซแแแแ แแฎแแแแ Pull Request-แจแ
แแฃแแชแ, 300 แแแแกแ แฌแแแแแฎแแ แฌแแแจแ แแ แแ แแก แงแแแแแคแแ แ, แ แแกแ แแแฆแฌแแแแช แจแแกแแซแแแแแแแ แแ แแแแ แแขแฃแ แแแ แแ แแแ แแแแแจแ. แคแแฅแขแแ, แ แแ แ แแแแกแแช แแญแแ แแแแแ แแแแแชแแแแแแก แฌแแแแแ HDFS-แแก แกแแจแฃแแแแแแ, แแแแแแงแแแแแ ShortCircuitCache (แจแแแแแแแจแ SSC) แแแฅแแแแแแ, แ แแแแแแช แกแแจแฃแแแแแแก แแแซแแแแ แฃแจแฃแแแแ แจแแฎแแแแแ แแแแแชแแแแแแ, แแแแแแแ แแแชแแแแ แฅแกแแแฃแ แ แฃแ แแแแ แแฅแแแแแแ.
แแ แแคแแแแ แแแแ แแฉแแแแ, แ แแ แแแฃแฎแแแแแแ แแแแกแ, แ แแ แแก แแแฅแแแแแแ แแซแแแแ แแแ แแแแแแแก, แแก แแกแแแ แฎแแแแ แ แแฆแแช แแแแแแขแจแ แแแกแขแแแฃแแแแ, แ แแแแแ แแแแฅแแแก แงแแแแ แแซแแแ แแแแ แแชแแ แฎแแแแ แกแแแแขแแก แจแแแแแ, แ แแช แแฌแแแแก แฃแแแขแแก แแ แแก แแแแแแแแแก.
แแแแก แแแชแแแแแแ แแแแก แจแแแแแ แแแแฎแแแแ, แ แแ แแ แแแแแแแก แแแแ แแแก แแแแ แจแแกแแซแแแแแแแ แแแแแฃแแแแแแแแ SSC-แแแแก แแแกแแแแก แจแแฅแแแแ:
private final ShortCircuitCache[] shortCircuitCache;
...
shortCircuitCache = new ShortCircuitCache[this.clientShortCircuitNum];
for (int i = 0; i < this.clientShortCircuitNum; i++)
this.shortCircuitCache[i] = new ShortCircuitCache(โฆ);
แแ แจแแแแแ แแแฃแจแแแแ แแแแแแ, แแแแแแแแก แแแแแแแแแแ แแกแแแ แแแแ แแคแกแแขแฃแ แ แชแแคแ แแ:
public ShortCircuitCache getShortCircuitCache(long idx) {
return shortCircuitCache[(int) (idx % clientShortCircuitNum)];
}
แแฎแแ แแฅแแแ แจแแแแซแแแแ แแแแฌแงแแ แขแแกแขแแ แแแ. แแแแกแแแแแก แฉแแแ แฌแแแแแแแฎแแแ แคแแแแแแก HDFS-แแแ แแแ แขแแแ แแ แแแแแแแแแแแแแ แแแแแแแชแแแ. แแแแงแแแแ แแแ แแแแขแ แแแ:
conf.set("dfs.client.read.shortcircuit", "true");
conf.set("dfs.client.read.shortcircuit.buffer.size", "65536"); // ะฟะพ ะดะตัะพะปัั = 1 ะะ ะธ ััะพ ัะธะปัะฝะพ ะทะฐะผะตะดะปัะตั ััะตะฝะธะต, ะฟะพััะพะผั ะปัััะต ะฟัะธะฒะตััะธ ะฒ ัะพะพัะฒะตัััะฒะธะต ะบ ัะตะฐะปัะฝัะผ ะฝัะถะดะฐะผ
conf.set("dfs.client.short.circuit.num", num); // ะพั 1 ะดะพ 10
แแ แฃแแ แแแแ แฌแแแแแแฎแแ แคแแแแแแ:
FSDataInputStream in = fileSystem.open(path);
for (int i = 0; i < count; i++) {
position += 65536;
if (position > 900000000)
position = 0L;
int res = in.read(position, byteBuffer, 0, 65536);
}
แแก แแแแ แจแแกแ แฃแแแแฃแแแ แชแแแแแฃแ แซแแคแแแจแ แแ แแแแแ แแแ แแ แแแ แแฃแแแ แฌแแแแแฎแฃแแ แคแแแแแแแก แ แแแแแแแแแก (10-แแแ 200-แแแ - แฐแแ แแแแแขแแแฃแ แ แฆแแ แซแ) แแ แฅแแจแแแแก แ แแแแแแแแแก (1-แแแ 10-แแแ - แแ แแคแแแฃแแ). แแแ แขแแแแแฃแ แ แฆแแ แซแ แแแแฉแแแแแแก แแฉแฅแแ แแแแก, แ แแแแแแช แแแแแฌแแแฃแแแ SSC-แแก แแแแ แแแ แแ แจแแแแฎแแแแแก แแแแแ แ, แ แแแแกแแช แแ แแก แแฎแแแแ แแ แแ แฅแแจแ.
แ แแแแ แฌแแแแแแแฎแแ แแ แแคแแแ: 100 แแแแกแ แฌแแแแแฎแแแก แจแแกแ แฃแแแแแก แแ แ 64 แแ แแแแแจแ แแ แแ แฅแแจแแ แแแแแฎแแแก 78 แฌแแแก. แแแจแแ แ แแชแ 5 แฅแแจแแ แแแแก 16 แฌแแแ แกแญแแ แแแแ. แแแแ. แแ แแก 5-แฏแแ แแฉแฅแแ แแแ. แ แแแแ แช แแ แแคแแแแแแ แฉแแแก, แแคแแฅแขแ แแ แช แแฃ แแกแ แจแแกแแแฉแแแแแ แแชแแ แ แ แแแแแแแแแก แแแ แแแแแฃแ แ แฌแแแแแฎแแแกแแแแก, แแก แแฌแงแแแก แจแแกแแแฉแแแ แ แแแก, แ แแแแกแแช 50 แซแแคแแ แแแขแ แฌแแแแแฎแแแ. แแกแแแ แจแแกแแแฉแแแแแ SSC-แแแแก แ แแแแแแแแแก แแแแ แแ 6-แแแ. แแ แแแแแ แแซแแแแ แแแแจแแแแแแแแแ แแชแแ แ แจแแกแ แฃแแแแแก แแ แแแก.
แจแแแแจแแแ 1: แแแแแแแแ แขแแกแขแแก แจแแแแแแแ แกแแแแแแ แชแแแแแแแแแ (แแฎ. แฅแแแแแ), แแแแฎแแ แชแแแแแ 3 แแแจแแแแ แแ แแแฆแแแฃแแ แแแแจแแแแแแแแแ แกแแจแฃแแแแ แจแแคแแกแแ.
แจแแแแจแแแ 2: แจแแแแฎแแแแแแ แฌแแแแแแก แแแแคแแแฃแ แแชแแแก แจแแแแแแ แแแฆแแแฃแแ แแคแแฅแขแฃแ แแแ แแแแแแ, แแฃแแชแ แแแแแ แฌแแแแแ แแแแแ แแแแแ.
แแฃแแชแ, แแฃแชแแแแแแแแ แแแแแแแ แขแแ, แ แแ HBase-แแก แจแแแแฎแแแแแกแแแ แแแแกแฎแแแแแแแ, แแก แแฉแฅแแ แแแ แงแแแแแแแแก แฃแคแแกแ แแ แแ แแก. แแฅ แฉแแแ โแแแฎแกแแแโ CPU-แก แจแแกแแซแแแแแแแแก, แฃแคแ แ แแแขแ แกแแแฃแจแแ แแแแแแแแก, แแแชแแแแ แกแแแแขแแแแ แฉแแแแแแแแแแก.
แแฅ แจแแแแซแแแแ แแแแแแแ แแแ, แ แแ แแแแแแแ, แฅแแจแแแแก แ แแแแแแแแแก แแ แแ แแซแแแแ CPU-แก แแแแแงแแแแแแก แแแแฎแแแแแแ แแ แแแแ แชแแฃแ แแ แแแก. แแฃแแชแ, แแ แแก แแแแแ แแแขแ แแแแแแแแแแ แแแแแแแแชแแแแ.
แแแแแแแแแ, แแแแแ แฃแคแ แ แแแขแแแฃแ แแ แจแแแฎแแแแ แแแ แแแแขแ แก SSC = 3. แแคแแฅแขแฃแ แแแแก แแ แแ แแแแแแแแแจแ แแ แแก แแแแฎแแแแแแ 3.3-แฏแแ . แฅแแแแแ แแแชแแแฃแแแ แกแแแแแ แชแแแแแฃแแ แแแจแแแแแก แจแแแแแแแ.
แแแจแแ, แ แแแแกแแช แแ แแชแแกแแ แแก แแแฎแแแ แแแ แแแ แแแแ แแแแฎแแแแแแ 2.8-แฏแแ . แแแแกแฎแแแแแแ แแ แช แแฃ แแกแ แแแแแ, แแแแ แแ แแแขแแ แ แแ แแขแ แฃแแแ แแแแแแแ แแ แแ แจแแแซแแแแ แกแแแแแจแ แแแกแฌแ แแแ แแ แแแแแแแแแแแแก แแแแแแช แแแแกแฌแ แแก.
แแแ แแแแ, แแก แแแแแแแแแ แแแแฅแแแแแแก แแแแแกแแแแ แฎแแแกแแฌแงแแแ, แ แแแแแแช แแงแแแแแก HDFS-แแ แแแแ แฌแแแแแแก (แแแแแแแแแ, Spark แแ แ.แจ.), แแ แแแ แแแแ, แ แแ แแแแแแแชแแแก แแแแ แแกแฃแแฃแฅแ แฌแแแแ (แแแฃ แจแขแแคแกแแแ HDFS แแแแแแขแแก แแฎแแ แแกแแ) แแ แแ แแก CPU-แแก แฃแคแแกแ แกแแแซแแแแ แ. . แจแแกแแแแฌแแแแแแ, แแแแแ แจแแแแแแฌแแแ แ แ แแคแแฅแขแ แแฅแแแแ BlockCache แแแขแแแแแแชแแแกแ แแ SSC tuning-แแก แแแแแแแแ แแแฃแ แแแแแงแแแแแแก HBase-แแแ แฌแแกแแแแแฎแแ.
แฉแแแก, แ แแ แแกแแ แแแ แแแแแจแ แแคแแฅแขแ แแ แแ แแก แแกแแแ แแแแ, แ แแแแ แช แแแฎแแแฌแแ แขแแกแขแแแจแ (แแแแฎแแ แงแแแแแแแแ แ แแแแฃแจแแแแแแก แแแ แแจแ), แแแแ แแ แกแแแกแแแแ แจแแกแแซแแแแแแแ แแฅ แแแแแขแแแแแ 80K แแแแแฌแฃแ แแ. แแ แแแ แแแขแแแแแแชแแ แแ แแแ แฃแแ แฃแแแแแงแแคแก 4-แฏแแ แกแแฉแฅแแ แแก.
แแ แแแขแแแแแแชแแแกแแแแก แแแแ แแช แแแแแแแ
แแ แแแแแก, แกแแแแขแแ แแกแ แแงแ แแกแแแแกแ แคแแ แแ แกแแแขแแก แแแแแชแแแแ แแแแแก, Cassandra-แกแ แแ HBase-แแก แแแแฎแแแก แจแแกแ แฃแแแแแก แจแแแแ แแแ.
แแแแกแแแแแก แฉแแแ แแแแฃแจแแแ แกแขแแแแแ แขแฃแแ YCSB แแแขแแแ แแแแก แขแแกแขแแ แแแแก แฃแขแแแแขแ แแ แ แฐแแกแขแแแแ (แกแฃแ 800 แแแแ). แกแแ แแแ แแก แแฎแแ แแก - RegionServer-แแกแ แแ Cassandra-แก 4 แจแแแแฎแแแแ 4 แฐแแกแขแแ (แแ แ แแก, แกแแแแช แแแแแแขแแแ แแฃแจแแแแแ, แแแแ แแแแแแแแก แแแแแแแ แแกแแชแแแแแแแ). แฌแแแแแฎแแแแ แแแแแแ แแแแแก แชแฎแ แแแแแแแแ:
HBase โ 300 GB HDFS-แแ (100 GB แกแฃแคแแ แแแแแชแแแแแ)
Cassandra - 250 GB (แ แแแแแแแชแแแก แแแแคแแชแแแแขแ = 3)
แแแแ. แแแชแฃแแแแ แแแแฎแแแแแแ แแแแแ แแงแ (HBase-แจแ แชแแขแ แแแขแ).
HBase แแแ แแแแขแ แแแ:
dfs.client.short.circuit.num = 5 (HDFS แแแแแแขแแก แแแขแแแแแแชแแ)
hbase.lru.cache.heavy.eviction.count.limit = 30 - แแก แแแจแแแแก, แ แแ แแแขแฉแ แแแแฌแงแแแก แแฃแจแแแแแก 30 แแแแแกแแฎแแแแแก แจแแแแแ (~5 แฌแฃแแ)
hbase.lru.cache.heavy.eviction.mb.size.limit = 300 - แฅแแจแแ แแแแกแ แแ แแแแแกแแฎแแแแแก แกแแแแแแ แแแชแฃแแแแ
YCSB แแฃแ แแแแแแ แแงแ แแแแแแแแแแแฃแแ แแ แจแแแแแแแแ Excel แแ แแคแแแแแจแ:
แ แแแแ แช แฎแแแแแ, แแก แแแขแแแแแแชแแ แจแแกแแซแแแแแแก แฎแแแก แแ แแแ แแแแแจแ แแ แแแแแชแแแแ แแแแแแแก แแฃแจแแแแแก แจแแแแ แแแแก แแ แฌแแแจแ 450 แแแแกแ แฌแแแแแฎแแแก แแแฆแฌแแแแก.
แแแแแแแแแแแ, แ แแ แแก แแแคแแ แแแชแแ แจแแแซแแแแ แแแแแแกแแแแก แกแแกแแ แแแแแ แแงแแก แแ แแแฃแฅแขแแฃแแแแแกแแแแก แกแแแแขแแ แแกแ แแ แซแแแแก แแ แแก.
แฌแงแแ แ: www.habr.com