HBase рд╕реЗ 3 рдЧреБрдирд╛ рдФрд░ HDFS рд╕реЗ 5 рдЧреБрдирд╛ рддрдХ рдкрдврд╝рдиреЗ рдХреА рдЧрддрд┐ рдХреИрд╕реЗ рдмрдврд╝рд╛рдПрдВ

рдмрдбрд╝реЗ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдЙрдЪреНрдЪ рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рдореБрдЦ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред Sberbank рдХреЗ рдбреЗрдЯрд╛ рд▓реЛрдбрд┐рдВрдЧ рд╡рд┐рднрд╛рдЧ рдореЗрдВ, рд╣рдо рд▓рдЧрднрдЧ рд╕рднреА рд▓реЗрдирджреЗрди рдХреЛ рдЕрдкрдиреЗ Hadoop-рдЖрдзрд╛рд░рд┐рдд рдбреЗрдЯрд╛ рдХреНрд▓рд╛рдЙрдб рдореЗрдВ рдкрдВрдк рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рд▓рд┐рдП рд╕реВрдЪрдирд╛ рдХреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрдбрд╝реЗ рдкреНрд░рд╡рд╛рд╣ рд╕реЗ рдирд┐рдкрдЯрддреЗ рд╣реИрдВред рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рд╣рдо рд╣рдореЗрд╢рд╛ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдХреЗ рддрд░реАрдХреЛрдВ рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рд░рд╣рддреЗ рд╣реИрдВ, рдФрд░ рдЕрдм рд╣рдо рдЖрдкрдХреЛ рдмрддрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо рд░реАрдЬрдирд╕рд░реНрд╡рд░ HBase рдФрд░ HDFS рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдХреИрд╕реЗ рдкреИрдЪ рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣реЗ, рдЬрд┐рд╕рдХреА рдмрджреМрд▓рдд рд╣рдо рд░реАрдб рдСрдкрд░реЗрд╢рдВрд╕ рдХреА рдЧрддрд┐ рдореЗрдВ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд╡реГрджреНрдзрд┐ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реБрдПред
HBase рд╕реЗ 3 рдЧреБрдирд╛ рдФрд░ HDFS рд╕реЗ 5 рдЧреБрдирд╛ рддрдХ рдкрдврд╝рдиреЗ рдХреА рдЧрддрд┐ рдХреИрд╕реЗ рдмрдврд╝рд╛рдПрдВ

рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╕реБрдзрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рд░ рдкрд░ рдЖрдЧреЗ рдмрдврд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЙрди рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЙрдЪрд┐рдд рд╣реИ, рдЬрд┐рдиреНрд╣реЗрдВ рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдпрджрд┐ рдЖрдк рдПрдЪрдбреАрдбреА рдкрд░ рдмреИрдарддреЗ рд╣реИрдВ, рддреЛ рджрд░рдХрд┐рдирд╛рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдПрдЪрдбреАрдбреА рдФрд░ рддреЗрдЬрд╝ рд░реИрдВрдбрдо рдПрдХреНрд╕реЗрд╕ рд░реАрдб рдЕрд╕рдВрдЧрдд рдХреНрдпреЛрдВ рд╣реИрдВ?
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, HBase рдФрд░ рдХрдИ рдЕрдиреНрдп рдбреЗрдЯрд╛рдмреЗрд╕, рдбреЗрдЯрд╛ рдХреЛ рдХрдИ рджрд╕рд┐рдпреЛрдВ рдХрд┐рд▓реЛрдмрд╛рдЗрдЯ рдЖрдХрд╛рд░ рдХреЗ рдмреНрд▓реЙрдХ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреЗ рд╣реИрдВред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдпрд╣ рд▓рдЧрднрдЧ 64 KB рд╣реИ. рдЕрдм рдЖрдЗрдП рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ рд╣рдореЗрдВ рдХреЗрд╡рд▓ 100 рдмрд╛рдЗрдЯреНрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рд╣рдо HBase рд╕реЗ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдХреБрдВрдЬреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рдореЗрдВ рдпрд╣ рдбреЗрдЯрд╛ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддреЗ рд╣реИрдВред рдЪреВрдБрдХрд┐ HFiles рдореЗрдВ рдмреНрд▓реЙрдХ рдХрд╛ рдЖрдХрд╛рд░ 64 KB рд╣реИ, рдЕрдиреБрд░реЛрдз рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╕реЗ 640 рдЧреБрдирд╛ рдмрдбрд╝рд╛ (рд╕рд┐рд░реНрдл рдПрдХ рдорд┐рдирдЯ!) рд╣реЛрдЧрд╛ред

рдЕрдЧрд▓рд╛, рдЪреВрдВрдХрд┐ рдЕрдиреБрд░реЛрдз рдПрдЪрдбреАрдПрдлрдПрд╕ рдФрд░ рдЙрд╕рдХреЗ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХреИрд╢рд┐рдВрдЧ рддрдВрддреНрд░ рд╕реЗ рд╣реЛрдХрд░ рдЧреБрдЬрд░реЗрдЧрд╛ рд╢реЙрд░реНрдЯрд╕рд░реНрдХрд┐рдЯ рдХреИрд╢ (рдЬреЛ рдлрд╝рд╛рдЗрд▓реЛрдВ рддрдХ рд╕реАрдзреА рдкрд╣реБрдВрдЪ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ), рдЗрд╕рд╕реЗ рдбрд┐рд╕реНрдХ рд╕реЗ рдкрд╣рд▓реЗ рд╣реА 1 рдПрдордмреА рдкрдврд╝рдирд╛ рд╢реБрд░реВ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЗрд╕реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ dfs.client.read.shortcircuit.buffer.size рдФрд░ рдХрдИ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЗрд╕ рдорд╛рди рдХреЛ рдХрдо рдХрд░рдирд╛ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП 126 рдХреЗрдмреА рддрдХред

рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдо рдРрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬрдм рд╣рдо рдЬрд╛рд╡рд╛ рдПрдкреАрдЖрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбреЗрдЯрд╛ рдкрдврд╝рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ FileChannel.read рдЬреИрд╕реЗ рдлрд╝рдВрдХреНрд╢рди рдФрд░ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдорд╛рддреНрд░рд╛ рдореЗрдВ рдбреЗрдЯрд╛ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ "рдмрд╕ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ" 2 рдЧреБрдирд╛ рдЕрдзрд┐рдХ рдкрдврд╝рддрд╛ рд╣реИ , рдЕрд░реНрдерд╛рддред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ 256 рдХреЗрдмреАред рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЬрд╛рд╡рд╛ рдХреЗ рдкрд╛рд╕ рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП FADV_RANDOM рдзреНрд╡рдЬ рд╕реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред

рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдорд╛рд░реА 100 рдмрд╛рдЗрдЯреНрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣реБрдб рдХреЗ рдиреАрдЪреЗ 2600 рдЧреБрдирд╛ рдЕрдзрд┐рдХ рдкрдврд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред рдРрд╕рд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рд╕рдорд╛рдзрд╛рди рд╕реНрдкрд╖реНрдЯ рд╣реИ, рдЖрдЗрдП рдмреНрд▓реЙрдХ рдЖрдХрд╛рд░ рдХреЛ рдПрдХ рдХрд┐рд▓реЛрдмрд╛рдЗрдЯ рддрдХ рдХрдо рдХрд░реЗрдВ, рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдзреНрд╡рдЬ рд╕реЗрдЯ рдХрд░реЗрдВ рдФрд░ рдорд╣рд╛рди рдЬреНрдЮрд╛рдиреЛрджрдп рддреНрд╡рд░рдг рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред рд▓реЗрдХрд┐рди рдкрд░реЗрд╢рд╛рдиреА рдпрд╣ рд╣реИ рдХрд┐ рдмреНрд▓реЙрдХ рдЖрдХрд╛рд░ рдХреЛ 2 рдЧреБрдирд╛ рдХрдо рдХрд░рдХреЗ, рд╣рдо рд╕рдордп рдХреА рдкреНрд░рддрд┐ рдпреВрдирд┐рдЯ рдкрдврд╝реА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдмрд╛рдЗрдЯреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рднреА 2 рдЧреБрдирд╛ рдХрдо рдХрд░ рджреЗрддреЗ рд╣реИрдВред

FADV_RANDOM рдзреНрд╡рдЬ рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рд╕реЗ рдХреБрдЫ рд▓рд╛рдн рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдЙрдЪреНрдЪ рдорд▓реНрдЯреА-рдереНрд░реЗрдбрд┐рдВрдЧ рдФрд░ 128 рдХреЗрдмреА рдХреЗ рдмреНрд▓реЙрдХ рдЖрдХрд╛рд░ рдХреЗ рд╕рд╛рде, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрдзрд┐рдХрддрдо рдХреБрдЫ рджрд╕рд┐рдпреЛрдВ рдкреНрд░рддрд┐рд╢рдд рд╣реИ:

HBase рд╕реЗ 3 рдЧреБрдирд╛ рдФрд░ HDFS рд╕реЗ 5 рдЧреБрдирд╛ рддрдХ рдкрдврд╝рдиреЗ рдХреА рдЧрддрд┐ рдХреИрд╕реЗ рдмрдврд╝рд╛рдПрдВ

рдкрд░реАрдХреНрд╖рдг 100 рдлрд╝рд╛рдЗрд▓реЛрдВ рдкрд░ рдХрд┐рдП рдЧрдП, рдкреНрд░рддреНрдпреЗрдХ 1 рдЬреАрдмреА рдЖрдХрд╛рд░ рдХреА рдФрд░ 10 рдПрдЪрдбреАрдбреА рдкрд░ рд╕реНрдерд┐рдд рдереАрдВред

рдЖрдЗрдП рдЧрдгрдирд╛ рдХрд░реЗрдВ рдХрд┐ рд╣рдо рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд░реВрдк рд╕реЗ рдЗрд╕ рдЧрддрд┐ рдкрд░ рдХреНрдпрд╛ рднрд░реЛрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдо 10 рдбрд┐рд╕реНрдХ рд╕реЗ 280 рдПрдордмреА/рд╕реЗрдХрдВрдб рдХреА рдЧрддрд┐ рд╕реЗ рдкрдврд╝рддреЗ рд╣реИрдВ, рдпрд╛рдиреАред 3 рдорд┐рд▓рд┐рдпрди рдЧреБрдирд╛ 100 рдмрд╛рдЗрдЯреНрд╕. рд▓реЗрдХрд┐рди рдЬреИрд╕рд╛ рдХрд┐ рд╣рдореЗрдВ рдпрд╛рдж рд╣реИ, рд╣рдореЗрдВ рдЬреЛ рдбреЗрдЯрд╛ рдЪрд╛рд╣рд┐рдП рд╡рд╣ рдкрдврд╝реЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдбреЗрдЯрд╛ рд╕реЗ 2600 рдЧреБрдирд╛ рдХрдо рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдо 3 рдорд┐рд▓рд┐рдпрди рдХреЛ 2600 рд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб 1100 рд░рд┐рдХреЙрд░реНрдбред

рдирд┐рд░рд╛рд╢рд╛рдЬрдирдХ, рд╣реИ рдирд╛? рд╡рд╣ рдкреНрд░рдХреГрддрд┐ рд╣реИ рд░реИрдВрдбрдо рдПрдХреНрд╕реЗрд╕ рдПрдЪрдбреАрдбреА рдкрд░ рдбреЗрдЯрд╛ рддрдХ рдкрд╣реБрдВрдЪ - рдмреНрд▓реЙрдХ рдЖрдХрд╛рд░ рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛ред рдпрд╣ рд░реИрдВрдбрдо рдПрдХреНрд╕реЗрд╕ рдХреА рднреМрддрд┐рдХ рд╕реАрдорд╛ рд╣реИ рдФрд░ рдХреЛрдИ рднреА рдбреЗрдЯрд╛рдмреЗрд╕ рдРрд╕реА рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдЗрд╕рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рдирд┐рдХрд╛рд▓ рд╕рдХрддрд╛ рд╣реИред

рдлрд┐рд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЧрддрд┐ рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ? рдЗрд╕ рдкреНрд░рд╢реНрди рдХрд╛ рдЙрддреНрддрд░ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪрд┐рддреНрд░ рдореЗрдВ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ:

HBase рд╕реЗ 3 рдЧреБрдирд╛ рдФрд░ HDFS рд╕реЗ 5 рдЧреБрдирд╛ рддрдХ рдкрдврд╝рдиреЗ рдХреА рдЧрддрд┐ рдХреИрд╕реЗ рдмрдврд╝рд╛рдПрдВ

рдпрд╣рд╛рдВ рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдкрд╣рд▓реЗ рдХреБрдЫ рдорд┐рдирдЯреЛрдВ рдХреЗ рд▓рд┐рдП рдЧрддрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рд▓рдЧрднрдЧ рдПрдХ рд╣рдЬрд╛рд░ рд░рд┐рдХреЙрд░реНрдб рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдХрд┐ рдЕрдиреБрд░реЛрдз рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдкрдврд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдбреЗрдЯрд╛ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо (рд▓рд┐рдирдХреНрд╕) рдХреЗ рдмрдлрд╝/рдХреИрд╢ рдореЗрдВ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЧрддрд┐ рдмрдврд╝рдХрд░ 60 рд╣рдЬрд╛рд░ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рд╣реЛ рдЬрд╛рддреА рд╣реИред

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЖрдЧреЗ рд╣рдо рдХреЗрд╡рд▓ рдЙрд╕ рдбреЗрдЯрд╛ рддрдХ рдкрд╣реБрдВрдЪ рдХреЛ рддреЗрдЬ рдХрд░рдиреЗ рд╕реЗ рдирд┐рдкрдЯреЗрдВрдЧреЗ рдЬреЛ рдУрдПрд╕ рдХреИрд╢ рдореЗрдВ рд╣реИ рдпрд╛ рддреБрд▓рдиреАрдп рдПрдХреНрд╕реЗрд╕ рдЧрддрд┐ рдХреЗ рдПрд╕рдПрд╕рдбреА/рдПрдирд╡реАрдПрдордИ рд╕реНрдЯреЛрд░реЗрдЬ рдбрд┐рд╡рд╛рдЗрд╕ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИред

рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо 4 рд╕рд░реНрд╡рд░реЛрдВ рдХреА рдПрдХ рдмреЗрдВрдЪ рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХрд░реЗрдВрдЧреЗ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХрд╛ рд╢реБрд▓реНрдХ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реИ:

рд╕реАрдкреАрдпреВ: Xeon E5-2680 v4 @ 2.40GHz 64 рдереНрд░реЗрдбред
рдореЗрдореЛрд░реА: 730 рдЬреАрдмреА.
рдЬрд╛рд╡рд╛ рд╕рдВрд╕реНрдХрд░рдг: 1.8.0_111

рдФрд░ рдпрд╣рд╛рдВ рдореБрдЦреНрдп рдмрд┐рдВрджреБ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдореЗрдВ рдбреЗрдЯрд╛ рдХреА рдорд╛рддреНрд░рд╛ рд╣реИ рдЬрд┐рд╕реЗ рдкрдврд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рдбреЗрдЯрд╛ рдкрдврд╝рддреЗ рд╣реИрдВ рдЬреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ HBase рдХреИрд╢ рдореЗрдВ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдпрд╣ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдмрдлрд╝/рдХреИрд╢ рд╕реЗ рднреА рдкрдврд╝рдиреЗ рдореЗрдВ рдирд╣реАрдВ рдЖрдПрдЧрд╛ред рдХреНрдпреЛрдВрдХрд┐ HBase рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ 40% рдореЗрдореЛрд░реА рдХреЛ рдмреНрд▓реЙрдХ рдХреИрд╢ рдирд╛рдордХ рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рдЖрд╡рдВрдЯрд┐рдд рдХрд░рддрд╛ рд╣реИред рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдпрд╣ рдПрдХ ConcurrentHashMap рд╣реИ, рдЬрд╣рд╛рдВ рдХреБрдВрдЬреА рдлрд╝рд╛рдЗрд▓ рдирд╛рдо + рдмреНрд▓реЙрдХ рдХрд╛ рдСрдлрд╕реЗрдЯ рд╣реИ, рдФрд░ рдорд╛рди рдЗрд╕ рдСрдлрд╕реЗрдЯ рдкрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдбреЗрдЯрд╛ рд╣реИред

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЬрдм рд╣рдо рдХреЗрд╡рд▓ рдЗрд╕ рд╕рдВрд░рдЪрдирд╛ рд╕реЗ рдкрдврд╝рддреЗ рд╣реИрдВ рд╣рдо рдЙрддреНрдХреГрд╖реНрдЯ рдЧрддрд┐ рджреЗрдЦрддреЗ рд╣реИрдВ, рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рджрд╕ рд▓рд╛рдЦ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рддрд░рд╣ред рд▓реЗрдХрд┐рди рдЖрдЗрдП рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ рд╣рдо рдХреЗрд╡рд▓ рдбреЗрдЯрд╛рдмреЗрд╕ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕реИрдХрдбрд╝реЛрдВ рдЧреАрдЧрд╛рдмрд╛рдЗрдЯ рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ, рдХреНрдпреЛрдВрдХрд┐ рдЗрди рд╕рд░реНрд╡рд░реЛрдВ рдкрд░ рдХрдИ рдЕрдиреНрдп рдЙрдкрдпреЛрдЧреА рдЪреАрдЬреЗрдВ рдЪрд▓ рд░рд╣реА рд╣реИрдВред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдПрдХ рдЖрд░рдПрд╕ рдкрд░ рдмреНрд▓реЙрдХ рдХреИрд╢ рдХреА рдорд╛рддреНрд░рд╛ рд▓рдЧрднрдЧ 12 рдЬреАрдмреА рд╣реИред рд╣рдордиреЗ рдПрдХ рдиреЛрдб рдкрд░ рджреЛ рдЖрд░рдПрд╕ рдЙрддрд╛рд░реЗ, рдпрд╛рдиреАред рд╕рднреА рдиреЛрдбреНрд╕ рдкрд░ рдмреНрд▓реЙрдХ рдХреИрд╢ рдХреЗ рд▓рд┐рдП 96 рдЬреАрдмреА рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдП рдЧрдП рд╣реИрдВред рдФрд░ рдХрдИ рдЧреБрдирд╛ рдЕрдзрд┐рдХ рдбреЗрдЯрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕реЗ 4 рдЯреЗрдмрд▓, рдкреНрд░рддреНрдпреЗрдХ 130 рдХреНрд╖реЗрддреНрд░ рд╣реЛрдиреЗ рджреЗрдВ, рдЬрд┐рд╕рдореЗрдВ рдлрд╝рд╛рдЗрд▓реЗрдВ 800 рдПрдордмреА рдЖрдХрд╛рд░ рдХреА рд╣реИрдВ, FAST_DIFF рджреНрд╡рд╛рд░рд╛ рд╕рдВрдкреАрдбрд╝рд┐рдд рд╣реИрдВ, рдпрд╛рдиреАред рдХреБрд▓ 410 рдЬреАрдмреА (рдпрд╣ рд╢реБрджреНрдз рдбреЗрдЯрд╛ рд╣реИ, рдпрд╛рдиреА рдкреНрд░рддрд┐рдХреГрддрд┐ рдХрд╛рд░рдХ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦреЗ рдмрд┐рдирд╛)ред

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдмреНрд▓реЙрдХрдХреИрд╢ рдХреБрд▓ рдбреЗрдЯрд╛ рд╡реЙрд▓реНрдпреВрдо рдХрд╛ рдХреЗрд╡рд▓ 23% рд╣реИ рдФрд░ рдпрд╣ рдмрд┐рдЧрдбреЗрдЯрд╛ рдХрд╣рд▓рд╛рдиреЗ рд╡рд╛рд▓реА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЗ рдмрд╣реБрдд рдХрд░реАрдм рд╣реИред рдФрд░ рдпрд╣реАрдВ рд╕реЗ рдордЬрд╛ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ - рдХреНрдпреЛрдВрдХрд┐ рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдЬрд┐рддрдирд╛ рдХрдо рдХреИрд╢ рд╣рд┐рдЯ рд╣реЛрдЧрд╛, рдкреНрд░рджрд░реНрд╢рди рдЙрддрдирд╛ рд╣реА рдЦрд░рд╛рдм рд╣реЛрдЧрд╛ред рдЖрдЦрд╝рд┐рд░рдХрд╛рд░, рдпрджрд┐ рдЖрдк рдЪреВрдХ рдЧрдП, рддреЛ рдЖрдкрдХреЛ рдмрд╣реБрдд рдХрд╛рдо рдХрд░рдирд╛ рд╣реЛрдЧрд╛ - рдЕрд░реНрдерд╛рддред рд╕рд┐рд╕реНрдЯрдо рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рдЬрд╛рдПрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЗрд╕реЗ рдЯрд╛рд▓рд╛ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдЖрдЗрдП рдПрдХ рдмрд┐рд▓реНрдХреБрд▓ рдЕрд▓рдЧ рдкрд╣рд▓реВ рдкрд░ рдирдЬрд░ рдбрд╛рд▓реЗрдВ - рдХреИрд╢ рдХреЗ рдЕрдВрджрд░ рдбреЗрдЯрд╛ рдХрд╛ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ?

рдЖрдЗрдП рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдПрдВ рдФрд░ рдорд╛рди рд▓реЗрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдХреИрд╢ рд╣реИ рдЬреЛ рдХреЗрд╡рд▓ 1 рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдлрд┐рдЯ рдмреИрдарддрд╛ рд╣реИред рдпрд╣рд╛рдВ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдЬрдм рд╣рдо рдХреИрд╢ рд╕реЗ 3 рдЧреБрдирд╛ рдмрдбрд╝реЗ рдбреЗрдЯрд╛ рд╡реЙрд▓реНрдпреВрдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВрдЧреЗ, рд╣рдореЗрдВ рдпрд╣ рдХрд░рдирд╛ рд╣реЛрдЧрд╛:

1. рдмреНрд▓реЙрдХ 1 рдХреЛ рдХреИрд╢ рдореЗрдВ рд░рдЦреЗрдВ
2. рдХреИрд╢ рд╕реЗ рдмреНрд▓реЙрдХ 1 рд╣рдЯрд╛рдПрдВ
3. рдмреНрд▓реЙрдХ 2 рдХреЛ рдХреИрд╢ рдореЗрдВ рд░рдЦреЗрдВ
4. рдХреИрд╢ рд╕реЗ рдмреНрд▓реЙрдХ 2 рд╣рдЯрд╛рдПрдВ
5. рдмреНрд▓реЙрдХ 3 рдХреЛ рдХреИрд╢ рдореЗрдВ рд░рдЦреЗрдВ

5 рдХрд╛рд░реНрдп рдкреВрд░реНрдг! рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рдирд╣реАрдВ рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ; рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╣рдо HBase рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмреЗрдХрд╛рд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдпрд╣ рд▓рдЧрд╛рддрд╛рд░ рдУрдПрд╕ рдХреИрд╢ рд╕реЗ рдбреЗрдЯрд╛ рдкрдврд╝рддрд╛ рд╣реИ, рдЗрд╕реЗ рдмреНрд▓реЙрдХ рдХреИрд╢ рдореЗрдВ рд░рдЦрддрд╛ рд╣реИ, рдХреЗрд╡рд▓ рдЗрд╕реЗ рд▓рдЧрднрдЧ рддреБрд░рдВрдд рдмрд╛рд╣рд░ рдлреЗрдВрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рдбреЗрдЯрд╛ рдХрд╛ рдПрдХ рдирдпрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдЖ рдЧрдпрд╛ рд╣реИред рдкреЛрд╕реНрдЯ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдПрдиреАрдореЗрд╢рди рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рд░ рджрд┐рдЦрд╛рддрд╛ рд╣реИ - рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣рдХрд░реНрддрд╛ рдХрд╛ рдХрд╛рдо рдмрдВрдж рд╣реЛ рд░рд╣рд╛ рд╣реИ, рдорд╛рд╣реМрд▓ рдЧрд░реНрдо рд╣реЛ рд░рд╣рд╛ рд╣реИ, рджреВрд░ рдФрд░ рдЧрд░реНрдо рд╕реНрд╡реАрдбрди рдореЗрдВ рдЫреЛрдЯреА рдЧреНрд░реЗрдЯрд╛ рдкрд░реЗрд╢рд╛рди рд╣реЛ рд░рд╣реА рд╣реИред рдФрд░ рд╣рдо рдЖрдИрдЯреА рд▓реЛрдЧреЛрдВ рдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИ рдЬрдм рдмрдЪреНрдЪреЗ рджреБрдЦреА рд╣реЛрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдо рд╕реЛрдЪрдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдЖрдк рдХреИрд╢ рдореЗрдВ рд╕рднреА рдмреНрд▓реЙрдХ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдЙрдирдореЗрдВ рд╕реЗ рдХреЗрд╡рд▓ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдкреНрд░рддрд┐рд╢рдд рдбрд╛рд▓рддреЗ рд╣реИрдВ, рддрд╛рдХрд┐ рдХреИрд╢ рдУрд╡рд░рдлрд╝реНрд▓реЛ рди рд╣реЛ? рдЖрдЗрдП рдмреНрд▓реЙрдХ рдХреИрд╢ рдореЗрдВ рдбреЗрдЯрд╛ рдбрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝рдВрдХреНрд╢рди рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдХреЛрдб рдХреА рдХреЗрд╡рд▓ рдХреБрдЫ рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдЬреЛрдбрд╝рдХрд░ рд╢реБрд░реБрдЖрдд рдХрд░реЗрдВ:

  public void cacheBlock(BlockCacheKey cacheKey, Cacheable buf, boolean inMemory) {
    if (cacheDataBlockPercent != 100 && buf.getBlockType().isData()) {
      if (cacheKey.getOffset() % 100 >= cacheDataBlockPercent) {
        return;
      }
    }
...

рдпрд╣рд╛рдВ рдореБрджреНрджрд╛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реИ: рдСрдлрд╕реЗрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдмреНрд▓реЙрдХ рдХреА рд╕реНрдерд┐рддрд┐ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рдЕрдВрддрд┐рдо рдЕрдВрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд░реВрдк рд╕реЗ рдФрд░ рд╕рдорд╛рди рд░реВрдк рд╕реЗ 00 рд╕реЗ 99 рддрдХ рд╡рд┐рддрд░рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рд╣рдо рдХреЗрд╡рд▓ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЛ рдЫреЛрдбрд╝ рджреЗрдВрдЧреЗ рдЬреЛ рд╣рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рд╕реАрдорд╛ рдореЗрдВ рдЖрддреЗ рд╣реИрдВред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреИрд╢рдбреЗрдЯрд╛рдмреНрд▓реЙрдХрдкреЗрд╕реЗрдВрдЯ = 20 рд╕реЗрдЯ рдХрд░реЗрдВ рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ:

HBase рд╕реЗ 3 рдЧреБрдирд╛ рдФрд░ HDFS рд╕реЗ 5 рдЧреБрдирд╛ рддрдХ рдкрдврд╝рдиреЗ рдХреА рдЧрддрд┐ рдХреИрд╕реЗ рдмрдврд╝рд╛рдПрдВ

рдкрд░рд┐рдгрд╛рдо рд╕реНрдкрд╖реНрдЯ рд╣реИ. рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЧреНрд░рд╛рдлрд╝ рдореЗрдВ, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдЗрддрдиреА рддреЗрдЬреА рдХреНрдпреЛрдВ рдЖрдИ - рд╣рдо рдХреИрд╢ рдореЗрдВ рдбреЗрдЯрд╛ рд░рдЦрдиреЗ рдХреЗ рд╕рд┐рд╕рд┐рдлрд╝рд┐рдпрди рдХрд╛рд░реНрдп рдХрд┐рдП рдмрд┐рдирд╛ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЬреАрд╕реА рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдмрдЪрд╛рддреЗ рд╣реИрдВ, рдХреЗрд╡рд▓ рдЗрд╕реЗ рддреБрд░рдВрдд рдорд╛рд░реНрдЯрд┐рдпрди рдХреБрддреНрддреЛрдВ рдХреА рдирд╛рд▓реА рдореЗрдВ рдлреЗрдВрдХрдиреЗ рдХреЗ рд▓рд┐рдП:

HBase рд╕реЗ 3 рдЧреБрдирд╛ рдФрд░ HDFS рд╕реЗ 5 рдЧреБрдирд╛ рддрдХ рдкрдврд╝рдиреЗ рдХреА рдЧрддрд┐ рдХреИрд╕реЗ рдмрдврд╝рд╛рдПрдВ

рд╕рд╛рде рд╣реА, рд╕реАрдкреАрдпреВ рдЙрдкрдпреЛрдЧ рдмрдврд╝рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрддреНрдкрд╛рджрдХрддрд╛ рд╕реЗ рдмрд╣реБрдд рдХрдо рд╣реИ:

HBase рд╕реЗ 3 рдЧреБрдирд╛ рдФрд░ HDFS рд╕реЗ 5 рдЧреБрдирд╛ рддрдХ рдкрдврд╝рдиреЗ рдХреА рдЧрддрд┐ рдХреИрд╕реЗ рдмрдврд╝рд╛рдПрдВ

рдпрд╣ рднреА рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдмреНрд▓реЙрдХ рдХреИрд╢ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдмреНрд▓реЙрдХ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реИрдВред рдЕрдзрд┐рдХрд╛рдВрд╢, рд▓рдЧрднрдЧ 95%, рдбреЗрдЯрд╛ рд╣реА рд╣реИред рдФрд░ рдмрд╛рдХреА рдореЗрдЯрд╛рдбреЗрдЯрд╛ рд╣реИ, рдЬреИрд╕реЗ рдмреНрд▓реВрдо рдлрд╝рд┐рд▓реНрдЯрд░ рдпрд╛ LEAF_INDEX рдФрд░ рдЖрджрд┐. рдпрд╣ рдбреЗрдЯрд╛ рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╕реАрдзреЗ рдбреЗрдЯрд╛ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, HBase рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдореЗрдЯрд╛ рдХреА рдУрд░ рдореБрдбрд╝рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдпрд╣рд╛рдВ рдЖрдЧреЗ рдЦреЛрдЬрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдФрд░ рдпрджрд┐ рд╣рд╛рдВ, рддреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд░реБрдЪрд┐ рдХрд╛ рдмреНрд▓реЙрдХ рдХрд╣рд╛рдВ рд╕реНрдерд┐рдд рд╣реИред

рдЗрд╕рд▓рд┐рдП, рдХреЛрдб рдореЗрдВ рд╣рдо рдПрдХ рдЪреЗрдХ рд╕реНрдерд┐рддрд┐ рджреЗрдЦрддреЗ рд╣реИрдВ buf.getBlockType().isData() рдФрд░ рдЗрд╕ рдореЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рд╣рдо рдЗрд╕реЗ рдХрд┐рд╕реА рднреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдХреИрд╢ рдореЗрдВ рдЫреЛрдбрд╝ рджреЗрдВрдЧреЗред

рдЕрдм рдЖрдЗрдП рд▓реЛрдб рдмрдврд╝рд╛рдПрдВ рдФрд░ рдПрдХ рдмрд╛рд░ рдореЗрдВ рдлреАрдЪрд░ рдХреЛ рдереЛрдбрд╝рд╛ рдХрд╕ рд▓реЗрдВред рдкрд╣рд▓реЗ рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рд╣рдордиреЗ рдХрдЯрдСрдл рдкреНрд░рддрд┐рд╢рдд = 20 рдмрдирд╛рдпрд╛ рдФрд░ рдмреНрд▓реЙрдХ рдХреИрд╢ рдХрд╛ рдереЛрдбрд╝рд╛ рдХрдо рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдЕрдм рдЗрд╕реЗ 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 рдПрдордмреА рд╕реЗрдЯ рдХрд░рдирд╛ рдЗрд╖реНрдЯрддрдо рд╣реИред рдордзреНрдпрдо рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП (~10 рдХреЛрд░) 200-300 рдПрдордмреАред рдХрдордЬреЛрд░ рд╕рд┐рд╕реНрдЯрдо (2-5 рдХреЛрд░) рдХреЗ рд▓рд┐рдП 50-100 рдПрдордмреА рд╕рд╛рдорд╛рдиреНрдп рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (рдЗрди рдкрд░ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ)ред

рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ: рдорд╛рди рд▓реЗрдВ рдХрд┐ рд╣рдордиреЗ hbase.lru.cache.heavy.eviction.mb.size.limit = 500 рд╕реЗрдЯ рдХрд┐рдпрд╛ рд╣реИ, рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХрд╛ рд▓реЛрдб (рд░реАрдбрд┐рдВрдЧ) рд╣реИ рдФрд░ рдлрд┐рд░ рд╣рд░ ~ 10 рд╕реЗрдХрдВрдб рдореЗрдВ рд╣рдо рдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдХрд┐рддрдиреЗ рдмрд╛рдЗрдЯреНрд╕ рдереЗ рд╕реВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмреЗрджрдЦрд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛:

рдУрд╡рд░рд╣реЗрдб = рдореБрдХреНрдд рдмрд╛рдЗрдЯреНрд╕ рдпреЛрдЧ (рдПрдордмреА) * 100 / рд╕реАрдорд╛ (рдПрдордмреА) - 100;

рдпрджрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ 2000 рдПрдордмреА рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛, рддреЛ рдУрд╡рд░рд╣реЗрдб рдЗрд╕рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ:

2000 * 100 / 500 - 100 = 300%

рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреБрдЫ рджрд╕рд┐рдпреЛрдВ рдкреНрд░рддрд┐рд╢рдд рд╕реЗ рдЕрдзрд┐рдХ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛ рдХреИрд╢реНрдб рдмреНрд▓реЙрдХ рдХреЗ рдкреНрд░рддрд┐рд╢рдд рдХреЛ рдХрдо рдХрд░ рджреЗрдЧреА, рдЬрд┐рд╕рд╕реЗ рдПрдХ рдСрдЯреЛ-рдЯреНрдпреВрдирд┐рдВрдЧ рддрдВрддреНрд░ рд▓рд╛рдЧреВ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрджрд┐ рд▓реЛрдб рдЧрд┐рд░рддрд╛ рд╣реИ, рддреЛ рдорд╛рди рд▓реЗрдВ рдХрд┐ рдХреЗрд╡рд▓ 200 рдПрдордмреА рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдУрд╡рд░рд╣реЗрдб рдирдХрд╛рд░рд╛рддреНрдордХ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ (рддрдерд╛рдХрдерд┐рдд рдУрд╡рд░рд╢реВрдЯрд┐рдВрдЧ):

200 * 100 / 500 - 100 = -60%

рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, рдЬрдм рддрдХ рдУрд╡рд░рд╣реЗрдб рд╕рдХрд╛рд░рд╛рддреНрдордХ рдирд╣реАрдВ рд╣реЛ рдЬрд╛рддрд╛, рддрдм рддрдХ рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдХреИрд╢реНрдб рдмреНрд▓реЙрдХ рдХреЗ рдкреНрд░рддрд┐рд╢рдд рдХреЛ рдмрдврд╝рд╛рдПрдЧреАред

рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдбреЗрдЯрд╛ рдкрд░ рдпрд╣ рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ рдЗрд╕рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдиреАрдЪреЗ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред 0% рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдЕрд╕рдВрднрд╡ рд╣реИред рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ рдЬрдм рдпрд╣ рд▓рдЧрднрдЧ 30 - 100% рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рд╕реЗ рдЕрд▓реНрдкрдХрд╛рд▓рд┐рдХ рдЙрдЫрд╛рд▓ рдХреЗ рджреМрд░рд╛рди рдЕрдиреБрдХреВрд▓рди рдореЛрдб рд╕реЗ рд╕рдордп рд╕реЗ рдкрд╣рд▓реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рд╕реЗ рдмрдЪрдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓рддреА рд╣реИред

hbase.lru.cache.heavy.eviction.overhead.coefficient тАФ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдХрд┐рддрдиреА рдЬрд▓реНрджреА рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗред рдпрджрд┐ рд╣рдо рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд╣рдорд╛рд░реА рд░реАрдбрд┐рдВрдЧ рдЕрдзрд┐рдХрддрд░ рд▓рдВрдмреА рд╣реИ рдФрд░ рд╣рдо рдЗрдВрддрдЬрд╛рд░ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдЗрд╕ рдЕрдиреБрдкрд╛рдд рдХреЛ рдмрдврд╝рд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рддреЗрдЬреА рд╕реЗ рдЙрдЪреНрдЪ рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рдпрд╣ рдЧреБрдгрд╛рдВрдХ = 0.01 рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдкрд░рд┐рдгрд╛рдореА рдкрд░рд┐рдгрд╛рдо рд╕реЗ рдУрд╡рд░рд╣реЗрдб (рдКрдкрд░ рджреЗрдЦреЗрдВ) рдХреЛ рдЗрд╕ рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рдЧреБрдгрд╛ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдХреИрд╢реНрдб рдмреНрд▓реЙрдХ рдХрд╛ рдкреНрд░рддрд┐рд╢рдд рдХрдо рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдЖрдЗрдП рдорд╛рди рд▓реЗрдВ рдХрд┐ рдУрд╡рд░рд╣реЗрдб = 300% рдФрд░ рдЧреБрдгрд╛рдВрдХ = 0.01, рддреЛ рдХреИрд╢реНрдб рдмреНрд▓реЙрдХ рдХрд╛ рдкреНрд░рддрд┐рд╢рдд 3% рдХрдо рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

рдПрдХ рд╕рдорд╛рди "рдмреИрдХрдкреНрд░реЗрд╢рд░" рддрд░реНрдХ рдирдХрд╛рд░рд╛рддреНрдордХ рдУрд╡рд░рд╣реЗрдб (рдУрд╡рд░рд╢реВрдЯрд┐рдВрдЧ) рдорд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рднреА рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЪреВрдБрдХрд┐ рд░реАрдб рдФрд░ рдирд┐рд╖реНрдХрд╛рд╕рди рдХреА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдЕрд▓реНрдкрдХрд╛рд▓рд┐рдХ рдЙрддрд╛рд░-рдЪрдврд╝рд╛рд╡ рд╣рдореЗрд╢рд╛ рд╕рдВрднрд╡ рд╣реЛрддрд╛ рд╣реИ, рдпрд╣ рддрдВрддреНрд░ рдЖрдкрдХреЛ рдЕрдиреБрдХреВрд▓рди рдореЛрдб рд╕реЗ рд╕рдордп рд╕реЗ рдкрд╣рд▓реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рд╕реЗ рдмрдЪрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдмреИрдХрдкреНрд░реЗрд╢рд░ рдХрд╛ рдПрдХ рдЙрд▓рдЯрд╛ рддрд░реНрдХ рд╣реИ: рдУрд╡рд░рд╢реВрдЯрд┐рдВрдЧ рдЬрд┐рддрдирд╛ рдордЬрдмреВрдд рд╣реЛрдЧрд╛, рдЙрддрдиреЗ рд╣реА рдЕрдзрд┐рдХ рдмреНрд▓реЙрдХ рдХреИрд╢ рд╣реЛрдВрдЧреЗред

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 рдорд┐рдирдЯ рдХреЗ рдмрд╛рдж, рдорд▓реНрдЯреА-рдЧреЗрдЯреНрд╕ рдЬреЛрдбрд╝реЗрдВ (25 рдзрд╛рдЧреЗ, рдмреИрдЪ = 100)
  3. 5 рдорд┐рдирдЯ рдХреЗ рдмрд╛рдж, рдорд▓реНрдЯреА-рдЧреЗрдЯреНрд╕ рдХреЛ рдмрдВрдж рдХрд░ рджреЗрдВ (рдХреЗрд╡рд▓ рдлрд┐рд░ рд╕реЗ рд╕реНрдХреИрди рдХрд░рдирд╛ рдмрд╛рдХреА рд╣реИ)

рд╣рдо рджреЛ рд░рди рдХрд░рддреЗ рд╣реИрдВ, рдкрд╣рд▓реЗ hbase.lru.cache.heavy.eviction.count.limit = 10000 (рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИ), рдФрд░ рдлрд┐рд░ рд╕реАрдорд╛ = 0 рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ (рдЗрд╕реЗ рд╕рдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИ)ред

рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рд▓реЙрдЧ рдореЗрдВ рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рд╕реБрд╡рд┐рдзрд╛ рдХреИрд╕реЗ рдЪрд╛рд▓реВ рд╣реЛрддреА рд╣реИ рдФрд░ рдУрд╡рд░рд╢реВрдЯрд┐рдВрдЧ рдХреЛ 14-71% рдкрд░ рд░реАрд╕реЗрдЯ рдХрд░рддреА рд╣реИред рд╕рдордп-рд╕рдордп рдкрд░ рд▓реЛрдб рдХрдо рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдмреИрдХрдкреНрд░реЗрд╢рд░ рдФрд░ HBase рдХреИрд╢ рдлрд┐рд░ рд╕реЗ рдЕрдзрд┐рдХ рдмреНрд▓реЙрдХ рдЪрд╛рд▓реВ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред

рд░реАрдЬрдирд╕рд░реНрд╡рд░ рд▓реЙрдЧ рдХрд░реЗрдВ
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 0, рдЕрдиреБрдкрд╛рдд 0.0, рдУрд╡рд░рд╣реЗрдб (%): -100, рднрд╛рд░реА рдирд┐рд╖реНрдХрд╛рд╕рди рдХрд╛рдЙрдВрдЯрд░: 0, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 100
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 0, рдЕрдиреБрдкрд╛рдд 0.0, рдУрд╡рд░рд╣реЗрдб (%): -100, рднрд╛рд░реА рдирд┐рд╖реНрдХрд╛рд╕рди рдХрд╛рдЙрдВрдЯрд░: 0, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 100
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 2170, рдЕрдиреБрдкрд╛рдд 1.09, рдУрд╡рд░рд╣реЗрдб (%): 985, рднрд╛рд░реА рдирд┐рд╖реНрдХрд╛рд╕рди рдХрд╛рдЙрдВрдЯрд░: 1, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 91 < рдкреНрд░рд╛рд░рдВрдн
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 3763, рдЕрдиреБрдкрд╛рдд 1.08, рдУрд╡рд░рд╣реЗрдб (%): 1781, рднрд╛рд░реА рдирд┐рд╖реНрдХрд╛рд╕рди рдХрд╛рдЙрдВрдЯрд░: 2, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 76
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 3306, рдЕрдиреБрдкрд╛рдд 1.07, рдУрд╡рд░рд╣реЗрдб (%): 1553, рднрд╛рд░реА рдирд┐рд╖реНрдХрд╛рд╕рди рдХрд╛рдЙрдВрдЯрд░: 3, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 61
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 2508, рдЕрдиреБрдкрд╛рдд 1.06, рдУрд╡рд░рд╣реЗрдб (%): 1154, рднрд╛рд░реА рдирд┐рд╖реНрдХрд╛рд╕рди рдХрд╛рдЙрдВрдЯрд░: 4, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 50
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 1824, рдЕрдиреБрдкрд╛рдд 1.04, рдУрд╡рд░рд╣реЗрдб (%): 812, рднрд╛рд░реА рдирд┐рд╖реНрдХрд╛рд╕рди рдХрд╛рдЙрдВрдЯрд░: 5, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 42
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 1482, рдЕрдиреБрдкрд╛рдд 1.03, рдУрд╡рд░рд╣реЗрдб (%): 641, рднрд╛рд░реА рдирд┐рд╖реНрдХрд╛рд╕рди рдХрд╛рдЙрдВрдЯрд░: 6, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 36
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 1140, рдЕрдиреБрдкрд╛рдд 1.01, рдУрд╡рд░рд╣реЗрдб (%): 470, рднрд╛рд░реА рдирд┐рд╖реНрдХрд╛рд╕рди рдХрд╛рдЙрдВрдЯрд░: 7, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 32
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 913, рдЕрдиреБрдкрд╛рдд 1.0, рдУрд╡рд░рд╣реЗрдб (%): 356, рднрд╛рд░реА рдирд┐рд╖реНрдХрд╛рд╕рди рдХрд╛рдЙрдВрдЯрд░: 8, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 29
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 912, рдЕрдиреБрдкрд╛рдд 0.89, рдУрд╡рд░рд╣реЗрдб (%): 356, рднрд╛рд░реА рдирд┐рд╖реНрдХрд╛рд╕рди рдХрд╛рдЙрдВрдЯрд░: 9, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 26
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 684, рдЕрдиреБрдкрд╛рдд 0.76, рдУрд╡рд░рд╣реЗрдб (%): 242, рднрд╛рд░реА рдирд┐рд╖реНрдХрд╛рд╕рди рдХрд╛рдЙрдВрдЯрд░: 10, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 24
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 684, рдЕрдиреБрдкрд╛рдд 0.61, рдУрд╡рд░рд╣реЗрдб (%): 242, рднрд╛рд░реА рдирд┐рд╖реНрдХрд╛рд╕рди рдХрд╛рдЙрдВрдЯрд░: 11, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 22
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 456, рдЕрдиреБрдкрд╛рдд 0.51, рдУрд╡рд░рд╣реЗрдб (%): 128, рднрд╛рд░реА рдирд┐рд╖реНрдХрд╛рд╕рди рдХрд╛рдЙрдВрдЯрд░: 12, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 21
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 456, рдЕрдиреБрдкрд╛рдд 0.42, рдУрд╡рд░рд╣реЗрдб (%): 128, рднрд╛рд░реА рдирд┐рд╖реНрдХрд╛рд╕рди рдХрд╛рдЙрдВрдЯрд░: 13, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 20
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 456, рдЕрдиреБрдкрд╛рдд 0.33, рдУрд╡рд░рд╣реЗрдб (%): 128, рднрд╛рд░реА рдирд┐рд╖реНрдХрд╛рд╕рди рдХрд╛рдЙрдВрдЯрд░: 14, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 19
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 342, рдЕрдиреБрдкрд╛рдд 0.33, рдУрд╡рд░рд╣реЗрдб (%): 71, рднрд╛рд░реА рдирд┐рд╖реНрдХрд╛рд╕рди рдХрд╛рдЙрдВрдЯрд░: 15, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 19
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 342, рдЕрдиреБрдкрд╛рдд 0.32, рдУрд╡рд░рд╣реЗрдб (%): 71, рднрд╛рд░реА рдирд┐рд╖реНрдХрд╛рд╕рди рдХрд╛рдЙрдВрдЯрд░: 16, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 19
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 342, рдЕрдиреБрдкрд╛рдд 0.31, рдУрд╡рд░рд╣реЗрдб (%): 71, рднрд╛рд░реА рдирд┐рд╖реНрдХрд╛рд╕рди рдХрд╛рдЙрдВрдЯрд░: 17, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 19
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 228, рдЕрдиреБрдкрд╛рдд 0.3, рдУрд╡рд░рд╣реЗрдб (%): 14, рднрд╛рд░реА рдирд┐рд╖реНрдХрд╛рд╕рди рдХрд╛рдЙрдВрдЯрд░: 18, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 19
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 228, рдЕрдиреБрдкрд╛рдд 0.29, рдУрд╡рд░рд╣реЗрдб (%): 14, рднрд╛рд░реА рдирд┐рд╖реНрдХрд╛рд╕рди рдХрд╛рдЙрдВрдЯрд░: 19, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 19
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 228, рдЕрдиреБрдкрд╛рдд 0.27, рдУрд╡рд░рд╣реЗрдб (%): 14, рднрд╛рд░реА рдирд┐рд╖реНрдХрд╛рд╕рди рдХрд╛рдЙрдВрдЯрд░: 20, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 19
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 228, рдЕрдиреБрдкрд╛рдд 0.25, рдУрд╡рд░рд╣реЗрдб (%): 14, рднрд╛рд░реА рдирд┐рд╖реНрдХрд╛рд╕рди рдХрд╛рдЙрдВрдЯрд░: 21, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 19
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 228, рдЕрдиреБрдкрд╛рдд 0.24, рдУрд╡рд░рд╣реЗрдб (%): 14, рднрд╛рд░реА рдирд┐рд╖реНрдХрд╛рд╕рди рдХрд╛рдЙрдВрдЯрд░: 22, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 19
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 228, рдЕрдиреБрдкрд╛рдд 0.22, рдУрд╡рд░рд╣реЗрдб (%): 14, рднрд╛рд░реА рдирд┐рд╖реНрдХрд╛рд╕рди рдХрд╛рдЙрдВрдЯрд░: 23, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 19
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 228, рдЕрдиреБрдкрд╛рдд 0.21, рдУрд╡рд░рд╣реЗрдб (%): 14, рднрд╛рд░реА рдирд┐рд╖реНрдХрд╛рд╕рди рдХрд╛рдЙрдВрдЯрд░: 24, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 19
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 228, рдЕрдиреБрдкрд╛рдд 0.2, рдУрд╡рд░рд╣реЗрдб (%): 14, рднрд╛рд░реА рдирд┐рд╖реНрдХрд╛рд╕рди рдХрд╛рдЙрдВрдЯрд░: 25, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 19
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 228, рдЕрдиреБрдкрд╛рдд 0.17, рдУрд╡рд░рд╣реЗрдб (%): 14, рднрд╛рд░реА рдирд┐рд╖реНрдХрд╛рд╕рди рдХрд╛рдЙрдВрдЯрд░: 26, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 19
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 456, рдЕрдиреБрдкрд╛рдд 0.17, рдУрд╡рд░рд╣реЗрдб (%): 128, рднрд╛рд░реА рдирд┐рд╖реНрдХрд╛рд╕рди рдХрд╛рдЙрдВрдЯрд░: 27, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 18 <рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ (рд▓реЗрдХрд┐рди рддрд╛рд▓рд┐рдХрд╛ рд╡рд╣реА рд╣реИ)
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 456, рдЕрдиреБрдкрд╛рдд 0.15, рдУрд╡рд░рд╣реЗрдб (%): 128, рднрд╛рд░реА рдирд┐рд╖реНрдХрд╛рд╕рди рдХрд╛рдЙрдВрдЯрд░: 28, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 17
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 342, рдЕрдиреБрдкрд╛рдд 0.13, рдУрд╡рд░рд╣реЗрдб (%): 71, рднрд╛рд░реА рдирд┐рд╖реНрдХрд╛рд╕рди рдХрд╛рдЙрдВрдЯрд░: 29, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 17
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 342, рдЕрдиреБрдкрд╛рдд 0.11, рдУрд╡рд░рд╣реЗрдб (%): 71, рднрд╛рд░реА рдирд┐рд╖реНрдХрд╛рд╕рди рдХрд╛рдЙрдВрдЯрд░: 30, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 17
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 342, рдЕрдиреБрдкрд╛рдд 0.09, рдУрд╡рд░рд╣реЗрдб (%): 71, рднрд╛рд░реА рдирд┐рд╖реНрдХрд╛рд╕рди рдХрд╛рдЙрдВрдЯрд░: 31, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 17
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 228, рдЕрдиреБрдкрд╛рдд 0.08, рдУрд╡рд░рд╣реЗрдб (%): 14, рднрд╛рд░реА рдирд┐рд╖реНрдХрд╛рд╕рди рдХрд╛рдЙрдВрдЯрд░: 32, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 17
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 228, рдЕрдиреБрдкрд╛рдд 0.07, рдУрд╡рд░рд╣реЗрдб (%): 14, рднрд╛рд░реА рдирд┐рд╖реНрдХрд╛рд╕рди рдХрд╛рдЙрдВрдЯрд░: 33, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 17
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 228, рдЕрдиреБрдкрд╛рдд 0.06, рдУрд╡рд░рд╣реЗрдб (%): 14, рднрд╛рд░реА рдирд┐рд╖реНрдХрд╛рд╕рди рдХрд╛рдЙрдВрдЯрд░: 34, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 17
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 228, рдЕрдиреБрдкрд╛рдд 0.05, рдУрд╡рд░рд╣реЗрдб (%): 14, рднрд╛рд░реА рдирд┐рд╖реНрдХрд╛рд╕рди рдХрд╛рдЙрдВрдЯрд░: 35, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 17
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 228, рдЕрдиреБрдкрд╛рдд 0.05, рдУрд╡рд░рд╣реЗрдб (%): 14, рднрд╛рд░реА рдирд┐рд╖реНрдХрд╛рд╕рди рдХрд╛рдЙрдВрдЯрд░: 36, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 17
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 228, рдЕрдиреБрдкрд╛рдд 0.04, рдУрд╡рд░рд╣реЗрдб (%): 14, рднрд╛рд░реА рдирд┐рд╖реНрдХрд╛рд╕рди рдХрд╛рдЙрдВрдЯрд░: 37, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 17
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 109, рдЕрдиреБрдкрд╛рдд 0.04, рдУрд╡рд░рд╣реЗрдб (%): -46, рднрд╛рд░реА рдирд┐рд╖реНрдХрд╛рд╕рди рдХрд╛рдЙрдВрдЯрд░: 37, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 22 <рдмреИрдХ рдкреНрд░реЗрд╢рд░
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 798, рдЕрдиреБрдкрд╛рдд 0.24, рдУрд╡рд░рд╣реЗрдб (%): 299, рднрд╛рд░реА рдирд┐рд╖реНрдХрд╛рд╕рди рдХрд╛рдЙрдВрдЯрд░: 38, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 20
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 798, рдЕрдиреБрдкрд╛рдд 0.29, рдУрд╡рд░рд╣реЗрдб (%): 299, рднрд╛рд░реА рдирд┐рд╖реНрдХрд╛рд╕рди рдХрд╛рдЙрдВрдЯрд░: 39, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 18
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 570, рдЕрдиреБрдкрд╛рдд 0.27, рдУрд╡рд░рд╣реЗрдб (%): 185, рднрд╛рд░реА рдирд┐рд╖реНрдХрд╛рд╕рди рдХрд╛рдЙрдВрдЯрд░: 40, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 17
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 456, рдЕрдиреБрдкрд╛рдд 0.22, рдУрд╡рд░рд╣реЗрдб (%): 128, рднрд╛рд░реА рдирд┐рд╖реНрдХрд╛рд╕рди рдХрд╛рдЙрдВрдЯрд░: 41, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 16
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 342, рдЕрдиреБрдкрд╛рдд 0.16, рдУрд╡рд░рд╣реЗрдб (%): 71, рднрд╛рд░реА рдирд┐рд╖реНрдХрд╛рд╕рди рдХрд╛рдЙрдВрдЯрд░: 42, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 16
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 342, рдЕрдиреБрдкрд╛рдд 0.11, рдУрд╡рд░рд╣реЗрдб (%): 71, рднрд╛рд░реА рдирд┐рд╖реНрдХрд╛рд╕рди рдХрд╛рдЙрдВрдЯрд░: 43, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 16
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 228, рдЕрдиреБрдкрд╛рдд 0.09, рдУрд╡рд░рд╣реЗрдб (%): 14, рднрд╛рд░реА рдирд┐рд╖реНрдХрд╛рд╕рди рдХрд╛рдЙрдВрдЯрд░: 44, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 16
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 228, рдЕрдиреБрдкрд╛рдд 0.07, рдУрд╡рд░рд╣реЗрдб (%): 14, рднрд╛рд░реА рдирд┐рд╖реНрдХрд╛рд╕рди рдХрд╛рдЙрдВрдЯрд░: 45, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 16
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 228, рдЕрдиреБрдкрд╛рдд 0.05, рдУрд╡рд░рд╣реЗрдб (%): 14, рднрд╛рд░реА рдирд┐рд╖реНрдХрд╛рд╕рди рдХрд╛рдЙрдВрдЯрд░: 46, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 16
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 222, рдЕрдиреБрдкрд╛рдд 0.04, рдУрд╡рд░рд╣реЗрдб (%): 11, рднрд╛рд░реА рдирд┐рд╖реНрдХрд╛рд╕рди рдХрд╛рдЙрдВрдЯрд░: 47, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 16
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 104, рдЕрдиреБрдкрд╛рдд 0.03, рдУрд╡рд░рд╣реЗрдб (%): -48, рднрд╛рд░реА рдирд┐рд╖реНрдХрд╛рд╕рди рдХрд╛рдЙрдВрдЯрд░: 47, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 21 < рд╡реНрдпрд╡рдзрд╛рди рдорд┐рд▓рддрд╛ рд╣реИ
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 684, рдЕрдиреБрдкрд╛рдд 0.2, рдУрд╡рд░рд╣реЗрдб (%): 242, рднрд╛рд░реА рдирд┐рд╖реНрдХрд╛рд╕рди рдХрд╛рдЙрдВрдЯрд░: 48, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 19
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 570, рдЕрдиреБрдкрд╛рдд 0.23, рдУрд╡рд░рд╣реЗрдб (%): 185, рднрд╛рд░реА рдирд┐рд╖реНрдХрд╛рд╕рди рдХрд╛рдЙрдВрдЯрд░: 49, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 18
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 342, рдЕрдиреБрдкрд╛рдд 0.22, рдУрд╡рд░рд╣реЗрдб (%): 71, рднрд╛рд░реА рдирд┐рд╖реНрдХрд╛рд╕рди рдХрд╛рдЙрдВрдЯрд░: 50, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 18
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 228, рдЕрдиреБрдкрд╛рдд 0.21, рдУрд╡рд░рд╣реЗрдб (%): 14, рднрд╛рд░реА рдирд┐рд╖реНрдХрд╛рд╕рди рдХрд╛рдЙрдВрдЯрд░: 51, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 18
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 228, рдЕрдиреБрдкрд╛рдд 0.2, рдУрд╡рд░рд╣реЗрдб (%): 14, рднрд╛рд░реА рдирд┐рд╖реНрдХрд╛рд╕рди рдХрд╛рдЙрдВрдЯрд░: 52, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 18
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 228, рдЕрдиреБрдкрд╛рдд 0.18, рдУрд╡рд░рд╣реЗрдб (%): 14, рднрд╛рд░реА рдирд┐рд╖реНрдХрд╛рд╕рди рдХрд╛рдЙрдВрдЯрд░: 53, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 18
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 228, рдЕрдиреБрдкрд╛рдд 0.16, рдУрд╡рд░рд╣реЗрдб (%): 14, рднрд╛рд░реА рдирд┐рд╖реНрдХрд╛рд╕рди рдХрд╛рдЙрдВрдЯрд░: 54, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 18
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 228, рдЕрдиреБрдкрд╛рдд 0.14, рдУрд╡рд░рд╣реЗрдб (%): 14, рднрд╛рд░реА рдирд┐рд╖реНрдХрд╛рд╕рди рдХрд╛рдЙрдВрдЯрд░: 55, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 18
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 112, рдЕрдиреБрдкрд╛рдд 0.14, рдУрд╡рд░рд╣реЗрдб (%): -44, рднрд╛рд░реА рдирд┐рд╖реНрдХрд╛рд╕рди рдХрд╛рдЙрдВрдЯрд░: 55, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 23 <рдмреИрдХ рдкреНрд░реЗрд╢рд░
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 456, рдЕрдиреБрдкрд╛рдд 0.26, рдУрд╡рд░рд╣реЗрдб (%): 128, рднрд╛рд░реА рдирд┐рд╖реНрдХрд╛рд╕рди рдХрд╛рдЙрдВрдЯрд░: 56, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 22
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 342, рдЕрдиреБрдкрд╛рдд 0.31, рдУрд╡рд░рд╣реЗрдб (%): 71, рднрд╛рд░реА рдирд┐рд╖реНрдХрд╛рд╕рди рдХрд╛рдЙрдВрдЯрд░: 57, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 22
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 342, рдЕрдиреБрдкрд╛рдд 0.33, рдУрд╡рд░рд╣реЗрдб (%): 71, рднрд╛рд░реА рдирд┐рд╖реНрдХрд╛рд╕рди рдХрд╛рдЙрдВрдЯрд░: 58, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 22
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 342, рдЕрдиреБрдкрд╛рдд 0.33, рдУрд╡рд░рд╣реЗрдб (%): 71, рднрд╛рд░реА рдирд┐рд╖реНрдХрд╛рд╕рди рдХрд╛рдЙрдВрдЯрд░: 59, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 22
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 342, рдЕрдиреБрдкрд╛рдд 0.33, рдУрд╡рд░рд╣реЗрдб (%): 71, рднрд╛рд░реА рдирд┐рд╖реНрдХрд╛рд╕рди рдХрд╛рдЙрдВрдЯрд░: 60, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 22
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 342, рдЕрдиреБрдкрд╛рдд 0.33, рдУрд╡рд░рд╣реЗрдб (%): 71, рднрд╛рд░реА рдирд┐рд╖реНрдХрд╛рд╕рди рдХрд╛рдЙрдВрдЯрд░: 61, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 22
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 342, рдЕрдиреБрдкрд╛рдд 0.33, рдУрд╡рд░рд╣реЗрдб (%): 71, рднрд╛рд░реА рдирд┐рд╖реНрдХрд╛рд╕рди рдХрд╛рдЙрдВрдЯрд░: 62, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 22
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 342, рдЕрдиреБрдкрд╛рдд 0.33, рдУрд╡рд░рд╣реЗрдб (%): 71, рднрд╛рд░реА рдирд┐рд╖реНрдХрд╛рд╕рди рдХрд╛рдЙрдВрдЯрд░: 63, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 22
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 342, рдЕрдиреБрдкрд╛рдд 0.32, рдУрд╡рд░рд╣реЗрдб (%): 71, рднрд╛рд░реА рдирд┐рд╖реНрдХрд╛рд╕рди рдХрд╛рдЙрдВрдЯрд░: 64, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 22
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 342, рдЕрдиреБрдкрд╛рдд 0.33, рдУрд╡рд░рд╣реЗрдб (%): 71, рднрд╛рд░реА рдирд┐рд╖реНрдХрд╛рд╕рди рдХрд╛рдЙрдВрдЯрд░: 65, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 22
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 342, рдЕрдиреБрдкрд╛рдд 0.33, рдУрд╡рд░рд╣реЗрдб (%): 71, рднрд╛рд░реА рдирд┐рд╖реНрдХрд╛рд╕рди рдХрд╛рдЙрдВрдЯрд░: 66, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 22
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 342, рдЕрдиреБрдкрд╛рдд 0.32, рдУрд╡рд░рд╣реЗрдб (%): 71, рднрд╛рд░реА рдирд┐рд╖реНрдХрд╛рд╕рди рдХрд╛рдЙрдВрдЯрд░: 67, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 22
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 342, рдЕрдиреБрдкрд╛рдд 0.33, рдУрд╡рд░рд╣реЗрдб (%): 71, рднрд╛рд░реА рдирд┐рд╖реНрдХрд╛рд╕рди рдХрд╛рдЙрдВрдЯрд░: 68, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 22
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 342, рдЕрдиреБрдкрд╛рдд 0.32, рдУрд╡рд░рд╣реЗрдб (%): 71, рднрд╛рд░реА рдирд┐рд╖реНрдХрд╛рд╕рди рдХрд╛рдЙрдВрдЯрд░: 69, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 22
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 342, рдЕрдиреБрдкрд╛рдд 0.32, рдУрд╡рд░рд╣реЗрдб (%): 71, рднрд╛рд░реА рдирд┐рд╖реНрдХрд╛рд╕рди рдХрд╛рдЙрдВрдЯрд░: 70, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 22
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 342, рдЕрдиреБрдкрд╛рдд 0.33, рдУрд╡рд░рд╣реЗрдб (%): 71, рднрд╛рд░реА рдирд┐рд╖реНрдХрд╛рд╕рди рдХрд╛рдЙрдВрдЯрд░: 71, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 22
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 342, рдЕрдиреБрдкрд╛рдд 0.33, рдУрд╡рд░рд╣реЗрдб (%): 71, рднрд╛рд░реА рдирд┐рд╖реНрдХрд╛рд╕рди рдХрд╛рдЙрдВрдЯрд░: 72, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 22
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 342, рдЕрдиреБрдкрд╛рдд 0.33, рдУрд╡рд░рд╣реЗрдб (%): 71, рднрд╛рд░реА рдирд┐рд╖реНрдХрд╛рд╕рди рдХрд╛рдЙрдВрдЯрд░: 73, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 22
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 342, рдЕрдиреБрдкрд╛рдд 0.33, рдУрд╡рд░рд╣реЗрдб (%): 71, рднрд╛рд░реА рдирд┐рд╖реНрдХрд╛рд╕рди рдХрд╛рдЙрдВрдЯрд░: 74, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 22
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 342, рдЕрдиреБрдкрд╛рдд 0.33, рдУрд╡рд░рд╣реЗрдб (%): 71, рднрд╛рд░реА рдирд┐рд╖реНрдХрд╛рд╕рди рдХрд╛рдЙрдВрдЯрд░: 75, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 22
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 342, рдЕрдиреБрдкрд╛рдд 0.33, рдУрд╡рд░рд╣реЗрдб (%): 71, рднрд╛рд░реА рдирд┐рд╖реНрдХрд╛рд╕рди рдХрд╛рдЙрдВрдЯрд░: 76, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 22
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 21, рдЕрдиреБрдкрд╛рдд 0.33, рдУрд╡рд░рд╣реЗрдб (%): -90, рднрд╛рд░реА рдирд┐рд╖реНрдХрд╛рд╕рди рдХрд╛рдЙрдВрдЯрд░: 76, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 32
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 0, рдЕрдиреБрдкрд╛рдд 0.0, рдУрд╡рд░рд╣реЗрдб (%): -100, рднрд╛рд░реА рдирд┐рд╖реНрдХрд╛рд╕рди рдХрд╛рдЙрдВрдЯрд░: 0, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 100
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 0, рдЕрдиреБрдкрд╛рдд 0.0, рдУрд╡рд░рд╣реЗрдб (%): -100, рднрд╛рд░реА рдирд┐рд╖реНрдХрд╛рд╕рди рдХрд╛рдЙрдВрдЯрд░: 0, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 100

рд╕реНрдХреИрди рдХреЛ рджреЛ рдХреИрд╢ рдЕрдиреБрднрд╛рдЧреЛрдВ рдХреЗ рдмреАрдЪ рд╕рдВрдмрдВрдз рдХреЗ рдЧреНрд░рд╛рдл рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд╣реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рджрд┐рдЦрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА - рдПрдХрд▓ (рдЬрд╣рд╛рдВ рдмреНрд▓реЙрдХ рдЬрд┐рдирдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рдХрднреА рдЕрдиреБрд░реЛрдз рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ) рдФрд░ рдорд▓реНрдЯреА (рдбреЗрдЯрд╛ "рдЕрдиреБрд░реЛрдзрд┐рдд" рдХрдо рд╕реЗ рдХрдо рдПрдХ рдмрд╛рд░ рдпрд╣рд╛рдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ):

HBase рд╕реЗ 3 рдЧреБрдирд╛ рдФрд░ HDFS рд╕реЗ 5 рдЧреБрдирд╛ рддрдХ рдкрдврд╝рдиреЗ рдХреА рдЧрддрд┐ рдХреИрд╕реЗ рдмрдврд╝рд╛рдПрдВ

рдФрд░ рдЕрдВрдд рдореЗрдВ, рдЧреНрд░рд╛рдлрд╝ рдХреЗ рд░реВрдк рдореЗрдВ рдкреИрд░рд╛рдореАрдЯрд░реНрд╕ рдХрд╛ рд╕рдВрдЪрд╛рд▓рди рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИред рддреБрд▓рдирд╛ рдХреЗ рд▓рд┐рдП, рдХреИрд╢ рдХреЛ рд╢реБрд░реБрдЖрдд рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдлрд┐рд░ HBase рдХреЛ рдХреИрд╢рд┐рдВрдЧ рдХреЗ рд╕рд╛рде рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдЕрдиреБрдХреВрд▓рди рдХрд╛рд░реНрдп рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ 5 рдорд┐рдирдЯ (30 рдирд┐рд╖реНрдХрд╛рд╕рди рдЪрдХреНрд░) рдХреА рджреЗрд░реА рд╣реБрдИ рдереАред

рдкреВрд░рд╛ рдХреЛрдб рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдПрдЪрдмреАрдПрдПрд╕рдИ 23887 рдЬреАрдердм рдкрд░.

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЗрди рд╢рд░реНрддреЛрдВ рдХреЗ рддрд╣рдд рдЗрд╕ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдкрд░ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб 300 рд╣рдЬрд╛рд░ рд░реАрдбреНрд╕ рд╣реА рд╣рд╛рд╕рд┐рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдЬрдм рдЖрдкрдХреЛ рдПрдЪрдбреАрдПрдлрдПрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбреЗрдЯрд╛ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рд╢реЙрд░реНрдЯрд╕рд░реНрдХрд┐рдЯ рдХреИрд╢ (рдЗрд╕рдХреЗ рдмрд╛рдж рдПрд╕рдПрд╕рд╕реА рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрджрд░реНрднрд┐рдд) рддрдВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдЖрдкрдХреЛ рдиреЗрдЯрд╡рд░реНрдХ рдЗрдВрдЯрд░реИрдХреНрд╢рди рд╕реЗ рдмрдЪрддреЗ рд╣реБрдП рд╕реАрдзреЗ рдбреЗрдЯрд╛ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рдкреНрд░реЛрдлрд╛рдЗрд▓рд┐рдВрдЧ рд╕реЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдпрджреНрдпрдкрд┐ рдпрд╣ рддрдВрддреНрд░ рдПрдХ рдмрдбрд╝рд╛ рд▓рд╛рдн рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреБрдЫ рдмрд┐рдВрджреБ рдкрд░ рдпрд╣ рдПрдХ рдмрд╛рдзрд╛ рднреА рдмрди рдЬрд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд▓рдЧрднрдЧ рд╕рднреА рднрд╛рд░реА рдСрдкрд░реЗрд╢рди рд▓реЙрдХ рдХреЗ рдЕрдВрджрд░ рд╣реЛрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕рдордп рдЕрд╡рд░реБрджреНрдз рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

HBase рд╕реЗ 3 рдЧреБрдирд╛ рдФрд░ HDFS рд╕реЗ 5 рдЧреБрдирд╛ рддрдХ рдкрдврд╝рдиреЗ рдХреА рдЧрддрд┐ рдХреИрд╕реЗ рдмрдврд╝рд╛рдПрдВ

рдЗрд╕реЗ рд╕рдордЭрдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдордиреЗ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдХрд┐ рд╕реНрд╡рддрдВрддреНрд░ рдПрд╕рдПрд╕рд╕реА рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдмрдирд╛рдХрд░ рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдмрдЪрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

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

рдЕрдм рдЖрдк рдкрд░реАрдХреНрд╖рдг рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ. рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдорд▓реНрдЯреА-рдереНрд░реЗрдбреЗрдб рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рд╛рде рдПрдЪрдбреАрдПрдлрдПрд╕ рд╕реЗ рдлрд╛рдЗрд▓реЗрдВ рдкрдврд╝реЗрдВрдЧреЗред рдкреИрд░рд╛рдореАрдЯрд░ рд╕реЗрдЯ рдХрд░реЗрдВ:

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 - рдЧреНрд░рд╛рдлрд╝рд┐рдХреНрд╕) рдмрдврд╝рд╛ рджреЗрдВрдЧреЗред рдКрд░реНрдзреНрд╡рд╛рдзрд░ рдЕрдХреНрд╖ рдЙрд╕ рддреНрд╡рд░рдг рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдЬреЛ рдХреЗрд╡рд▓ рдПрдХ рдХреИрд╢ рд╣реЛрдиреЗ рдкрд░ рдорд╛рдорд▓реЗ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдПрд╕рдПрд╕рд╕реА рдореЗрдВ рд╡реГрджреНрдзрд┐ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╣реЛрддрд╛ рд╣реИред

HBase рд╕реЗ 3 рдЧреБрдирд╛ рдФрд░ HDFS рд╕реЗ 5 рдЧреБрдирд╛ рддрдХ рдкрдврд╝рдиреЗ рдХреА рдЧрддрд┐ рдХреИрд╕реЗ рдмрдврд╝рд╛рдПрдВ

рдЧреНрд░рд╛рдлрд╝ рдХреИрд╕реЗ рдкрдврд╝реЗрдВ: рдПрдХ рдХреИрд╢ рдХреЗ рд╕рд╛рде 100 рдХреЗрдмреА рдмреНрд▓реЙрдХ рдореЗрдВ 64 рд╣рдЬрд╛рд░ рд░реАрдбреНрд╕ рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рд╕рдордп рдХреЗ рд▓рд┐рдП 78 рд╕реЗрдХрдВрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЬрдмрдХрд┐ 5 рдХреИрд╢ рдХреЗ рд╕рд╛рде рдЗрд╕рдореЗрдВ 16 рд╕реЗрдХрдВрдб рдХрд╛ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИред рд╡реЗред ~5 рдЧреБрдирд╛ рддреНрд╡рд░рдг рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдЧреНрд░рд╛рдл рд╕реЗ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд╕рдорд╛рдирд╛рдВрддрд░ рд░реАрдбреНрд╕ рдХреА рдПрдХ рдЫреЛрдЯреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд▓рд┐рдП рдкреНрд░рднрд╛рд╡ рдмрд╣реБрдд рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рдирд╣реАрдВ рд╣реИ; рдпрд╣ 50 рд╕реЗ рдЕрдзрд┐рдХ рдереНрд░реЗрдб рд░реАрдбреНрд╕ рд╣реЛрдиреЗ рдкрд░ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рднреВрдорд┐рдХрд╛ рдирд┐рднрд╛рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрддрд╛ рд╣реИред рдпрд╣ рднреА рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдПрд╕рдПрд╕рд╕реА рдХреА рд╕рдВрдЦреНрдпрд╛ 6 рд╕реЗ рдмрдврд╝ рд░рд╣реА рд╣реИ рдФрд░ рдЗрд╕рд╕реЗ рдКрдкрд░ рдХрд╛рдлреА рдХрдо рдкреНрд░рджрд░реНрд╢рди рд╡реГрджреНрдзрд┐ рдорд┐рд▓рддреА рд╣реИред

рдиреЛрдЯ 1: рдЪреВрдВрдХрд┐ рдкрд░реАрдХреНрд╖рдг рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХрд╛рдлреА рдЕрд╕реНрдерд┐рд░ рд╣реИрдВ (рдиреАрдЪреЗ рджреЗрдЦреЗрдВ), 3 рд░рди рдХрд┐рдП рдЧрдП рдФрд░ рдкрд░рд┐рдгрд╛рдореА рдорд╛рди рдФрд╕рдд рдХрд┐рдП рдЧрдПред

рдиреЛрдЯ 2: рд░реИрдВрдбрдо рдПрдХреНрд╕реЗрд╕ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рд╕реЗ рдкреНрд░рджрд░реНрд╢рди рд▓рд╛рдн рд╕рдорд╛рди рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдПрдХреНрд╕реЗрд╕ рд╕реНрд╡рдпрдВ рдереЛрдбрд╝рд╛ рдзреАрдорд╛ рд╣реИред

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐, HBase рдХреЗ рдорд╛рдорд▓реЗ рдХреЗ рд╡рд┐рдкрд░реАрдд, рдпрд╣ рддреНрд╡рд░рдг рд╣рдореЗрд╢рд╛ рдореБрдлрд╝реНрдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдпрд╣рд╛рдВ рд╣рдо рддрд╛рд▓реЗ рдкрд░ рд▓рдЯрдХрдиреЗ рдХреЗ рдмрдЬрд╛рдп рд╕реАрдкреАрдпреВ рдХреА рдЕрдзрд┐рдХ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЛ "рдЕрдирд▓реЙрдХ" рдХрд░рддреЗ рд╣реИрдВред

HBase рд╕реЗ 3 рдЧреБрдирд╛ рдФрд░ HDFS рд╕реЗ 5 рдЧреБрдирд╛ рддрдХ рдкрдврд╝рдиреЗ рдХреА рдЧрддрд┐ рдХреИрд╕реЗ рдмрдврд╝рд╛рдПрдВ

рдпрд╣рд╛рдВ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐, рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдХреИрд╢ рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╡реГрджреНрдзрд┐ рд╕реАрдкреАрдпреВ рдЙрдкрдпреЛрдЧ рдореЗрдВ рд▓рдЧрднрдЧ рдЖрдиреБрдкрд╛рддрд┐рдХ рд╡реГрджреНрдзрд┐ рджреЗрддреА рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЬреАрддрдиреЗ рд╡рд╛рд▓реЗ рд╕рдВрдпреЛрдЬрди рдереЛрдбрд╝реЗ рдЕрдзрд┐рдХ рд╣реИрдВред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдЗрдП рд╕реЗрдЯрд┐рдВрдЧ рдПрд╕рдПрд╕рд╕реА = 3 рдкрд░ рдХрд░реАрдм рд╕реЗ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВред рд░реЗрдВрдЬ рдкрд░ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рд╡реГрджреНрдзрд┐ рд▓рдЧрднрдЧ 3.3 рдЧреБрдирд╛ рд╣реИред рддреАрдиреЛрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд░рди рдХреЗ рдкрд░рд┐рдгрд╛рдо рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рд╣реИрдВред

HBase рд╕реЗ 3 рдЧреБрдирд╛ рдФрд░ HDFS рд╕реЗ 5 рдЧреБрдирд╛ рддрдХ рдкрдврд╝рдиреЗ рдХреА рдЧрддрд┐ рдХреИрд╕реЗ рдмрдврд╝рд╛рдПрдВ

рдЬрдмрдХрд┐ рд╕реАрдкреАрдпреВ рдХреА рдЦрдкрдд рд▓рдЧрднрдЧ 2.8 рдЧреБрдирд╛ рдмрдврд╝ рдЬрд╛рддреА рд╣реИред рдЕрдВрддрд░ рдмрд╣реБрдд рдмрдбрд╝рд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЫреЛрдЯреА рдЧреНрд░реЗрдЯрд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЦреБрд╢ рд╣реИ рдФрд░ рдЙрд╕рдХреЗ рдкрд╛рд╕ рд╕реНрдХреВрд▓ рдЬрд╛рдиреЗ рдФрд░ рд╕рдмрдХ рд▓реЗрдиреЗ рдХрд╛ рд╕рдордп рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЗрд╕рдХрд╛ рдХрд┐рд╕реА рднреА рдЙрдкрдХрд░рдг рдХреЗ рд▓рд┐рдП рд╕рдХрд╛рд░рд╛рддреНрдордХ рдкреНрд░рднрд╛рд╡ рдкрдбрд╝реЗрдЧрд╛ рдЬреЛ рдПрдЪрдбреАрдПрдлрдПрд╕ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╕реНрдкрд╛рд░реНрдХ рдЗрддреНрдпрд╛рджрд┐) рддрдХ рдереЛрдХ рдкрд╣реБрдВрдЪ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдмрд╢рд░реНрддреЗ рдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛрдб рд╣рд▓реНрдХрд╛ рд╣реЛ (рдпрд╛рдиреА рдкреНрд▓рдЧ рдПрдЪрдбреАрдПрдлрдПрд╕ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕рд╛рдЗрдб рдкрд░ рд╣реЛ) рдФрд░ рдореБрдлреНрдд рд╕реАрдкреАрдпреВ рдкрд╛рд╡рд░ рд╣реЛ . рдЬрд╛рдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдЗрдП рдкрд░реАрдХреНрд╖рдг рдХрд░реЗрдВ рдХрд┐ HBase рд╕реЗ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдмреНрд▓реЙрдХ рдХреИрд╢ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди рдФрд░ SSC рдЯреНрдпреВрдирд┐рдВрдЧ рдХреЗ рд╕рдВрдпреБрдХреНрдд рдЙрдкрдпреЛрдЧ рдХрд╛ рдХреНрдпрд╛ рдкреНрд░рднрд╛рд╡ рдкрдбрд╝реЗрдЧрд╛ред

HBase рд╕реЗ 3 рдЧреБрдирд╛ рдФрд░ HDFS рд╕реЗ 5 рдЧреБрдирд╛ рддрдХ рдкрдврд╝рдиреЗ рдХреА рдЧрддрд┐ рдХреИрд╕реЗ рдмрдврд╝рд╛рдПрдВ

рдпрд╣ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдРрд╕реА рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдкреНрд░рднрд╛рд╡ рдкрд░рд┐рд╖реНрдХреГрдд рдкрд░реАрдХреНрд╖рдгреЛрдВ (рдмрд┐рдирд╛ рдХрд┐рд╕реА рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдкрдврд╝рдирд╛) рдЬрд┐рддрдирд╛ рдорд╣рд╛рди рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рдЕрддрд┐рд░рд┐рдХреНрдд 80K рдирд┐рдЪреЛрдбрд╝рдирд╛ рдХрд╛рдлреА рд╕рдВрднрд╡ рд╣реИред рдПрдХ рд╕рд╛рде, рджреЛрдиреЛрдВ рдЕрдиреБрдХреВрд▓рди 4x рддрдХ рд╕реНрдкреАрдбрдЕрдк рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред

рдЗрд╕ рдЕрдиреБрдХреВрд▓рди рдХреЗ рд▓рд┐рдП рдПрдХ рдкреАрдЖрд░ рднреА рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ [рдПрдЪрдбреАрдПрдлрдПрд╕-15202], рдЬрд┐рд╕реЗ рд╡рд┐рд▓рдп рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдпрд╣ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рднрд╡рд┐рд╖реНрдп рдХреЗ рд░рд┐рд▓реАрдЬрд╝ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧреАред

рдФрд░ рдЕрдВрдд рдореЗрдВ, рд╕рдорд╛рди рд╡рд╛рдЗрдб-рдХреЙрд▓рдо рдбреЗрдЯрд╛рдмреЗрд╕, рдХреИрд╕реЗрдВрдбреНрд░рд╛ рдФрд░ HBase рдХреЗ рдкрдврд╝рдиреЗ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреА рддреБрд▓рдирд╛ рдХрд░рдирд╛ рджрд┐рд▓рдЪрд╕реНрдк рдерд╛ред

рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рджреЛ рд╣реЛрд╕реНрдЯ (рдХреБрд▓ 800 рдереНрд░реЗрдб) рд╕реЗ рдорд╛рдирдХ YCSB рд▓реЛрдб рдкрд░реАрдХреНрд╖рдг рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЗ рдЙрджрд╛рд╣рд░рдг рд▓реЙрдиреНрдЪ рдХрд┐рдПред рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рдкрд░ - 4 рд╣реЛрд╕реНрдЯ рдкрд░ рд░реАрдЬрдирд╕рд░реНрд╡рд░ рдФрд░ рдХреИрд╕реЗрдВрдбреНрд░рд╛ рдХреЗ 4 рдЗрдВрд╕реНрдЯреЗрдВрд╕ (рд╡реЗ рдирд╣реАрдВ рдЬрд╣рд╛рдВ рдХреНрд▓рд╛рдЗрдВрдЯ рдЪрд▓ рд░рд╣реЗ рд╣реИрдВ, рдЙрдирдХреЗ рдкреНрд░рднрд╛рд╡ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП)ред рдЖрдХрд╛рд░ рдХреА рддрд╛рд▓рд┐рдХрд╛рдУрдВ рд╕реЗ рд░реАрдбрд┐рдВрдЧ рдЖрдИ:

HBase - рдПрдЪрдбреАрдПрдлрдПрд╕ рдкрд░ 300 рдЬреАрдмреА (100 рдЬреАрдмреА рд╢реБрджреНрдз рдбреЗрдЯрд╛)

рдХреИрд╕реЗрдВрдбреНрд░рд╛ - 250 рдЬреАрдмреА (рдкреНрд░рддрд┐рдХреГрддрд┐ рдХрд╛рд░рдХ = 3)

рд╡реЗред рд╡реЙрд▓реНрдпреВрдо рд▓рдЧрднрдЧ рд╕рдорд╛рди рдерд╛ (HBase рдореЗрдВ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ)ред

рдПрдЪрдмреЗрд╕ рдкреИрд░рд╛рдореАрдЯрд░:

dfs.client.short.circuit.num = 5 (рдПрдЪрдбреАрдПрдлрдПрд╕ рдХреНрд▓рд╛рдЗрдВрдЯ рдЕрдиреБрдХреВрд▓рди)

hbase.lru.cache.heavy.eviction.count.limit = 30 - рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдкреИрдЪ 30 рдирд┐рд╖реНрдХрд╛рд╕рди (~5 рдорд┐рдирдЯ) рдХреЗ рдмрд╛рдж рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрдЧрд╛

hbase.lru.cache.heavy.eviction.mb.size.limit = 300 - рдХреИрд╢рд┐рдВрдЧ рдФрд░ рдирд┐рд╖реНрдХрд╛рд╕рди рдХреА рд▓рдХреНрд╖реНрдп рдорд╛рддреНрд░рд╛

YCSB рд▓реЙрдЧ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдФрд░ рдПрдХреНрд╕реЗрд▓ рдЧреНрд░рд╛рдлрд╝ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛:

HBase рд╕реЗ 3 рдЧреБрдирд╛ рдФрд░ HDFS рд╕реЗ 5 рдЧреБрдирд╛ рддрдХ рдкрдврд╝рдиреЗ рдХреА рдЧрддрд┐ рдХреИрд╕реЗ рдмрдврд╝рд╛рдПрдВ

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдпреЗ рдЕрдиреБрдХреВрд▓рди рдЗрди рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдЗрди рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреА рддреБрд▓рдирд╛ рдХрд░рдирд╛ рдФрд░ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб 450 рд╣рдЬрд╛рд░ рд░реАрдбреНрд╕ рд╣рд╛рд╕рд┐рд▓ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛рддреЗ рд╣реИрдВред

рд╣рдореЗрдВ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЙрддреНрдкрд╛рджрдХрддрд╛ рдХреЗ рд░реЛрдорд╛рдВрдЪрдХ рд╕рдВрдШрд░реНрд╖ рдХреЗ рджреМрд░рд╛рди рдпрд╣ рдЬрд╛рдирдХрд╛рд░реА рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддреА рд╣реИред

рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ