เบเบฐเบชเบดเบเบเบดเบเบฒเบเบชเบนเบเปเบกเปเบเบซเบเบถเปเบเปเบเบเบงเบฒเบกเบเปเบญเบเบเบฒเบเบเบตเปเบชเปเบฒเบเบฑเบเปเบเปเบงเบฅเบฒเบเบตเปเปเบฎเบฑเบเบงเบฝเบเบเบฑเบเบเปเปเบกเบนเบเปเบซเบเป. เปเบเบเบฐเปเบเบเบเบฒเบเปเบซเบผเบเบเปเปเบกเบนเบเบขเบนเป Sberbank, เบเบงเบเปเบฎเบปเบฒเบชเบนเบเปเบเบทเบญเบเบเบธเบเบเบธเบฅเบฐเบเปเบฒเปเบเบปเปเบฒเปเบเปเบ Data Cloud เบเบญเบเบเบงเบเปเบฎเบปเบฒ Hadoop เปเบฅเบฐเบเบฑเปเบเบเบฑเปเบเบเบถเปเบเบเบฑเบเบเบฒเบเบเบฑเบเบเปเปเบกเบนเบเบเบฐเบซเบเบฒเบเปเบซเบเปเปเบเปเป. เบเบฒเบกเบเปเบฒเบกเบฐเบเบฒเบ, เบเบงเบเปเบฎเบปเบฒเบชเบฐเปเบซเบกเบตเบเบญเบเบซเบฒเบงเบดเบเบตเบเบตเปเบเบฐเบเบฑเบเบเบธเบเบเบฒเบเบเบฐเบเบดเบเบฑเบ, เปเบฅเบฐเบเบญเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเปเบญเบเบเบฒเบเบเบญเบเบเปเบฒเบเบงเปเบฒเบเบงเบเปเบฎเบปเบฒเบเบฑเบเบเบฒเบเปเบเบงเปเบเปเบเบทเปเบญเปเบเปเปเบ RegionServer HBase เปเบฅเบฐเบฅเบนเบเบเปเบฒ HDFS, เบเบญเบเปเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเปเบเบตเปเบกเบเบงเบฒเบกเปเบงเปเบเบเบฒเบเบญเปเบฒเบเปเบเปเบขเปเบฒเบเบซเบผเบงเบเบซเบผเบฒเบ.
เบขเปเบฒเบเปเบเบเปเบเบฒเบก, เบเปเบญเบเบเบตเปเบเบฐเบเปเบฒเบงเปเบเบชเบนเปเบเบงเบฒเบกเบชเปเบฒเบเบฑเบเบเบญเบเบเบฒเบเบเบฑเบเบเบธเบ, เบกเบฑเบเบเบงเบเบเบฐเปเบงเบปเปเบฒเบเปเบฝเบงเบเบฑเบเบเปเปเบเปเบฒเบเบฑเบเบเบตเป, เปเบเบซเบผเบฑเบเบเบฒเบ, เบเปเปเบชเบฒเบกเบฒเบเบซเบผเบตเบเปเบงเบฑเปเบเปเบเปเบเปเบฒเบเปเบฒเบเบเบฑเปเบเบขเบนเปเปเบ HDD.
เปเบเบฑเบเบซเบเบฑเบเบเบฒเบเบญเปเบฒเบ HDD เปเบฅเบฐเปเบง Random Access เบเบถเปเบเบเปเปเปเบเบปเปเบฒเบเบฑเบเปเบเป
เบเบฒเบกเบเบตเปเบเปเบฒเบเบฎเบนเป, HBase, เปเบฅเบฐเบเบฒเบเบเปเปเบกเบนเบเบญเบทเปเบเปเบเปเบฒเบเบงเบเบซเบผเบฒเบ, เปเบเบฑเบเบฎเบฑเบเบชเบฒเบเปเปเบกเบนเบเบขเบนเปเปเบเบเบฑเบเบเบญเบเบซเบผเบฒเบเบชเบดเบเบเบดเปเบฅเปเบเปเบเบเบฐเบซเบเบฒเบ. เปเบเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบเบกเบฑเบเปเบกเปเบเบเบฐเบกเบฒเบ 64 KB. เบเบญเบเบเบตเปเปเบซเปเบเบดเบเบเบฐเบเบฒเบเบฒเบเบงเปเบฒเบเบงเบเปเบฎเบปเบฒเบเปเบญเบเบเบฒเบเบเบฝเบเปเบเป 100 bytes เปเบฅเบฐเบเบงเบเปเบฎเบปเบฒเบเปเปเบซเป HBase เปเบซเปเบเปเปเบกเบนเบเบเบตเปเปเบซเปเบเบงเบเปเบฎเบปเบฒเปเบเบเปเบเปเบฅเบฐเบซเบฑเบเบเบตเปเปเบเปเบเบญเบ. เปเบเบทเปเบญเบเบเบฒเบเบเบฐเบซเบเบฒเบเบเบฅเบฑเบญเบเปเบ HFiles เปเบกเปเบ 64 KB, เบเบฒเบเบฎเปเบญเบเบเปเบเบฐเปเบซเบเปเบเบงเปเบฒ 640 เปเบเบปเปเบฒ (เบเบฝเบเปเบเปเบเบฒเบเบต!) เบซเบผเบฒเบเบเบงเปเบฒเบเบงเบฒเบกเบเปเบฒเปเบเบฑเบ.
เบเปเปเปเบ, เบเบฑเบเบเบฑเปเบเปเบเปเบเปเบฒเบฎเปเบญเบเบเปเบเบฐเบเปเบฒเบ HDFS เปเบฅเบฐเบเบปเบเปเบเบเบฒเบเปเบเบฑเบเบเปเปเบกเบนเบ metadata เบเบญเบเบกเบฑเบ ShortCircuitCache (เปเบเบดเปเบเบญเบฐเบเบธเบเบฒเบเปเบซเปเปเบเบปเปเบฒเปเบเบดเบเปเบเบฅเปเปเบเบเบเบปเบ), เบเบตเปเบเปเบฒเปเบเบชเบนเปเบเบฒเบเบญเปเบฒเบเปเบฅเปเบง 1 MB เบเบฒเบเปเบเปเบ. เบขเปเบฒเบเปเบเบเปเบเบฒเบก, เบเบตเปเบชเบฒเบกเบฒเบเบเบทเบเบเบฑเบเบเปเบงเบเบเบฒเบฅเบฒเบกเบดเปเบเบต dfs.client.read.shortcircuit.buffer.size เปเบฅเบฐเปเบเบซเบผเบฒเบเปเบเปเบฅเบฐเบเบตเบกเบฑเบเบชเบปเบกเปเบซเบเบชเบปเบกเบเบปเบเบเบตเปเบเบฐเบซเบผเบธเบเบฅเบปเบเบเปเบฒเบเบตเป, เบเบปเบงเบขเปเบฒเบเปเบเบฑเบ 126 KB.
เบชเบปเบกเบกเบธเบเบงเปเบฒเบเบงเบเปเบฎเบปเบฒเปเบฎเบฑเบเบชเบดเปเบเบเบตเป, เปเบเปเบเบญเบเบเบฒเบเบเบฑเปเบ, เปเบกเบทเปเบญเบเบงเบเปเบฎเบปเบฒเปเบฅเบตเปเบกเบญเปเบฒเบเบเปเปเบกเบนเบเบเปเบฒเบ java api, เปเบเบฑเปเบเบเบฑเบเบเบฑเบเปเบเบฑเปเบ FileChannel.read เปเบฅเบฐเบเปเปเบซเปเบฅเบฐเบเบปเบเบเบฐเบเบดเบเบฑเบเบเบฒเบเบญเปเบฒเบเบเปเบฒเบเบงเบเบเปเปเบกเบนเบเบเบตเปเบเปเบฒเบเบปเบเปเบงเป, เบกเบฑเบเบเบฐเบญเปเบฒเบ "เบเบฝเบเปเบเปเปเบเบเปเบฅเบฐเบเบต" 2 เปเบเบทเปเบญ. , i.e. 256 KB เปเบเบเปเบฅเบฐเบเบตเบเบญเบเบเบงเบเปเบฎเบปเบฒ. เบเบตเปเปเบกเปเบเบเปเบญเบเบงเปเบฒ java เบเปเปเบกเบตเบงเบดเบเบตเบเบตเปเบเปเบฒเบเบเบตเปเบเบฐเบเบฑเปเบเบเบธเบ FADV_RANDOM เปเบเบทเปเบญเบเปเบญเบเบเบฑเบเบเบถเบเบเบดเบเปเบฒเบเบตเป.
เบเบฑเปเบเบเบฑเปเบ, เปเบเบทเปเบญเปเบซเปเปเบเปเบฎเบฑเบ 100 bytes เบเบญเบเบเบงเบเปเบฎเบปเบฒ, 2600 เปเบงเบฅเบฒเบซเบผเบฒเบเปเบกเปเบเบญเปเบฒเบเบเบฒเบเปเบเป hood. เบกเบฑเบเปเบเบดเปเบเบเบทเบงเปเบฒเบเบฒเบเปเบเปเปเบเปเบกเปเบเบเบฐเปเบเปเบ, เปเบซเปเบเบงเบเปเบฎเบปเบฒเบซเบผเบธเบเบฅเบปเบเบเบฐเบซเบเบฒเบเบเบฑเบเปเบเบฑเบเบเบดเปเบฅเปเบ, เบเปเบฒเบเบปเบเบเบธเบเบเบตเปเปเบเปเบเปเบฒเบงเบกเบฒเปเบฅเบฐเปเบเปเบฎเบฑเบเบเบฒเบเปเบฅเบฑเปเบ enlightenment เบเบตเปเบเบดเปเบเปเบซเบเป. เปเบเปเบเบฑเบเบซเบฒเปเบกเปเบเบงเปเบฒเปเบเบเบเบฒเบเบซเบผเบธเบเบเปเบญเบเบเบฐเบซเบเบฒเบเบเบฑเบ 2 เปเบเบทเปเบญ, เบเบงเบเปเบฎเบปเบฒเบเบฑเบเบซเบผเบธเบเบฅเบปเบเบเปเบฒเบเบงเบ bytes เบญเปเบฒเบเบเปเปเบซเบเปเบงเบเปเบงเบฅเบฒ 2 เปเบเบทเปเบญ.
เบเบปเบเบเบฐเปเบซเบเบเบเบฒเบเบขเปเบฒเบเบเบฒเบเบเบฒเบเบเบฑเปเบเบเปเบฒเบเบธเบ FADV_RANDOM เบชเบฒเบกเบฒเบเปเบเปเบฎเบฑเบ, เปเบเปเบงเปเบฒเบเบฝเบเปเบเปเบกเบต multi-threading เบชเบนเบเปเบฅเบฐเบกเบตเบเบฐเบซเบเบฒเบเบเบฅเบฑเบญเบ 128 KB, เปเบเปเบเบตเปเปเบกเปเบเบชเบนเบเบชเบธเบเบเบญเบเบชเบญเบเบชเบฒเบกเบชเบดเบเปเบเบตเปเบเบฑเบ:
เบเบฒเบเบเบปเบเบชเบญเบเปเบเปเบเบทเบเบเบฐเบเบดเบเบฑเบเปเบ 100 เปเบเบฅเป, เปเบเปเบฅเบฐเบเบฐเบซเบเบฒเบ 1 GB เปเบฅเบฐเบเบฑเปเบเบขเบนเปเปเบ 10 HDDs.
เปเบซเปเบเบงเบเปเบฎเบปเบฒเบเบดเบเปเบฅเปเบชเบดเปเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบ, เปเบเบซเบผเบฑเบเบเบฒเบ, เบเบถเปเบเบเบฑเบเบเบงเบฒเบกเปเบงเบเบตเป:
เปเบซเปเปเบงเบปเปเบฒเบงเปเบฒเบเบงเบเปเบฎเบปเบฒเบญเปเบฒเบเบเบฒเบ 10 เปเบเปเบเบเปเบงเบเบเบงเบฒเบกเปเบง 280 MB / เบงเบดเบเบฒเบเบต, i.e. 3 เบฅเปเบฒเบเปเบเบทเปเบญ 100 bytes. เปเบเปเบเบฑเปเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเบทเป, เบเปเปเบกเบนเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเปเบญเบเบเบฒเบเปเบกเปเบ 2600 เปเบเบทเปเบญเบซเบเปเบญเบเบเปเบงเบฒเบชเบดเปเบเบเบตเปเบญเปเบฒเบ. เบเบฑเปเบเบเบฑเปเบ, เบเบงเบเปเบฎเบปเบฒเปเบเปเบ 3 เบฅเปเบฒเบเปเบเบ 2600 เปเบฅเบฐเปเบเปเบฎเบฑเบ 1100 เบเบฑเบเบเบถเบเบเปเปเบงเบดเบเบฒเบเบต.
เบเบถเบกเปเบชเบปเปเบฒ, เบเปเปเปเบกเปเบเบเป? เบเบฑเปเบเปเบกเปเบเบเปเบฒเบกเบฐเบเบฒเบ เบเบฒเบเปเบเบปเปเบฒเปเบเบดเบเปเบเบเบชเบธเปเบก เบเบฒเบเปเบเบปเปเบฒเปเบเบดเบเบเปเปเบกเบนเบเปเบ HDD - เปเบเบเบเปเปเบเปเบฒเบเบถเบเปเบเบดเบเบเบฐเบซเบเบฒเบเบเบญเบเบเบฑเบ. เบเบตเปเปเบกเปเบเบเบญเบเปเบเบเบเปเบฒเบเบฑเบเบเบฒเบเบเปเบฒเบเบฎเปเบฒเบเบเบฒเบเบเบญเบเบเบฒเบเปเบเบปเปเบฒเปเบเบดเบเปเบเบเบชเบธเปเบกเปเบฅเบฐเบเปเปเบกเบตเบเบฒเบเบเปเปเบกเบนเบเบชเบฒเบกเบฒเบเบเบตเบเบญเบญเบเบซเบผเบฒเบเบเบฒเบเปเบเปเปเบเบทเปเบญเบเปเบเบเบฑเปเบเบเปเบฒเบง.
เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ, เบเบฒเบเบเปเปเบกเบนเบเบเบฑเบเบฅเบธเบเบงเบฒเบกเปเบงเบเบตเปเบชเบนเบเบเบงเปเบฒเบซเบผเบฒเบเปเบเปเปเบเบงเปเบ? เปเบเบทเปเบญเบเบญเบเบเปเบฒเบเบฒเบกเบเบตเป, เปเบซเปเปเบเบดเปเบเบชเบดเปเบเบเบตเปเปเบเบตเบเบเบถเปเบเปเบเบฎเบนเบเบเปเปเปเบเบเบตเป:
เปเบเบเบตเปเบเบตเปเบเบงเบเปเบฎเบปเบฒเปเบซเบฑเบเบงเปเบฒเบชเปเบฒเบฅเบฑเบเบชเบญเบเบชเบฒเบกเบเบฒเบเบตเบเปเบฒเบญเบดเบเบเบงเบฒเบกเปเบงเปเบกเปเบเบเบฐเบกเบฒเบเบซเบเบถเปเบเบเบฑเบเบเบฑเบเบเบถเบเบเปเปเบงเบดเบเบฒเบเบต. เบขเปเบฒเบเปเบเบเปเบเบฒเบก, เบเปเปเปเบ, เปเบเบทเปเบญเบเบเบฒเบเบเบงเบฒเบกเบเบดเบเบเบตเปเบงเปเบฒเบกเบตเบเบฒเบเบญเปเบฒเบเบซเบผเบฒเบเบเปเบงเบฒเบเบตเปเบเบทเบเบฎเปเบญเบเบเป, เบเปเปเบกเบนเบเบชเบดเปเบเบชเบธเบเบฅเบปเบเปเบ buff / cache เบเบญเบเบฅเบฐเบเบปเบเบเบฐเบเบดเบเบฑเบเบเบฒเบ (linux) เปเบฅเบฐเบเบงเบฒเบกเปเบงเปเบเบตเปเบกเบเบถเปเบเปเบเบฑเบ 60 เบเบฑเบเบเปเปเบงเบดเบเบฒเบเบต.
เบเบฑเปเบเบเบฑเปเบ, เบเปเปเปเบเบเบงเบเปเบฎเบปเบฒเบเบฐเบเบฑเบเบเบฒเบเบเบฑเบเบเบฒเบเปเบฅเบฑเปเบเบเบฒเบเปเบเบปเปเบฒเปเบเบดเบเบเบฝเบเปเบเปเบเปเปเบกเบนเบเบเบตเปเบกเบตเบขเบนเปเปเบ OS cache เบซเบผเบทเบขเบนเปเปเบเบญเบธเบเบฐเบเบญเบเบเบฒเบเปเบเบฑเบเบฎเบฑเบเบชเบฒ SSD / NVMe เบเบญเบเบเบงเบฒเบกเปเบงเปเบเบเบฒเบเปเบเบปเปเบฒเปเบเบดเบเบเบฝเบเบเบฝเบ.
เปเบโเบเปโเบฅเบฐโเบเบตโเบเบญเบโเบเบงเบโเปเบฎเบปเบฒโ, เบเบงเบโเปเบฎเบปเบฒโเบเบฐโเบเปเบฒโเปเบเบตเบโเบเบฒเบโเบเบปเบโเบชเบญเบโเปเบ bench เบเบญเบ 4 เปเบเบทเปเบญเบโเปเบกเปโเบเปเบฒเบโ, เปเบเปโเบฅเบฐโเบเบปเบโเปเบกเปเบโเบเบดเบโเปเบฅเปโเบเบฑเปเบโเบเปเปโเปเบโเบเบตเปโ:
CPU: Xeon E5-2680 v4 @ 2.40GHz 64 เบเบฐเบเบนเป.
เบซเบเปเบงเบเบเบงเบฒเบกเบเปเบฒ: 730 GB.
java เปเบงเบตเบเบฑเปเบ: 1.8.0_111
เปเบฅเบฐเปเบเบเบตเปเบเบตเปเบเบธเบเบชเปเบฒเบเบฑเบเปเบกเปเบเบเปเบฒเบเบงเบเบเปเปเบกเบนเบเปเบเบเบฒเบเบฐเบฅเบฒเบเบเบตเปเบเปเบญเบเบเบฒเบเบญเปเบฒเบ. เบเบงเบฒเบกเบเบดเบเปเบกเปเบเบงเปเบฒเบเปเบฒเบเปเบฒเบเบญเปเบฒเบเบเปเปเบกเบนเบเบเบฒเบเบเบฒเบเบฐเบฅเบฒเบเบเบตเปเบงเบฒเบเปเบงเปเปเบเบเบฒเบเบเบงเบฒเบกเบเปเบฒ HBase เบเบฑเบเบซเบกเบปเบ, เบกเบฑเบเบเบฐเบเปเปเบกเบฒเบญเปเบฒเบเบเบฒเบ buff / cache เบเบญเบเบฅเบฐเบเบปเบเบเบฐเบเบดเบเบฑเบเบเบฒเบ. เปเบเบทเปเบญเบเบเบฒเบเบงเปเบฒ HBase เปเบเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบเบเบฑเบเบชเบฑเบ 40% เบเบญเบเบซเบเปเบงเบเบเบงเบฒเบกเบเปเบฒเปเบซเปเบเบฑเบเปเบเบเบชเปเบฒเบเบเบตเปเปเบญเบตเปเบเบงเปเบฒ BlockCache. เปเบเบเบเบทเปเบเบเบฒเบเปเบฅเปเบงเบเบตเปเปเบกเปเบ ConcurrentHashMap, เปเบเบดเปเบเบฅเบฐเบซเบฑเบเปเบกเปเบเบเบทเปเปเบเบฅเป + เบเบปเบเปเบเบตเบเบเบญเบเบเบฅเบฑเบญเบ, เปเบฅเบฐเบกเบนเบเบเปเบฒเปเบกเปเบเบเปเปเบกเบนเบเบเบปเบงเบเบดเบเบขเบนเปเบเบตเปเบเบฒเบเบเบปเบเปเบเบตเบเบเบตเป.
เบเบฑเปเบเบเบฑเปเบ, เปเบเปเบงเบฅเบฒเบเบตเปเบญเปเบฒเบเบเบฝเบเปเบเปเบเบฒเบเปเบเบเบชเปเบฒเบเบเบตเป, เบเบงเบเปเบฎเบปเบฒ
เบเบปเบงเบขเปเบฒเบ, เปเบเบเปเบฅเบฐเบเบตเบเบญเบเบเบงเบเปเบฎเบปเบฒ, เบเบฐเบฅเบดเบกเบฒเบเบเบญเบ BlockCache เปเบเบซเบเบถเปเบ RS เปเบกเปเบเบเบฐเบกเบฒเบ 12 GB. เบเบงเบเปเบฎเบปเบฒเบฅเบปเบเบเบญเบเบชเบญเบ RS เปเบเบซเบเบถเปเบ node, i.e. 96 GB เบเบทเบเบเบฑเบเบชเบฑเบเปเบซเป BlockCache เปเบเบเบธเบ nodes. เปเบฅเบฐเบกเบตเบเปเปเบกเบนเบเบซเบผเบฒเบเปเบเบปเปเบฒ, เบเบปเบงเบขเปเบฒเบ, เปเบซเปเบกเบฑเบเปเบเบฑเบ 4 เบเบฒเบเบฐเบฅเบฒเบ, 130 เบเบฒเบเบเบทเปเบเปเบเปเบฅเบฐเบเบปเบ, เปเบเบดเปเบเปเบเบฅเปเบกเบตเบเบฐเบซเบเบฒเบ 800 MB, เบเบตเบเบญเบฑเบเปเบเบ FAST_DIFF, i.e. เบเปเบฒเบเบงเบเบเบฑเบเบซเบกเบปเบ 410 GB (เบเบตเปเปเบกเปเบเบเปเปเบกเบนเบเบเปเบฅเบดเบชเบธเบ, i.e. เปเบเบเบเปเปเบกเบตเบเบฒเบเบเปเบฒเบเบถเบเปเบเบดเบเบเบฑเบเปเบเบเบฒเบเบเปเบฒเบฅเบญเบ).
เบเบฑเปเบเบเบฑเปเบ, BlockCache เปเบกเปเบเบเบฝเบเปเบเปเบเบฐเบกเบฒเบ 23% เบเบญเบเบเบฐเบฅเบดเบกเบฒเบเบเปเปเบกเบนเบเบเบฑเบเบซเบกเบปเบเปเบฅเบฐเบเบตเปเปเบกเปเบเปเบเปเบเบดเบเบเบฑเบเปเบเบทเปเบญเบเปเบเบเบตเปเปเบเปเบเบดเบเบเบญเบเบชเบดเปเบเบเบตเปเปเบญเบตเปเบเบงเปเบฒ BigData. เปเบฅเบฐเบเบตเปเปเบกเปเบเบเปเบญเบเบเบตเปเบเบงเบฒเบกเบชเบฐเบซเบเบธเบเบชเบฐเบซเบเบฒเบเปเบฅเบตเปเบกเบเบปเปเบ - เปเบเบฒเบฐเบงเปเบฒเปเบเปเบเบญเบ, เบเปเบฒเบเบงเบ cache hits เบซเบเปเบญเบ, เบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบตเปเบฎเปเบฒเบเปเบฎเบเบเบงเปเบฒเปเบเบปเปเบฒ. เบซเบผเบฑเบเบเบฒเบเบเบตเปเบเบฑเบเบซเบกเบปเบ, เบเปเบฒเบเปเบฒเบเบเบฒเบ, เบเปเบฒเบเบเบฐเบเปเบญเบเปเบฎเบฑเบเบงเบฝเบเบซเบผเบฒเบ - i.e. เบฅเบปเบเปเบเบซเบฒเบเบฑเบเบเบฑเบเบเบญเบเบฅเบฐเบเบปเบเบเบฒเบเปเบ. เบขเปเบฒเบเปเบเบเปเปเบเบฒเบก, เบเบตเปเบเปเปเบชเบฒเบกเบฒเบเบซเบผเบตเบเปเบงเบฑเปเบเปเบเป, เบเบฑเปเบเบเบฑเปเบเปเบซเปเบเบงเบเปเบฎเบปเบฒเปเบเบดเปเบเบฅเบฑเบเบชเบฐเบเบฐเบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบเบซเบกเบปเบ - เปเบกเปเบเบซเบเบฑเบเปเบเบตเบเบเบทเปเบเบเบฑเบเบเปเปเบกเบนเบเบเบฒเบเปเบ cache?
เบเปเปเบซเปเบชเบฐเบเบฒเบเบฐเบเบฒเบเบเปเบฒเบเปเบฅเบฐเบชเบปเบกเบกเบธเบเบงเปเบฒเบเบงเบเปเบฎเบปเบฒเบกเบต cache เบเบตเปเปเบซเบกเบฒเบฐเบเบฝเบเปเบเป 1 เบงเบฑเบเบเบธ. เบเบตเปเปเบกเปเบเบเบปเบงเบขเปเบฒเบเบเบญเบเบชเบดเปเบเบเบตเปเบเบฐเปเบเบตเบเบเบถเปเบเปเบกเบทเปเบญเบเบงเบเปเบฎเบปเบฒเบเบฐเบเบฒเบเบฒเบกเปเบฎเบฑเบเบงเบฝเบเบเบฑเบเบเบฐเบฅเบดเบกเบฒเบเบเปเปเบกเบนเบเบเบฐเบซเบเบฒเบเปเบซเบเปเบเบงเปเบฒ cache 3 เปเบเบปเปเบฒ, เบเบงเบเปเบฎเบปเบฒเบเบฐเบเปเบญเบ:
1. เบงเบฒเบ block 1 เปเบ cache
2. เปเบญเบปเบฒ block 1 เบญเบญเบเบเบฒเบ cache
3. เบงเบฒเบ block 2 เปเบ cache
4. เปเบญเบปเบฒ block 2 เบญเบญเบเบเบฒเบ cache
5. เบงเบฒเบ block 3 เปเบ cache
5 เบเบฒเบโเบเบฐโเบเบดโเบเบฑเบโเบชเปเบฒโเปเบฅเบฑเบโ! เบขเปเบฒเบเปเบเบเปเบเบฒเบก, เบชเบฐเบเบฒเบเบฐเบเบฒเบเบเบตเปเบเปเปเบชเบฒเบกเบฒเบเปเบญเบตเปเบเบงเปเบฒเบเบปเบเบเบฐเบเบด; เปเบเบเบงเบฒเบกเปเบเบฑเบเบเบดเบ, เบเบงเบเปเบฎเบปเบฒเบเปเบฒเบฅเบฑเบเบเบฑเบเบเบฑเบ HBase เปเบฎเบฑเบเบงเบฝเบเบเบตเปเบเปเปเบกเบตเบเบฐเปเบซเบเบเบขเปเบฒเบเบชเบปเบกเบเบนเบ. เบกเบฑเบเบญเปเบฒเบเบเปเปเบกเบนเบเบเบฒเบเบเบฒเบเบเบงเบฒเบกเบเปเบฒ OS เบขเบนเปเบชเบฐเปเบซเบกเบต, เบงเบฒเบเปเบงเปเปเบ BlockCache, เบเบฝเบเปเบเปเบเบดเปเบกเบกเบฑเบเบญเบญเบเปเบเบทเบญเบเบเบฑเบเบเบตเปเบเบฒเบฐเบงเปเบฒเบเปเปเบกเบนเบเปเบซเบกเปเบกเบฒเบฎเบญเบเปเบฅเปเบง. เบเบฒเบเปเบเบทเปเบญเบเปเบซเบงเปเบเบเบญเบเบเบปเปเบเบเบญเบเบเบฒเบเบเบญเบเบชเบฐเปเบเบเปเบซเปเปเบซเบฑเบเปเบเบดเบเบเบธเบเบชเปเบฒเบเบฑเบเบเบญเบเบเบฑเบเบซเบฒ - เบเบปเบเปเบเบฑเบเบเบตเปเปเบซเบเบทเปเบญเบเปเบฒเบฅเบฑเบเบญเบญเบเปเบ, เบเบฑเบเบเบฒเบเบฒเบเบเปเบฒเบฅเบฑเบเบฎเปเบญเบเบเบถเปเบ, Greta เบเบฝเบเปเบฅเบฑเบเบเปเบญเบเปเบเบเบฐเปเบเบเบชเบงเบตเปเบเบเบเบตเปเบซเปเบฒเบเปเบเปเบฅเบฐเบฎเปเบญเบเปเบกเปเบเปเบเปเบฎเบฑเบเบเบฒเบ upset. เปเบฅเบฐเบเบงเบเปเบฎเบปเบฒเบเบปเบเปเบญเบเบตเบเปเปเบเปเปเบกเบฑเบเบกเบฑเบเปเบเปเบงเบฅเบฒเบเบตเปเปเบเบฑเบเบเปเบญเบเบกเบตเบเบงเบฒเบกเปเบชเบเปเบชเบปเปเบฒ, เบเบฑเปเบเบเบฑเปเบเบเบงเบเปเบฎเบปเบฒเบเบถเปเบเปเบฅเบตเปเบกเบเบดเบเบเปเบฝเบงเบเบฑเบเบชเบดเปเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเปเบฎเบฑเบเปเบเปเบเปเบฝเบงเบเบฑเบเบกเบฑเบ.
เบเบฐเปเบเบฑเบเปเบเบงเปเบเบเปเบฒเบเปเบฒเบเบเปเปเปเบชเปเบเบฑเบเบเบฑเบเบซเบกเบปเบเปเบ cache, เปเบเปเบงเปเบฒเบเบฝเบเปเบเปเบญเบฑเบเบเบฒเบชเปเบงเบเบเบตเปเปเบเปเบเบญเบเบเบญเบเบเบงเบเปเบเบปเบฒ, เบเบฑเปเบเบเบฑเปเบ cache เบเปเป overflow? เปเบซเปเปเบฅเบตเปเบกเบเบปเปเบเปเบเบเบเบฒเบเปเบเบตเปเบกเบเบฝเบเปเบเปเบชเบญเบเบชเบฒเบกเปเบชเบฑเปเบเบเบญเบเบฅเบฐเบซเบฑเบเปเบเบเบญเบเปเบฅเบตเปเบกเบเบปเปเบเบเบญเบเบซเบเปเบฒเบเบตเปเบชเปเบฒเบฅเบฑเบเบเบฒเบเปเบชเปเบเปเปเบกเบนเบเปเบเบปเปเบฒเปเบเปเบ 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 เบซเบผเบฒเบเปเบเบเบเปเปเบกเบตเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเบญเบ Sisyphean เบเบญเบเบเบฒเบเบงเบฒเบเบเปเปเบกเบนเบเปเบ cache เบเบฝเบเปเบเปเบเบดเปเบกเบกเบฑเบเบฅเบปเบเปเบเบเปเปเบเบญเบเบซเบกเบฒ Martian:
เปเบเปเบงเบฅเบฒเบเบฝเบงเบเบฑเบ, เบเบฒเบเบเปเบฒเปเบเป CPU เปเบเบตเปเบกเบเบถเปเบ, เปเบเปเปเบกเปเบเบซเบเปเบญเบเบเปเบงเบฒเบเบปเบเบเบฐเบฅเบดเบเบซเบผเบฒเบ:
เบกเบฑเบเบเบฑเบเปเบเบฑเบเบกเบนเบเบเปเบฒเบเบตเปเบชเบฑเบเปเบเบเบงเปเบฒเบเบฅเบฑเบญเบเบเบตเปเปเบเบฑเบเปเบงเปเปเบ BlockCache เปเบกเปเบเปเบเบเบเปเบฒเบเบเบฑเบ. เบชเปเบงเบเปเบซเบเป, เบเบฐเบกเบฒเบ 95%, เปเบกเปเบเบเปเปเบกเบนเบเบเบปเบงเบกเบฑเบเปเบญเบ. เปเบฅเบฐเบชเปเบงเบเบเบตเปเปเบซเบผเบทเบญเปเบกเปเบ metadata, เปเบเบฑเปเบ Bloom filters เบซเบผเบท LEAF_INDEX เปเบฅเบฐ
เบเบฑเปเบเบเบฑเปเบ, เปเบเบฅเบฐเบซเบฑเบเบเบงเบเปเบฎเบปเบฒเปเบซเบฑเบเปเบเบทเปเบญเบเปเบเบเบฒเบเบเบงเบเบชเบญเบ buf.getBlockType().isData() เปเบฅเบฐเบเปเบเบญเบเปเบเบเบฑเบ meta เบเบตเป, เบเบงเบเปเบฎเบปเบฒเบเบฐเบเปเบญเบเปเบซเปเบกเบฑเบเบขเบนเปเปเบ cache เปเบเบเปเบฅเบฐเบเบตเปเบเบเปเปเบเบฒเบก.
เบเบญเบเบเบตเปเปเบซเปเปเบเบตเปเบกเบเบฒเบเปเบซเบผเบ เปเบฅเบฐเปเบเบตเปเบกเบเบธเบเบชเบปเบกเบเบฑเบเปเบซเปเปเปเปเบเปเบฅเบฑเบเบเปเบญเบเปเบเบเบฑเปเบเบเบฝเบง. เปเบเบเบฒเบเบเบปเบเบชเบญเบเบเบฑเปเบเบเปเบฒเบญเบดเบเบเบงเบเปเบฎเบปเบฒเปเบฎเบฑเบเปเบซเปเบญเบฑเบเบเบฒเบชเปเบงเบเบเบฑเบเบญเบญเบ = 20 เปเบฅเบฐ BlockCache เบเบทเบเบเปเบฒเปเบเปเบซเบเปเบญเบเบฅเบปเบ. เบเบญเบเบเบตเปเปเบซเปเบเบฑเปเบเบกเบฑเบเปเบเบฑเบ 23% เปเบฅเบฐเปเบเบตเปเบก 100 เบเบฐเบเบนเปเบเบธเบเป 5 เบเบฒเบเบตเปเบเบทเปเบญเปเบเบดเปเบเบงเปเบฒเบเบธเบเบญเบตเปเบกเบเบปเบงเปเบกเปเบเบซเบเบฑเบ:
เปเบเบเบตเปเบเบตเปเบเบงเบเปเบฎเบปเบฒเปเบซเบฑเบเบงเปเบฒเบชเบฐเบเบฑเบเบเบปเปเบเบชเบฐเบเบฑเบเปเบเบทเบญเบเบเบฑเบเบเบตเบเบฑเบเปเบเบเบตเปเบเบเบฒเบเบขเบนเปเบเบตเปเบเบฐเบกเบฒเบ 100 เบเบฑเบเบเปเบฒเบฎเปเบญเบเบเปเบเปเปเบงเบดเบเบฒเบเบต. เปเบเบเบฐเบเบฐเบเบตเป patch เปเบฎเบฑเบเปเบซเปเบกเบตเบเบฒเบเปเบฅเบฑเปเบเปเบเบดเบ 300 เบเบฑเบ. เปเบเปเบงเบฅเบฒเบเบฝเบงเบเบฑเบ, เบกเบฑเบเปเบเบฑเบเบเบตเปเบเบฑเบเปเบเบเบงเปเบฒเบเบฒเบเปเบฅเบฑเปเบเบเบทเปเบกเบญเบตเบเบเปเปเปเบกเปเบ "เบเบฃเบต"; เบเบฒเบเปเบเป CPU เปเบกเปเบเปเบเบตเปเบกเบเบถเปเบ.
เบขเปเบฒเบเปเบเบเปเบเบฒเบก, เบเบตเปเบเปเปเปเบกเปเบเบเบฒเบเปเบเปเปเบเบเบตเปเบชเบฐเบซเบเปเบฒเบเบฒเบกเบซเบผเบฒเบ, เปเบเบฒเบฐเบงเปเบฒเบเบงเบเปเบฎเบปเบฒเบเปเปเบฎเบนเปเบฅเปเบงเบเบซเบเปเบฒเบงเปเบฒเบเปเบฒเบเบงเบเบเบฑเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเบเบทเบเปเบเบฑเบเปเบงเปเปเบเบเบฒเบเบเบงเบฒเบกเบเปเบฒ, เบกเบฑเบเบเบถเปเบเบเบฑเบเปเบเบฃเปเบเบฅเปเบเบฒเบเปเบซเบผเบ. เบเบฑเปเบเบเบฑเปเบ, เบเบปเบเปเบเปเบเปเบเบทเบเบเบฐเบเบดเบเบฑเบเปเบเบทเปเบญเบเบฑเบเบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบเบเบตเปเปเบเบเบญเบฑเบเบเบฐเปเบเบกเบฑเบเบเบถเปเบเบเบฑเบเบเบดเบเบเบฐเบเปเบฒเบเบญเบเบเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบเบเบฒเบเบญเปเบฒเบ.
เบชเบฒเบกเบเบฒเบเปเบฅเบทเบญเบเปเบเปเบเบทเบเปเบเบตเปเบกเปเบเบทเปเบญเบเบงเบเบเบธเบกเบเบตเป:
hbase.lru.cache.heavy.eviction.count.limit โ เบเปเบฒโเบเบปเบโเบเปเบฒโเบเบงเบโเปเบเบทเปเบญโเบเบญเบโเบเบฐโเบเบงเบโเบเบฒเบโเบเบญเบโเบเบฒเบโเบเบฑเบโเปเบฅเปโเบเปเปโเบกเบนเบโเบเบฒเบโเบเบฒเบโเบเบงเบฒเบกโเบเปเบฒโเบเบงเบโเบเบฐโเบเปเบฒโเปเบเบตเบโเบเบฒเบโเบเปเบญเบโเบเบตเปโเบเบงเบโเปเบฎเบปเบฒโเบเบฐโเปเบฅเบตเปเบกโเบเบปเปเบโเบเบฒเบโเบเปเบฒโเปเบเปโเบเบฒเบโเบเบฑเบโเบเบธเบ (i.e. เบเปเบฒเบก blocksโ)โ. เปเบเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบเบกเบฑเบเปเบเบปเปเบฒเบเบฑเบ MAX_INT = 2147483647 เปเบฅเบฐเปเบเบเบงเบฒเบกเปเบเบฑเบเบเบดเบเบซเบกเบฒเบเบเบงเบฒเบกเบงเปเบฒเบเบธเบเบชเบปเบกเบเบฑเบเบเบฐเบเปเปเปเบฅเบตเปเบกเบเบปเปเบเปเบฎเบฑเบเบงเบฝเบเบเบฑเบเบเปเบฒเบเบตเป. เปเบเบทเปเบญเบเบเบฒเบเบงเปเบฒเบเบฐเบเบงเบเบเบฒเบเบเบฑเบเปเบฅเปเปเบฅเบตเปเบกเบเบปเปเบเบเบธเบเป 5 - 10 เบงเบดเบเบฒเบเบต (เบกเบฑเบเบเบถเปเบเบเบฑเบเบเบฒเบเปเบซเบผเบ) เปเบฅเบฐ 2147483647 * 10 / 60 / 60 / 24 / 365 = 680 เบเบต. เบขเปเบฒเบเปเบเบเปเปเบเบฒเบก, เบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเบเปเบฒเบเบปเบเบเบฒเบฅเบฒเบกเบดเปเบเบตเบเบตเปเปเบเบฑเบ 0 เปเบฅเบฐเปเบฎเบฑเบเปเบซเปเบเบธเบเบชเบปเบกเบเบฑเบเปเบฎเบฑเบเบงเบฝเบเบเบฑเบเบเบตเบซเบผเบฑเบเบเบฒเบเบเบฒเบเปเบเบตเบเบเบปเบง.
เบขเปเบฒเบเปเบเบเปเบเบฒเบก, เบเบฑเบเบกเบต payload เปเบเบเบฒเบฅเบฒเบกเบดเปเบเบตเบเบตเป. เบเปเบฒเบเบฒเบเปเบซเบผเบเบเบญเบเบเบงเบเปเบฎเบปเบฒเปเบเบฑเบเปเบเบเบเบตเปเบเบฒเบเบญเปเบฒเบเปเบฅเบเบฐเบชเบฑเปเบ (เปเบงเบปเปเบฒเปเบเบฅเบฐเบซเบงเปเบฒเบเบกเบทเป) เปเบฅเบฐเบเบฒเบเบญเปเบฒเบเปเบเปเบฅเบเบฐเบเบฒเบง (เบเบญเบเบเบฒเบเบเบทเบ) เบเบทเบเบเบฑเบเบเบฑเบเบขเปเบฒเบเบเปเปเปเบเบทเปเบญเบ, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ, เบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเปเบซเปเปเบเปเปเบเบงเปเบฒเบเบธเบเบเบฐเบชเบปเบกเบเบฑเบเปเบเบตเบเบเบฝเบเปเบเปเปเบเปเบงเบฅเบฒเบเบตเปเบเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบเบเบฒเบเบญเปเบฒเบเบเบฒเบงเบขเบนเปเปเบเบเบงเบฒเบกเบเบทเบเบซเบเปเบฒ.
เบเบปเบงเบขเปเบฒเบ, เบเบงเบเปเบฎเบปเบฒเบฎเบนเปเบงเปเบฒเบเบฒเบเบญเปเบฒเบเปเบฅเบเบฐเบชเบฑเปเบเบกเบฑเบเบเบฐเปเบเปเปเบงเบฅเบฒเบเบฐเบกเบฒเบ 1 เบเบฒเบเบต. เบเปเปเบเปเบฒเปเบเบฑเบเบเปเบญเบเปเบฅเบตเปเบกเบเบปเปเบเบเบดเปเบกเบเบฑเบ, cache เบเบฐเบเปเปเปเบเปเปเบงเบฅเบฒเบเบตเปเบฅเปเบฒเบชเบฐเปเบซเบกเปเบฅเบฐเบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเบเปเบฒเบเบปเบเบเบฒเบฅเบฒเบกเบดเปเบเบตเบเบตเปเปเบเบปเปเบฒเบเบฑเบ, เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบปเบเบเบปเบงเบขเปเบฒเบ, 10. เบเบตเปเบเบฐเบเปเบฒเปเบเบชเบนเปเบเบงเบฒเบกเบเบดเบเบเบตเปเบงเปเบฒเบเบฒเบเปเบเบตเปเบกเบเบฐเบชเบดเบเบเบดเบเบฒเบเบเบฐเปเบฅเบตเปเบกเปเบฎเบฑเบเบงเบฝเบเบเบฝเบเปเบเปเปเบกเบทเปเบญเบเบปเบเบเบฒเบ -. เปเบฅเบเบฐเบเบฒเบเบญเปเบฒเบเบขเปเบฒเบเบซเปเบฒเบงเบซเบฑเบเปเบเปเปเบฅเบตเปเบกเบเบปเปเบ, i.e. เปเบ 100 เบงเบดเบเบฒเบเบต. เบเบฑเปเบเบเบฑเปเบ, เบเปเบฒเบเบงเบเปเบฎเบปเบฒเบกเบตเบเบฒเบเบญเปเบฒเบเปเบเปเบฅเบเบฐเบชเบฑเปเบ, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ, เบเบฑเบเบเบฑเบเบซเบกเบปเบเบเบฐเปเบเบปเปเบฒเปเบเปเบ cache เปเบฅเบฐเบเบฐเบกเบตเบขเบนเป (เบเบปเบเปเบงเบฑเปเบเบชเบดเปเบเบเบตเปเบเบฐเบเบทเบเบเบฑเบเปเบฅเปเปเบเบ algorithm เบกเบฒเบเบเบฐเบเบฒเบ). เปเบฅเบฐเปเบเปเบงเบฅเบฒเบเบตเปเบเบงเบเปเบฎเบปเบฒเบญเปเบฒเบเปเบเปเบฅเบเบฐเบเบฒเบง, เบเบธเบเบเบฐเบชเบปเบกเบเบฑเบเบเบฐเปเบเบตเบเปเบฅเบฐเบเบงเบเปเบฎเบปเบฒเบเบฐเบกเบตเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบตเปเบชเบนเบเบเบถเปเบเบซเบผเบฒเบ.
hbase.lru.cache.heavy.eviction.mb.size.limit โ เบเปเบฒโเบเบปเบโเบเปเบฒโเบเบงเบโเบซเบผเบฒเบ megabytes เบเบงเบโเปเบฎเบปเบฒโเบเปเบญเบโเบเบฒเบโเบเบตเปโเบเบฐโเบเบฑเบโเบงเบฒเบโเปเบโเบเบฒเบโเบเบงเบฒเบกโเบเปเบฒ (เปเบฅเบฐโ, เปเบเปโเบเบญเบโ, เบเบฒเบโเบเบฑเบโเปเบฅเปโ) เปเบ 10 เบงเบดโเบเบฒโเบเบตโ. เบเบธเบเบเบฐเบชเบปเบกเบเบฑเบเบเบฐเบเบฐเบเบฒเบเบฒเบกเบเบฑเบเบฅเบธเบกเบนเบเบเปเบฒเบเบตเปเปเบฅเบฐเบฎเบฑเบเบชเบฒเบกเบฑเบ. เบเบธเบเบเบตเปเปเบกเปเบ: เบเปเบฒเบเบงเบเปเบฎเบปเบฒเปเบญเบปเบฒ gigabytes เปเบเบปเปเบฒเปเบเปเบ cache, เบเบงเบเปเบฎเบปเบฒเบเบฐเบเปเบญเบเบเบฑเบเปเบฅเป gigabytes, เปเบฅเบฐเบเบตเป, เบเบฑเปเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเปเบเปเปเบซเบฑเบเบเปเบฒเบเปเบเบดเบ, เบฅเบฒเบเบฒเปเบเบเบซเบผเบฒเบ. เบขเปเบฒเบเปเบเบเปเปเบเบฒเบก, เบเปเบฒเบเบเปเปเบเบงเบเบเบฐเบเบฒเบเบฒเบกเบเบฑเปเบเบกเบฑเบเบเปเบญเบเปเบเบตเบเปเบ, เปเบเบฒเบฐเบงเปเบฒเบเบตเปเบเบฐเปเบฎเบฑเบเปเบซเปเบฎเบนเบเปเบเบเบเบฒเบเบเปเบฒเบกเบเบฅเบฑเบญเบเบญเบญเบเปเบเบเปเบญเบเปเบงเบญเบฑเบเบเบงเบ. เบชเปเบฒเบฅเบฑเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเบเบตเปเบกเบตเบเบฐเบชเบดเบเบเบดเบเบฒเบ (เบเบฐเบกเบฒเบ 20-40 เปเบเบเบเบฒเบเบเปเบฒเบเบฎเปเบฒเบเบเบฒเบ), เบกเบฑเบเปเบซเบกเบฒเบฐเบชเบปเบกเบเบตเปเบเบฐเบเปเบฒเบเบปเบเบเบฐเบกเบฒเบ 300-400 MB. เบชเปเบฒเบฅเบฑเบเบเบฑเปเบเบเบฒเบ (~10 cores) 200-300 MB. เบชเปเบฒเบฅเบฑเบเบฅเบฐเบเบปเบเบเบตเปเบญเปเบญเบเปเบญ (2-5 cores) 50-100 MB เบญเบฒเบเบเบฐเปเบเบฑเบเบเบปเบเบเบฐเบเบด (เบเปเปเปเบเปเบเบปเบเบชเบญเบเบเปเบฝเบงเบเบฑเบเปเบซเบผเบปเปเบฒเบเบตเป).
เปเบซเปเปเบเบดเปเบเบงเบดเบเบตเบเบฒเบเปเบฎเบฑเบเบงเบฝเบ: เบชเบปเบกเบกเบธเบเบงเปเบฒเบเบงเบเปเบฎเบปเบฒเบเปเบฒเบเบปเบ hbase.lru.cache.heavy.eviction.mb.size.limit = 500, เบกเบตเบเบฒเบเปเบซเบผเบเบเบฒเบเบเบฐเปเบเบ (เบเบฒเบเบญเปเบฒเบ) เปเบฅเบฐเบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบเบธเบเป ~ 10 เบงเบดเบเบฒเบเบตเบเบงเบเปเบฎเบปเบฒเบเบดเบเปเบฅเปเบเปเบฒเบเบงเบ bytes. เบเบฑเบเปเบฅเปเปเบเบเปเบเปเบชเบนเบ:
Overhead = Freed Bytes Sum (MB) * 100 / Limit (MB) - 100;
เบเปเบฒเปเบเบเบงเบฒเบกเปเบเบฑเบเบเบดเบ 2000 MB เบเบทเบเบเบฑเบเปเบฅเป, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ Overhead เปเบกเปเบเปเบเบปเปเบฒเบเบฑเบ:
2000 * 100 / 500 - 100 = 300%
เบชเบนเบเบเบฒเบเบเบดเบเปเบฅเปเบเบฐเบเบฒเบเบฒเบกเบฎเบฑเบเบชเบฒเบเปเปเปเบเบตเบเบชเบญเบเบชเบฒเบกเบชเบดเบเปเบเบตเปเบเบฑเบ, เบเบฑเปเบเบเบฑเปเบเบเบธเบเบเบฐเบชเบปเบกเบเบฑเบเบเบฐเบซเบผเบธเบเบฅเบปเบเบญเบฑเบเบเบฒเบชเปเบงเบเบเบญเบเบเบฑเบเบเบฒเบเบเบฒเบเบเบงเบฒเบกเบเปเบฒ, เบเบฑเปเบเบเบฑเปเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบปเบเปเบเบเบฒเบเบเบฑเบเบญเบฑเบเบเบฐเปเบเบกเบฑเบ.
เบขเปเบฒเบเปเบเบเปเบเบฒเบก, เบเปเบฒเบเบฒเบเปเบซเบผเบเบซเบผเบธเบเบฅเบปเบ, เปเบซเปเปเบงเบปเปเบฒเบงเปเบฒเบเบฝเบเปเบเป 200 MB เปเบเปเบเบทเบเบเบฑเบเปเบฅเปเปเบฅเบฐ Overhead เบเบฒเบเปเบเบฑเบเบเบฒเบเบฅเบปเบ (เบญเบฑเบเบเบตเปเปเบญเบตเปเบเบงเปเบฒ overshooting):
200*100/500 - 100 = -60%
เปเบเบเบฒเบเบเบปเบเบเบฑเบเบเปเบฒเบก, เบเบธเบเบชเบปเบกเบเบฑเบเบเบฐเปเบเบตเปเบกเปเบเบตเปเบเบฑเบเบเบญเบเบเบฑเบเปเบเบเบฒเบเบเบงเบฒเบกเบเปเบฒเบเบปเบเบเปเบงเบฒ Overhead เบเบฒเบเปเบเบฑเบเบเบงเบ.
เบเปเบฒเบเบฅเบธเปเบกเบเบตเปเปเบกเปเบเบเบปเบงเบขเปเบฒเบเบเบญเบเบงเบดเบเบตเบเบฒเบเปเบเบดเปเบเบเปเปเบกเบนเบเบเบตเปเปเบเปเบเบดเบ. เบเปเปเบเปเบฒเปเบเบฑเบเบเปเบญเบเบเบฐเบเบฒเบเบฒเบกเบเบฑเบเบฅเบธ 0%, เบกเบฑเบเปเบเบฑเบเปเบเบเปเปเปเบเป. เบกเบฑเบเบเบตเบซเบผเบฒเบเปเบกเบทเปเบญเบเบฐเบกเบฒเบ 30 - 100%, เบเบตเปเบเปเบงเบเบซเบผเบตเบเปเบงเบฑเปเบเบเบฒเบเบญเบญเบเบเปเบญเบเปเบงเบญเบฑเบเบเบงเบเบเบฒเบเปเบซเบกเบเบเบฒเบเปเบเบตเปเบกเบเบฐเบชเบดเบเบเบดเบเบฒเบเปเบเบฅเบฐเบซเบงเปเบฒเบเบเบฒเบเปเบเบตเปเบกเบเบถเปเบเปเบเปเบฅเบเบฐเบชเบฑเปเบ.
hbase.lru.cache.heavy.eviction.overhead.coefficient โ เบเบณเบเบปเบเบงเปเบฒเบเบงเบเปเบฎเบปเบฒเบขเบฒเบเปเบเปเบเบปเบเปเบงเปเบเบปเปเบฒเปเบ. เบเปเบฒเบเบงเบเปเบฎเบปเบฒเบฎเบนเปเปเบเปเบเบญเบเบงเปเบฒเบเบฒเบเบญเปเบฒเบเบเบญเบเบเบงเบเปเบฎเบปเบฒเบชเปเบงเบเบซเบผเบฒเบเปเบกเปเบเบเบฒเบงเปเบฅเบฐเบเปเปเบเปเบญเบเบเบฒเบเบเบตเปเบเบฐเบฅเปเบเปเบฒ, เบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเปเบเบตเปเบกเบญเบฑเบเบเบฒเบชเปเบงเบเบเบตเปเปเบฅเบฐเปเบเปเบฎเบฑเบเบเบฐเบชเบดเบเบเบดเบเบฒเบเบชเบนเบเปเบง.
เบเบปเบงเบขเปเบฒเบ, เบเบงเบเปเบฎเบปเบฒเบเปเบฒเบเบปเบเบเปเบฒเบชเปเบฒเบเบฐเบชเบดเบเบเบตเป = 0.01. เบเบตเปเบซเบกเบฒเบเบเบงเบฒเบกเบงเปเบฒ Overhead (เปเบเบดเปเบเบเปเบฒเบเปเบเบดเบ) เบเบฐเบเบทเบเบเบนเบเบเปเบงเบเบเบปเบงเปเบฅเบเบเบตเปเปเบเบเบเบปเบเปเบเปเบฎเบฑเบเปเบฅเบฐเบญเบฑเบเบเบฒเบชเปเบงเบเบเบญเบเบเบฑเบเบเบตเปเปเบเบฑเบเปเบงเปเบเบฐเบเบทเบเบซเบผเบธเบเบฅเบปเบ. เปเบซเปเบชเบปเบกเบกเบธเบเบงเปเบฒ Overhead = 300% เปเบฅเบฐ coefficient = 0.01, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบญเบฑเบเบเบฒเบชเปเบงเบเบเบญเบเบเบฑเบ cache เบเบฐเบซเบผเบธเบเบฅเบปเบ 3%.
เปเบซเบเบเบปเบเบเบตเปเบเปเบฒเบเบเบทเบเบฑเบ "Backpressure" เบเบฑเบเบเบทเบเบเบฐเบเบดเบเบฑเบเบชเปเบฒเบฅเบฑเบเบเปเบฒ Overhead (overshooting) เบฅเบปเบ. เปเบเบทเปเบญเบเบเบฒเบเบเบฒเบเปเบซเบเบฑเบเบเบตเบเปเบเปเบฅเบเบฐเบชเบฑเปเบเบเบญเบเบเบฐเบฅเบดเบกเบฒเบเบเบฒเบเบญเปเบฒเบเปเบฅเบฐเบเบฒเบเบเบฑเบเปเบฅเปเปเบกเปเบเปเบเบฑเบเปเบเปเบเปเบชเบฐเปเบซเบกเบต, เบเบปเบเปเบเบเบตเปเบเปเบงเบเปเบซเปเบเปเบฒเบเบชเบฒเบกเบฒเบเบซเบฅเบตเบเบฅเปเบฝเบเบเบฒเบเบญเบญเบเบเบฒเบเปเบซเบกเบเบเบฒเบเปเบเบตเปเบกเบเบฐเบชเบดเบเบเบดเบเบฒเบเบเปเบญเบเปเบงเบญเบฑเบเบเบงเบ. Backpressure เบกเบตเปเบซเบเบเบปเบ inverted: เบเบฒเบ overshooting เบเบตเปเปเบเบฑเปเบกเปเบเบ, เบเบฑเบเบซเบผเบฒเบเปเบกเปเบ cached.
เบฅเบฐเบซเบฑเบเบเบฒเบเบเบฐเบเบดเบเบฑเบ
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;
}
เบเบญเบเบเบตเปเปเบซเปเปเบเบดเปเบเบเบฑเบเบซเบกเบปเบเบเบตเปเปเบเบเปเบเปเบเบปเบงเบขเปเบฒเบเบเบตเปเปเบเปเบเบดเบ. เบเบงเบเปเบฎเบปเบฒเบกเบตเบชเบฐเบเบฃเบดเบเบเบปเบเบชเบญเบเบเปเปเปเบเบเบตเป:
- เบกเบฒเปเบฅเบตเปเบก Scan (25 threads, batch = 100)
- เบซเบผเบฑเบเบเบฒเบ 5 เบเบฒเบเบต, เปเบเบตเปเบก multi-gets (25 threads, batch = 100)
- เบซเบผเบฑเบโเบเบฒเบ 5 เบเบฒโเบเบตโ, เปเบซเปโเบเบดเบ multi-gets (เบเบฝเบโเปเบเป scan เบเบฑเบโเบญเบตเบโเปเบเบทเปเบญโเบซเบเบถเปเบโ)
เบเบงเบเปเบฎเบปเบฒเปเบฎเบฑเบเบชเบญเบเปเบฅเปเบ, เบเปเบฒเบญเบดเบ hbase.lru.cache.heavy.eviction.count.limit = 10000 (เปเบเบดเปเบเบเบปเบงเบเบดเบเปเบฅเปเบง disables เบเบธเบเบเบฐเบชเบปเบกเบเบฑเบ), เปเบฅเบฐเบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบเปเบฒเบเบปเบ limit = 0 (เปเบเบตเบเปเบเปเบกเบฑเบ).
เปเบเบเบฑเบเบเบถเบเบเปเบฒเบเบฅเบธเปเบกเบเบตเปเบเบงเบเปเบฎเบปเบฒเปเบเบดเปเบเบงเบดเบเบตเบเบฒเบเปเบเบตเบเบเบธเบเบเบฐเบชเบปเบกเบเบฑเบเปเบฅเบฐ reset Overshooting เปเบเบฑเบ 14-71%. เบเบฒเบเบเบฑเปเบเบเบฒเบเปเบซเบผเบเบซเบผเบธเบเบฅเบปเบ, เปเบเบดเปเบเปเบฎเบฑเบเปเบซเป Backpressure เปเบฅเบฐ HBase cache เบเบฑเบเบซเบผเบฒเบเบญเบตเบเปเบเบทเปเบญเบซเบเบถเปเบ.
Log RegionServer
evicted (MB): 0, เบญเบฑเบเบเบฒเบชเปเบงเบ 0.0, overhead (%): -100, เบงเบฝเบเบเบฒเบเบเปเบฒเบเบเบฒเบเบเบฑเบเปเบฅเปเบขเปเบฒเบเบฎเบธเบเปเบฎเบ: 0, caching เปเบเบเบฑเบเบเบธเบเบฑเบ DataBlock (%): 100
evicted (MB): 0, เบญเบฑเบเบเบฒเบชเปเบงเบ 0.0, overhead (%): -100, เบงเบฝเบเบเบฒเบเบเปเบฒเบเบเบฒเบเบเบฑเบเปเบฅเปเบขเปเบฒเบเบฎเบธเบเปเบฎเบ: 0, caching เปเบเบเบฑเบเบเบธเบเบฑเบ DataBlock (%): 100
evicted (MB): 2170, เบญเบฑเบเบเบฒเบชเปเบงเบ 1.09, overhead (%): 985, heavy evic counter counter: 1, current caching DataBlock (%): 91 < start
evicted (MB): 3763, เบญเบฑเบเบเบฒเบชเปเบงเบ 1.08, overhead (%): 1781, heavy evic counter counter: 2, current caching DataBlock (%): 76
evicted (MB): 3306, เบญเบฑเบเบเบฒเบชเปเบงเบ 1.07, overhead (%): 1553, heavy evic counter counter: 3, current caching DataBlock (%): 61
evicted (MB): 2508, เบญเบฑเบเบเบฒเบชเปเบงเบ 1.06, overhead (%): 1154, heavy evic counter counter: 4, current caching DataBlock (%): 50
evicted (MB): 1824, เบญเบฑเบเบเบฒเบชเปเบงเบ 1.04, overhead (%): 812, heavy evic counter counter: 5, current caching DataBlock (%): 42
evicted (MB): 1482, เบญเบฑเบเบเบฒเบชเปเบงเบ 1.03, overhead (%): 641, heavy evic counter counter: 6, current caching DataBlock (%): 36
evicted (MB): 1140, เบญเบฑเบเบเบฒเบชเปเบงเบ 1.01, overhead (%): 470, heavy evic counter counter: 7, current caching DataBlock (%): 32
evicted (MB): 913, เบญเบฑเบเบเบฒเบชเปเบงเบ 1.0, overhead (%): 356, heavy evic counter counter: 8, current caching DataBlock (%): 29
evicted (MB): 912, เบญเบฑเบเบเบฒเบชเปเบงเบ 0.89, overhead (%): 356, heavy evic counter counter: 9, current caching DataBlock (%): 26
evicted (MB): 684, เบญเบฑเบเบเบฒเบชเปเบงเบ 0.76, overhead (%): 242, heavy evic counter counter: 10, current caching DataBlock (%): 24
evicted (MB): 684, เบญเบฑเบเบเบฒเบชเปเบงเบ 0.61, overhead (%): 242, heavy evic counter counter: 11, current caching DataBlock (%): 22
evicted (MB): 456, เบญเบฑเบเบเบฒเบชเปเบงเบ 0.51, overhead (%): 128, heavy evic counter counter: 12, current caching DataBlock (%): 21
evicted (MB): 456, เบญเบฑเบเบเบฒเบชเปเบงเบ 0.42, overhead (%): 128, heavy evic counter counter: 13, current caching DataBlock (%): 20
evicted (MB): 456, เบญเบฑเบเบเบฒเบชเปเบงเบ 0.33, overhead (%): 128, heavy evic counter counter: 14, current caching DataBlock (%): 19
evicted (MB): 342, เบญเบฑเบเบเบฒเบชเปเบงเบ 0.33, overhead (%): 71, heavy evic counter counter: 15, current caching DataBlock (%): 19
evicted (MB): 342, เบญเบฑเบเบเบฒเบชเปเบงเบ 0.32, overhead (%): 71, heavy evic counter counter: 16, current caching DataBlock (%): 19
evicted (MB): 342, เบญเบฑเบเบเบฒเบชเปเบงเบ 0.31, overhead (%): 71, heavy evic counter counter: 17, current caching DataBlock (%): 19
evicted (MB): 228, เบญเบฑเบเบเบฒเบชเปเบงเบ 0.3, overhead (%): 14, heavy evic counter counter: 18, current caching DataBlock (%): 19
evicted (MB): 228, เบญเบฑเบเบเบฒเบชเปเบงเบ 0.29, overhead (%): 14, heavy evic counter counter: 19, current caching DataBlock (%): 19
evicted (MB): 228, เบญเบฑเบเบเบฒเบชเปเบงเบ 0.27, overhead (%): 14, heavy evic counter counter: 20, current caching DataBlock (%): 19
evicted (MB): 228, เบญเบฑเบเบเบฒเบชเปเบงเบ 0.25, overhead (%): 14, heavy evic counter counter: 21, current caching DataBlock (%): 19
evicted (MB): 228, เบญเบฑเบเบเบฒเบชเปเบงเบ 0.24, overhead (%): 14, heavy evic counter counter: 22, current caching DataBlock (%): 19
evicted (MB): 228, เบญเบฑเบเบเบฒเบชเปเบงเบ 0.22, overhead (%): 14, heavy evic counter counter: 23, current caching DataBlock (%): 19
evicted (MB): 228, เบญเบฑเบเบเบฒเบชเปเบงเบ 0.21, overhead (%): 14, heavy evic counter counter: 24, current caching DataBlock (%): 19
evicted (MB): 228, เบญเบฑเบเบเบฒเบชเปเบงเบ 0.2, overhead (%): 14, heavy evic counter counter: 25, current caching DataBlock (%): 19
evicted (MB): 228, เบญเบฑเบเบเบฒเบชเปเบงเบ 0.17, overhead (%): 14, heavy evic counter counter: 26, current caching DataBlock (%): 19
evicted (MB): 456, เบญเบฑเบเบเบฒเบชเปเบงเบ 0.17, overhead (%): 128, เบงเบฝเบเบเบฒเบเบเปเบฒเบเบเบฒเบเบเบฑเบเปเบฅเปเบขเปเบฒเบเบฎเบธเบเปเบฎเบ: 27, caching เปเบเบเบฑเบเบเบธเบเบฑเบ DataBlock (%): 18 < เปเบเบตเปเบกเปเบเปเบฎเบฑเบ (เปเบเปเบเบฒเบเบฐเบฅเบฒเบเบเบฝเบงเบเบฑเบ)
evicted (MB): 456, เบญเบฑเบเบเบฒเบชเปเบงเบ 0.15, overhead (%): 128, heavy evic counter counter: 28, current caching DataBlock (%): 17
evicted (MB): 342, เบญเบฑเบเบเบฒเบชเปเบงเบ 0.13, overhead (%): 71, heavy evic counter counter: 29, current caching DataBlock (%): 17
evicted (MB): 342, เบญเบฑเบเบเบฒเบชเปเบงเบ 0.11, overhead (%): 71, heavy evic counter counter: 30, current caching DataBlock (%): 17
evicted (MB): 342, เบญเบฑเบเบเบฒเบชเปเบงเบ 0.09, overhead (%): 71, heavy evic counter counter: 31, current caching DataBlock (%): 17
evicted (MB): 228, เบญเบฑเบเบเบฒเบชเปเบงเบ 0.08, overhead (%): 14, heavy evic counter counter: 32, current caching DataBlock (%): 17
evicted (MB): 228, เบญเบฑเบเบเบฒเบชเปเบงเบ 0.07, overhead (%): 14, heavy evic counter counter: 33, current caching DataBlock (%): 17
evicted (MB): 228, เบญเบฑเบเบเบฒเบชเปเบงเบ 0.06, overhead (%): 14, heavy evic counter counter: 34, current caching DataBlock (%): 17
evicted (MB): 228, เบญเบฑเบเบเบฒเบชเปเบงเบ 0.05, overhead (%): 14, heavy evic counter counter: 35, current caching DataBlock (%): 17
evicted (MB): 228, เบญเบฑเบเบเบฒเบชเปเบงเบ 0.05, overhead (%): 14, heavy evic counter counter: 36, current caching DataBlock (%): 17
evicted (MB): 228, เบญเบฑเบเบเบฒเบชเปเบงเบ 0.04, overhead (%): 14, heavy evic counter counter: 37, current caching DataBlock (%): 17
evicted (MB): 109, เบญเบฑเบเบเบฒเบชเปเบงเบ 0.04, overhead (%): -46, heavy evic counter counter: 37, caching current DataBlock (%): 22 < back pressure
evicted (MB): 798, เบญเบฑเบเบเบฒเบชเปเบงเบ 0.24, overhead (%): 299, heavy evic counter counter: 38, current caching DataBlock (%): 20
evicted (MB): 798, เบญเบฑเบเบเบฒเบชเปเบงเบ 0.29, overhead (%): 299, heavy evic counter counter: 39, current caching DataBlock (%): 18
evicted (MB): 570, เบญเบฑเบเบเบฒเบชเปเบงเบ 0.27, overhead (%): 185, heavy evic counter counter: 40, current caching DataBlock (%): 17
evicted (MB): 456, เบญเบฑเบเบเบฒเบชเปเบงเบ 0.22, overhead (%): 128, heavy evic counter counter: 41, current caching DataBlock (%): 16
evicted (MB): 342, เบญเบฑเบเบเบฒเบชเปเบงเบ 0.16, overhead (%): 71, heavy evic counter counter: 42, current caching DataBlock (%): 16
evicted (MB): 342, เบญเบฑเบเบเบฒเบชเปเบงเบ 0.11, overhead (%): 71, heavy evic counter counter: 43, current caching DataBlock (%): 16
evicted (MB): 228, เบญเบฑเบเบเบฒเบชเปเบงเบ 0.09, overhead (%): 14, heavy evic counter counter: 44, current caching DataBlock (%): 16
evicted (MB): 228, เบญเบฑเบเบเบฒเบชเปเบงเบ 0.07, overhead (%): 14, heavy evic counter counter: 45, current caching DataBlock (%): 16
evicted (MB): 228, เบญเบฑเบเบเบฒเบชเปเบงเบ 0.05, overhead (%): 14, heavy evic counter counter: 46, current caching DataBlock (%): 16
evicted (MB): 222, เบญเบฑเบเบเบฒเบชเปเบงเบ 0.04, overhead (%): 11, heavy evic counter counter: 47, current caching DataBlock (%): 16
evicted (MB): 104, เบญเบฑเบเบเบฒเบชเปเบงเบ 0.03, overhead (%): -48, เบงเบฝเบเบเบฒเบเบเปเบฒเบเบเบฒเบเบเบฑเบเปเบฅเปเบขเปเบฒเบเบฎเบธเบเปเบฎเบ: 47, caching เปเบเบเบฑเบเบเบธเบเบฑเบ DataBlock (%): 21 < interrupt เปเบเปเบฎเบฑเบ
evicted (MB): 684, เบญเบฑเบเบเบฒเบชเปเบงเบ 0.2, overhead (%): 242, heavy evic counter counter: 48, current caching DataBlock (%): 19
evicted (MB): 570, เบญเบฑเบเบเบฒเบชเปเบงเบ 0.23, overhead (%): 185, heavy evic counter counter: 49, current caching DataBlock (%): 18
evicted (MB): 342, เบญเบฑเบเบเบฒเบชเปเบงเบ 0.22, overhead (%): 71, heavy evic counter counter: 50, current caching DataBlock (%): 18
evicted (MB): 228, เบญเบฑเบเบเบฒเบชเปเบงเบ 0.21, overhead (%): 14, heavy evic counter counter: 51, current caching DataBlock (%): 18
evicted (MB): 228, เบญเบฑเบเบเบฒเบชเปเบงเบ 0.2, overhead (%): 14, heavy evic counter counter: 52, current caching DataBlock (%): 18
evicted (MB): 228, เบญเบฑเบเบเบฒเบชเปเบงเบ 0.18, overhead (%): 14, heavy evic counter counter: 53, current caching DataBlock (%): 18
evicted (MB): 228, เบญเบฑเบเบเบฒเบชเปเบงเบ 0.16, overhead (%): 14, heavy evic counter counter: 54, current caching DataBlock (%): 18
evicted (MB): 228, เบญเบฑเบเบเบฒเบชเปเบงเบ 0.14, overhead (%): 14, heavy evic counter counter: 55, current caching DataBlock (%): 18
evicted (MB): 112, เบญเบฑเบเบเบฒเบชเปเบงเบ 0.14, overhead (%): -44, heavy evic counter counter: 55, caching current DataBlock (%): 23 < back pressure
evicted (MB): 456, เบญเบฑเบเบเบฒเบชเปเบงเบ 0.26, overhead (%): 128, heavy evic counter counter: 56, current caching DataBlock (%): 22
evicted (MB): 342, เบญเบฑเบเบเบฒเบชเปเบงเบ 0.31, overhead (%): 71, heavy evic counter counter: 57, current caching DataBlock (%): 22
evicted (MB): 342, เบญเบฑเบเบเบฒเบชเปเบงเบ 0.33, overhead (%): 71, heavy evic counter counter: 58, current caching DataBlock (%): 22
evicted (MB): 342, เบญเบฑเบเบเบฒเบชเปเบงเบ 0.33, overhead (%): 71, heavy evic counter counter: 59, current caching DataBlock (%): 22
evicted (MB): 342, เบญเบฑเบเบเบฒเบชเปเบงเบ 0.33, overhead (%): 71, heavy evic counter counter: 60, current caching DataBlock (%): 22
evicted (MB): 342, เบญเบฑเบเบเบฒเบชเปเบงเบ 0.33, overhead (%): 71, heavy evic counter counter: 61, current caching DataBlock (%): 22
evicted (MB): 342, เบญเบฑเบเบเบฒเบชเปเบงเบ 0.33, overhead (%): 71, heavy evic counter counter: 62, current caching DataBlock (%): 22
evicted (MB): 342, เบญเบฑเบเบเบฒเบชเปเบงเบ 0.33, overhead (%): 71, heavy evic counter counter: 63, current caching DataBlock (%): 22
evicted (MB): 342, เบญเบฑเบเบเบฒเบชเปเบงเบ 0.32, overhead (%): 71, heavy evic counter counter: 64, current caching DataBlock (%): 22
evicted (MB): 342, เบญเบฑเบเบเบฒเบชเปเบงเบ 0.33, overhead (%): 71, heavy evic counter counter: 65, current caching DataBlock (%): 22
evicted (MB): 342, เบญเบฑเบเบเบฒเบชเปเบงเบ 0.33, overhead (%): 71, heavy evic counter counter: 66, current caching DataBlock (%): 22
evicted (MB): 342, เบญเบฑเบเบเบฒเบชเปเบงเบ 0.32, overhead (%): 71, heavy evic counter counter: 67, current caching DataBlock (%): 22
evicted (MB): 342, เบญเบฑเบเบเบฒเบชเปเบงเบ 0.33, overhead (%): 71, heavy evic counter counter: 68, current caching DataBlock (%): 22
evicted (MB): 342, เบญเบฑเบเบเบฒเบชเปเบงเบ 0.32, overhead (%): 71, heavy evic counter counter: 69, current caching DataBlock (%): 22
evicted (MB): 342, เบญเบฑเบเบเบฒเบชเปเบงเบ 0.32, overhead (%): 71, heavy evic counter counter: 70, current caching DataBlock (%): 22
evicted (MB): 342, เบญเบฑเบเบเบฒเบชเปเบงเบ 0.33, overhead (%): 71, heavy evic counter counter: 71, current caching DataBlock (%): 22
evicted (MB): 342, เบญเบฑเบเบเบฒเบชเปเบงเบ 0.33, overhead (%): 71, heavy evic counter counter: 72, current caching DataBlock (%): 22
evicted (MB): 342, เบญเบฑเบเบเบฒเบชเปเบงเบ 0.33, overhead (%): 71, heavy evic counter counter: 73, current caching DataBlock (%): 22
evicted (MB): 342, เบญเบฑเบเบเบฒเบชเปเบงเบ 0.33, overhead (%): 71, heavy evic counter counter: 74, current caching DataBlock (%): 22
evicted (MB): 342, เบญเบฑเบเบเบฒเบชเปเบงเบ 0.33, overhead (%): 71, heavy evic counter counter: 75, current caching DataBlock (%): 22
evicted (MB): 342, เบญเบฑเบเบเบฒเบชเปเบงเบ 0.33, overhead (%): 71, heavy evic counter counter: 76, current caching DataBlock (%): 22
evicted (MB): 21, เบญเบฑเบเบเบฒเบชเปเบงเบ 0.33, overhead (%): -90, เบงเบฝเบเบเบฒเบเบเปเบฒเบเบเบฒเบเบเบฑเบเปเบฅเปเบขเปเบฒเบเบฎเบธเบเปเบฎเบ: 76, caching เปเบเบเบฑเบเบเบธเบเบฑเบ DataBlock (%): 32
evicted (MB): 0, เบญเบฑเบเบเบฒเบชเปเบงเบ 0.0, overhead (%): -100, เบงเบฝเบเบเบฒเบเบเปเบฒเบเบเบฒเบเบเบฑเบเปเบฅเปเบขเปเบฒเบเบฎเบธเบเปเบฎเบ: 0, caching เปเบเบเบฑเบเบเบธเบเบฑเบ DataBlock (%): 100
evicted (MB): 0, เบญเบฑเบเบเบฒเบชเปเบงเบ 0.0, overhead (%): -100, เบงเบฝเบเบเบฒเบเบเปเบฒเบเบเบฒเบเบเบฑเบเปเบฅเปเบขเปเบฒเบเบฎเบธเบเปเบฎเบ: 0, caching เปเบเบเบฑเบเบเบธเบเบฑเบ DataBlock (%): 100
เบเบฒเบเบชเบฐเปเบเบเปเบกเปเบเบเปเบฒเปเบเบฑเบเปเบเบทเปเบญเบชเบฐเปเบเบเบเบฐเบเบงเบเบเบฒเบเบเบฝเบงเบเบฑเบเปเบเบฎเบนเบเปเบเบเบเบญเบเบเบฒเบเบเบญเบเบเบงเบฒเบกเบชเปเบฒเบเบฑเบเบฅเบฐเบซเบงเปเบฒเบเบชเบญเบเบชเปเบงเบ cache - เบเบฝเบง (เบเปเบญเบเบเบตเปเบเบฅเบฑเบญเบเบเบตเปเบเปเปเปเบเบตเบเบเบทเบเบฎเปเบญเบเบเปเบกเบฒเบเปเบญเบ) เปเบฅเบฐเบซเบผเบฒเบ (เบเปเปเบกเบนเบ "เบฎเปเบญเบเบเป" เบขเปเบฒเบเบซเบเปเบญเบเบซเบเบถเปเบเบเบฑเปเบเบเบทเบเปเบเบฑเบเปเบงเปเบเบตเปเบเบตเป):
เปเบฅเบฐเบชเบธเบเบเปเบฒเบ, เบเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบเบเบญเบเบเบฒเบฅเบฒเบกเบดเปเบเบตเบกเบตเบฅเบฑเบเบชเบฐเบเบฐเปเบเบงเปเบเปเบเบฎเบนเบเปเบเบเบเบญเบเบเบฒเบ. เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบฝเบเบเบฝเบ, cache เปเบเปเบเบทเบเบเบดเบเบขเปเบฒเบเบชเบปเบกเบเบนเบเปเบเบเบญเบเปเบฅเบตเปเบกเบเบปเปเบ, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ HBase เปเบเปเบเบทเบเปเบเบตเบเบเบปเบงเบเปเบงเบ cache เปเบฅเบฐเบเบฒเบเบเบฑเบเบเปเบฒเบเบฒเบเปเบฅเบตเปเบกเบเบปเปเบเบเบญเบเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเบฒเบเปเบเบตเปเบกเบเบฐเบชเบดเบเบเบดเบเบฒเบเปเบเบ 5 เบเบฒเบเบต (30 เบฎเบญเบเบเบฒเบเบเบฑเบเปเบฅเป).
เบฅเบฐเบซเบฑเบเปเบเบฑเบกเบชเบฒเบกเบฒเบเบเบปเบเปเบเปเปเบ Pull Request
เบขเปเบฒเบเปเบเบเปเบเบฒเบก, 300 เบเบฑเบเบญเปเบฒเบเบเปเปเบงเบดเบเบฒเบเบตเบเปเปเปเบกเปเบเบเบฑเบเบซเบกเบปเบเบเบตเปเบชเบฒเบกเบฒเบเบเบฑเบเบฅเบธเปเบเปเปเบเบฎเบฒเบเปเบงเบเบฒเบเปเบเปเปเบเบทเปเบญเบเปเบเปเบซเบผเบปเปเบฒเบเบตเป. เบเบงเบฒเบกเบเบดเบเปเบฅเปเบงเปเบกเปเบเบงเปเบฒเปเบกเบทเปเบญเบเปเบฒเบเบเปเบญเบเบเบฒเบเปเบเบปเปเบฒเปเบเบดเบเบเปเปเบกเบนเบเบเปเบฒเบ HDFS, เบเบปเบเปเบ ShortCircuitCache (เบเปเปเปเบเบเบตเปเปเบญเบตเปเบเบงเปเบฒ SSC) เบเบทเบเบเปเบฒเปเบเป, เปเบเบดเปเบเบเปเบงเบเปเบซเปเบเปเบฒเบเบชเบฒเบกเบฒเบเปเบเบปเปเบฒเปเบเบดเบเบเปเปเบกเบนเบเปเบเปเปเบเบเบเบปเบ, เบซเบผเบตเบเปเบงเบฑเปเบเบเบฒเบเบเบปเบงเบเบฑเบเบเบฑเบเปเบเบทเบญเบเปเบฒเบ.
Profiling เบชเบฐเปเบเบเปเบซเปเปเบซเบฑเบเบงเปเบฒเปเบเบดเบเปเบกเปเบเบงเปเบฒเบเบปเบเปเบเบเบตเปเปเบฎเบฑเบเปเบซเปเบเบปเบเบเบฐเปเบซเบเบเบญเบฑเบเปเบซเบเปเบซเบผเบงเบ, เบกเบฑเบเบเบฑเบเบขเบนเปเปเบเบเบฒเบเบเบธเบเบเปเปเบเบฒเบเปเบเบฑเบเบเปเบเบงเบ, เปเบเบฒเบฐเบงเปเบฒเปเบเบทเบญเบเบเบฑเบเบซเบกเบปเบเบเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบเบซเบเบฑเบเปเบเบตเบเบเบทเปเบเบเบฒเบเปเบ lock, เปเบเบดเปเบเบเปเบฒเปเบเบชเบนเปเบเบฒเบเบเบฑเบเบเบงเบฒเบเปเบเบทเบญเบเบเบฑเบเบซเบกเบปเบ.
เปเบเบเปเบเปเบฎเบฑเบเบฎเบนเปเบชเบดเปเบเบเบตเป, เบเบงเบเปเบฎเบปเบฒเบฎเบนเปเบงเปเบฒเบเบฑเบเบซเบฒเบชเบฒเบกเบฒเบเบซเบฅเบตเบเบฅเปเบฝเบเปเบเปเปเบเบเบเบฒเบเบชเปเบฒเบ array เบเบญเบ SSCs เปเบญเบเบฐเบฅเบฒเบ:
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 KB blocks เบเบฑเบ cache เบซเบเบถเปเบเบเปเบญเบเบเบฒเบ 78 เบงเบดเบเบฒเบเบต. เปเบเบเบฐเบเบฐเบเบตเป 5 cache เบกเบฑเบเปเบเปเปเบงเบฅเบฒ 16 เบงเบดเบเบฒเบเบต. เปเบซเบผเบปเปเบฒเบเบฑเปเบ. เบกเบตเบเบฒเบเปเบฅเบฑเปเบ ~5 เปเบเบปเปเบฒ. เบเบฑเปเบเบเบตเปเปเบซเบฑเบเปเบเปเบเบฒเบเบเบฒเบ, เบเบปเบเบเบฐเบเบปเบเปเบกเปเบเบเปเปเบชเบฑเบเปเบเบเปเบซเบฑเบเบซเบผเบฒเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบญเปเบฒเบเบเบฐเบซเบเบฒเบเบเปเบฒเบเบงเบเบซเบเปเบญเบ; เบกเบฑเบเปเบฅเบตเปเบกเบกเบตเบเบปเบเบเบฒเบเบชเบฑเบเปเบเบเปเบซเบฑเบเปเบกเบทเปเบญเบกเบตเบซเบผเบฒเบเบเบงเปเบฒ 50 threads เบญเปเบฒเบ, เบกเบฑเบเบเบฑเบเบชเบฑเบเปเบเบเปเบซเบฑเบเบงเปเบฒเบเบฒเบเปเบเบตเปเบกเบเปเบฒเบเบงเบเบเบญเบ SSCs เบเบฒเบ 6. เปเบฅเบฐเบเปเบฒเบเปเบเบดเบเบเบตเปเปเบฎเบฑเบเปเบซเปเบเบฐเบชเบดเบเบเบดเบเบฒเบเบเบฐเบซเบเบฒเบเบเปเบญเบเปเบเบตเปเบกเบเบถเปเบเบขเปเบฒเบเบซเบผเบงเบเบซเบผเบฒเบ.
เบซเบกเบฒเบเปเบซเบ 1: เปเบเบทเปเบญเบเบเบฒเบเบเบปเบเบเบฒเบเบเบปเบเบชเบญเบเปเบกเปเบเบเปเบญเบเบเปเบฒเบเบเปเบฝเบเปเบเบ (เปเบเบดเปเบเบเปเบฒเบเบฅเบธเปเบกเบเบตเป), 3 เปเบฅเปเบเปเบเปเบเบทเบเบเบฐเบเบดเบเบฑเบเปเบฅเบฐเบเบปเบเปเบเปเบฎเบฑเบเปเบกเปเบเบชเบฐเปเบฅเปเบ.
เบซเบกเบฒเบเปเบซเบ 2: เบเบฐเบชเบดเบเบเบดเบเบฒเบเบเบตเปเปเบเบตเปเบกเบเบถเปเบเบเบฒเบเบเบฒเบเบเบฑเปเบเบเปเบฒเบเบฒเบเปเบเบปเปเบฒเปเบเบดเบเปเบเบเบชเบธเปเบกเปเบกเปเบเบเบทเบเบฑเบ, เปเบเบดเบเปเบกเปเบเบงเปเบฒเบเบฒเบเปเบเบปเปเบฒเปเบเบดเบเบเบปเบงเบกเบฑเบเปเบญเบเปเบกเปเบเบเปเบฒเบเบงเปเบฒเปเบฅเบฑเบเบเปเบญเบ.
เบขเปเบฒเบเปเบเบเปเปเบเบฒเบก, เบกเบฑเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเบเบตเปเปเบเบเบงเปเบฒ, เบเปเปเปเบซเบกเบทเบญเบเบเบฑเบเบเปเบฅเบฐเบเบตเบเบตเปเบกเบต HBase, เบเบฒเบเปเบฅเบฑเปเบเบเบตเปเบเปเปเปเบกเปเบเบเปเปเปเบชเบเบเปเบฒเบชเบฐเปเบซเบกเบต. เบเบตเปเบเบงเบเปเบฎเบปเบฒ "เบเบปเบเบฅเบฑเบญเบ" เบเบงเบฒเบกเบชเบฒเบกเบฒเบเบเบญเบ CPU เบเบตเปเบเบฐเปเบฎเบฑเบเบงเบฝเบเบซเบผเบฒเบ, เปเบเบเบเบตเปเบเบฐเบซเปเบญเบเปเบชเปเบฅเบฑเบญเบ.
เปเบเบเบตเปเบเบตเปเบเปเบฒเบเบชเบฒเบกเบฒเบเบชเบฑเบเปเบเบเปเบซเบฑเบเบงเปเบฒ, เปเบเบเบเบปเปเบงเปเบ, เบเบฒเบเปเบเบตเปเบกเบเบถเปเบเบเบญเบเบเปเบฒเบเบงเบเบเบญเบเบเบฒเบเบเบงเบฒเบกเบเปเบฒเปเบฎเบฑเบเปเบซเปเบเบฒเบเปเบเบตเปเบกเบเบถเปเบเบเบฐเบกเบฒเบเบญเบฑเบเบเบฒเบชเปเบงเบเบเบญเบเบเบฒเบเบเปเบฒเปเบเป CPU. เบขเปเบฒเบเปเบเบเปเบเบฒเบก, เบกเบตเบเบฒเบเบเบฐเบชเบปเบกเบเบฐเบเบฐเปเบฅเบฑเบเบเปเบญเบ.
เบเบปเบงเบขเปเบฒเบ, เปเบซเปเบเบดเบเบฒเบฅเบฐเบเบฒเบขเปเบฒเบเบฅเบฐเบญเบฝเบเบเปเบฝเบงเบเบฑเบเบเบฒเบเบเบฑเปเบเบเปเบฒ SSC = 3. เบเบฒเบเปเบเบตเปเบกเบเบถเปเบเบเบญเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเปเบเบฅเบฐเบเบฑเบเปเบกเปเบเบเบฐเบกเบฒเบ 3.3 เปเบเบปเปเบฒ. เบเปเบฒเบเบฅเบธเปเบกเบเบตเปเปเบกเปเบเบเบปเบเปเบเปเบฎเบฑเบเบเบฒเบเบเบฑเบเบชเบฒเบกเปเบฅเปเบเปเบเบเบเปเบฒเบเบซเบฒเบ.
เปเบเบเบฐเบเบฐเบเบตเปเบเบฒเบเบเปเบฅเบดเปเบเบ CPU เปเบเบตเปเบกเบเบถเปเบเบเบฐเบกเบฒเบ 2.8 เปเบเบปเปเบฒ. เบเบงเบฒเบกเปเบเบเบเปเบฒเบเปเบกเปเบเบเปเปเปเบซเบเปเบซเบผเบฒเบ, เปเบเป Greta เบเปเบญเบเบเปเปเบกเบตเบเบงเบฒเบกเบชเบธเบเปเบฅเปเบงเปเบฅเบฐเบญเบฒเบเบเบฐเบกเบตเปเบงเบฅเบฒเปเบเบปเปเบฒเปเบฎเบเบฎเบฝเบเปเบฅเบฐเบเบญเบเบเบญเบเบเบปเบเบฎเบฝเบ.
เบเบฑเปเบเบเบฑเปเบ, เบเบตเปเบเบฐเบกเบตเบเบปเบเบเบฐเบเบปเบเบเบฒเบเบเบงเบเบชเปเบฒเบฅเบฑเบเปเบเบทเปเบญเบเบกเบทเปเบเปเบเบตเปเปเบเปเบเบฒเบเปเบเบปเปเบฒเปเบเบดเบ HDFS เบเปเบฒเบเบงเบเบซเบฅเบฒเบ (เบเบปเบงเบขเปเบฒเบ Spark, เปเบฅเบฐเบญเบทเปเบเป), เบชเบฐเบซเบเบญเบเปเบซเปเบงเปเบฒเบฅเบฐเบซเบฑเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเปเบกเปเบเบกเบตเบเปเปเบฒเบซเบเบฑเบเปเบเบปเบฒ (i. e. เบชเบฝเบเปเบกเปเบเบขเบนเปเบเปเบฒเบเบฅเบนเบเบเปเบฒ HDFS) เปเบฅเบฐเบกเบตเบเบฐเบฅเบฑเบเบเบฒเบ CPU เบเบฃเบต. . เปเบเบทเปเบญเบเบงเบเปเบเบดเปเบ, เปเบซเปเบเบงเบเปเบฎเบปเบฒเบเบปเบเบชเบญเบเบงเปเบฒเบเบฒเบเบเปเบฒเปเบเปเบเบฒเบเปเบเบตเปเบกเบเบฐเบชเบดเบเบเบดเบเบฒเบเบเบญเบ BlockCache เปเบฅเบฐเบเบฒเบเบเบฑเบเปเบเปเบ SSC เบชเปเบฒเบฅเบฑเบเบเบฒเบเบญเปเบฒเบเบเบฒเบ HBase เบเบฐเบกเบตเบเบปเบเปเบเบงเปเบ.
เบกเบฑเบเบชเบฒเบกเบฒเบเปเบซเบฑเบเปเบเปเบงเปเบฒเบเบฒเบเปเบเปเปเบเบทเปเบญเบเปเบเบเบฑเปเบเบเปเบฒเบงเบเบปเบเบเบฐเบเบปเบเปเบกเปเบเบเปเปเบเบดเปเบเปเบซเบเปเปเบเบปเปเบฒเบเบฑเบเบเบฒเบเบเบปเบเบชเบญเบเบเบตเปเบซเบฅเบญเบกเปเบฅเบซเบฐ (เบเบฒเบเบญเปเบฒเบเปเบเบเบเปเปเบกเบตเบเบฒเบเบเบธเบเปเบเปเบเปเบเป), เปเบเปเบกเบฑเบเบเปเปเปเบเบฑเบเปเบเปเบเปเบเบตเปเบเบฐเบเบตเบเบญเบญเบเบเบทเปเบกเบญเบตเบ 80K เบขเบนเปเบเบตเปเบเบตเป. เบฎเปเบงเบกเบเบฑเบ, เบเบฒเบเปเบเบตเปเบกเบเบฐเบชเบดเบเบเบดเบเบฒเบเบเบฑเบเบชเบญเบเปเบซเปเบเบงเบฒเบกเปเบงเปเบเบดเบ 4x.
PR เปเบเปเบเบทเบเบชเปเบฒเบเบเบทเปเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเปเบเบตเปเบกเบเบฐเบชเบดเบเบเบดเบเบฒเบเบเบตเป
เปเบฅเบฐเบชเบธเบเบเปเบฒเบ, เบกเบฑเบเบซเบเปเบฒเบชเบปเบเปเบเบเบตเปเบเบฐเบเบฝเบเบเบฝเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบฒเบเบญเปเบฒเบเบเบญเบเบเบฒเบเบเปเปเบกเบนเบเบเบตเปเบกเบตเบเปเบฅเปเบฒเบเบงเปเบฒเบเบเบตเปเบเปเบฒเบเบเบทเบเบฑเบ, Cassandra เปเบฅเบฐ HBase.
เปเบเบทเปเบญเปเบฎเบฑเบเบชเบดเปเบเบเบตเป, เบเบงเบเปเบฎเบปเบฒเปเบเปเปเบเบตเบเบเบปเบงเบเบปเบงเบขเปเบฒเบเบเบญเบเบญเบธเบเบฐเบเบญเบเบเบฒเบเบเบปเบเบชเบญเบเบเบฒเบเปเบซเบผเบ YCSB เบกเบฒเบเบเบฐเบเบฒเบเบเบฒเบเบชเบญเบเปเบฎเบ (เบเบฑเบเบซเบกเบปเบ 800 threads). เปเบเบเปเบฒเบเปเบเบตเบเปเบงเบต - 4 เบเบปเบงเบขเปเบฒเบเบเบญเบ RegionServer เปเบฅเบฐ Cassandra เปเบ 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 - เบเบตเปโเบซเบกเบฒเบโเบเบงเบฒเบกโเบงเปเบฒ patch เบเบฐโเปเบฅเบตเปเบกโเบเบปเปเบโเบเบฒเบโเปเบฎเบฑเบโเบงเบฝเบโเบซเบผเบฑเบโเบเบฒเบ 30 เบเบฒเบโเบเบฑเบโเปเบฅเป (~5 เบเบฒโเบเบตโ)
hbase.lru.cache.heavy.eviction.mb.size.limit = 300 โ เบเบฐโเบฅเบดโเบกเบฒเบโเปเบเบปเปเบฒโเบซเบกเบฒเบโเบเบญเบโเบเบฒเบโเบเบงเบฒเบกโเบเปเบฒโเปเบฅเบฐโเบเบฒเบโเบเบฑเบโเปเบฅเปโ
เบเบฑเบเบเบถเบ YCSB เปเบเปเบเบทเบเบงเบดเปเบเบฒเบฐ เปเบฅเบฐเบฅเบงเบเบฅเบงเบกเปเบเบฑเบเบเบฒเบ Excel:
เบเบฑเปเบเบเบตเปเบเปเบฒเบเบชเบฒเบกเบฒเบเปเบซเบฑเบเปเบเป, เบเบฒเบเปเบเบตเปเบกเบเบฐเบชเบดเบเบเบดเบเบฒเบเปเบซเบผเบปเปเบฒเบเบตเปเปเบฎเบฑเบเปเบซเปเบกเบฑเบเบชเบฒเบกเบฒเบเบเบฝเบเบเบฝเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบญเบเบเบฒเบเบเปเปเบกเบนเบเบเบฒเบเปเบเปเปเบเบทเปเบญเบเปเบเปเบซเบผเบปเปเบฒเบเบตเปเปเบฅเบฐเบเบฑเบเบฅเบธ 450 เบเบฑเบเบเบฒเบเบญเปเบฒเบเบเปเปเบงเบดเบเบฒเบเบต.
เบเบงเบเปเบฎเบปเบฒเบซเบงเบฑเบเบงเปเบฒเบเปเปเบกเบนเบเบเบตเปเบชเบฒเบกเบฒเบเปเบเบฑเบเบเบฐเปเบซเบเบเบเปเปเบเบนเปเปเบเบเบนเปเบเบถเปเบเปเบเบฅเบฐเบซเบงเปเบฒเบเบเบฒเบเบเปเปเบชเบนเปเบเบตเปเบซเบเปเบฒเบเบทเปเบเปเบเบฑเปเบเบชเปเบฒเบฅเบฑเบเบเบปเบเบเบฐเบฅเบดเบ.
เปเบซเบผเปเบเบเปเปเบกเบนเบ: www.habr.com