ΠΠΈΡΠΎΠΊΠΈΡΠ΅ ΠΏΠ΅ΡΡΠΎΡΠΌΠ°Π½ΡΠΈ ΡΠ΅ Π΅Π΄Π΅Π½ ΠΎΠ΄ ΠΊΠ»ΡΡΠ½ΠΈΡΠ΅ Π±Π°ΡΠ°ΡΠ° ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ° ΡΠΎ Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ. ΠΠΎ ΠΎΠ΄Π΄Π΅Π»ΠΎΡ Π·Π° Π²ΡΠΈΡΡΠ²Π°ΡΠ΅ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ Π²ΠΎ Π‘Π±Π΅ΡΠ±Π°Π½ΠΊ, Π³ΠΈ Π²ΠΌΠ΅ΡΠ½ΡΠ²Π°ΠΌΠ΅ ΡΠ΅ΡΠΈΡΠΈ ΡΠΈΡΠ΅ ΡΡΠ°Π½ΡΠ°ΠΊΡΠΈΠΈ Π²ΠΎ Π½Π°ΡΠΈΠΎΡ ΠΎΠ±Π»Π°ΠΊ Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ Π±Π°Π·ΠΈΡΠ°Π½ Π½Π° 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 KB.
ΠΠ° ΡΠ΅ΡΠ΅ΠΌΠ΅ Π΄Π΅ΠΊΠ° Π³ΠΎ ΠΏΡΠ°Π²ΠΈΠΌΠ΅ ΠΎΠ²Π°, Π½ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π½ΠΎ, ΠΊΠΎΠ³Π° ΠΏΠΎΡΠ½ΡΠ²Π°ΠΌΠ΅ Π΄Π° ΡΠΈΡΠ°ΠΌΠ΅ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ ΠΏΡΠ΅ΠΊΡ 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 MB/s, Ρ.Π΅. 3 ΠΌΠΈΠ»ΠΈΠΎΠ½ΠΈ ΠΏΠ°ΡΠΈ 100 Π±Π°ΡΡΠΈ. ΠΠΎ, ΠΊΠ°ΠΊΠΎ ΡΡΠΎ ΡΠ΅ ΡΠ΅ΡΠ°Π²Π°ΠΌΠ΅, ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈΡΠ΅ ΡΡΠΎ Π½ΠΈ ΡΠ΅ ΠΏΠΎΡΡΠ΅Π±Π½ΠΈ ΡΠ΅ 2600 ΠΏΠ°ΡΠΈ ΠΏΠΎΠΌΠ°Π»ΠΊΡ ΠΎΠ΄ ΠΏΡΠΎΡΠΈΡΠ°Π½ΠΈΡΠ΅. Π’Π°ΠΊΠ°, 3 ΠΌΠΈΠ»ΠΈΠΎΠ½ΠΈ Π΄Π΅Π»ΠΈΠΌΠ΅ ΡΠΎ 2600 ΠΈ Π΄ΠΎΠ±ΠΈΠ²Π°ΠΌΠ΅ 1100 Π·Π°ΠΏΠΈΡΠΈ Π²ΠΎ ΡΠ΅ΠΊΡΠ½Π΄Π°.
ΠΠ΅ΠΏΡΠ΅ΡΠΈΠ²Π½ΠΎ, Π½Π΅Π»ΠΈ? Π’ΠΎΠ° Π΅ ΠΏΡΠΈΡΠΎΠ΄Π°ΡΠ° Π‘Π»ΡΡΠ°Π΅Π½ ΠΏΡΠΈΡΡΠ°ΠΏ ΠΏΡΠΈΡΡΠ°ΠΏ Π΄ΠΎ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ Π½Π° HDD - Π±Π΅Π· ΠΎΠ³Π»Π΅Π΄ Π½Π° Π³ΠΎΠ»Π΅ΠΌΠΈΠ½Π°ΡΠ° Π½Π° Π±Π»ΠΎΠΊΠΎΡ. ΠΠ²Π° Π΅ ΡΠΈΠ·ΠΈΡΠΊΠ°ΡΠ° Π³ΡΠ°Π½ΠΈΡΠ° Π½Π° ΡΠ»ΡΡΠ°Π΅Π½ ΠΏΡΠΈΡΡΠ°ΠΏ ΠΈ Π½ΠΈΡΡ Π΅Π΄Π½Π° Π±Π°Π·Π° Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΡΠΈΡΠΈΡΠ½Π΅ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΏΠΎΠ΄ ΡΠ°ΠΊΠ²ΠΈ ΡΡΠ»ΠΎΠ²ΠΈ.
ΠΠ°ΠΊΠΎ ΡΠΎΠ³Π°Ρ Π±Π°Π·ΠΈΡΠ΅ Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ ΠΏΠΎΡΡΠΈΠ³Π½ΡΠ²Π°Π°Ρ ΠΌΠ½ΠΎΠ³Ρ ΠΏΠΎΠ³ΠΎΠ»Π΅ΠΌΠΈ Π±ΡΠ·ΠΈΠ½ΠΈ? ΠΠ° Π΄Π° ΠΎΠ΄Π³ΠΎΠ²ΠΎΡΠΈΠΌΠ΅ Π½Π° ΠΎΠ²Π° ΠΏΡΠ°ΡΠ°ΡΠ΅, Π΄Π° ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅ΠΌΠ΅ ΡΡΠΎ ΡΠ΅ ΡΠ»ΡΡΡΠ²Π° Π½Π° ΡΠ»Π΅Π΄Π½Π°ΡΠ° ΡΠ»ΠΈΠΊΠ°:
ΠΠ²Π΄Π΅ Π³Π»Π΅Π΄Π°ΠΌΠ΅ Π΄Π΅ΠΊΠ° Π·Π° ΠΏΡΠ²ΠΈΡΠ΅ Π½Π΅ΠΊΠΎΠ»ΠΊΡ ΠΌΠΈΠ½ΡΡΠΈ Π±ΡΠ·ΠΈΠ½Π°ΡΠ° Π΅ Π½Π°Π²ΠΈΡΡΠΈΠ½Π° ΠΎΠΊΠΎΠ»Ρ ΠΈΠ»ΡΠ°Π΄Π° ΡΠ΅ΠΊΠΎΡΠ΄ΠΈ Π²ΠΎ ΡΠ΅ΠΊΡΠ½Π΄Π°. Π‘Π΅ΠΏΠ°ΠΊ, ΠΏΠΎΠ½Π°ΡΠ°ΠΌΡ, ΠΏΠΎΡΠ°Π΄ΠΈ ΡΠ°ΠΊΡΠΎΡ ΡΡΠΎ ΡΠ΅ ΡΠΈΡΠ° ΠΌΠ½ΠΎΠ³Ρ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡΠΊΠΎΠ»ΠΊΡ ΡΡΠΎ ΡΠ΅ Π±Π°ΡΠ°Π»ΠΎ, ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈΡΠ΅ Π·Π°Π²ΡΡΡΠ²Π°Π°Ρ Π²ΠΎ buff/cache Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΈΠΎΡ ΡΠΈΡΡΠ΅ΠΌ (linux) ΠΈ Π±ΡΠ·ΠΈΠ½Π°ΡΠ° ΡΠ΅ Π·Π³ΠΎΠ»Π΅ΠΌΡΠ²Π° Π½Π° ΠΏΠΎΠΏΡΠΈΡΡΠΎΡΠ½ΠΈ 60 ΠΈΠ»ΡΠ°Π΄ΠΈ Π²ΠΎ ΡΠ΅ΠΊΡΠ½Π΄Π°.
Π’Π°ΠΊΠ°, ΠΏΠΎΠ½Π°ΡΠ°ΠΌΡ ΡΠ΅ ΡΠ΅ Π·Π°Π½ΠΈΠΌΠ°Π²Π°ΠΌΠ΅ ΡΠΎ Π·Π°Π±ΡΠ·ΡΠ²Π°ΡΠ΅ Π½Π° ΠΏΡΠΈΡΡΠ°ΠΏΠΎΡ ΡΠ°ΠΌΠΎ Π΄ΠΎ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈΡΠ΅ ΡΡΠΎ ΡΠ΅ Π²ΠΎ ΠΊΠ΅ΡΠΎΡ Π½Π° ΠΠ‘ ΠΈΠ»ΠΈ ΡΠ΅ Π½Π°ΠΎΡΠ°Π°Ρ Π²ΠΎ ΡΡΠ΅Π΄ΠΈ Π·Π° ΡΠΊΠ»Π°Π΄ΠΈΡΠ°ΡΠ΅ SSD/NVMe ΡΠΎ ΡΠΏΠΎΡΠ΅Π΄Π»ΠΈΠ²Π° Π±ΡΠ·ΠΈΠ½Π° Π½Π° ΠΏΡΠΈΡΡΠ°ΠΏ.
ΠΠΎ Π½Π°ΡΠΈΠΎΡ ΡΠ»ΡΡΠ°Ρ, ΡΠ΅ ΡΠΏΡΠΎΠ²Π΅Π΄Π΅ΠΌΠ΅ ΡΠ΅ΡΡΠΎΠ²ΠΈ Π½Π° ΠΊΠ»ΡΠΏΠ° ΠΎΠ΄ 4 ΡΠ΅ΡΠ²Π΅ΡΠΈ, ΠΎΠ΄ ΠΊΠΎΠΈ ΡΠ΅ΠΊΠΎΡ ΡΠ΅ Π½Π°ΠΏΠ»Π°ΡΠ° Π½Π° ΡΠ»Π΅Π΄Π½ΠΈΠΎΠ² Π½Π°ΡΠΈΠ½:
ΠΡΠΎΡΠ΅ΡΠΎΡ: Xeon E5-2680 v4 @ 2.40 GHz 64 Π½ΠΈΡΠΊΠΈ.
ΠΠ΅ΠΌΠΎΡΠΈΡΠ°: 730 GB.
Java Π²Π΅ΡΠ·ΠΈΡΠ°: 1.8.0_111
Π ΡΡΠΊΠ° ΠΊΠ»ΡΡΠ½Π°ΡΠ° ΡΠΎΡΠΊΠ° Π΅ ΠΊΠΎΠ»ΠΈΡΠΈΠ½Π°ΡΠ° Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ Π²ΠΎ ΡΠ°Π±Π΅Π»ΠΈΡΠ΅ ΡΡΠΎ ΡΡΠ΅Π±Π° Π΄Π° ΡΠ΅ ΠΏΡΠΎΡΠΈΡΠ°Π°Ρ. Π€Π°ΠΊΡ Π΅ Π΄Π΅ΠΊΠ° Π°ΠΊΠΎ ΡΠΈΡΠ°ΡΠ΅ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ ΠΎΠ΄ ΡΠ°Π±Π΅Π»Π° ΡΡΠΎ Π΅ ΡΠ΅Π»ΠΎΡΠ½ΠΎ ΡΠΌΠ΅ΡΡΠ΅Π½Π° Π²ΠΎ ΠΊΠ΅ΡΠΎΡ HBase, ΡΠΎΠ³Π°Ρ Π½Π΅ΠΌΠ° Π΄Π° Π΄ΠΎΡΠ΄Π΅ Π½ΠΈ Π΄ΠΎ ΡΠΈΡΠ°ΡΠ΅ ΠΎΠ΄ Π±Π°Ρ/ΠΊΠ΅ΡΠΎΡ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΈΠΎΡ ΡΠΈΡΡΠ΅ΠΌ. ΠΠΈΠ΄Π΅ΡΡΠΈ HBase ΡΡΠ°Π½Π΄Π°ΡΠ΄Π½ΠΎ Π΄ΠΎΠ΄Π΅Π»ΡΠ²Π° 40% ΠΎΠ΄ ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ°ΡΠ° Π½Π° ΡΡΡΡΠΊΡΡΡΠ° Π½Π°ΡΠ΅ΡΠ΅Π½Π° BlockCache. ΠΠΎ ΡΡΡΡΠΈΠ½Π° ΠΎΠ²Π° Π΅ ConcurrentHashMap, ΠΊΠ°Π΄Π΅ ΡΡΠΎ ΠΊΠ»ΡΡΠΎΡ Π΅ ΠΈΠΌΠ΅ΡΠΎ Π½Π° Π΄Π°ΡΠΎΡΠ΅ΠΊΠ°ΡΠ° + ΠΏΠΎΠΌΠ΅ΡΡΡΠ²Π°ΡΠ΅ Π½Π° Π±Π»ΠΎΠΊΠΎΡ, Π° Π²ΡΠ΅Π΄Π½ΠΎΡΡΠ° Π΅ Π²ΠΈΡΡΠΈΠ½ΡΠΊΠΈΠΎΡ ΠΏΠΎΠ΄Π°ΡΠΎΠΊ Π½Π° ΠΎΠ²Π° ΠΏΠΎΠΌΠ΅ΡΡΡΠ²Π°ΡΠ΅.
Π’Π°ΠΊΠ°, ΠΊΠΎΠ³Π° ΡΠΈΡΠ°ΠΌΠ΅ ΡΠ°ΠΌΠΎ ΠΎΠ΄ ΠΎΠ²Π°Π° ΡΡΡΡΠΊΡΡΡΠ°, Π½ΠΈΠ΅
ΠΠ° ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΠΎ Π½Π°ΡΠΈΠΎΡ ΡΠ»ΡΡΠ°Ρ, ΠΎΠ±Π΅ΠΌΠΎΡ Π½Π° BlockCache Π½Π° Π΅Π΄Π΅Π½ RS Π΅ ΠΎΠΊΠΎΠ»Ρ 12 GB. Π‘Π»Π΅ΡΠ°Π²ΠΌΠ΅ Π΄Π²Π° Π Π‘ Π½Π° Π΅Π΄Π΅Π½ ΡΠ°Π·ΠΎΠ», Ρ.Π΅. 96 GB ΡΠ΅ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ Π·Π° BlockCache Π½Π° ΡΠΈΡΠ΅ ΡΠ°Π·Π»ΠΈ. Π ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³Ρ ΠΏΠ°ΡΠΈ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ, Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ Π½Π΅ΠΊΠ° Π±ΠΈΠ΄Π°Ρ 4 ΡΠ°Π±Π΅Π»ΠΈ, ΠΏΠΎ 130 ΡΠ΅Π³ΠΈΠΎΠ½ΠΈ, Π²ΠΎ ΠΊΠΎΠΈ Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈΡΠ΅ ΡΠ΅ ΡΠΎ Π³ΠΎΠ»Π΅ΠΌΠΈΠ½Π° ΠΎΠ΄ 800 MB, ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡΠ°Π½ΠΈ ΡΠΎ FAST_DIFF, Ρ.Π΅. Π²ΠΊΡΠΏΠ½ΠΎ 410 GB (ΠΎΠ²Π° ΡΠ΅ ΡΠΈΡΡΠΈ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ, Ρ.Π΅. Π±Π΅Π· Π΄Π° ΡΠ΅ Π·Π΅ΠΌΠ΅ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ ΡΠ°ΠΊΡΠΎΡΠΎΡ Π½Π° ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ°).
Π’Π°ΠΊΠ°, BlockCache Π΅ ΡΠ°ΠΌΠΎ ΠΎΠΊΠΎΠ»Ρ 23% ΠΎΠ΄ Π²ΠΊΡΠΏΠ½ΠΈΠΎΡ Π²ΠΎΠ»ΡΠΌΠ΅Π½ Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ ΠΈ ΠΎΠ²Π° Π΅ ΠΌΠ½ΠΎΠ³Ρ ΠΏΠΎΠ±Π»ΠΈΡΠΊΡ Π΄ΠΎ ΡΠ΅Π°Π»Π½ΠΈΡΠ΅ ΡΡΠ»ΠΎΠ²ΠΈ Π½Π° ΠΎΠ½Π° ΡΡΠΎ ΡΠ΅ Π½Π°ΡΠ΅ΠΊΡΠ²Π° BigData. Π ΡΡΠΊΠ° Π·Π°ΠΏΠΎΡΠ½ΡΠ²Π° Π·Π°Π±Π°Π²Π°ΡΠ° - Π±ΠΈΠ΄Π΅ΡΡΠΈ ΠΎΡΠΈΠ³Π»Π΅Π΄Π½ΠΎ, ΠΊΠΎΠ»ΠΊΡ ΠΏΠΎΠΌΠ°Π»ΠΊΡ Ρ ΠΈΡΠΎΠ²ΠΈ Π½Π° ΠΊΠ΅ΡΠΎΡ, ΡΠΎΠ»ΠΊΡ Π΅ ΠΏΠΎΠ»ΠΎΡΠ° ΠΈΠ·Π²Π΅Π΄Π±Π°ΡΠ°. ΠΠ° ΠΊΡΠ°ΡΠΎΡ Π½Π° ΠΊΡΠ°ΠΈΡΡΠ°ΡΠ°, Π°ΠΊΠΎ ΠΏΡΠΎΠΏΡΡΡΠΈΡΠ΅, ΡΠ΅ ΡΡΠ΅Π±Π° Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ ΠΌΠ½ΠΎΠ³Ρ ΡΠ°Π±ΠΎΡΠ° - Ρ.Π΅. ΠΎΠ΄Π΅ΡΠ΅ Π΄ΠΎ ΠΏΠΎΠ²ΠΈΠΊΡΠ²Π°ΡΠ΅ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΈΡΠ΅ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠΎΡ. Π‘Π΅ΠΏΠ°ΠΊ, ΠΎΠ²Π° Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·Π±Π΅Π³Π½Π΅, ΠΏΠ° Π΄Π° ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅ΠΌΠ΅ ΡΠΎΡΠ΅ΠΌΠ° ΠΏΠΎΠΈΠ½Π°ΠΊΠΎΠ² Π°ΡΠΏΠ΅ΠΊΡ - ΡΡΠΎ ΡΠ΅ ΡΠ»ΡΡΡΠ²Π° ΡΠΎ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈΡΠ΅ Π²ΠΎ ΠΊΠ΅ΡΠΎΡ?
ΠΠ° ΡΠ° ΠΏΠΎΠ΅Π΄Π½ΠΎΡΡΠ°Π²ΠΈΠΌΠ΅ ΡΠΈΡΡΠ°ΡΠΈΡΠ°ΡΠ° ΠΈ Π΄Π° ΠΏΡΠ΅ΡΠΏΠΎΡΡΠ°Π²ΠΈΠΌΠ΅ Π΄Π΅ΠΊΠ° ΠΈΠΌΠ°ΠΌΠ΅ ΠΊΠ΅Ρ ΡΡΠΎ ΠΎΠ΄Π³ΠΎΠ²Π°ΡΠ° ΡΠ°ΠΌΠΎ Π½Π° 1 ΠΎΠ±ΡΠ΅ΠΊΡ. ΠΠ²Π΅ ΠΏΡΠΈΠΌΠ΅Ρ Π·Π° ΡΠΎΠ° ΡΡΠΎ ΡΠ΅ ΡΠ΅ ΡΠ»ΡΡΠΈ ΠΊΠΎΠ³Π° ΡΠ΅ ΡΠ΅ ΠΎΠ±ΠΈΠ΄Π΅ΠΌΠ΅ Π΄Π° ΡΠ°Π±ΠΎΡΠΈΠΌΠ΅ ΡΠΎ Π²ΠΎΠ»ΡΠΌΠ΅Π½ Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ 3 ΠΏΠ°ΡΠΈ ΠΏΠΎΠ³ΠΎΠ»Π΅ΠΌ ΠΎΠ΄ ΠΊΠ΅ΡΠΎΡ, ΡΠ΅ ΠΌΠΎΡΠ°ΠΌΠ΅:
1. Π‘ΡΠ°Π²Π΅ΡΠ΅ Π³ΠΎ Π±Π»ΠΎΠΊΠΎΡ 1 Π²ΠΎ ΠΊΠ΅ΡΠΎΡ
2. ΠΡΡΡΡΠ°Π½Π΅ΡΠ΅ Π³ΠΎ Π±Π»ΠΎΠΊΠΎΡ 1 ΠΎΠ΄ ΠΊΠ΅ΡΠΎΡ
3. Π‘ΡΠ°Π²Π΅ΡΠ΅ Π³ΠΎ Π±Π»ΠΎΠΊΠΎΡ 2 Π²ΠΎ ΠΊΠ΅ΡΠΎΡ
4. ΠΡΡΡΡΠ°Π½Π΅ΡΠ΅ Π³ΠΎ Π±Π»ΠΎΠΊΠΎΡ 2 ΠΎΠ΄ ΠΊΠ΅ΡΠΎΡ
5. Π‘ΡΠ°Π²Π΅ΡΠ΅ Π³ΠΎ Π±Π»ΠΎΠΊΠΎΡ 3 Π²ΠΎ ΠΊΠ΅ΡΠΎΡ
ΠΠ°Π²ΡΡΠ΅Π½ΠΈ 5 Π°ΠΊΡΠΈΠΈ! Π‘Π΅ΠΏΠ°ΠΊ, ΠΎΠ²Π°Π° ΡΠΈΡΡΠ°ΡΠΈΡΠ° Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π½Π°ΡΠ΅ΡΠ΅ Π½ΠΎΡΠΌΠ°Π»Π½Π°, Π²ΡΡΡΠ½ΠΎΡΡ, ΡΠ° ΡΠ΅ΡΠ°ΠΌΠ΅ HBase Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈ Π΅Π΄Π΅Π½ ΠΊΡΠΏ ΡΠΎΡΠ΅ΠΌΠ° Π±Π΅ΡΠΊΠΎΡΠΈΡΠ½Π° ΡΠ°Π±ΠΎΡΠ°. ΠΠΎΡΡΠΎΡΠ°Π½ΠΎ Π³ΠΈ ΡΠΈΡΠ° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈΡΠ΅ ΠΎΠ΄ ΠΊΠ΅ΡΠΎΡ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΈΠΎΡ ΡΠΈΡΡΠ΅ΠΌ, Π³ΠΈ ΡΡΠ°Π²Π° Π²ΠΎ BlockCache, Π·Π° Π΄Π° Π³ΠΈ ΠΈΡΡΡΠ»ΠΈ ΡΠ΅ΡΠΈΡΠΈ Π²Π΅Π΄Π½Π°Ρ Π±ΠΈΠ΄Π΅ΡΡΠΈ ΠΏΡΠΈΡΡΠΈΠ³Π½Π° Π½ΠΎΠ² Π΄Π΅Π» ΠΎΠ΄ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈΡΠ΅. ΠΠ½ΠΈΠΌΠ°ΡΠΈΡΠ°ΡΠ° Π½Π° ΠΏΠΎΡΠ΅ΡΠΎΠΊΠΎΡ Π½Π° ΠΎΠ±ΡΠ°Π²Π°ΡΠ° ΡΠ° ΠΏΠΎΠΊΠ°ΠΆΡΠ²Π° ΡΡΡΡΠΈΠ½Π°ΡΠ° Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΡ - ΡΠΎΠ±ΠΈΡΠ°ΡΠΎΡ Π½Π° ΡΡΠ±ΡΠ΅ ΡΠ΅ Π½Π°ΠΌΠ°Π»ΡΠ²Π°, Π°ΡΠΌΠΎΡΡΠ΅ΡΠ°ΡΠ° ΡΠ΅ Π²ΠΆΠ΅ΡΡΡΠ²Π°, ΠΌΠ°Π»Π°ΡΠ° ΠΡΠ΅ΡΠ° Π²ΠΎ Π΄Π°Π»Π΅ΡΠ½Π°ΡΠ° ΠΈ ΠΆΠ΅ΡΠΊΠ° Π¨Π²Π΅Π΄ΡΠΊΠ° ΡΠ΅ Π²ΠΎΠ·Π½Π΅ΠΌΠΈΡΡΠ²Π°. Π Π½ΠΈΠ΅, ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡΠ°ΡΠΈΡΠ΅, Π½Π°Π²ΠΈΡΡΠΈΠ½Π° Π½Π΅ ΡΠ°ΠΊΠ°ΠΌΠ΅ ΠΊΠΎΠ³Π° Π΄Π΅ΡΠ°ΡΠ° ΡΠ΅ ΡΠ°ΠΆΠ½ΠΈ, ΠΏΠ° ΠΏΠΎΡΠ½ΡΠ²Π°ΠΌΠ΅ Π΄Π° ΡΠ°Π·ΠΌΠΈΡΠ»ΡΠ²Π°ΠΌΠ΅ ΡΡΠΎ ΠΌΠΎΠΆΠ΅ΠΌΠ΅ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΠΌΠ΅ Π·Π° ΡΠΎΠ°.
Π¨ΡΠΎ Π°ΠΊΠΎ Π½Π΅ Π³ΠΈ ΡΡΠ°Π²ΠΈΡΠ΅ ΡΠΈΡΠ΅ Π±Π»ΠΎΠΊΠΎΠ²ΠΈ Π²ΠΎ ΠΊΠ΅ΡΠΎΡ, ΡΡΠΊΡ ΡΠ°ΠΌΠΎ ΠΎΠ΄ΡΠ΅Π΄Π΅Π½ ΠΏΡΠΎΡΠ΅Π½Ρ ΠΎΠ΄ Π½ΠΈΠ², Π·Π° Π΄Π° Π½Π΅ ΡΠ΅ ΠΏΡΠ΅Π»Π΅Π΅ ΠΊΠ΅ΡΠΎΡ? ΠΠ° ΠΏΠΎΡΠ½Π΅ΠΌΠ΅ ΡΠΎ Π΅Π΄Π½ΠΎΡΡΠ°Π²Π½ΠΎ Π΄ΠΎΠ΄Π°Π²Π°ΡΠ΅ Π½Π° ΡΠ°ΠΌΠΎ Π½Π΅ΠΊΠΎΠ»ΠΊΡ Π»ΠΈΠ½ΠΈΠΈ ΠΊΠΎΠ΄ Π½Π° ΠΏΠΎΡΠ΅ΡΠΎΠΊΠΎΡ Π½Π° ΡΡΠ½ΠΊΡΠΈΡΠ°ΡΠ° Π·Π° ΡΡΠ°Π²Π°ΡΠ΅ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ Π²ΠΎ 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%, ΡΠ΅ ΡΠ°ΠΌΠΈΡΠ΅ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ. Π ΠΎΡΡΠ°Π½Π°ΡΠΎΡΠΎ ΡΠ΅ ΠΌΠ΅ΡΠ°ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ, ΠΊΠ°ΠΊΠΎ ΡΡΠΎ ΡΠ΅ ΡΠΈΠ»ΡΡΠΈΡΠ΅ Π·Π° ΠΠ»ΡΠΌ ΠΈΠ»ΠΈ 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 MB. ΠΠ° ΡΡΠ΅Π΄Π½Π°ΡΠ° ΠΊΠ»Π°ΡΠ° (~10 ΡΠ°Π΄ΡΠ°) 200-300 MB. ΠΠ° ΡΠ»Π°Π±ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ (2-5 ΡΠ°Π΄ΡΠ°) 50-100 MB ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π½ΠΎΡΠΌΠ°Π»Π½ΠΈ (Π½Π΅ ΡΠ΅ ΡΠ΅ΡΡΠΈΡΠ°Π½ΠΈ Π½Π° ΠΎΠ²ΠΈΠ΅).
ΠΡΠ΄Π΅ Π΄Π° ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅ΠΌΠ΅ ΠΊΠ°ΠΊΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠ° ΠΎΠ²Π°: Π΄Π° ΡΠ΅ΡΠ΅ΠΌΠ΅ Π΄Π΅ΠΊΠ° ΠΏΠΎΡΡΠ°Π²ΠΈΠ²ΠΌΠ΅ hbase.lru.cache.heavy.eviction.mb.size.limit = 500, ΠΈΠΌΠ° Π½Π΅ΠΊΠΎΡ Π²ΠΈΠ΄ Π½Π° ΠΎΠΏΡΠΎΠ²Π°ΡΡΠ²Π°ΡΠ΅ (ΡΠΈΡΠ°ΡΠ΅) ΠΈ ΠΏΠΎΡΠΎΠ° Π½Π° ΡΠ΅ΠΊΠΎΠΈ 10 ΡΠ΅ΠΊΡΠ½Π΄ΠΈ ΠΏΡΠ΅ΡΠΌΠ΅ΡΡΠ²Π°ΠΌΠ΅ ΠΊΠΎΠ»ΠΊΡ Π±Π°ΡΡΠΈ ΠΈΠΌΠ°Π»ΠΎ ΠΏΡΠΎΡΠ΅ΡΠ°Π½ΠΈ ΡΠΎ ΠΏΠΎΠΌΠΎΡ Π½Π° ΡΠΎΡΠΌΡΠ»Π°ΡΠ°:
ΠΠ°Π΄Π·Π΅ΠΌΠ½ΠΈ = ΠΡΠ»ΠΎΠ±ΠΎΠ΄Π΅Π½ΠΈ Π±Π°ΡΡΠΈ ΠΠ±ΠΈΡ (MB) * 100 / ΠΠ³ΡΠ°Π½ΠΈΡΡΠ²Π°ΡΠ΅ (MB) - 100;
ΠΠΊΠΎ Π²ΡΡΡΠ½ΠΎΡΡ Π±ΠΈΠ»Π΅ ΠΈΡΠ΅Π»Π΅Π½ΠΈ 2000 MB, ΡΠΎΠ³Π°Ρ Π½Π°Π΄Π·Π΅ΠΌΠ½ΠΈΡΠ΅ ΡΡΠΎΡΠΎΡΠΈ ΡΠ΅ Π΅Π΄Π½Π°ΠΊΠ²ΠΈ Π½Π°:
2000 * 100 / 500 - 100 = 300%
ΠΠ»Π³ΠΎΡΠΈΡΠΌΠΈΡΠ΅ ΡΠ΅ ΠΎΠ±ΠΈΠ΄ΡΠ²Π°Π°Ρ Π΄Π° ΠΎΠ΄ΡΠΆΡΠ²Π°Π°Ρ Π½Π΅ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΠ΄ Π½Π΅ΠΊΠΎΠ»ΠΊΡ Π΄Π΅ΡΠ΅ΡΠΈΡΠΈ ΠΏΡΠΎΡΠ΅Π½ΡΠΈ, ΡΠ°ΠΊΠ° ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡΠ°ΡΠ° ΡΠ΅ Π³ΠΎ Π½Π°ΠΌΠ°Π»ΠΈ ΠΏΡΠΎΡΠ΅Π½ΡΠΎΡ Π½Π° ΠΊΠ΅ΡΠΈΡΠ°Π½ΠΈ Π±Π»ΠΎΠΊΠΎΠ²ΠΈ, Π° ΡΠΎ ΡΠΎΠ° ΡΠ΅ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΠ° ΠΌΠ΅Ρ Π°Π½ΠΈΠ·Π°ΠΌ Π·Π° Π°Π²ΡΠΎΠΌΠ°ΡΡΠΊΠΎ ΠΏΠΎΠ΄Π΅ΡΡΠ²Π°ΡΠ΅.
ΠΠ΅ΡΡΡΠΎΠ°, Π°ΠΊΠΎ ΠΎΠΏΡΠΎΠ²Π°ΡΡΠ²Π°ΡΠ΅ΡΠΎ ΠΏΠ°Π΄Π½Π΅, Π΄Π° ΡΠ΅ΡΠ΅ΠΌΠ΅ Π΄Π΅ΠΊΠ° ΡΠ°ΠΌΠΎ 200 MB ΡΠ΅ ΠΈΡΡΡΠ»Π΅Π½ΠΈ ΠΈ Π½Π°Π΄Π·Π΅ΠΌΠ½ΠΈΠΎΡ Π΄Π΅Π» ΡΡΠ°Π½ΡΠ²Π° Π½Π΅Π³Π°ΡΠΈΠ²Π΅Π½ (Ρ.Π½. ΠΏΡΠ΅ΡΠΊΠΎΠΊΠ½ΡΠ²Π°ΡΠ΅):
200 * 100 / 500 - 100 = -60%
ΠΠ°ΠΏΡΠΎΡΠΈΠ², ΡΡΠ½ΠΊΡΠΈΡΠ°ΡΠ° ΡΠ΅ Π³ΠΎ Π·Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΏΡΠΎΡΠ΅Π½ΡΠΎΡ Π½Π° ΠΊΠ΅ΡΠΈΡΠ°Π½ΠΈ Π±Π»ΠΎΠΊΠΎΠ²ΠΈ Π΄ΠΎΠ΄Π΅ΠΊΠ° Overhead Π½Π΅ ΡΡΠ°Π½Π΅ ΠΏΠΎΠ·ΠΈΡΠΈΠ²Π΅Π½.
ΠΠΎΠ΄ΠΎΠ»Ρ Π΅ ΠΏΡΠΈΠΌΠ΅Ρ Π·Π° ΡΠΎΠ° ΠΊΠ°ΠΊΠΎ ΠΎΠ²Π° ΠΈΠ·Π³Π»Π΅Π΄Π° Π½Π° ΡΠ΅Π°Π»Π½ΠΈ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ. ΠΠ΅ΠΌΠ° ΠΏΠΎΡΡΠ΅Π±Π° Π΄Π° ΡΠ΅ ΠΎΠ±ΠΈΠ΄ΡΠ²Π°ΡΠ΅ Π΄Π° Π΄ΠΎΡΡΠΈΠ³Π½Π΅ΡΠ΅ 0%, ΡΠΎΠ° Π΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. ΠΠ½ΠΎΠ³Ρ Π΅ Π΄ΠΎΠ±ΡΠΎ ΠΊΠΎΠ³Π° Π΅ ΠΎΠΊΠΎΠ»Ρ 30 - 100%, ΠΎΠ²Π° ΠΏΠΎΠΌΠ°Π³Π° Π΄Π° ΡΠ΅ ΠΈΠ·Π±Π΅Π³Π½Π΅ ΠΏΡΠ΅Π΄Π²ΡΠ΅ΠΌΠ΅Π½ΠΎ ΠΈΠ·Π»Π΅Π³ΡΠ²Π°ΡΠ΅ ΠΎΠ΄ ΡΠ΅ΠΆΠΈΠΌΠΎΡ Π·Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡΠ° ΠΏΡΠΈ ΠΊΡΠ°ΡΠΊΠΎΡΠΎΡΠ½ΠΈ Π±ΡΠ°Π½ΠΎΠ²ΠΈ.
hbase.lru.cache.heavy.eviction.overhead.ΠΊΠΎΠ΅ΡΠΈΡΠΈΠ΅Π½Ρ β ΠΎΠ΄ΡΠ΅Π΄ΡΠ²Π° ΠΊΠΎΠ»ΠΊΡ Π±ΡΠ·ΠΎ Π±ΠΈ ΡΠ°ΠΊΠ°Π»Π΅ Π΄Π° Π³ΠΎ Π΄ΠΎΠ±ΠΈΠ΅ΠΌΠ΅ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΎΡ. ΠΠΊΠΎ Π·Π½Π°Π΅ΠΌΠ΅ ΡΠΎ ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ Π΄Π΅ΠΊΠ° Π½Π°ΡΠΈΡΠ΅ ΡΠΈΡΠ°ΡΠ° ΡΠ΅ Π³Π»Π°Π²Π½ΠΎ Π΄ΠΎΠ»Π³ΠΈ ΠΈ Π½Π΅ ΡΠ°ΠΊΠ°ΠΌΠ΅ Π΄Π° ΡΠ΅ΠΊΠ°ΠΌΠ΅, ΠΌΠΎΠΆΠ΅ΠΌΠ΅ Π΄Π° Π³ΠΎ Π·Π³ΠΎΠ»Π΅ΠΌΠΈΠΌΠ΅ ΠΎΠ²ΠΎΡ ΡΠΎΠΎΠ΄Π½ΠΎΡ ΠΈ ΠΏΠΎΠ±ΡΠ·ΠΎ Π΄Π° Π΄ΠΎΠ±ΠΈΠ΅ΠΌΠ΅ Π²ΠΈΡΠΎΠΊΠΈ ΠΏΠ΅ΡΡΠΎΡΠΌΠ°Π½ΡΠΈ.
ΠΠ° ΠΏΡΠΈΠΌΠ΅Ρ, Π³ΠΎ ΠΏΠΎΡΡΠ°Π²ΠΈΠ²ΠΌΠ΅ ΠΎΠ²ΠΎΡ ΠΊΠΎΠ΅ΡΠΈΡΠΈΠ΅Π½Ρ = 0.01. ΠΠ²Π° Π·Π½Π°ΡΠΈ Π΄Π΅ΠΊΠ° Π½Π°Π΄Π·Π΅ΠΌΠ½ΠΈΡΠ΅ (Π²ΠΈΠ΄ΠΈ ΠΏΠΎΠ³ΠΎΡΠ΅) ΡΠ΅ ΡΠ΅ ΠΏΠΎΠΌΠ½ΠΎΠΆΠ°Ρ ΡΠΎ ΠΎΠ²ΠΎΡ Π±ΡΠΎΡ ΡΠΎ Π΄ΠΎΠ±ΠΈΠ΅Π½ΠΈΠΎΡ ΡΠ΅Π·ΡΠ»ΡΠ°Ρ ΠΈ ΠΏΡΠΎΡΠ΅Π½ΡΠΎΡ Π½Π° ΠΊΠ΅ΡΠΈΡΠ°Π½ΠΈ Π±Π»ΠΎΠΊΠΎΠ²ΠΈ ΡΠ΅ ΡΠ΅ Π½Π°ΠΌΠ°Π»ΠΈ. ΠΠ° ΠΏΡΠ΅ΡΠΏΠΎΡΡΠ°Π²ΠΈΠΌΠ΅ Π΄Π΅ΠΊΠ° Overhead = 300% ΠΈ ΠΊΠΎΠ΅ΡΠΈΡΠΈΠ΅Π½Ρ = 0.01, ΡΠΎΠ³Π°Ρ ΠΏΡΠΎΡΠ΅Π½ΡΠΎΡ Π½Π° ΠΊΠ΅ΡΠΈΡΠ°Π½ΠΈ Π±Π»ΠΎΠΊΠΎΠ²ΠΈ ΡΠ΅ ΡΠ΅ Π½Π°ΠΌΠ°Π»ΠΈ Π·Π° 3%.
Π‘Π»ΠΈΡΠ½Π° Π»ΠΎΠ³ΠΈΠΊΠ° βΠΠΎΠ·Π°Π΄ΠΈΠ½ΡΠΊΠΈ ΠΏΡΠΈΡΠΈΡΠΎΠΊβ Π΅ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΠ°Π½Π° ΠΈ Π·Π° Π½Π΅Π³Π°ΡΠΈΠ²Π½ΠΈΡΠ΅ Π½Π°Π΄Π·Π΅ΠΌΠ½ΠΈ (Π½Π°Π΄ΠΌΠΈΠ½ΡΠ²Π°ΡΠ΅) Π²ΡΠ΅Π΄Π½ΠΎΡΡΠΈ. ΠΠΈΠ΄Π΅ΡΡΠΈ ΡΠ΅ΠΊΠΎΠ³Π°Ρ ΡΠ΅ ΠΌΠΎΠΆΠ½ΠΈ ΠΊΡΠ°ΡΠΊΠΎΡΠΎΡΠ½ΠΈ ΡΠ»ΡΠΊΡΡΠ°ΡΠΈΠΈ Π²ΠΎ ΠΎΠ±Π΅ΠΌΠΎΡ Π½Π° ΡΠΈΡΠ°ΡΠ° ΠΈ ΠΈΡΠ΅Π»ΡΠ²Π°ΡΠ°, ΠΎΠ²ΠΎΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·Π°ΠΌ Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° Π΄Π° ΠΈΠ·Π±Π΅Π³Π½Π΅ΡΠ΅ ΠΏΡΠ΅Π΄Π²ΡΠ΅ΠΌΠ΅Π½ΠΎ ΠΈΠ·Π»Π΅Π³ΡΠ²Π°ΡΠ΅ ΠΎΠ΄ ΡΠ΅ΠΆΠΈΠΌΠΎΡ Π·Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡΠ°. ΠΠ°Π·Π°Π΄Π½ΠΈΠΎΡ ΠΏΡΠΈΡΠΈΡΠΎΠΊ ΠΈΠΌΠ° ΠΏΡΠ΅Π²ΡΡΠ΅Π½Π° Π»ΠΎΠ³ΠΈΠΊΠ°: ΠΊΠΎΠ»ΠΊΡ Π΅ ΠΏΠΎΡΠΈΠ»Π½ΠΎ Π½Π°Π΄ΠΌΠΈΠ½ΡΠ²Π°ΡΠ΅ΡΠΎ, ΡΠΎΠ»ΠΊΡ ΠΏΠΎΠ²Π΅ΡΠ΅ Π±Π»ΠΎΠΊΠΎΠ²ΠΈ ΡΠ΅ ΠΊΠ΅ΡΠΈΡΠ°Π°Ρ.
ΠΠΎΠ΄ Π·Π° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ°
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 ΡΠΈΠΊΠ»ΡΡΠΈ Π½Π° ΠΈΡΠ΅Π»ΡΠ²Π°ΡΠ΅).
Π¦Π΅Π»ΠΎΡΠ½ΠΈΠΎΡ ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π½Π°ΡΠ΄Π΅ Π²ΠΎ Π±Π°ΡΠ°ΡΠ΅ΡΠΎ Π·Π° ΠΏΠΎΠ²Π»Π΅ΠΊΡΠ²Π°ΡΠ΅
Π‘Π΅ΠΏΠ°ΠΊ, 300 ΠΈΠ»ΡΠ°Π΄ΠΈ ΡΠΈΡΠ°ΡΠ° Π²ΠΎ ΡΠ΅ΠΊΡΠ½Π΄Π° Π½Π΅ ΡΠ΅ ΡΓ¨ ΡΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΠΎΡΡΠΈΠ³Π½Π΅ Π½Π° ΠΎΠ²ΠΎΡ Ρ Π°ΡΠ΄Π²Π΅Ρ ΠΏΠΎΠ΄ ΠΎΠ²ΠΈΠ΅ ΡΡΠ»ΠΎΠ²ΠΈ. Π€Π°ΠΊΡ Π΅ Π΄Π΅ΠΊΠ° ΠΊΠΎΠ³Π° ΡΡΠ΅Π±Π° Π΄Π° ΠΏΡΠΈΡΡΠ°ΠΏΠΈΡΠ΅ Π΄ΠΎ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ ΠΏΡΠ΅ΠΊΡ HDFS, ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΎΡ ShortCircuitCache (Π²ΠΎ Π½Π°ΡΠ°ΠΌΠΎΡΠ½ΠΈΠΎΡ ΡΠ΅ΠΊΡΡ SSC), ΠΊΠΎΡ Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Π΄Π° ΠΏΡΠΈΡΡΠ°ΠΏΠΈΡΠ΅ Π΄ΠΎ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈΡΠ΅, ΠΈΠ·Π±Π΅Π³Π½ΡΠ²Π°ΡΡΠΈ ΠΌΡΠ΅ΠΆΠ½ΠΈ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠΈ.
ΠΡΠΎΡΠΈΠ»ΠΈΡΠ°ΡΠ΅ΡΠΎ ΠΏΠΎΠΊΠ°ΠΆΠ° Π΄Π΅ΠΊΠ° ΠΈΠ°ΠΊΠΎ ΠΎΠ²ΠΎΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·Π°ΠΌ Π΄Π°Π²Π° Π³ΠΎΠ»Π΅ΠΌΠ° Π΄ΠΎΠ±ΠΈΠ²ΠΊΠ°, ΡΠΎΡ Π²ΠΎ ΠΎΠ΄ΡΠ΅Π΄Π΅Π½ ΠΌΠΎΠΌΠ΅Π½Ρ ΡΡΠ°Π½ΡΠ²Π° ΠΈ ΡΠ΅ΡΠ½ΠΎ Π³ΡΠ»ΠΎ, Π±ΠΈΠ΄Π΅ΡΡΠΈ ΡΠΊΠΎΡΠΎ ΡΠΈΡΠ΅ ΡΠ΅ΡΠΊΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΠ΅ ΡΠ»ΡΡΡΠ²Π°Π°Ρ Π²ΠΎ Π±ΡΠ°Π²Π°ΡΠ°, ΡΡΠΎ Π΄ΠΎΠ²Π΅Π΄ΡΠ²Π° Π΄ΠΎ Π±Π»ΠΎΠΊΠΈΡΠ°ΡΠ΅ ΠΏΠΎΠ³ΠΎΠ»Π΅ΠΌΠΈΠΎΡ Π΄Π΅Π» ΠΎΠ΄ Π²ΡΠ΅ΠΌΠ΅ΡΠΎ.
ΠΡΠΊΠ°ΠΊΠΎ Π³ΠΎ ΡΡΠ°ΡΠΈΠ²ΠΌΠ΅ ΠΎΠ²Π°, ΡΡΠ°ΡΠΈΠ²ΠΌΠ΅ Π΄Π΅ΠΊΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΡ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π·Π°ΠΎΠ±ΠΈΠΊΠΎΠ»ΠΈ ΡΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΠ΅ Π½ΠΈΠ·Π° Π½Π΅Π·Π°Π²ΠΈΡΠ½ΠΈ 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 ΡΠΎ Π΅Π΄Π΅Π½ ΠΊΠ΅Ρ Π±Π°ΡΠ° 78 ΡΠ΅ΠΊΡΠ½Π΄ΠΈ. ΠΠΎΠ΄Π΅ΠΊΠ° ΡΠΎ 5 ΠΊΠ΅ΡΠΎΠ²ΠΈ ΠΏΠΎΡΡΠ΅Π±Π½ΠΈ ΡΠ΅ 16 ΡΠ΅ΠΊΡΠ½Π΄ΠΈ. ΠΠ½ΠΈΠ΅. ΠΈΠΌΠ° Π·Π°Π±ΡΠ·ΡΠ²Π°ΡΠ΅ ΠΎΠ΄ ~ 5 ΠΏΠ°ΡΠΈ. ΠΠ°ΠΊΠΎ ΡΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π²ΠΈΠ΄ΠΈ ΠΎΠ΄ Π³ΡΠ°ΡΠΈΠΊΠΎΠ½ΠΎΡ, Π΅ΡΠ΅ΠΊΡΠΎΡ Π½Π΅ Π΅ ΠΌΠ½ΠΎΠ³Ρ Π·Π°Π±Π΅Π»Π΅ΠΆΠ»ΠΈΠ² Π·Π° ΠΌΠ°Π» Π±ΡΠΎΡ ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΈ ΡΠΈΡΠ°ΡΠ°, ΡΠΎΡ ΠΏΠΎΡΠ½ΡΠ²Π° Π΄Π° ΠΈΠ³ΡΠ° Π·Π°Π±Π΅Π»Π΅ΠΆΠ»ΠΈΠ²Π° ΡΠ»ΠΎΠ³Π° ΠΊΠΎΠ³Π° ΠΈΠΌΠ° ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΠ΄ 50 ΡΠΈΡΠ°ΡΠ° Π½Π° Π½ΠΈΡΠΊΠΈ. ΠΠ°Π±Π΅Π»Π΅ΠΆΠ»ΠΈΠ²ΠΎ Π΅ ΠΈ Π·Π³ΠΎΠ»Π΅ΠΌΡΠ²Π°ΡΠ΅ΡΠΎ Π½Π° Π±ΡΠΎΡΠΎΡ Π½Π° SSC ββΠΎΠ΄ 6 Π° ΠΏΠΎΠ³ΠΎΡΠ΅ Π΄Π°Π²Π° Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΏΠΎΠΌΠ°Π»ΠΎ Π·Π³ΠΎΠ»Π΅ΠΌΡΠ²Π°ΡΠ΅ Π½Π° ΠΏΠ΅ΡΡΠΎΡΠΌΠ°Π½ΡΠΈΡΠ΅.
ΠΠ°Π±Π΅Π»Π΅ΡΠΊΠ° 1: Π±ΠΈΠ΄Π΅ΡΡΠΈ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈΡΠ΅ ΠΎΠ΄ ΡΠ΅ΡΡΠΎΡ ΡΠ΅ ΠΏΡΠΈΠ»ΠΈΡΠ½ΠΎ ΠΈΡΠΏΠ°ΡΠ»ΠΈΠ²ΠΈ (Π²ΠΈΠ΄ΠΈ ΠΏΠΎΠ΄ΠΎΠ»Ρ), Π±Π΅Π° ΠΈΠ·Π²ΡΡΠ΅Π½ΠΈ 3 Π²ΡΡΠ΅ΡΠ° ΠΈ Π΄ΠΎΠ±ΠΈΠ΅Π½ΠΈΡΠ΅ Π²ΡΠ΅Π΄Π½ΠΎΡΡΠΈ Π±Π΅Π° ΠΏΡΠΎΡΠ΅ΡΠ½ΠΈ.
ΠΠ°Π±Π΅Π»Π΅ΡΠΊΠ° 2: Π΄ΠΎΠ±ΠΈΠ²ΠΊΠ°ΡΠ° ΠΎΠ΄ ΠΏΠ΅ΡΡΠΎΡΠΌΠ°Π½ΡΠΈΡΠ΅ ΠΎΠ΄ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°ΡΠ΅ Π½Π° ΡΠ»ΡΡΠ°Π΅Π½ ΠΏΡΠΈΡΡΠ°ΠΏ Π΅ ΠΈΡΡΠ°, ΠΈΠ°ΠΊΠΎ ΡΠ°ΠΌΠΈΠΎΡ ΠΏΡΠΈΡΡΠ°ΠΏ Π΅ ΠΌΠ°Π»ΠΊΡ ΠΏΠΎΠ±Π°Π²Π΅Π½.
Π‘Π΅ΠΏΠ°ΠΊ, Π½Π΅ΠΎΠΏΡ ΠΎΠ΄Π½ΠΎ Π΅ Π΄Π° ΡΠ΅ ΡΠ°Π·ΡΠ°ΡΠ½ΠΈ Π΄Π΅ΠΊΠ°, Π·Π° ΡΠ°Π·Π»ΠΈΠΊΠ° ΠΎΠ΄ ΡΠ»ΡΡΠ°ΡΠΎΡ ΡΠΎ HBase, ΠΎΠ²Π° Π·Π°Π±ΡΠ·ΡΠ²Π°ΡΠ΅ Π½Π΅ Π΅ ΡΠ΅ΠΊΠΎΠ³Π°Ρ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎ. ΠΠ²Π΄Π΅ ΡΠ° βΠΎΡΠΊΠ»ΡΡΡΠ²Π°ΠΌΠ΅β ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠ° Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΎΡ Π΄Π° ΡΠ°Π±ΠΎΡΠΈ ΠΏΠΎΠ²Π΅ΡΠ΅, Π½Π°ΠΌΠ΅ΡΡΠΎ Π΄Π° Π²ΠΈΡΠΈ Π½Π° Π±ΡΠ°Π²ΠΈ.
ΠΠ²Π΄Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π·Π°Π±Π΅Π»Π΅ΠΆΠΈΡΠ΅ Π΄Π΅ΠΊΠ°, Π³Π΅Π½Π΅ΡΠ°Π»Π½ΠΎ, Π·Π³ΠΎΠ»Π΅ΠΌΡΠ²Π°ΡΠ΅ΡΠΎ Π½Π° Π±ΡΠΎΡΠΎΡ Π½Π° ΠΊΠ΅ΡΠΎΠ²ΠΈΡΠ΅ Π΄Π°Π²Π° ΠΏΡΠΈΠ±Π»ΠΈΠΆΠ½ΠΎ ΠΏΡΠΎΠΏΠΎΡΡΠΈΠΎΠ½Π°Π»Π½ΠΎ Π·Π³ΠΎΠ»Π΅ΠΌΡΠ²Π°ΡΠ΅ Π½Π° ΠΈΡΠΊΠΎΡΠΈΡΡΠ΅Π½ΠΎΡΡΠ° Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΎΡ. Π‘Π΅ΠΏΠ°ΠΊ, ΠΈΠΌΠ° ΠΌΠ°Π»ΠΊΡ ΠΏΠΎΠ²Π΅ΡΠ΅ Π΄ΠΎΠ±ΠΈΡΠ½ΠΈ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ.
ΠΠ° ΠΏΡΠΈΠΌΠ΅Ρ, Π°ΡΠ΄Π΅ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»Π½ΠΎ Π΄Π° ΡΠ° ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΏΠΎΡΡΠ°Π²ΠΊΠ°ΡΠ° SSC ββ= 3. ΠΠ³ΠΎΠ»Π΅ΠΌΡΠ²Π°ΡΠ΅ΡΠΎ Π½Π° ΠΏΠ΅ΡΡΠΎΡΠΌΠ°Π½ΡΠΈΡΠ΅ Π½Π° ΠΎΠΏΡΠ΅Π³ΠΎΡ Π΅ ΠΎΠΊΠΎΠ»Ρ 3.3 ΠΏΠ°ΡΠΈ. ΠΠΎΠ΄ΠΎΠ»Ρ ΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈΡΠ΅ ΠΎΠ΄ ΡΠΈΡΠ΅ ΡΡΠΈ ΠΎΠ΄Π΄Π΅Π»Π½ΠΈ ΡΡΠΊΠΈ.
ΠΠΎΠ΄Π΅ΠΊΠ° ΠΏΠΎΡΡΠΎΡΡΠ²Π°ΡΠΊΠ°ΡΠ° Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΎΡ ΡΠ΅ Π·Π³ΠΎΠ»Π΅ΠΌΡΠ²Π° Π·Π° ΠΎΠΊΠΎΠ»Ρ 2.8 ΠΏΠ°ΡΠΈ. Π Π°Π·Π»ΠΈΠΊΠ°ΡΠ° Π½Π΅ Π΅ ΠΌΠ½ΠΎΠ³Ρ Π³ΠΎΠ»Π΅ΠΌΠ°, Π½ΠΎ ΠΌΠ°Π»Π°ΡΠ° ΠΡΠ΅ΡΠ° Π΅ Π²Π΅ΡΠ΅ ΡΡΠ΅ΡΠ½Π° ΠΈ ΠΌΠΎΠΆΠ΅Π±ΠΈ ΠΈΠΌΠ° Π²ΡΠ΅ΠΌΠ΅ Π΄Π° ΠΎΠ΄ΠΈ Π½Π° ΡΡΠΈΠ»ΠΈΡΡΠ΅ ΠΈ Π΄Π° Π·Π΅ΠΌΠ΅ ΡΠ°ΡΠΎΠ²ΠΈ.
Π’Π°ΠΊΠ°, ΠΎΠ²Π° ΡΠ΅ ΠΈΠΌΠ° ΠΏΠΎΠ·ΠΈΡΠΈΠ²Π΅Π½ Π΅ΡΠ΅ΠΊΡ Π·Π° ΡΠ΅ΠΊΠΎΡΠ° Π°Π»Π°ΡΠΊΠ° ΡΡΠΎ ΠΊΠΎΡΠΈΡΡΠΈ ΠΌΠ°ΡΠΎΠ²Π΅Π½ ΠΏΡΠΈΡΡΠ°ΠΏ Π΄ΠΎ HDFS (Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ Spark, ΠΈΡΠ½.), ΠΏΠΎΠ΄ ΡΡΠ»ΠΎΠ² ΠΊΠΎΠ΄ΠΎΡ Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ°ΡΠ° Π΄Π° Π΅ Π»Π΅ΡΠ΅Π½ (Ρ.Π΅. ΠΏΡΠΈΠΊΠ»ΡΡΠΎΠΊΠΎΡ Π΅ Π½Π° ΡΡΡΠ°Π½Π°ΡΠ° Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΡ HDFS) ΠΈ Π΄Π° ΠΈΠΌΠ° Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎ Π½Π°ΠΏΠΎΡΡΠ²Π°ΡΠ΅ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΎΡ . ΠΠ° Π΄Π° ΠΏΡΠΎΠ²Π΅ΡΠΈΠΌΠ΅, Π΄Π° ΡΠ΅ΡΡΠΈΡΠ°ΠΌΠ΅ ΠΊΠ°ΠΊΠΎΠ² Π΅ΡΠ΅ΠΊΡ ΡΠ΅ ΠΈΠΌΠ° ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠ°Π½Π°ΡΠ° ΡΠΏΠΎΡΡΠ΅Π±Π° Π½Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡΠ° Π½Π° BlockCache ΠΈ ΠΏΠΎΠ΄Π΅ΡΡΠ²Π°ΡΠ΅ Π½Π° SSC ββΠ·Π° ΡΠΈΡΠ°ΡΠ΅ ΠΎΠ΄ HBase.
ΠΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π²ΠΈΠ΄ΠΈ Π΄Π΅ΠΊΠ° Π²ΠΎ ΡΠ°ΠΊΠ²ΠΈ ΡΡΠ»ΠΎΠ²ΠΈ Π΅ΡΠ΅ΠΊΡΠΎΡ Π½Π΅ Π΅ ΡΠΎΠ»ΠΊΡ Π³ΠΎΠ»Π΅ΠΌ ΠΊΠ°ΠΊΠΎ Π²ΠΎ ΡΠ°ΡΠΈΠ½ΠΈΡΠ°Π½ΠΈΡΠ΅ ΡΠ΅ΡΡΠΎΠ²ΠΈ (ΡΠΈΡΠ°ΡΠ΅ Π±Π΅Π· Π½ΠΈΠΊΠ°ΠΊΠ²Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°), Π½ΠΎ ΡΠΎΡΠ΅ΠΌΠ° Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π° ΡΠ΅ ΠΈΡΡΠ΅Π΄Π°Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ 80K ΠΎΠ²Π΄Π΅. ΠΠ°Π΅Π΄Π½ΠΎ, Π΄Π²Π΅ΡΠ΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡΠ²Π°Π°Ρ Π΄ΠΎ 4x Π·Π°Π±ΡΠ·ΡΠ²Π°ΡΠ΅.
ΠΠ° ΠΎΠ²Π°Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡΠ° Π±Π΅ΡΠ΅ Π½Π°ΠΏΡΠ°Π²Π΅Π½ ΠΈ ΠΠ
Π, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, Π±Π΅ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ Π΄Π° ΡΠ΅ ΡΠΏΠΎΡΠ΅Π΄Π°Ρ ΠΏΠ΅ΡΡΠΎΡΠΌΠ°Π½ΡΠΈΡΠ΅ Π·Π° ΡΠΈΡΠ°ΡΠ΅ Π½Π° ΡΠ»ΠΈΡΠ½Π° Π±Π°Π·Π° Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ ΡΠΎ ΡΠΈΡΠΎΠΊΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΈ, ΠΠ°ΡΠ°Π½Π΄ΡΠ° ΠΈ HBase.
ΠΠ° Π΄Π° Π³ΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ ΠΎΠ²Π°, Π»Π°Π½ΡΠΈΡΠ°Π²ΠΌΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠΎΡΠΈ Π½Π° ΡΡΠ°Π½Π΄Π°ΡΠ΄Π½Π°ΡΠ° Π°Π»Π°ΡΠΊΠ° Π·Π° ΡΠ΅ΡΡΠΈΡΠ°ΡΠ΅ Π½Π° ΠΎΠΏΡΠΎΠ²Π°ΡΡΠ²Π°ΡΠ΅ YCSB ΠΎΠ΄ Π΄Π²Π° Π΄ΠΎΠΌΠ°ΡΠΈΠ½ΠΈ (Π²ΠΊΡΠΏΠ½ΠΎ 800 Π½ΠΈΡΠΊΠΈ). ΠΠ° ΡΡΡΠ°Π½Π°ΡΠ° Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠΎΡ - 4 ΠΏΡΠΈΠΌΠ΅ΡΠΈ Π½Π° RegionServer ΠΈ Cassandra Π½Π° 4 Ρ ΠΎΡΡΠΎΠ²ΠΈ (Π½Π΅ ΠΎΠ½ΠΈΠ΅ ΠΊΠ°Π΄Π΅ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠΈΡΠ΅, Π·Π° Π΄Π° ΡΠ΅ ΠΈΠ·Π±Π΅Π³Π½Π΅ Π½ΠΈΠ²Π½ΠΎΡΠΎ Π²Π»ΠΈΡΠ°Π½ΠΈΠ΅). Π§ΠΈΡΠ°ΡΠ°ΡΠ° Π΄ΠΎΡΠ΄ΠΎΠ° ΠΎΠ΄ ΡΠ°Π±Π΅Π»ΠΈ ΡΠΎ Π³ΠΎΠ»Π΅ΠΌΠΈΠ½Π°:
HBase β 300 GB Π½Π° HDFS (100 GB ΡΠΈΡΡΠΈ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ)
ΠΠ°ΡΠ°Π½Π΄ΡΠ° - 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