Как Π΄Π° ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚Π΅ скоростта Π½Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅ ΠΎΡ‚ HBase Π΄ΠΎ 3 ΠΏΡŠΡ‚ΠΈ ΠΈ ΠΎΡ‚ HDFS Π΄ΠΎ 5 ΠΏΡŠΡ‚ΠΈ

Високата производитСлност Π΅ Π΅Π΄Π½ΠΎ ΠΎΡ‚ ΠΊΠ»ΡŽΡ‡ΠΎΠ²ΠΈΡ‚Π΅ изисквания ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° с Π³ΠΎΠ»Π΅ΠΌΠΈ Π΄Π°Π½Π½ΠΈ. Π’ ΠΎΡ‚Π΄Π΅Π»Π° Π·Π° Π·Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ Π² Sberbank Π½ΠΈΠ΅ ΠΈΠ·ΠΏΠΎΠΌΠΏΠ²Π°ΠΌΠ΅ ΠΏΠΎΡ‡Ρ‚ΠΈ всички Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π² нашия Π±Π°Π·ΠΈΡ€Π°Π½ Π½Π° Hadoop Data Cloud ΠΈ слСдоватСлно сС справямС с наистина Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΏΠΎΡ‚ΠΎΡ†ΠΈ ΠΎΡ‚ информация. ЕстСствСно, Π½ΠΈΠ΅ Π²ΠΈΠ½Π°Π³ΠΈ Ρ‚ΡŠΡ€ΡΠΈΠΌ Π½Π°Ρ‡ΠΈΠ½ΠΈ Π·Π° подобряванС Π½Π° производитСлността ΠΈ сСга искамС Π΄Π° Π²ΠΈ ΠΊΠ°ΠΆΠ΅ΠΌ ΠΊΠ°ΠΊ успяхмС Π΄Π° Π·Π°ΠΊΡŠΡ€ΠΏΠΈΠΌ RegionServer HBase ΠΈ HDFS ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ΅Ρ‚ΠΎ успяхмС Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ Π΄Π° ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠΌ скоростта Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈΡ‚Π΅ Π·Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅.
Как Π΄Π° ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚Π΅ скоростта Π½Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅ ΠΎΡ‚ HBase Π΄ΠΎ 3 ΠΏΡŠΡ‚ΠΈ ΠΈ ΠΎΡ‚ HDFS Π΄ΠΎ 5 ΠΏΡŠΡ‚ΠΈ

Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‚ΠΎΠ²Π°, ΠΏΡ€Π΅Π΄ΠΈ Π΄Π° ΠΏΡ€Π΅ΠΌΠΈΠ½Π΅Ρ‚Π΅ към ΡΡŠΡ‰Π½ΠΎΡΡ‚Ρ‚Π° Π½Π° подобрСнията, струва си Π΄Π° ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ Π·Π° ограничСнията, ΠΊΠΎΠΈΡ‚ΠΎ ΠΏΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ Π½Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ Π·Π°ΠΎΠ±ΠΈΠΊΠΎΠ»Π΅Π½ΠΈ, Π°ΠΊΠΎ сСднСтС Π½Π° 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, Π½ΠΎ Ρ‚ΠΎΠ²Π° Π΅ максимум няколко дСсСтки ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚Π°:

Как Π΄Π° ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚Π΅ скоростта Π½Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅ ΠΎΡ‚ HBase Π΄ΠΎ 3 ΠΏΡŠΡ‚ΠΈ ΠΈ ΠΎΡ‚ HDFS Π΄ΠΎ 5 ΠΏΡŠΡ‚ΠΈ

ВСстовСтС бяха ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΈ Π²ΡŠΡ€Ρ…Ρƒ 100 Ρ„Π°ΠΉΠ»Π°, всСки с Ρ€Π°Π·ΠΌΠ΅Ρ€ 1 GB ΠΈ Ρ€Π°Π·ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ Π½Π° 10 HDD.

НСка изчислим Π½Π° ΠΊΠ°ΠΊΠ²ΠΎ ΠΏΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Ρ€Π°Π·Ρ‡ΠΈΡ‚Π°ΠΌΠ΅ ΠΏΡ€ΠΈ Ρ‚Π°Π·ΠΈ скорост:
Π”Π° ΠΊΠ°ΠΆΠ΅ΠΌ, Ρ‡Π΅ Ρ‡Π΅Ρ‚Π΅ΠΌ ΠΎΡ‚ 10 диска със скорост 280 MB/sec, Ρ‚.Π΅. 3 ΠΌΠΈΠ»ΠΈΠΎΠ½Π° ΠΏΡŠΡ‚ΠΈ ΠΏΠΎ 100 Π±Π°ΠΉΡ‚Π°. Но ΠΊΠ°ΠΊΡ‚ΠΎ си спомнямС, Π΄Π°Π½Π½ΠΈΡ‚Π΅, ΠΎΡ‚ ΠΊΠΎΠΈΡ‚ΠΎ сС Π½ΡƒΠΆΠ΄Π°Π΅ΠΌ, са 2600 ΠΏΡŠΡ‚ΠΈ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΠΎΡ‚ Ρ‚ΠΎΠ²Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ сС Ρ‡Π΅Ρ‚Π΅. Π’Π°ΠΊΠ° раздСлямС 3 ΠΌΠΈΠ»ΠΈΠΎΠ½Π° Π½Π° 2600 ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°ΠΌΠ΅ 1100 записа Π² сСкунда.

ДСпрСсиращо, Π½Π°Π»ΠΈ? Π’Π°ΠΊΠ°Π²Π° Π΅ ΠΏΡ€ΠΈΡ€ΠΎΠ΄Π°Ρ‚Π° Π‘Π»ΡƒΡ‡Π°ΠΉΠ½Π° Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ Π΄Π°Π½Π½ΠΈΡ‚Π΅ Π½Π° HDD - нСзависимо ΠΎΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π½Π° Π±Π»ΠΎΠΊΠ°. Π’ΠΎΠ²Π° Π΅ физичСското ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π½Π° произволния Π΄ΠΎΡΡ‚ΡŠΠΏ ΠΈ никоя Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·Ρ‚Ρ€ΡŠΠ³Π½Π΅ ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΏΡ€ΠΈ Ρ‚Π°ΠΊΠΈΠ²Π° условия.

Как Ρ‚ΠΎΠ³Π°Π²Π° Π±Π°Π·ΠΈΡ‚Π΅ Π΄Π°Π½Π½ΠΈ постигат ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-високи скорости? Π—Π° Π΄Π° ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ Π½Π° Ρ‚ΠΎΠ·ΠΈ Π²ΡŠΠΏΡ€ΠΎΡ, Π½Π΅ΠΊΠ° Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ ΠΊΠ°ΠΊΠ²ΠΎ сС случва Π½Π° слСдната снимка:

Как Π΄Π° ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚Π΅ скоростта Π½Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅ ΠΎΡ‚ HBase Π΄ΠΎ 3 ΠΏΡŠΡ‚ΠΈ ΠΈ ΠΎΡ‚ HDFS Π΄ΠΎ 5 ΠΏΡŠΡ‚ΠΈ

Π’ΡƒΠΊ Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅, Ρ‡Π΅ Π·Π° ΠΏΡŠΡ€Π²ΠΈΡ‚Π΅ няколко ΠΌΠΈΠ½ΡƒΡ‚ΠΈ скоростта наистина Π΅ ΠΎΠΊΠΎΠ»ΠΎ хиляда записа Π² сСкунда. ОсвСн Ρ‚ΠΎΠ²Π° ΠΎΠ±Π°Ρ‡Π΅, ΠΏΠΎΡ€Π°Π΄ΠΈ Ρ„Π°ΠΊΡ‚Π°, Ρ‡Π΅ сС Ρ‡Π΅Ρ‚Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΎΡ‚ поисканото, Π΄Π°Π½Π½ΠΈΡ‚Π΅ сС ΠΎΠ·ΠΎΠ²Π°Π²Π°Ρ‚ Π² buff/cache Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ‚Π° систСма (linux) ΠΈ скоростта сС ΡƒΠ²Π΅Π»ΠΈΡ‡Π°Π²Π° Π΄ΠΎ ΠΏΠΎ-ΠΏΡ€ΠΈΠ»ΠΈΡ‡Π½ΠΈΡ‚Π΅ 60 хиляди Π² сСкунда

По Ρ‚ΠΎΠ·ΠΈ Π½Π°Ρ‡ΠΈΠ½ ΠΏΠΎ-Π½Π°Ρ‚Π°Ρ‚ΡŠΠΊ Ρ‰Π΅ сС Π·Π°Π½ΠΈΠΌΠ°Π²Π°ΠΌΠ΅ с ускоряванС Π½Π° Π΄ΠΎΡΡ‚ΡŠΠΏΠ° само Π΄ΠΎ Π΄Π°Π½Π½ΠΈΡ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ са Π² кСша Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ‚Π° систСма ΠΈΠ»ΠΈ сС Π½Π°ΠΌΠΈΡ€Π°Ρ‚ Π² SSD/NVMe устройства Π·Π° ΡΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ със сравнима скорост Π½Π° Π΄ΠΎΡΡ‚ΡŠΠΏ.

Π’ нашия случай Ρ‰Π΅ ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅ΠΌ тСстовС Π½Π° стСнд ΠΎΡ‚ 4 ΡΡŠΡ€Π²ΡŠΡ€Π°, всСки ΠΎΡ‚ ΠΊΠΎΠΈΡ‚ΠΎ сС таксува, ΠΊΠ°ΠΊΡ‚ΠΎ слСдва:

ΠŸΡ€ΠΎΡ†Π΅ΡΠΎΡ€: 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 Π½Π° Π΅Π΄ΠΈΠ½ възСл, Ρ‚.Π΅. 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, само Π·Π° Π΄Π° Π³ΠΈ ΠΈΠ·Ρ…Π²ΡŠΡ€Π»ΠΈ ΠΏΠΎΡ‡Ρ‚ΠΈ Π²Π΅Π΄Π½Π°Π³Π°, Π·Π°Ρ‰ΠΎΡ‚ΠΎ Π΅ пристигнала Π½ΠΎΠ²Π° порция Π΄Π°Π½Π½ΠΈ. Анимацията Π² Π½Π°Ρ‡Π°Π»ΠΎΡ‚ΠΎ Π½Π° публикацията ΠΏΠΎΠΊΠ°Π·Π²Π° ΡΡŠΡ‰Π½ΠΎΡΡ‚Ρ‚Π° Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° - Garbage Collector ΠΈΠ·Π»ΠΈΠ·Π° ΠΎΡ‚ ΠΌΠ°Ρ‰Π°Π±Π°, атмосфСрата сС Π½Π°ΠΆΠ΅ΠΆΠ°Π²Π°, ΠΌΠ°Π»ΠΊΠ°Ρ‚Π° Π“Ρ€Π΅Ρ‚Π° Π² Π΄Π°Π»Π΅Ρ‡Π½Π° ΠΈ Π³ΠΎΡ€Π΅Ρ‰Π° ШвСция сС разстройва. И Π½ΠΈΠ΅, Ρ…ΠΎΡ€Π°Ρ‚Π° ΠΎΡ‚ ИВ, наистина Π½Π΅ харСсвамС, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Π΄Π΅Ρ†Π°Ρ‚Π° са Ρ‚ΡŠΠΆΠ½ΠΈ, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ Π·Π°ΠΏΠΎΡ‡Π²Π°ΠΌΠ΅ Π΄Π° мислим ΠΊΠ°ΠΊΠ²ΠΎ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌ ΠΏΠΎ Π²ΡŠΠΏΡ€ΠΎΡΠ°.

Ами Π°ΠΊΠΎ поставитС Π½Π΅ всички Π±Π»ΠΎΠΊΠΎΠ²Π΅ Π² кСша, Π° само ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ ΠΎΡ‚ тях, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ ΠΊΠ΅ΡˆΡŠΡ‚ Π΄Π° Π½Π΅ сС ΠΏΡ€Π΅ΠΏΡŠΠ»Π²Π°? НСка Π·Π°ΠΏΠΎΡ‡Π½Π΅ΠΌ, ΠΊΠ°Ρ‚ΠΎ просто Π΄ΠΎΠ±Π°Π²ΠΈΠΌ само няколко Ρ€Π΅Π΄Π° ΠΊΠΎΠ΄ Π² Π½Π°Ρ‡Π°Π»ΠΎΡ‚ΠΎ Π½Π° функцията Π·Π° поставянС Π½Π° Π΄Π°Π½Π½ΠΈ Π² 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 ΠΈ Π²ΠΈΠΆΡ‚Π΅ ΠΊΠ°ΠΊΠ²ΠΎ Ρ‰Π΅ сС случи:

Как Π΄Π° ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚Π΅ скоростта Π½Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅ ΠΎΡ‚ HBase Π΄ΠΎ 3 ΠΏΡŠΡ‚ΠΈ ΠΈ ΠΎΡ‚ HDFS Π΄ΠΎ 5 ΠΏΡŠΡ‚ΠΈ

Π Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΡŠΡ‚ Π΅ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π΅Π½. Π’ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈΡ‚Π΅ ΠΏΠΎ-Π΄ΠΎΠ»Ρƒ става ясно Π·Π°Ρ‰ΠΎ Π΅ възникнало Ρ‚Π°ΠΊΠΎΠ²Π° ускорСниС - спСстявамС ΠΌΠ½ΠΎΠ³ΠΎ рСсурси Π½Π° GC, Π±Π΅Π· Π΄Π° Π²ΡŠΡ€ΡˆΠΈΠΌ сизифовата Ρ€Π°Π±ΠΎΡ‚Π° ΠΏΠΎ поставянС Π½Π° Π΄Π°Π½Π½ΠΈ Π² кСша само Π·Π° Π΄Π° Π³ΠΈ ΠΈΠ·Ρ…Π²ΡŠΡ€Π»ΠΈΠΌ Π½Π΅Π·Π°Π±Π°Π²Π½ΠΎ Π² канализацията Π½Π° марсианскитС ΠΊΡƒΡ‡Π΅Ρ‚Π°:

Как Π΄Π° ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚Π΅ скоростта Π½Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅ ΠΎΡ‚ HBase Π΄ΠΎ 3 ΠΏΡŠΡ‚ΠΈ ΠΈ ΠΎΡ‚ HDFS Π΄ΠΎ 5 ΠΏΡŠΡ‚ΠΈ

Π’ ΡΡŠΡ‰ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° процСсора сС ΡƒΠ²Π΅Π»ΠΈΡ‡Π°Π²Π°, Π½ΠΎ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΠΎΡ‚ производитСлността:

Как Π΄Π° ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚Π΅ скоростта Π½Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅ ΠΎΡ‚ HBase Π΄ΠΎ 3 ΠΏΡŠΡ‚ΠΈ ΠΈ ΠΎΡ‚ HDFS Π΄ΠΎ 5 ΠΏΡŠΡ‚ΠΈ

Π‘ΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° си струва Π΄Π° сС ΠΎΡ‚Π±Π΅Π»Π΅ΠΆΠΈ, Ρ‡Π΅ Π±Π»ΠΎΠΊΠΎΠ²Π΅Ρ‚Π΅, ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Π½ΠΈ Π² BlockCache, са Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ. ΠŸΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ, ΠΎΠΊΠΎΠ»ΠΎ 95%, са самитС Π΄Π°Π½Π½ΠΈ. А останалото са ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½ΠΈ, ΠΊΠ°Ρ‚ΠΎ Bloom Ρ„ΠΈΠ»Ρ‚Ρ€ΠΈ ΠΈΠ»ΠΈ LEAF_INDEX ΠΈ Ρ‚.Π΄.. Π’Π΅Π·ΠΈ Π΄Π°Π½Π½ΠΈ Π½Π΅ са Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΈ, Π½ΠΎ са ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΈ, Π·Π°Ρ‰ΠΎΡ‚ΠΎ ΠΏΡ€Π΅Π΄ΠΈ Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚Π΅Π½ Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ Π΄Π°Π½Π½ΠΈΡ‚Π΅, HBase сС ΠΎΠ±Ρ€ΡŠΡ‰Π° към ΠΌΠ΅Ρ‚Π°, Π·Π° Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅ Π΄Π°Π»ΠΈ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° Ρ‚ΡŠΡ€ΡΠΈΡ‚Π΅ Ρ‚ΡƒΠΊ Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΈ Π°ΠΊΠΎ Π΅ Ρ‚Π°ΠΊΠ°, къдС Ρ‚ΠΎΡ‡Π½ΠΎ сС Π½Π°ΠΌΠΈΡ€Π° Π±Π»ΠΎΠΊΡŠΡ‚, ΠΊΠΎΠΉΡ‚ΠΎ прСдставлява интСрСс.

Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»Π½ΠΎ Π² ΠΊΠΎΠ΄Π° Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅ условиС Π·Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° buf.getBlockType().isData() ΠΈ Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π΅Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎΠ·ΠΈ ΠΌΠ΅Ρ‚Π°, Π½ΠΈΠ΅ Ρ‰Π΅ Π³ΠΎ оставим Π² кСша във всСки случай.

Π‘Π΅Π³Π° Π½Π΅ΠΊΠ° ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠΌ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅Ρ‚ΠΎ ΠΈ Π»Π΅ΠΊΠΎ Π·Π°Ρ‚Π΅Π³Π½Π΅ΠΌ функцията с Π΅Π΄Π½ΠΎ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅. Π’ ΠΏΡŠΡ€Π²ΠΈΡ тСст Π½Π°ΠΏΡ€Π°Π²ΠΈΡ…ΠΌΠ΅ ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ Π½Π° ΠΏΡ€Π΅ΠΊΡŠΡΠ²Π°Π½Π΅ = 20 ΠΈ BlockCache бСшС ΠΌΠ°Π»ΠΊΠΎ Π½Π΅Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½. Π‘Π΅Π³Π° Π½Π΅ΠΊΠ° Π³ΠΎ Π·Π°Π΄Π°Π΄Π΅ΠΌ Π½Π° 23% ΠΈ добавямС 100 нишки Π½Π° всСки 5 ΠΌΠΈΠ½ΡƒΡ‚ΠΈ, Π·Π° Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ Π² коя Ρ‚ΠΎΡ‡ΠΊΠ° Π½Π°ΡΡ‚ΡŠΠΏΠ²Π° насищанСто:

Как Π΄Π° ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚Π΅ скоростта Π½Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅ ΠΎΡ‚ HBase Π΄ΠΎ 3 ΠΏΡŠΡ‚ΠΈ ΠΈ ΠΎΡ‚ HDFS Π΄ΠΎ 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 са ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΈ ΠΈ Overhead става ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»Π΅Π½ (Ρ‚Π°ΠΊΠ° Π½Π°Ρ€Π΅Ρ‡Π΅Π½ΠΎΡ‚ΠΎ ΠΏΡ€Π΅Π²ΠΈΡˆΠ°Π²Π°Π½Π΅):

200 * 100 / 500 - 100 = -60%

Напротив, функцията Ρ‰Π΅ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚Π° Π½Π° ΠΊΠ΅ΡˆΠΈΡ€Π°Π½ΠΈΡ‚Π΅ Π±Π»ΠΎΠΊΠΎΠ²Π΅, Π΄ΠΎΠΊΠ°Ρ‚ΠΎ Overhead станС ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»Π΅Π½.

По-Π΄ΠΎΠ»Ρƒ Π΅ Π΄Π°Π΄Π΅Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠ°ΠΊ Ρ‚ΠΎΠ²Π° ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° Π½Π° Ρ€Π΅Π°Π»Π½ΠΈ Π΄Π°Π½Π½ΠΈ. Няма Π½ΡƒΠΆΠ΄Π° Π΄Π° сС ΠΎΠΏΠΈΡ‚Π²Π°Ρ‚Π΅ Π΄Π° достигнСтС 0%, Ρ‚ΠΎΠ²Π° Π΅ нСвъзмоТно. Много Π΅ Π΄ΠΎΠ±Ρ€Π΅, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Π΅ ΠΎΠΊΠΎΠ»ΠΎ 30 - 100%, Ρ‚ΠΎΠ²Π° ΠΏΠΎΠΌΠ°Π³Π° Π΄Π° сС ΠΈΠ·Π±Π΅Π³Π½Π΅ ΠΏΡ€Π΅ΠΆΠ΄Π΅Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΡ‚ΠΎ ΠΈΠ·Π»ΠΈΠ·Π°Π½Π΅ ΠΎΡ‚ Ρ€Π΅ΠΆΠΈΠΌΠ° Π½Π° оптимизация ΠΏΡ€ΠΈ ΠΊΡ€Π°Ρ‚ΠΊΠΎΡ‚Ρ€Π°ΠΉΠ½ΠΈ скоковС.

hbase.lru.cache.heavy.eviction.overhead.coefficient β€” Π·Π°Π΄Π°Π²Π° ΠΊΠΎΠ»ΠΊΠΎ Π±ΡŠΡ€Π·ΠΎ Π±ΠΈΡ…ΠΌΠ΅ искали Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚Π°. Ако Π·Π½Π°Π΅ΠΌ със сигурност, Ρ‡Π΅ Π½Π°ΡˆΠΈΡ‚Π΅ чСтСния са ΠΏΡ€Π΅Π΄ΠΈΠΌΠ½ΠΎ дълги ΠΈ Π½Π΅ искамС Π΄Π° Ρ‡Π°ΠΊΠ°ΠΌΠ΅, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠΌ Ρ‚ΠΎΠ²Π° ΡΡŠΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ ΠΈ Π΄Π° постигнСм висока производитСлност ΠΏΠΎ-Π±ΡŠΡ€Π·ΠΎ.

НапримСр, Π·Π°Π΄Π°Π²Π°ΠΌΠ΅ Ρ‚ΠΎΠ·ΠΈ ΠΊΠΎΠ΅Ρ„ΠΈΡ†ΠΈΠ΅Π½Ρ‚ = 0.01. Π’ΠΎΠ²Π° ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°, Ρ‡Π΅ Overhead (Π²ΠΈΠΆΡ‚Π΅ ΠΏΠΎ-Π³ΠΎΡ€Π΅) Ρ‰Π΅ бъдС ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΎ ΠΏΠΎ Ρ‚ΠΎΠ²Π° число ΠΎΡ‚ получСния Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ΡŠΡ‚ Π½Π° ΠΊΠ΅ΡˆΠΈΡ€Π°Π½ΠΈΡ‚Π΅ Π±Π»ΠΎΠΊΠΎΠ²Π΅ Ρ‰Π΅ бъдС Π½Π°ΠΌΠ°Π»Π΅Π½. Π”Π° ΠΏΡ€ΠΈΠ΅ΠΌΠ΅ΠΌ, Ρ‡Π΅ Overhead = 300% ΠΈ ΠΊΠΎΠ΅Ρ„ΠΈΡ†ΠΈΠ΅Π½Ρ‚ = 0.01, Ρ‚ΠΎΠ³Π°Π²Π° ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ΡŠΡ‚ Π½Π° ΠΊΠ΅ΡˆΠΈΡ€Π°Π½ΠΈΡ‚Π΅ Π±Π»ΠΎΠΊΠΎΠ²Π΅ Ρ‰Π΅ бъдС Π½Π°ΠΌΠ°Π»Π΅Π½ с 3%.

Подобна Π»ΠΎΠ³ΠΈΠΊΠ° Π½Π° β€žΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π½Π°Π»ΡΠ³Π°Π½Π΅β€œ ΡΡŠΡ‰ΠΎ Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½Π° Π·Π° ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»Π½ΠΈ стойности Π½Π° Overhead (ΠΏΡ€Π΅Π²ΠΈΡˆΠ°Π²Π°Π½Π΅). Въй ΠΊΠ°Ρ‚ΠΎ Π²ΠΈΠ½Π°Π³ΠΈ са възмоТни краткосрочни колСбания Π² ΠΎΠ±Π΅ΠΌΠ° Π½Π° чСтСния ΠΈ изгонвания, Ρ‚ΠΎΠ·ΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΡŠΠΌ Π²ΠΈ позволява Π΄Π° ΠΈΠ·Π±Π΅Π³Π½Π΅Ρ‚Π΅ ΠΏΡ€Π΅ΠΆΠ΄Π΅Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΡ‚ΠΎ ΠΈΠ·Π»ΠΈΠ·Π°Π½Π΅ ΠΎΡ‚ Ρ€Π΅ΠΆΠΈΠΌΠ° Π½Π° оптимизация. ΠžΠ±Ρ€Π°Ρ‚Π½ΠΎΡ‚ΠΎ наляганС ΠΈΠΌΠ° ΠΎΠ±ΡŠΡ€Π½Π°Ρ‚Π° Π»ΠΎΠ³ΠΈΠΊΠ°: ΠΊΠΎΠ»ΠΊΠΎΡ‚ΠΎ ΠΏΠΎ-силно Π΅ ΠΏΡ€Π΅Π²ΠΈΡˆΠ°Π²Π°Π½Π΅Ρ‚ΠΎ, Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° ΠΏΠΎΠ²Π΅Ρ‡Π΅ Π±Π»ΠΎΠΊΠΎΠ²Π΅ сС ΠΊΠ΅ΡˆΠΈΡ€Π°Ρ‚.

Как Π΄Π° ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚Π΅ скоростта Π½Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅ ΠΎΡ‚ HBase Π΄ΠΎ 3 ΠΏΡŠΡ‚ΠΈ ΠΈ ΠΎΡ‚ HDFS Π΄ΠΎ 5 ΠΏΡŠΡ‚ΠΈ

Код Π·Π° внСдряванС

        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;
       }

НСка сСга Π΄Π° Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ всичко Ρ‚ΠΎΠ²Π° с Ρ€Π΅Π°Π»Π΅Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€. ИмамС слСдния тСстов скрипт:

  1. Π”Π° Π·Π°ΠΏΠΎΡ‡Π½Π΅ΠΌ Π΄Π° ΠΏΡ€Π°Π²ΠΈΠΌ сканиранС (25 нишки, ΠΏΠ°Ρ€Ρ‚ΠΈΠ΄Π° = 100)
  2. Π‘Π»Π΅Π΄ 5 ΠΌΠΈΠ½ΡƒΡ‚ΠΈ Π΄ΠΎΠ±Π°Π²Π΅Ρ‚Π΅ multi-gets (25 нишки, ΠΏΠ°Ρ€Ρ‚ΠΈΠ΄Π° = 100)
  3. Π‘Π»Π΅Π΄ 5 ΠΌΠΈΠ½ΡƒΡ‚ΠΈ ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Ρ‚Π΅ multi-gets (ΠΎΡ‚Π½ΠΎΠ²ΠΎ остава само сканиранС)

ΠŸΡ€Π°Π²ΠΈΠΌ Π΄Π²Π΅ стартирания, ΠΏΡŠΡ€Π²ΠΎ hbase.lru.cache.heavy.eviction.count.limit = 10000 (ΠΊΠΎΠ΅Ρ‚ΠΎ Π²ΡΡŠΡ‰Π½ΠΎΡΡ‚ Π΄Π΅Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π° функцията) ΠΈ слСд Ρ‚ΠΎΠ²Π° Π·Π°Π΄Π°Π²Π°ΠΌΠ΅ limit = 0 (Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π° я).

Π’ рСгистрационнитС Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΏΠΎ-Π΄ΠΎΠ»Ρƒ Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅ ΠΊΠ°ΠΊ функцията сС Π²ΠΊΠ»ΡŽΡ‡Π²Π° ΠΈ Π½ΡƒΠ»ΠΈΡ€Π° Overshooting Π½Π° 14-71%. ΠžΡ‚ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° Π²Ρ€Π΅ΠΌΠ΅ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅Ρ‚ΠΎ намалява, ΠΊΠΎΠ΅Ρ‚ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π²Π° Backpressure ΠΈ HBase ΠΎΡ‚Π½ΠΎΠ²ΠΎ ΠΊΠ΅ΡˆΠΈΡ€Π° ΠΏΠΎΠ²Π΅Ρ‡Π΅ Π±Π»ΠΎΠΊΠΎΠ²Π΅.

РСгистрирайтС RegionServer
ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΎ (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 Π΄ΠΎ 3 ΠΏΡŠΡ‚ΠΈ ΠΈ ΠΎΡ‚ HDFS Π΄ΠΎ 5 ΠΏΡŠΡ‚ΠΈ

И накрая, ΠΊΠ°ΠΊ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΡ‚Π΅ ΠΏΠΎΠ΄ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π½Π° Π³Ρ€Π°Ρ„ΠΈΠΊΠ°. Π—Π° сравнСниС, ΠΊΠ΅ΡˆΡŠΡ‚ бСшС напълно ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½ Π² Π½Π°Ρ‡Π°Π»ΠΎΡ‚ΠΎ, слСд ΠΊΠΎΠ΅Ρ‚ΠΎ HBase бСшС стартиран с ΠΊΠ΅ΡˆΠΈΡ€Π°Π½Π΅ ΠΈ забавянС Π½Π° Π½Π°Ρ‡Π°Π»ΠΎΡ‚ΠΎ Π½Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ‚Π° Ρ€Π°Π±ΠΎΡ‚Π° с 5 ΠΌΠΈΠ½ΡƒΡ‚ΠΈ (30 Ρ†ΠΈΠΊΡŠΠ»Π° Π½Π° ΠΈΠ·Π²Π°ΠΆΠ΄Π°Π½Π΅).

ΠŸΡŠΠ»Π½ΠΈΡΡ‚ ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС Π½Π°ΠΌΠ΅Ρ€Π΅Π½ Π² Pull Request HBASE 23887 Π² github.

Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‚ΠΎΠ²Π°, 300 хиляди чСтСния Π² сСкунда Π½Π΅ Π΅ всичко, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° сС постигнС Π½Π° Ρ‚ΠΎΠ·ΠΈ Ρ…Π°Ρ€Π΄ΡƒΠ΅Ρ€ ΠΏΡ€ΠΈ Ρ‚Π΅Π·ΠΈ условия. Π€Π°ΠΊΡ‚ Π΅, Ρ‡Π΅ ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΠΈΠΌΠ°Ρ‚Π΅ Π½ΡƒΠΆΠ΄Π° ΠΎΡ‚ Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ Π΄Π°Π½Π½ΠΈ Ρ‡Ρ€Π΅Π· HDFS, сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡŠΡ‚ ShortCircuitCache (Π½Π°Ρ€ΠΈΡ‡Π°Π½ ΠΏΠΎ-Π½Π°Ρ‚Π°Ρ‚ΡŠΠΊ SSC), ΠΊΠΎΠΉΡ‚ΠΎ Π²ΠΈ позволява Π΄Π° ΠΎΡΡŠΡ‰Π΅ΡΡ‚Π²ΡΠ²Π°Ρ‚Π΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚Π΅Π½ Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ Π΄Π°Π½Π½ΠΈΡ‚Π΅, ΠΊΠ°Ρ‚ΠΎ избягватС ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈ взаимодСйствия.

ΠŸΡ€ΠΎΡ„ΠΈΠ»ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ ΠΏΠΎΠΊΠ°Π·Π°, Ρ‡Π΅ Π²ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‡Π΅ Ρ‚ΠΎΠ·ΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΡŠΠΌ Π΄Π°Π²Π° голяма ΠΏΠ΅Ρ‡Π°Π»Π±Π°, Ρ‚ΠΎΠΉ ΡΡŠΡ‰ΠΎ Π² Π΄Π°Π΄Π΅Π½ ΠΌΠΎΠΌΠ΅Π½Ρ‚ сС ΠΏΡ€Π΅Π²Ρ€ΡŠΡ‰Π° Π² ΠΏΡ€Π΅Ρ‡ΠΊΠ°, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ ΠΏΠΎΡ‡Ρ‚ΠΈ всички Ρ‚Π΅ΠΆΠΊΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°Ρ‚ Π²ΡŠΡ‚Ρ€Π΅ Π² ΠΊΠ»ΡŽΡ‡Π°Π»ΠΊΠ°Ρ‚Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ Π²ΠΎΠ΄ΠΈ Π΄ΠΎ Π±Π»ΠΎΠΊΠΈΡ€Π°Π½Π΅ ΠΏΡ€Π΅Π· ΠΏΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅.

Как Π΄Π° ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚Π΅ скоростта Π½Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅ ΠΎΡ‚ HBase Π΄ΠΎ 3 ΠΏΡŠΡ‚ΠΈ ΠΈ ΠΎΡ‚ HDFS Π΄ΠΎ 5 ΠΏΡŠΡ‚ΠΈ

Π‘Π»Π΅Π΄ ΠΊΠ°Ρ‚ΠΎ ΠΎΡΡŠΠ·Π½Π°Ρ…ΠΌΠ΅ Ρ‚ΠΎΠ²Π°, Ρ€Π°Π·Π±Ρ€Π°Ρ…ΠΌΠ΅, Ρ‡Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡŠΡ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС Π·Π°ΠΎΠ±ΠΈΠΊΠΎΠ»Π΅Π½ Ρ‡Ρ€Π΅Π· създаванС Π½Π° масив ΠΎΡ‚ нСзависими SSC:

private final ShortCircuitCache[] shortCircuitCache;
...
shortCircuitCache = new ShortCircuitCache[this.clientShortCircuitNum];
for (int i = 0; i < this.clientShortCircuitNum; i++)
  this.shortCircuitCache[i] = new ShortCircuitCache(…);

И слСд Ρ‚ΠΎΠ²Π° Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‚Π΅ с тях, ΠΊΠ°Ρ‚ΠΎ ΠΈΠ·ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ прСсичанията ΠΈ ΠΏΡ€ΠΈ послСдната Ρ†ΠΈΡ„Ρ€Π° Π½Π° отмСстванСто:

public ShortCircuitCache getShortCircuitCache(long idx) {
    return shortCircuitCache[(int) (idx % clientShortCircuitNum)];
}

Π‘Π΅Π³Π° ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π·Π°ΠΏΠΎΡ‡Π½Π΅Ρ‚Π΅ Π΄Π° тСстватС. Π—Π° Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌ Ρ‚ΠΎΠ²Π°, Ρ‰Π΅ Ρ‡Π΅Ρ‚Π΅ΠΌ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΎΡ‚ HDFS с просто ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π—Π°Π΄Π°ΠΉΡ‚Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΡ‚Π΅:

conf.set("dfs.client.read.shortcircuit", "true");
conf.set("dfs.client.read.shortcircuit.buffer.size", "65536"); // ΠΏΠΎ Π΄Π΅Ρ„ΠΎΠ»Ρ‚Ρƒ = 1 ΠœΠ‘ ΠΈ это сильно замСдляСт Ρ‡Ρ‚Π΅Π½ΠΈΠ΅, поэтому Π»ΡƒΡ‡ΡˆΠ΅ привСсти Π² соотвСтствиС ΠΊ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌ Π½ΡƒΠΆΠ΄Π°ΠΌ
conf.set("dfs.client.short.circuit.num", num); // ΠΎΡ‚ 1 Π΄ΠΎ 10

И просто ΠΏΡ€ΠΎΡ‡Π΅Ρ‚Π΅Ρ‚Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅Ρ‚Π΅:

FSDataInputStream in = fileSystem.open(path);
for (int i = 0; i < count; i++) {
    position += 65536;
    if (position > 900000000)
        position = 0L;
    int res = in.read(position, byteBuffer, 0, 65536);
}

Π’ΠΎΠ·ΠΈ ΠΊΠΎΠ΄ сС изпълнява Π² ΠΎΡ‚Π΄Π΅Π»Π½ΠΈ нишки ΠΈ Ρ‰Π΅ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠΌ броя Π½Π° Π΅Π΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Ρ‡Π΅Ρ‚Π΅Π½ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ (ΠΎΡ‚ 10 Π½Π° 200 - Ρ…ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»Π½Π° ос) ΠΈ броя Π½Π° ΠΊΠ΅ΡˆΠΎΠ²Π΅Ρ‚Π΅ (ΠΎΡ‚ 1 Π½Π° 10 - Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ). Π’Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»Π½Π°Ρ‚Π° ос ΠΏΠΎΠΊΠ°Π·Π²Π° ускорСниСто, ΠΊΠΎΠ΅Ρ‚ΠΎ Π΅ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ ΠΎΡ‚ ΡƒΠ²Π΅Π»ΠΈΡ‡Π°Π²Π°Π½Π΅ Π½Π° SSC ​​спрямо случая, ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΠΈΠΌΠ° само Π΅Π΄ΠΈΠ½ кСш.

Как Π΄Π° ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚Π΅ скоростта Π½Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅ ΠΎΡ‚ HBase Π΄ΠΎ 3 ΠΏΡŠΡ‚ΠΈ ΠΈ ΠΎΡ‚ HDFS Π΄ΠΎ 5 ΠΏΡŠΡ‚ΠΈ

Как Π΄Π° Ρ‡Π΅Ρ‚Π΅ΠΌ Π³Ρ€Π°Ρ„ΠΈΠΊΠ°Ρ‚Π°: Π’Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π·Π° изпълнСниС Π½Π° 100 хиляди чСтСния Π² 64 KB Π±Π»ΠΎΠΊΠΎΠ²Π΅ с Π΅Π΄ΠΈΠ½ кСш изисква 78 сСкунди. Π”ΠΎΠΊΠ°Ρ‚ΠΎ ΠΏΡ€ΠΈ 5 кСша Ρ‚ΠΎΠ²Π° ΠΎΡ‚Π½Π΅ΠΌΠ° 16 сСкунди. Π’Π΅Π·ΠΈ. ΠΈΠΌΠ° ускорСниС ~5 ΠΏΡŠΡ‚ΠΈ. ΠšΠ°ΠΊΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π²ΠΈΠ΄ΠΈ ΠΎΡ‚ Π³Ρ€Π°Ρ„ΠΈΠΊΠ°Ρ‚Π°, Π΅Ρ„Π΅ΠΊΡ‚ΡŠΡ‚ Π½Π΅ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π·Π°Π±Π΅Π»Π΅ΠΆΠΈΠΌ Π·Π° малък Π±Ρ€ΠΎΠΉ ΠΏΠ°Ρ€Π°Π»Π΅Π»Π½ΠΈ чСтСния; Ρ‚ΠΎΠΉ Π·Π°ΠΏΠΎΡ‡Π²Π° Π΄Π° ΠΈΠ³Ρ€Π°Π΅ Π·Π°Π±Π΅Π»Π΅ΠΆΠΈΠΌΠ° роля, ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΠΈΠΌΠ° ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΎΡ‚ 50 чСтСния Π½Π° нишки. Π‘ΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° Π΅ Π·Π°Π±Π΅Π»Π΅ΠΆΠΈΠΌΠΎ, Ρ‡Π΅ ΡƒΠ²Π΅Π»ΠΈΡ‡Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° броя Π½Π° SSC ​​от 6 ΠΈ ΠΏΠΎ-Π³ΠΎΡ€Π΅ Π΄Π°Π²Π° Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π½Π° производитСлността.

Π‘Π΅Π»Π΅ΠΆΠΊΠ° 1: Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈΡ‚Π΅ ΠΎΡ‚ тСста са доста ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ (Π²ΠΈΠΆΡ‚Π΅ ΠΏΠΎ-Π΄ΠΎΠ»Ρƒ), бяха ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΈ 3 тСста ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΡ‚Π΅ стойности бяха осрСднСни.

Π‘Π΅Π»Π΅ΠΆΠΊΠ° 2: Π£Π²Π΅Π»ΠΈΡ‡Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° производитСлността ΠΎΡ‚ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π΅Π½ Π΄ΠΎΡΡ‚ΡŠΠΏ Π΅ ΡΡŠΡ‰ΠΎΡ‚ΠΎ, Π²ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‡Π΅ самият Π΄ΠΎΡΡ‚ΡŠΠΏ Π΅ ΠΌΠ°Π»ΠΊΠΎ ΠΏΠΎ-Π±Π°Π²Π΅Π½.

НСобходимо Π΅ ΠΎΠ±Π°Ρ‡Π΅ Π΄Π° сС ΡƒΡ‚ΠΎΡ‡Π½ΠΈ, Ρ‡Π΅ Π·Π° Ρ€Π°Π·Π»ΠΈΠΊΠ° ΠΎΡ‚ случая с HBase, Ρ‚ΠΎΠ²Π° ускорСниС Π½Π΅ Π²ΠΈΠ½Π°Π³ΠΈ Π΅ Π±Π΅Π·ΠΏΠ»Π°Ρ‚Π½ΠΎ. Π’ΡƒΠΊ β€žΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π²Π°ΠΌΠ΅β€œ способността Π½Π° процСсора Π΄Π° Π²ΡŠΡ€ΡˆΠΈ ΠΏΠΎΠ²Π΅Ρ‡Π΅ Ρ€Π°Π±ΠΎΡ‚Π°, вмСсто Π΄Π° виси Π½Π° ΠΊΠ»ΡŽΡ‡Π°Π»ΠΊΠΈ.

Как Π΄Π° ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚Π΅ скоростта Π½Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅ ΠΎΡ‚ HBase Π΄ΠΎ 3 ΠΏΡŠΡ‚ΠΈ ΠΈ ΠΎΡ‚ HDFS Π΄ΠΎ 5 ΠΏΡŠΡ‚ΠΈ

Π’ΡƒΠΊ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π·Π°Π±Π΅Π»Π΅ΠΆΠΈΡ‚Π΅, Ρ‡Π΅ ΠΊΠ°Ρ‚ΠΎ цяло ΡƒΠ²Π΅Π»ΠΈΡ‡Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° броя Π½Π° ΠΊΠ΅ΡˆΠΎΠ²Π΅Ρ‚Π΅ Π΄Π°Π²Π° ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΏΡ€ΠΎΠΏΠΎΡ€Ρ†ΠΈΠΎΠ½Π°Π»Π½ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° процСсора. Има ΠΎΠ±Π°Ρ‡Π΅ ΠΌΠ°Π»ΠΊΠΎ ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΏΠ΅Ρ‡Π΅Π»ΠΈΠ²ΡˆΠΈ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ.

НапримСр, Π½Π΅ΠΊΠ° Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΏΠΎ-ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ настройката SSC ​​= 3. Π£Π²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° производитСлността Π½Π° Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° Π΅ ΠΎΠΊΠΎΠ»ΠΎ 3.3 ΠΏΡŠΡ‚ΠΈ. По-Π΄ΠΎΠ»Ρƒ са Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈΡ‚Π΅ ΠΎΡ‚ Ρ‚Ρ€ΠΈΡ‚Π΅ ΠΎΡ‚Π΄Π΅Π»Π½ΠΈ сСрии.

Как Π΄Π° ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚Π΅ скоростта Π½Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅ ΠΎΡ‚ HBase Π΄ΠΎ 3 ΠΏΡŠΡ‚ΠΈ ΠΈ ΠΎΡ‚ HDFS Π΄ΠΎ 5 ΠΏΡŠΡ‚ΠΈ

Π”ΠΎΠΊΠ°Ρ‚ΠΎ консумацията Π½Π° процСсора сС ΡƒΠ²Π΅Π»ΠΈΡ‡Π°Π²Π° с ΠΎΠΊΠΎΠ»ΠΎ 2.8 ΠΏΡŠΡ‚ΠΈ. Π Π°Π·Π»ΠΈΠΊΠ°Ρ‚Π° Π½Π΅ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ голяма, Π½ΠΎ ΠΌΠ°Π»ΠΊΠ°Ρ‚Π° Π“Ρ€Π΅Ρ‚Π° Π²Π΅Ρ‡Π΅ Π΅ щастлива ΠΈ ΠΌΠΎΠΆΠ΅ Π±ΠΈ ΠΈΠΌΠ° Π²Ρ€Π΅ΠΌΠ΅ Π΄Π° посСщава ΡƒΡ‡ΠΈΠ»ΠΈΡ‰Π΅ ΠΈ Π΄Π° Ρ…ΠΎΠ΄ΠΈ Π½Π° ΡƒΡ€ΠΎΡ†ΠΈ.

По Ρ‚ΠΎΠ·ΠΈ Π½Π°Ρ‡ΠΈΠ½ Ρ‚ΠΎΠ²Π° Ρ‰Π΅ ΠΈΠΌΠ° ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»Π΅Π½ Π΅Ρ„Π΅ΠΊΡ‚ Π·Π° всСки инструмСнт, ΠΊΠΎΠΉΡ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π³Ρ€ΡƒΠΏΠΎΠ² Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ HDFS (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Spark ΠΈ Ρ‚.Π½.), ΠΏΡ€ΠΈ условиС Ρ‡Π΅ ΠΊΠΎΠ΄ΡŠΡ‚ Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Π΅ Π»Π΅ΠΊ (Ρ‚.Π΅. Ρ‰Π΅ΠΏΡΠ΅Π»ΡŠΡ‚ Π΅ ΠΎΡ‚ страната Π½Π° HDFS ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°) ΠΈ ΠΈΠΌΠ° свободна мощност Π½Π° процСсора . Π—Π° Π΄Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ, Π½Π΅ΠΊΠ° тСствамС какъв Π΅Ρ„Π΅ΠΊΡ‚ Ρ‰Π΅ ΠΈΠΌΠ° ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€Π°Π½ΠΎΡ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° оптимизация Π½Π° BlockCache ΠΈ SSC настройка Π·Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅ ΠΎΡ‚ HBase.

Как Π΄Π° ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚Π΅ скоростта Π½Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅ ΠΎΡ‚ HBase Π΄ΠΎ 3 ΠΏΡŠΡ‚ΠΈ ΠΈ ΠΎΡ‚ HDFS Π΄ΠΎ 5 ΠΏΡŠΡ‚ΠΈ

Π’ΠΈΠΆΠ΄Π° сС, Ρ‡Π΅ ΠΏΡ€ΠΈ Ρ‚Π°ΠΊΠΈΠ²Π° условия Π΅Ρ„Π΅ΠΊΡ‚ΡŠΡ‚ Π½Π΅ Π΅ Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° голям, ΠΊΠΎΠ»ΠΊΠΎΡ‚ΠΎ ΠΏΡ€ΠΈ ΠΏΡ€Π΅Ρ†ΠΈΠ·Π½ΠΈΡ‚Π΅ тСстовС (Ρ‡Π΅Ρ‚Π΅Π½Π΅ Π±Π΅Π· Π½ΠΈΠΊΠ°ΠΊΠ²Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°), Π½ΠΎ Ρ‚ΡƒΠΊ Π΅ напълно възмоТно Π΄Π° ΠΈΠ·Ρ‚Ρ€ΡŠΠ³Π½Π΅Ρ‚Π΅ Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ 80K. Π—Π°Π΅Π΄Π½ΠΎ Π΄Π²Π΅Ρ‚Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ осигуряват Π΄ΠΎ 4 ΠΏΡŠΡ‚ΠΈ ускорСниС.

НаправСн Π΅ ΠΈ PR Π·Π° Ρ‚Π°Π·ΠΈ оптимизация [HDFS-15202], ΠΊΠΎΠΉΡ‚ΠΎ бСшС ΠΎΠ±Π΅Π΄ΠΈΠ½Π΅Π½ ΠΈ Ρ‚Π°Π·ΠΈ функционалност Ρ‰Π΅ бъдС Π½Π°Π»ΠΈΡ‡Π½Π° Π² Π±ΡŠΠ΄Π΅Ρ‰ΠΈ вСрсии.

И накрая, бСшС интСрСсно Π΄Π° сС сравни СфСктивността Π½Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅ Π½Π° ΠΏΠΎΠ΄ΠΎΠ±Π½Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ с ΡˆΠΈΡ€ΠΎΠΊΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΈ, Cassandra ΠΈ HBase.

Π—Π° Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌ Ρ‚ΠΎΠ²Π°, стартирахмС СкзСмпляри Π½Π° стандартната YCSB ΠΏΠΎΠΌΠΎΡ‰Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° Π·Π° тСстванС Π½Π° Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅ ΠΎΡ‚ Π΄Π²Π° хоста (ΠΎΠ±Ρ‰ΠΎ 800 нишки). ΠžΡ‚ страна Π½Π° ΡΡŠΡ€Π²ΡŠΡ€Π° - 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 - Ρ‚ΠΎΠ²Π° ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°, Ρ‡Π΅ ΠΏΠ»Π°ΡΡ‚ΠΈΡ€ΡŠΡ‚ Ρ‰Π΅ Π·Π°ΠΏΠΎΡ‡Π½Π΅ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ слСд 30 изгонвания (~5 ΠΌΠΈΠ½ΡƒΡ‚ΠΈ)

hbase.lru.cache.heavy.eviction.mb.size.limit = 300 β€” Ρ†Π΅Π»Π΅Π²ΠΈ ΠΎΠ±Π΅ΠΌ Π½Π° ΠΊΠ΅ΡˆΠΈΡ€Π°Π½Π΅ ΠΈ ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½Π΅

РСгистрационнитС Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π½Π° YCSB бяха Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½ΠΈ Π² Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ Π½Π° Excel:

Как Π΄Π° ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚Π΅ скоростта Π½Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅ ΠΎΡ‚ HBase Π΄ΠΎ 3 ΠΏΡŠΡ‚ΠΈ ΠΈ ΠΎΡ‚ HDFS Π΄ΠΎ 5 ΠΏΡŠΡ‚ΠΈ

ΠšΠ°ΠΊΡ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‚Π΅Π·ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ позволяват Π΄Π° сС сравни производитСлността Π½Π° Ρ‚Π΅Π·ΠΈ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ ΠΏΡ€ΠΈ Ρ‚Π΅Π·ΠΈ условия ΠΈ Π΄Π° сС постигнат 450 хиляди чСтСния Π² сСкунда.

НадявамС сС, Ρ‡Π΅ Ρ‚Π°Π·ΠΈ информация ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΏΠΎΠ»Π΅Π·Π½Π° Π½Π° някого ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° Π²ΡŠΠ»Π½ΡƒΠ²Π°Ρ‰Π°Ρ‚Π° Π±ΠΎΡ€Π±Π° Π·Π° продуктивност.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: www.habr.com

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€