HBase рд╡рд░реВрди 3 рдкрдЯ рдЖрдгрд┐ HDFS рд╡рд░реВрди 5 рдкрдЯ рдкрд░реНрдпрдВрдд рд╡рд╛рдЪрди рдЧрддреА рдХрд╢реА рд╡рд╛рдврд╡рд╛рдпрдЪреА

рдореЛрдареНрдпрд╛ рдбреЗрдЯрд╛рд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рддрд╛рдирд╛ рдЙрдЪреНрдЪ рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рд╣реА рдкреНрд░рдореБрдЦ рдЖрд╡рд╢реНрдпрдХрддрд╛рдВрдкреИрдХреА рдПрдХ рдЖрд╣реЗ. Sberbank рдордзреАрд▓ рдбреЗрдЯрд╛ рд▓реЛрдбрд┐рдВрдЧ рд╡рд┐рднрд╛рдЧрд╛рдд, рдЖрдореНрд╣реА рдЖрдордЪреНрдпрд╛ Hadoop-рдЖрдзрд╛рд░рд┐рдд рдбреЗрдЯрд╛ рдХреНрд▓рд╛рдЙрдбрдордзреНрдпреЗ рдЬрд╡рд│рдЬрд╡рд│ рд╕рд░реНрд╡ рд╡реНрдпрд╡рд╣рд╛рд░ рдкрдВрдк рдХрд░рддреЛ рдЖрдгрд┐ рддреНрдпрд╛рдореБрд│реЗ рдорд╛рд╣рд┐рддреАрдЪреНрдпрд╛ рдореЛрдареНрдпрд╛ рдкреНрд░рд╡рд╛рд╣рд╛рд▓рд╛ рд╕рд╛рдореЛрд░реЗ рдЬрд╛рддреЛ. рд╕рд╛рд╣рдЬрд┐рдХрдЪ, рдЖрдореНрд╣реА рдиреЗрд╣рдореА рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рд╕реБрдзрд╛рд░рдгреНрдпрд╛рдЪреЗ рдорд╛рд░реНрдЧ рд╢реЛрдзрдд рдЕрд╕рддреЛ рдЖрдгрд┐ рдЖрддрд╛ рдЖрдореНрд╣реА рддреБрдореНрд╣рд╛рд▓рд╛ рд╕рд╛рдВрдЧреВ рдЗрдЪреНрдЫрд┐рддреЛ рдХреА рдЖрдореНрд╣реА RegionServer HBase рдЖрдгрд┐ HDFS рдХреНрд▓рд╛рдпрдВрдЯ рдХрд╕реЗ рдкреЕрдЪ рдХреЗрд▓реЗ, рдЬреНрдпрд╛рдореБрд│реЗ рдЖрдореНрд╣реА рд╡рд╛рдЪрди рдСрдкрд░реЗрд╢рдиреНрд╕рдЪреА рдЧрддреА рд▓рдХреНрд╖рдгреАрдпрд░реАрддреНрдпрд╛ рд╡рд╛рдврд╡реВ рд╢рдХрд▓реЛ.
HBase рд╡рд░реВрди 3 рдкрдЯ рдЖрдгрд┐ HDFS рд╡рд░реВрди 5 рдкрдЯ рдкрд░реНрдпрдВрдд рд╡рд╛рдЪрди рдЧрддреА рдХрд╢реА рд╡рд╛рдврд╡рд╛рдпрдЪреА

рддрдерд╛рдкрд┐, рд╕реБрдзрд╛рд░рдгрд╛рдВрдЪреНрдпрд╛ рд╕рд╛рд░рд╛рдХрдбреЗ рдЬрд╛рдгреНрдпрд╛рдкреВрд░реНрд╡реА, рдЖрдкрдг рдПрдЪрдбреАрдбреАрд╡рд░ рдмрд╕рд▓реНрдпрд╛рд╕, рддрддреНрддреНрд╡рддрдГ, рдЯрд╛рд│рддрд╛ рдпреЗрдгрд╛рд░ рдирд╛рд╣реА рдЕрд╢рд╛ рдирд┐рд░реНрдмрдВрдзрд╛рдВрдмрджреНрджрд▓ рдмреЛрд▓рдгреЗ рдпреЛрдЧреНрдп рдЖрд╣реЗ.

HDD рдЖрдгрд┐ рдЬрд▓рдж рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдкреНрд░рд╡реЗрд╢ рд╡рд╛рдЪрди рд╡рд┐рд╕рдВрдЧрдд рдХрд╛ рдЖрд╣реЗрдд
рддреБрдореНрд╣рд╛рд▓рд╛ рдорд╛рд╣рд┐рддреА рдЖрд╣реЗрдЪ, HBase рдЖрдгрд┐ рдЗрддрд░ рдЕрдиреЗрдХ рдбреЗрдЯрд╛рдмреЗрд╕, рдЕрдиреЗрдХ рджрд╣рд╛ рдХрд┐рд▓реЛрдмрд╛рдЗрдЯ рдЖрдХрд╛рд░рд╛рдЪреНрдпрд╛ рдмреНрд▓реЙрдХреНрд╕рдордзреНрдпреЗ рдбреЗрдЯрд╛ рд╕рд╛рдард╡рддрд╛рдд. рдбреАрдлреЙрд▓реНрдЯрдиреБрд╕рд╛рд░ рддреЗ рд╕реБрдорд╛рд░реЗ 64 KB рдЖрд╣реЗ. рдЖрддрд╛ рдХрд▓реНрдкрдирд╛ рдХрд░реВрдпрд╛ рдХреА рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рдлрдХреНрдд 100 рдмрд╛рдЗрдЯреНрд╕ рдорд┐рд│рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ рдЖрдгрд┐ рдЖрдореНрд╣реА HBase рд▓рд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреА рд╡рд╛рдкрд░реВрди рд╣рд╛ рдбреЗрдЯрд╛ рджреЗрдгреНрдпрд╛рд╕ рд╕рд╛рдВрдЧреВ. HFiles рдордзреАрд▓ рдмреНрд▓реЙрдХ рдЖрдХрд╛рд░ 64 KB рдЕрд╕рд▓реНрдпрд╛рдиреЗ, рд╡рд┐рдирдВрддреА рдЖрд╡рд╢реНрдпрдХрддреЗрдкреЗрдХреНрд╖рд╛ 640 рдкрдЯ рдореЛрдареА (рдлрдХреНрдд рдПрдХ рдорд┐рдирд┐рдЯ!) рдЕрд╕реЗрд▓.

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

рд╕рдордЬрд╛ рдХреА рдЖрдореНрд╣реА рд╣реЗ рдХрд░рддреЛ, рдкрд░рдВрддреБ рдпрд╛рд╢рд┐рд╡рд╛рдп, рдЬреЗрд╡реНрд╣рд╛ рдЖрдореНрд╣реА Java api рджреНрд╡рд╛рд░реЗ рдбреЗрдЯрд╛ рд╡рд╛рдЪрдгреНрдпрд╛рд╕ рд╕реБрд░реБрд╡рд╛рдд рдХрд░рддреЛ, рдЬрд╕реЗ рдХреА FileChannel.read рд╕рд╛рд░рдЦреНрдпрд╛ рдлрдВрдХреНрд╢рдиреНрд╕ рдЖрдгрд┐ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдорд▓рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкреНрд░рдорд╛рдгрд╛рдд рдбреЗрдЯрд╛ рд╡рд╛рдЪрдгреНрдпрд╛рд╕ рд╕рд╛рдВрдЧрддреЗ, рддреЗрд╡реНрд╣рд╛ рддреЗ "рдХреЗрд╡рд│ рдмрд╛рдмрддреАрдд" 2 рдкрдЯ рдЕрдзрд┐рдХ рд╡рд╛рдЪрддреЗ. , рдореНрд╣рдгрдЬреЗ рдЖрдордЪреНрдпрд╛ рдмрд╛рдмрддреАрдд 256 KB. рдХрд╛рд░рдг рд╣реЗ рд╡рд░реНрддрди рд░реЛрдЦрдгреНрдпрд╛рд╕рд╛рдареА рдЬрд╛рд╡рд╛рдХрдбреЗ FADV_RANDOM рдзреНрд╡рдЬ рд╕реЗрдЯ рдХрд░рдгреНрдпрд╛рдЪрд╛ рд╕реЛрдкрд╛ рдорд╛рд░реНрдЧ рдирд╛рд╣реА.

рдкрд░рд┐рдгрд╛рдореА, рдЖрдордЪреЗ 100 рдмрд╛рдЗрдЯреНрд╕ рдорд┐рд│рд╡рд┐рдгреНрдпрд╛рд╕рд╛рдареА, рд╣реБрдб рдЕрдВрддрд░реНрдЧрдд 2600 рдкрдЯ рдЕрдзрд┐рдХ рд╡рд╛рдЪрд▓реЗ рдЬрд╛рддреЗ. рдЕрд╕реЗ рджрд┐рд╕рддреЗ рдХреА рдЙрдкрд╛рдп рд╕реНрдкрд╖реНрдЯ рдЖрд╣реЗ, рдЪрд▓рд╛ рдмреНрд▓реЙрдХрдЪрд╛ рдЖрдХрд╛рд░ рдХрд┐рд▓реЛрдмрд╛рдЗрдЯрдкрд░реНрдпрдВрдд рдХрдореА рдХрд░реВрдпрд╛, рдЙрд▓реНрд▓реЗрдЦрд┐рдд рдзреНрд╡рдЬ рд╕реЗрдЯ рдХрд░реВрдпрд╛ рдЖрдгрд┐ рдЙрддреНрдХреГрд╖реНрдЯ рдкреНрд░рдмреЛрдзрди рдкреНрд░рд╡реЗрдЧ рдкреНрд░рд╛рдкреНрдд рдХрд░реВрдпрд╛. рдкрд░рдВрддреБ рдЕрдбрдЪрдг рдЕрд╢реА рдЖрд╣реЗ рдХреА рдмреНрд▓реЙрдХрдЪрд╛ рдЖрдХрд╛рд░ 2 рдкрдЯ рдХрдореА рдХрд░реВрди, рдЖрдореНрд╣реА рд╡реЗрд│реЗрдЪреНрдпрд╛ рдкреНрд░рддрд┐ рдпреБрдирд┐рдЯ рд╡рд╛рдЪрд▓реЗрд▓реНрдпрд╛ рдмрд╛рдЗрдЯреНрд╕рдЪреА рд╕рдВрдЦреНрдпрд╛ 2 рдкрдЯ рдХрдореА рдХрд░рддреЛ.

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

HBase рд╡рд░реВрди 3 рдкрдЯ рдЖрдгрд┐ HDFS рд╡рд░реВрди 5 рдкрдЯ рдкрд░реНрдпрдВрдд рд╡рд╛рдЪрди рдЧрддреА рдХрд╢реА рд╡рд╛рдврд╡рд╛рдпрдЪреА

100 рдлрд╛рдпрд▓реАрдВрд╡рд░ рдЪрд╛рдЪрдгреНрдпрд╛ рдХреЗрд▓реНрдпрд╛ рдЧреЗрд▓реНрдпрд╛, рдкреНрд░рддреНрдпреЗрдХ 1 GB рдЖрдХрд╛рд░рд╛рдЪрд╛ рдЖрдгрд┐ 10 HDD рд╡рд░ рд╕реНрдерд┐рдд рдЖрд╣реЗ.

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

рдирд┐рд░рд╛рд╢рд╛рдЬрдирдХ, рдирд╛рд╣реА рдХрд╛? рддреЛ рдирд┐рд╕рд░реНрдЧ рдЖрд╣реЗ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдкреНрд░рд╡реЗрд╢ рдПрдЪрдбреАрдбреАрд╡рд░реАрд▓ рдбреЗрдЯрд╛рдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ - рдмреНрд▓реЙрдХ рдЖрдХрд╛рд░рд╛рдХрдбреЗ рджреБрд░реНрд▓рдХреНрд╖ рдХрд░реВрди. рд╣реА рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдкреНрд░рд╡реЗрд╢рд╛рдЪреА рднреМрддрд┐рдХ рдорд░реНрдпрд╛рджрд╛ рдЖрд╣реЗ рдЖрдгрд┐ рдЕрд╢рд╛ рдкрд░рд┐рд╕реНрдерд┐рддреАрдд рдХреЛрдгрддрд╛рд╣реА рдбреЗрдЯрд╛рдмреЗрд╕ рдЕрдзрд┐рдХ рдкрд┐рд│реВрди рдХрд╛рдвреВ рд╢рдХрдд рдирд╛рд╣реА.

рдордЧ рдбреЗрдЯрд╛рдмреЗрд╕ рдЬрд╛рд╕реНрдд рдЧрддреА рдХрд╢реА рдорд┐рд│рд╡рддрд╛рдд? рдпрд╛ рдкреНрд░рд╢реНрдирд╛рдЪреЗ рдЙрддреНрддрд░ рджреЗрдгреНрдпрд╛рд╕рд╛рдареА, рдЦрд╛рд▓реАрд▓ рдЪрд┐рддреНрд░рд╛рдд рдХрд╛рдп рдШрдбрдд рдЖрд╣реЗ рддреЗ рдкрд╛рд╣реВрдпрд╛:

HBase рд╡рд░реВрди 3 рдкрдЯ рдЖрдгрд┐ HDFS рд╡рд░реВрди 5 рдкрдЯ рдкрд░реНрдпрдВрдд рд╡рд╛рдЪрди рдЧрддреА рдХрд╢реА рд╡рд╛рдврд╡рд╛рдпрдЪреА

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

рдЕрд╢рд╛рдкреНрд░рдХрд╛рд░реЗ, рдкреБрдвреЗ рдЖрдореНрд╣реА рдХреЗрд╡рд│ OS рдХреЕрд╢реЗрдордзреНрдпреЗ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдХрд┐рдВрд╡рд╛ рддреБрд▓рдирд╛рддреНрдордХ рдНрдХреНрд╕реЗрд╕ рд╕реНрдкреАрдбрдЪреНрдпрд╛ SSD/NVMe рд╕реНрдЯреЛрд░реЗрдЬ рдбрд┐рд╡реНрд╣рд╛рдЗрд╕реЗрд╕рдордзреНрдпреЗ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдбреЗрдЯрд╛рд╡рд░ рдНрдХреНрд╕реЗрд▓рд░рд┐рдВрдЧ рдНрдХреНрд╕реЗрд╕ рд╣рд╛рддрд╛рд│реВ.

рдЖрдордЪреНрдпрд╛ рдмрд╛рдмрддреАрдд, рдЖрдореНрд╣реА 4 рд╕рд░реНрд╡реНрд╣рд░рдЪреНрдпрд╛ рдЦрдВрдбрдкреАрдард╛рд╡рд░ рдЪрд╛рдЪрдгреНрдпрд╛ рдШреЗрдК, рдЬреНрдпрд╛рдкреИрдХреА рдкреНрд░рддреНрдпреЗрдХрд╛рд╕рд╛рдареА рдЦрд╛рд▓реАрд▓рдкреНрд░рдорд╛рдгреЗ рд╢реБрд▓реНрдХ рдЖрдХрд╛рд░рд▓реЗ рдЬрд╛рддреЗ:

CPU: Xeon E5-2680 v4 @ 2.40GHz 64 рдереНрд░реЗрдбреНрд╕.
рдореЗрдорд░реА: 730 GB.
java рдЖрд╡реГрддреНрддреА: 1.8.0_111

рдЖрдгрд┐ рдпреЗрдереЗ рдореБрдЦреНрдп рдореБрджреНрджрд╛ рдореНрд╣рдгрдЬреЗ рдЯреЗрдмрд▓рдордзреАрд▓ рдбреЗрдЯрд╛рдЪреЗ рдкреНрд░рдорд╛рдг рд╡рд╛рдЪрдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рд╡рд╕реНрддреБрд╕реНрдерд┐рддреА рдЕрд╢реА рдЖрд╣реЗ рдХреА рдЬрд░ рддреБрдореНрд╣реА рд╕рдВрдкреВрд░реНрдгрдкрдгреЗ HBase рдХреЕрд╢реЗрдордзреНрдпреЗ рдареЗрд╡рд▓реЗрд▓реНрдпрд╛ рдЯреЗрдмрд▓рдордзреАрд▓ рдбреЗрдЯрд╛ рд╡рд╛рдЪрд▓рд╛, рддрд░ рддреЛ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдордЪреНрдпрд╛ рдмрдл/рдХреЕрд╢реЗрдордзреВрди рд╡рд╛рдЪрд╛рдпрд▓рд╛рд╣реА рдпреЗрдгрд╛рд░ рдирд╛рд╣реА. рдХрд╛рд░рдг HBase рдмрд╛рдп рдбреАрдлреЙрд▓реНрдЯ 40% рдореЗрдорд░реА рдмреНрд▓реЙрдХрдХреЕрдЪ рдирд╛рд╡рд╛рдЪреНрдпрд╛ рд╕реНрдЯреНрд░рдХреНрдЪрд░рд▓рд╛ рд╡рд╛рдЯрдк рдХрд░рддреЗ. рдореВрд▓рдд: рд╣рд╛ ConcurrentHashMap рдЖрд╣реЗ, рдЬреЗрдереЗ рдХреА рдлрд╛рдЗрд▓ рдирд╛рд╡ + рдмреНрд▓реЙрдХрдЪреЗ рдСрдлрд╕реЗрдЯ рдЖрд╣реЗ рдЖрдгрд┐ рдореВрд▓реНрдп рдпрд╛ рдСрдлрд╕реЗрдЯрдордзреАрд▓ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдбреЗрдЯрд╛ рдЖрд╣реЗ.

рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ, рдХреЗрд╡рд│ рдпрд╛ рд╕рдВрд░рдЪрдиреЗрддреВрди рд╡рд╛рдЪрддрд╛рдирд╛, рдЖрдореНрд╣реА рдЖрдореНрд╣реА рдЙрддреНрдХреГрд╖реНрдЯ рд╡реЗрдЧ рдкрд╛рд╣рддреЛ, рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдж рджрд╢рд▓рдХреНрд╖ рд╡рд┐рдирдВрддреНрдпрд╛рдВрдкреНрд░рдорд╛рдгреЗ. рдкрд░рдВрддреБ рдЖрдкрдг рдХрд▓реНрдкрдирд╛ рдХрд░реВрдпрд╛ рдХреА рдЖрдкрдг рд╢реЗрдХрдбреЛ рдЧреАрдЧрд╛рдмрд╛рдЗрдЯреНрд╕ рдореЗрдорд░реА рдлрдХреНрдд рдбреЗрдЯрд╛рдмреЗрд╕рдЪреНрдпрд╛ рдЧрд░рдЬреЗрд╕рд╛рдареА рджреЗрдК рд╢рдХрдд рдирд╛рд╣реА, рдХрд╛рд░рдг рдпрд╛ рд╕рд░реНрд╡реНрд╣рд░рд╡рд░ рдЗрддрд░ рдЕрдиреЗрдХ рдЙрдкрдпреБрдХреНрдд рдЧреЛрд╖реНрдЯреА рдЪрд╛рд▓реВ рдЖрд╣реЗрдд.

рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдЖрдордЪреНрдпрд╛ рдмрд╛рдмрддреАрдд, рдПрдХрд╛ рдЖрд░рдПрд╕рд╡рд░ рдмреНрд▓реЙрдХрдХреЕрд╢рдЪреА рдорд╛рддреНрд░рд╛ рд╕реБрдорд╛рд░реЗ 12 рдЬреАрдмреА рдЖрд╣реЗ. рдЖрдореНрд╣реА рдПрдХрд╛ рдиреЛрдбрд╡рд░ рджреЛрди рдЖрд░рдПрд╕ рдЙрддрд░рд╡рд▓реЗ, рдореНрд╣рдгрдЬреЗ. рд╕рд░реНрд╡ рдиреЛрдбреНрд╕рд╡рд░ рдмреНрд▓реЙрдХрдХреЕрд╢рд╕рд╛рдареА 96 GB рд╡рд╛рдЯрдк рдХреЗрд▓реЗ рдЖрд╣реЗ. рдЖрдгрд┐ рдЕрдиреЗрдХ рдкрдЯ рдЬрд╛рд╕реНрдд рдбреЗрдЯрд╛ рдЖрд╣реЗ, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рддреЗ 4 рдЯреЗрдмрд▓реНрд╕ рдЕрд╕реВ рджреНрдпрд╛, рдкреНрд░рддреНрдпреЗрдХреА 130 рдкреНрд░рджреЗрд╢, рдЬреНрдпрд╛рдордзреНрдпреЗ рдлрд╛рдпрд▓реА 800 MB рдЖрдХрд╛рд░рд╛рдЪреНрдпрд╛ рдЖрд╣реЗрдд, FAST_DIFF рджреНрд╡рд╛рд░реЗ рд╕рдВрдХреБрдЪрд┐рдд рдХреЗрд▓реНрдпрд╛ рдЖрд╣реЗрдд, рдореНрд╣рдгрдЬреЗ. рдПрдХреВрдг 410 GB (рд╣рд╛ рд╢реБрджреНрдз рдбреЗрдЯрд╛ рдЖрд╣реЗ, рдореНрд╣рдгрдЬреЗ рдкреНрд░рддрд┐рдХреГрддреА рдШрдЯрдХ рд╡рд┐рдЪрд╛рд░рд╛рдд рди рдШреЗрддрд╛).

рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ, BlockCache рдПрдХреВрдг рдбреЗрдЯрд╛ рд╡реНрд╣реЙрд▓реНрдпреВрдордЪреНрдпрд╛ рдХреЗрд╡рд│ 23% рдЖрд╣реЗ рдЖрдгрд┐ рд╣реЗ рдмрд┐рдЧрдбреЗрдЯрд╛ рдореНрд╣рдЯрд▓реНрдпрд╛ рдЬрд╛рдгрд╛рд░реНтАНрдпрд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд░рд┐рд╕реНрдерд┐рддреАрдЪреНрдпрд╛ рдЕрдЧрджреА рдЬрд╡рд│ рдЖрд╣реЗ. рдЖрдгрд┐ рдпреЗрдереВрдирдЪ рдордЬрд╛ рд╕реБрд░реВ рд╣реЛрддреЗ - рдХрд╛рд░рдг рд╕реНрдкрд╖реНрдЯрдкрдгреЗ, рдХрдореА рдХреЕрд╢реЗ рд╣рд┐рдЯ, рдХрд╛рдордЧрд┐рд░реА рддрд┐рддрдХреА рд╡рд╛рдИрдЯ. рд╢реЗрд╡рдЯреА, рдЬрд░ рддреБрдореНрд╣реА рдЪреБрдХрд▓реЛ рддрд░ рддреБрдореНрд╣рд╛рд▓рд╛ рдЦреВрдк рдХрд╛рдо рдХрд░рд╛рд╡реЗ рд▓рд╛рдЧреЗрд▓ - рдореНрд╣рдгрдЬреЗ. рдХреЙрд▓рд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдлрдВрдХреНрд╢рдиреНрд╕ рд╡рд░ рдЬрд╛. рддрдерд╛рдкрд┐, рд╣реЗ рдЯрд╛рд│рд▓реЗ рдЬрд╛рдК рд╢рдХрдд рдирд╛рд╣реА, рддрд░ рдЪрд▓рд╛ рдкреВрд░реНрдгрдкрдгреЗ рднрд┐рдиреНрди рдкреИрд▓реВ рдкрд╛рд╣реВ - рдХреЕрд╢реЗрдордзреАрд▓ рдбреЗрдЯрд╛рдЪреЗ рдХрд╛рдп рд╣реЛрддреЗ?

рдЪрд▓рд╛ рдкрд░рд┐рд╕реНрдерд┐рддреА рд╕реЛрдкреА рдХрд░реВ рдЖрдгрд┐ рдЕрд╕реЗ рдЧреГрд╣реАрдд рдзрд░реВ рдХреА рдЖрдкрд▓реНрдпрд╛рдХрдбреЗ рдПрдХ рдХреЕрд╢реЗ рдЖрд╣реЗ рдЬреА рдлрдХреНрдд 1 рдСрдмреНрдЬреЗрдХреНрдЯрд▓рд╛ рдмрд╕рддреЗ. рдЬреЗрд╡реНрд╣рд╛ рдЖрдкрдг рдХреЕрд╢реЗрдкреЗрдХреНрд╖рд╛ 3 рдкрдЯ рдореЛрдареНрдпрд╛ рдбреЗрдЯрд╛ рд╡реНрд╣реЙрд▓реНрдпреВрдорд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХрд░рддреЛ рддреЗрд╡реНрд╣рд╛ рдХрд╛рдп рд╣реЛрдИрд▓ рдпрд╛рдЪреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдпреЗрдереЗ рдЖрд╣реЗ, рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рд╣реЗ рдХрд░рд╛рд╡реЗ рд▓рд╛рдЧреЗрд▓:

1. рдХреЕрд╢реЗрдордзреНрдпреЗ рдмреНрд▓реЙрдХ 1 рдареЗрд╡рд╛
2. рдХреЕрд╢реЗрдордзреВрди рдмреНрд▓реЙрдХ 1 рдХрд╛рдврд╛
3. рдХреЕрд╢реЗрдордзреНрдпреЗ рдмреНрд▓реЙрдХ 2 рдареЗрд╡рд╛
4. рдХреЕрд╢реЗрдордзреВрди рдмреНрд▓реЙрдХ 2 рдХрд╛рдврд╛
5. рдХреЕрд╢реЗрдордзреНрдпреЗ рдмреНрд▓реЙрдХ 3 рдареЗрд╡рд╛

5 рдХреНрд░рд┐рдпрд╛ рдкреВрд░реНрдг рдЭрд╛рд▓реНрдпрд╛! рддрдерд╛рдкрд┐, рд╣реА рдкрд░рд┐рд╕реНрдерд┐рддреА рд╕рд╛рдорд╛рдиреНрдп рдореНрд╣рдгрддрд╛ рдпреЗрдгрд╛рд░ рдирд╛рд╣реА; рдЦрд░рдВ рддрд░, рдЖрдореНрд╣реА HBase рд▓рд╛ рдкреВрд░реНрдгрдкрдгреЗ рдирд┐рд░реБрдкрдпреЛрдЧреА рдХрд╛рдо рдХрд░рдгреНрдпрд╛рд╕ рднрд╛рдЧ рдкрд╛рдбрдд рдЖрд╣реЛрдд. рддреЗ рд╕рддрдд OS рдХреЕрд╢реЗ рдордзреАрд▓ рдбреЗрдЯрд╛ рд╡рд╛рдЪрддреЗ, рддреЛ BlockCache рдордзреНрдпреЗ рдареЗрд╡рддреЗ, рдлрдХреНрдд рддреЛ рдЬрд╡рд│рдЬрд╡рд│ рд▓рдЧреЗрдЪ рдмрд╛рд╣реЗрд░ рдЯрд╛рдХрдгреНрдпрд╛рд╕рд╛рдареА рдХрд╛рд░рдг рдбреЗрдЯрд╛рдЪрд╛ рдПрдХ рдирд╡реАрди рднрд╛рдЧ рдЖрд▓рд╛ рдЖрд╣реЗ. рдкреЛрд╕реНрдЯрдЪреНрдпрд╛ рд╕реБрд░реБрд╡рд╛рддреАрд▓рд╛ рдЕреЕрдирд┐рдореЗрд╢рди рд╕рдорд╕реНрдпреЗрдЪреЗ рд╕рд╛рд░ рджрд░реНрд╢рд╡рд┐рддреЗ - рдХрдЪрд░рд╛ рдХрд▓реЗрдХреНрдЯрд░ рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рд╡рд░ рдЬрд╛рдд рдЖрд╣реЗ, рд╡рд╛рддрд╛рд╡рд░рдг рддрд╛рдкрдд рдЖрд╣реЗ, рджреВрд░рдЪреНрдпрд╛ рдЖрдгрд┐ рдЧрд░рдо рд╕реНрд╡реАрдбрдирдордзреАрд▓ рдЫреЛрдЯреА рдЧреНрд░реЗрдЯрд╛ рдЕрд╕реНрд╡рд╕реНрде рд╣реЛрдд рдЖрд╣реЗ. рдЖрдгрд┐ рдЖрдореНрд╣реА IT рд▓реЛрдХрд╛рдВрдирд╛ рдЬреЗрд╡реНрд╣рд╛ рдореБрд▓реЗ рджреБрдГрдЦреА рдЕрд╕рддрд╛рдд рддреЗрд╡реНрд╣рд╛ рддреЗ рдЦрд░реЛрдЦрд░ рдЖрд╡рдбрдд рдирд╛рд╣реА, рдореНрд╣рдгреВрди рдЖрдореНрд╣реА рддреНрдпрд╛рдмрджреНрджрд▓ рдХрд╛рдп рдХрд░реВ рд╢рдХрддреЛ рдпрд╛рдЪрд╛ рд╡рд┐рдЪрд╛рд░ рдХрд░реВ рд▓рд╛рдЧрддреЛ.

рдЬрд░ рддреБрдореНрд╣реА рд╕рд░реНрд╡ рдмреНрд▓реЙрдХреНрд╕ рдХреЕрд╢реЗрдордзреНрдпреЗ рдареЗрд╡рд▓реЗ рдирд╛рд╣реАрдд рддрд░ рддреНрдпрд╛рддреАрд▓ рдХрд╛рд╣реА рдЯрдХреНрдХреЗрдЪ рдареЗрд╡рд▓реНрдпрд╛рд╕, рдЬреЗрдгреЗрдХрд░реВрди рдХреЕрд╢реЗ рдУрд╡реНрд╣рд░рдлреНрд▓реЛ рд╣реЛрдгрд╛рд░ рдирд╛рд╣реА? BlockCache рдордзреНрдпреЗ рдбреЗрдЯрд╛ рдЯрд╛рдХрдгреНрдпрд╛рд╕рд╛рдареА рдлрдВрдХреНрд╢рдирдЪреНрдпрд╛ рд╕реБрд░реБрд╡рд╛рддреАрд▓рд╛ рдХреЛрдбрдЪреНрдпрд╛ рдХрд╛рд╣реА рдУрд│реА рдЬреЛрдбреВрди рд╕реБрд░реБрд╡рд╛рдд рдХрд░реВрдпрд╛:

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

рдпреЗрдереЗ рдореБрджреНрджрд╛ рдЦрд╛рд▓реАрд▓рдкреНрд░рдорд╛рдгреЗ рдЖрд╣реЗ: рдСрдлрд╕реЗрдЯ рдореНрд╣рдгрдЬреЗ рдлрд╛рдЗрд▓рдордзреАрд▓ рдмреНрд▓реЙрдХрдЪреА рд╕реНрдерд┐рддреА рдЖрдгрд┐ рддреНрдпрд╛рдЪреЗ рд╢реЗрд╡рдЯрдЪреЗ рдЕрдВрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХрдкрдгреЗ рдЖрдгрд┐ 00 рддреЗ 99 рдкрд░реНрдпрдВрдд рд╕рдорд╛рди рд░реАрддреАрдиреЗ рд╡рд┐рддрд░реАрдд рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд. рдореНрд╣рдгреВрди, рдЖрдореНрд╣реА рдлрдХреНрдд рддреЗрдЪ рд╡рдЧрд│реВ рдЬреЗ рдЖрдореНрд╣рд╛рд▓рд╛ рдЖрд╡рд╢реНрдпрдХ рд╢реНрд░реЗрдгреАрдордзреНрдпреЗ рдпреЗрддрд╛рдд.

рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, cacheDataBlockPercent = 20 рд╕реЗрдЯ рдХрд░рд╛ рдЖрдгрд┐ рдХрд╛рдп рд╣реЛрддреЗ рддреЗ рдкрд╣рд╛:

HBase рд╡рд░реВрди 3 рдкрдЯ рдЖрдгрд┐ HDFS рд╡рд░реВрди 5 рдкрдЯ рдкрд░реНрдпрдВрдд рд╡рд╛рдЪрди рдЧрддреА рдХрд╢реА рд╡рд╛рдврд╡рд╛рдпрдЪреА

рдкрд░рд┐рдгрд╛рдо рд╕реНрдкрд╖реНрдЯ рдЖрд╣реЗ. рдЦрд╛рд▓реАрд▓ рдЖрд▓реЗрдЦрд╛рдВрдордзреНрдпреЗ, рдЕрд╕рд╛ рдкреНрд░рд╡реЗрдЧ рдХрд╛ рдЭрд╛рд▓рд╛ рд╣реЗ рд╕реНрдкрд╖реНрдЯ рд╣реЛрддреЗ - рдЖрдореНрд╣реА рдХреЕрд╢реЗрдордзреНрдпреЗ рдбреЗрдЯрд╛ рдареЗрд╡рдгреНрдпрд╛рдЪреЗ рдХрд╛рдо рди рдХрд░рддрд╛ рдмрд░реАрдЪ GC рд╕рдВрд╕рд╛рдзрдиреЗ рд╡рд╛рдЪрд╡рддреЛ рдлрдХреНрдд рддреЛ рддрд╛рдмрдбрддреЛрдм рдордВрдЧрд│рд╛рдЪреНрдпрд╛ рдХреБрддреНрд░реНрдпрд╛рдВрдЪреНрдпрд╛ рдирд╛рд▓реНрдпрд╛рдд рдЯрд╛рдХрдгреНрдпрд╛рд╕рд╛рдареА:

HBase рд╡рд░реВрди 3 рдкрдЯ рдЖрдгрд┐ HDFS рд╡рд░реВрди 5 рдкрдЯ рдкрд░реНрдпрдВрдд рд╡рд╛рдЪрди рдЧрддреА рдХрд╢реА рд╡рд╛рдврд╡рд╛рдпрдЪреА

рддреНрдпрд╛рдЪ рд╡реЗрд│реА, CPU рд╡рд╛рдкрд░ рд╡рд╛рдврддреЛ, рдкрд░рдВрддреБ рдЙрддреНрдкрд╛рджрдХрддреЗрдкреЗрдХреНрд╖рд╛ рдЦреВрдкрдЪ рдХрдореА рдЖрд╣реЗ:

HBase рд╡рд░реВрди 3 рдкрдЯ рдЖрдгрд┐ HDFS рд╡рд░реВрди 5 рдкрдЯ рдкрд░реНрдпрдВрдд рд╡рд╛рдЪрди рдЧрддреА рдХрд╢реА рд╡рд╛рдврд╡рд╛рдпрдЪреА

рд╣реЗ рджреЗрдЦреАрд▓ рд▓рдХреНрд╖рд╛рдд рдШреЗрдгреНрдпрд╛рд╕рд╛рд░рдЦреЗ рдЖрд╣реЗ рдХреА BlockCache рдордзреНрдпреЗ рд╕рдВрдЪрдпрд┐рдд рдХреЗрд▓реЗрд▓реЗ рдмреНрд▓реЙрдХ рд╡реЗрдЧрд│реЗ рдЖрд╣реЗрдд. рдмрд╣реБрддреЗрдХ, рд╕реБрдорд╛рд░реЗ 95%, рдбреЗрдЯрд╛ рд╕реНрд╡рддрдГ рдЖрд╣реЗ. рдЖрдгрд┐ рдмрд╛рдХреАрдЪрд╛ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдЖрд╣реЗ, рдЬрд╕реЗ рдХреА рдмреНрд▓реВрдо рдлрд┐рд▓реНрдЯрд░реНрд╕ рдХрд┐рдВрд╡рд╛ LEAF_INDEX рдЖрдгрд┐ рдЗ.. рд╣рд╛ рдбреЗрдЯрд╛ рдкреБрд░реЗрд╕рд╛ рдирд╛рд╣реА, рдкрд░рдВрддреБ рддреЛ рдЦреВрдк рдЙрдкрдпреБрдХреНрдд рдЖрд╣реЗ, рдХрд╛рд░рдг рдереЗрдЯ рдбреЗрдЯрд╛рдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рдХрд░рдгреНрдпрд╛рдкреВрд░реНрд╡реА, рдпреЗрдереЗ рдЖрдгрдЦреА рд╢реЛрдз рдШреЗрдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ рдХреА рдирд╛рд╣реА рд╣реЗ рд╕рдордЬреВрди рдШреЗрдгреНрдпрд╛рд╕рд╛рдареА HBase рдореЗрдЯрд╛рдХрдбреЗ рд╡рд│рддреЗ рдЖрдгрд┐ рддрд╕реЗ рдЕрд╕рд▓реНрдпрд╛рд╕, рдЖрд╡рдбреАрдЪрд╛ рдмреНрд▓реЙрдХ рдиреЗрдордХрд╛ рдХреБрдареЗ рдЖрд╣реЗ.

рдореНрд╣рдгреВрди, рдХреЛрдбрдордзреНрдпреЗ рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рдЪреЗрдХрдЪреА рд╕реНрдерд┐рддреА рджрд┐рд╕рддреЗ buf.getBlockType().isData() рдЖрдгрд┐ рдпрд╛ рдореЗрдЯрд╛рдмрджреНрджрд▓ рдзрдиреНрдпрд╡рд╛рдж, рдЖрдореНрд╣реА рддреЗ рдХреЛрдгрддреНрдпрд╛рд╣реА рдкрд░рд┐рд╕реНрдерд┐рддреАрдд рдХреЕрд╢реЗрдордзреНрдпреЗ рд╕реЛрдбреВ.

рдЖрддрд╛ рд▓реЛрдб рд╡рд╛рдврд╡реВрдпрд╛ рдЖрдгрд┐ рдПрдХрд╛рдЪ рд╡реЗрд│реА рд╡реИрд╢рд┐рд╖реНрдЯреНрдп рдХрд┐рдВрдЪрд┐рдд рдШрдЯреНрдЯ рдХрд░реВ. рдкрд╣рд┐рд▓реНрдпрд╛ рдЪрд╛рдЪрдгреАрдд рдЖрдореНрд╣реА рдХрдЯрдСрдл рдЯрдХреНрдХреЗрд╡рд╛рд░реА = 20 рдХреЗрд▓реА рдЖрдгрд┐ BlockCache рдЪрд╛ рдереЛрдбрд╛ рдХрдореА рд╡рд╛рдкрд░ рдХреЗрд▓рд╛ рдЧреЗрд▓рд╛. рдЖрддрд╛ рддреЗ 23% рд╡рд░ рд╕реЗрдЯ рдХрд░реВ рдЖрдгрд┐ рдХреЛрдгрддреНрдпрд╛ рдмрд┐рдВрджреВрд╡рд░ рд╕рдВрдкреГрдХреНрддрддрд╛ рдпреЗрддреЗ рд╣реЗ рдкрд╛рд╣рдгреНрдпрд╛рд╕рд╛рдареА рджрд░ 100 рдорд┐рдирд┐рдЯрд╛рдВрдиреА 5 рдереНрд░реЗрдбреНрд╕ рдЬреЛрдбреВ:

HBase рд╡рд░реВрди 3 рдкрдЯ рдЖрдгрд┐ HDFS рд╡рд░реВрди 5 рдкрдЯ рдкрд░реНрдпрдВрдд рд╡рд╛рдЪрди рдЧрддреА рдХрд╢реА рд╡рд╛рдврд╡рд╛рдпрдЪреА

рдпреЗрдереЗ рдЖрдкрдг рдкрд╛рд╣рддреЛ рдХреА рдореВрд│ рдЖрд╡реГрддреНрддреА рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдж рд╕реБрдорд╛рд░реЗ 100 рд╣рдЬрд╛рд░ рд╡рд┐рдирдВрддреНрдпрд╛рдВрд╡рд░ рдЬрд╡рд│рдЬрд╡рд│ рд▓рдЧреЗрдЪрдЪ рдХрдорд╛рд▓ рдорд░реНрдпрд╛рджрд╛ рдЧрд╛рдарддреЗ. рддрд░ рдкреЕрдЪ 300 рд╣рдЬрд╛рд░ рдкрд░реНрдпрдВрдд рдкреНрд░рд╡реЗрдЧ рджреЗрддреЗ. рддреНрдпрд╛рдЪ рд╡реЗрд│реА, рд╣реЗ рд╕реНрдкрд╖реНрдЯ рдЖрд╣реЗ рдХреА рдкреБрдвреАрд▓ рдкреНрд░рд╡реЗрдЧ рдЖрддрд╛ рдЗрддрдХрд╛ "рдореБрдХреНрдд" рдирд╛рд╣реА; CPU рд╡рд╛рдкрд░ рджреЗрдЦреАрд▓ рд╡рд╛рдврдд рдЖрд╣реЗ.

рддрдерд╛рдкрд┐, рд╣рд╛ рдПрдХ рдЕрддрд┐рд╢рдп рдореЛрд╣рдХ рдЙрдкрд╛рдп рдирд╛рд╣реА, рдХрд╛рд░рдг рдХрд┐рддреА рдЯрдХреНрдХреЗ рдмреНрд▓реЙрдХреНрд╕ рдХреЕрд╢реЗ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ рд╣реЗ рдЖрдореНрд╣рд╛рд▓рд╛ рдЖрдзреАрдЪ рдорд╛рд╣рд┐рдд рдирд╛рд╣реА, рддреЗ рд▓реЛрдб рдкреНрд░реЛрдлрд╛рдЗрд▓рд╡рд░ рдЕрд╡рд▓рдВрдмреВрди рдЕрд╕рддреЗ. рдореНрд╣рдгреВрди, рд╡рд╛рдЪрди рдСрдкрд░реЗрд╢рдиреНрд╕рдЪреНрдпрд╛ рдХреНрд░рд┐рдпрд╛рдХрд▓рд╛рдкрд╛рдВрд╡рд░ рдЕрд╡рд▓рдВрдмреВрди рд╣реЗ рдкреЕрд░рд╛рдореАрдЯрд░ рд╕реНрд╡рдпрдВрдЪрд▓рд┐рддрдкрдгреЗ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдПрдХ рдпрдВрддреНрд░рдгрд╛ рд▓рд╛рдЧреВ рдХреЗрд▓реА рдЧреЗрд▓реА.

рд╣реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рддреАрди рдкрд░реНрдпрд╛рдп рдЬреЛрдбрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗрдд:

hbase.lru.cache.heavy.eviction.count.limit тАФ рдЖрдореНрд╣реА рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди (рдореНрд╣рдгрдЬреЗ рдмреНрд▓реЙрдХ рд╡рдЧрд│рдгреЗ) рд╡рд╛рдкрд░рдгреЗ рд╕реБрд░реВ рдХрд░рдгреНрдпрд╛рдкреВрд░реНрд╡реА рдХреЕрд╢реЗрдордзреВрди рдбреЗрдЯрд╛ рдмрд╛рд╣реЗрд░ рдХрд╛рдврдгреНрдпрд╛рдЪреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд┐рддреА рд╡реЗрд│рд╛ рдЪрд╛рд▓рд▓реА рдкрд╛рд╣рд┐рдЬреЗ рд╣реЗ рд╕реЗрдЯ рдХрд░рддреЗ. рдбреАрдлреЙрд▓реНрдЯрдиреБрд╕рд╛рд░ рддреЗ MAX_INT = 2147483647 рдЪреНрдпрд╛ рдмрд░реЛрдмрд░реАрдЪреЗ рдЖрд╣реЗ рдЖрдгрд┐ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдпрд╛рдЪрд╛ рдЕрд░реНрде рдЕрд╕рд╛ рдЖрд╣реЗ рдХреА рд╡реИрд╢рд┐рд╖реНрдЯреНрдп рдпрд╛ рдореВрд▓реНрдпрд╛рд╕рд╣ рдХрдзреАрд╣реА рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рд╕ рдкреНрд░рд╛рд░рдВрдн рдХрд░рдгрд╛рд░ рдирд╛рд╣реА. рдХрд╛рд░рдг рдирд┐рд╖реНрдХрд╛рд╕рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкреНрд░рддреНрдпреЗрдХ 5 - 10 рд╕реЗрдХрдВрджрд╛рдВрдиреА рд╕реБрд░реВ рд╣реЛрддреЗ (рддреЗ рд▓реЛрдбрд╡рд░ рдЕрд╡рд▓рдВрдмреВрди рдЕрд╕рддреЗ) рдЖрдгрд┐ 2147483647 * 10 / 60 / 60 / 24 / 365 = 680 рд╡рд░реНрд╖реЗ. рддрдерд╛рдкрд┐, рдЖрдореНрд╣реА рд╣реЗ рдкреЕрд░рд╛рдореАрдЯрд░ 0 рд╡рд░ рд╕реЗрдЯ рдХрд░реВ рд╢рдХрддреЛ рдЖрдгрд┐ рд╡реИрд╢рд┐рд╖реНрдЯреНрдп рд▓реЙрдиреНрдЪ рдЭрд╛рд▓реНрдпрд╛рдирдВрддрд░ рд▓рдЧреЗрдЪ рдХрд╛рд░реНрдп рдХрд░реВ рд╢рдХрддреЛ.

рддрдерд╛рдкрд┐, рдпрд╛ рдкреЕрд░рд╛рдореАрдЯрд░рдордзреНрдпреЗ рдкреЗрд▓реЛрдб рджреЗрдЦреАрд▓ рдЖрд╣реЗ. рдЬрд░ рдЖрдордЪрд╛ рднрд╛рд░ рдЕрд╕рд╛ рдЕрд╕реЗрд▓ рдХреА рдЕрд▓реНрдк-рдореБрджрддреАрдЪреЗ рд╡рд╛рдЪрди (рджрд┐рд╡рд╕рд╛рдЪреНрдпрд╛ рд╡реЗрд│реА рдореНрд╣рдгрд╛) рдЖрдгрд┐ рджреАрд░реНрдШрдХрд╛рд▓реАрди рд╡рд╛рдЪрди (рд░рд╛рддреНрд░реА) рд╕рддрдд рдПрдХрдореЗрдХрд╛рдВрд╢реА рдЬреЛрдбрд▓реЗ рдЬрд╛рдд рдЕрд╕рддреАрд▓, рддрд░ рдЖрдореНрд╣реА рд╣реЗ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реВ рд╢рдХрддреЛ рдХреА рджреАрд░реНрдШ рд╡рд╛рдЪрди рдСрдкрд░реЗрд╢рдиреНрд╕ рдЪрд╛рд▓реВ рдЕрд╕рддрд╛рдирд╛рдЪ рд╡реИрд╢рд┐рд╖реНрдЯреНрдп рдЪрд╛рд▓реВ рдХреЗрд▓реЗ рдЖрд╣реЗ.

рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдЖрдореНрд╣рд╛рд▓рд╛ рдорд╛рд╣рд┐рдд рдЖрд╣реЗ рдХреА рдЕрд▓реНрдк-рдореБрджрддреАрдЪреЗ рд╡рд╛рдЪрди рд╕рд╛рдзрд╛рд░рдгрддрдГ 1 рдорд┐рдирд┐рдЯ рдЯрд┐рдХрддреЗ. рдмреНрд▓реЙрдХреНрд╕ рдлреЗрдХрдгреЗ рд╕реБрд░реВ рдХрд░рдгреНрдпрд╛рдЪреА рдЧрд░рдЬ рдирд╛рд╣реА, рдХреЕрд╢реЗрд▓рд╛ рдХрд╛рд▓рдмрд╛рд╣реНрдп рд╣реЛрдгреНрдпрд╛рд╕ рд╡реЗрд│ рд▓рд╛рдЧрдгрд╛рд░ рдирд╛рд╣реА рдЖрдгрд┐ рдирдВрддрд░ рдЖрдкрдг рд╣реЗ рдкреЕрд░рд╛рдореАрдЯрд░ рд╕реЗрдЯ рдХрд░реВ рд╢рдХрддреЛ, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, 10. рдпрд╛рдореБрд│реЗ рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди рдХреЗрд╡рд│ рджреАрд░реНрдШрдХрд╛рд│ рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рд╕ рдкреНрд░рд╛рд░рдВрдн рдХрд░реЗрд▓. рдЯрд░реНрдо рд╕рдХреНрд░рд┐рдп рд╡рд╛рдЪрди рд╕реБрд░реВ рдЭрд╛рд▓реЗ рдЖрд╣реЗ, рдореНрд╣рдгрдЬреЗ 100 рд╕реЗрдХрдВрджрд╛рдд. рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ, рдЬрд░ рдЖрдордЪреНрдпрд╛рдХрдбреЗ рдЕрд▓реНрдк-рдореБрджрддреАрдЪреЗ рд╡рд╛рдЪрди рдЕрд╕реЗрд▓, рддрд░ рд╕рд░реНрд╡ рдмреНрд▓реЙрдХ рдХреЕрд╢реЗрдордзреНрдпреЗ рдЬрд╛рддреАрд▓ рдЖрдгрд┐ рдЙрдкрд▓рдмреНрдз рдЕрд╕рддреАрд▓ (рд╕реНрдЯрдБрдбрд░реНрдб рдЕрд▓реНрдЧреЛрд░рд┐рджрдорджреНрд╡рд╛рд░реЗ рдирд┐рд╖реНрдХрд╛рд╕рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рддреАрд▓ рддреЗ рд╡рдЧрд│рддрд╛). рдЖрдгрд┐ рдЬреЗрд╡реНрд╣рд╛ рдЖрдореНрд╣реА рджреАрд░реНрдШрдХрд╛рд▓реАрди рд╡рд╛рдЪрди рдХрд░рддреЛ, рддреЗрд╡реНрд╣рд╛ рд╡реИрд╢рд┐рд╖реНрдЯреНрдп рдЪрд╛рд▓реВ рдХреЗрд▓реЗ рдЬрд╛рддреЗ рдЖрдгрд┐ рдЖрдордЪреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЬрд╛рд╕реНрдд рдЕрд╕рддреЗ.

hbase.lru.cache.heavy.eviction.mb.size.limit тАФ рдЖрдореНрд╣реА 10 рд╕реЗрдХрдВрджрд╛рдд рдХреЕрд╢реЗрдордзреНрдпреЗ рдХрд┐рддреА рдореЗрдЧрд╛рдмрд╛рдЗрдЯреНрд╕ рдареЗрд╡реВ рдЗрдЪреНрдЫрд┐рддреЛ (рдЖрдгрд┐ рдЕрд░реНрдерд╛рддрдЪ рдмрд╛рд╣реЗрд░ рдХрд╛рдвреВ) рд╕реЗрдЯ рдХрд░рддреЗ. рд╡реИрд╢рд┐рд╖реНрдЯреНрдп рдпрд╛ рдореВрд▓реНрдпрд╛рдкрд░реНрдпрдВрдд рдкреЛрд╣реЛрдЪрдгреНрдпрд╛рдЪрд╛ рдЖрдгрд┐ рддреЗ рд░рд╛рдЦрдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХрд░реЗрд▓. рдореБрджреНрджрд╛ рд╣рд╛ рдЖрд╣реЗ: рдЬрд░ рдЖрдкрдг рдХреЕрд╢реЗрдордзреНрдпреЗ рдЧреАрдЧрд╛рдмрд╛рдЗрдЯреНрд╕ рдЯрд╛рдХрд▓реЗ рддрд░ рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рдЧреАрдЧрд╛рдмрд╛рдЗрдЯреНрд╕ рдмрд╛рд╣реЗрд░ рдХрд╛рдврд╛рд╡реЗ рд▓рд╛рдЧрддреАрд▓ рдЖрдгрд┐ рд╣реЗ, рдЬрд╕реЗ рдЖрдкрдг рд╡рд░ рдкрд╛рд╣рд┐рд▓реЗ рдЖрд╣реЗ, рдЦреВрдк рдорд╣рд╛рдЧ рдЖрд╣реЗ. рддрдерд╛рдкрд┐, рддреБрдореНрд╣реА рддреЗ рдЦреВрдк рд▓рд╣рд╛рди рд╕реЗрдЯ рдХрд░рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХрд░реВ рдирдпреЗ, рдХрд╛рд░рдг рдпрд╛рдореБрд│реЗ рдмреНрд▓реЙрдХ рд╕реНрдХрд┐рдк рдореЛрдб рд╡реЗрд│реЗрдкреВрд░реНрд╡реА рдмрд╛рд╣реЗрд░ рдкрдбреЗрд▓. рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рд╕рд░реНрд╡реНрд╣рд░рд╕рд╛рдареА (рд╕реБрдорд╛рд░реЗ 20-40 рднреМрддрд┐рдХ рдХреЛрд░), рд╕реБрдорд╛рд░реЗ 300-400 MB рд╕реЗрдЯ рдХрд░рдгреЗ рдЗрд╖реНрдЯрддрдо рдЖрд╣реЗ. рдордзреНрдпрдорд╡рд░реНрдЧреАрдпрд╛рдВрд╕рд╛рдареА (~10 рдХреЛрд░) 200-300 MB. рдХрдордХреБрд╡рдд рдкреНрд░рдгрд╛рд▓реАрдВрд╕рд╛рдареА (2-5 рдХреЛрд░) 50-100 MB рд╕рд╛рдорд╛рдиреНрдп рдЕрд╕реВ рд╢рдХрддрд╛рдд (рдпрд╛рд╡рд░ рдЪрд╛рдЪрдгреА рдХреЗрд▓реА рдЬрд╛рдд рдирд╛рд╣реА).

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

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

рдЬрд░ рдЦрд░реЗрддрд░ 2000 MB рдирд┐рд╖реНрдХрд╛рд╕рд┐рдд рдХреЗрд▓реЗ рдЕрд╕реЗрд▓, рддрд░ рдУрд╡реНрд╣рд░рд╣реЗрдб рдмрд░реЛрдмрд░ рдЖрд╣реЗ:

2000 * 100 / 500 - 100 = 300%

рдЕрд▓реНрдЧреЛрд░рд┐рджрдо рдХрд╛рд╣реА рджрд╣рд╛ рдЯрдХреНрдХреНрдпрд╛рдВрдкреЗрдХреНрд╖рд╛ рдЬрд╛рд╕реНрдд рд░рд╛рдЦрдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХрд░рддрд╛рдд, рддреНрдпрд╛рдореБрд│реЗ рд╡реИрд╢рд┐рд╖реНрдЯреНрдп рдХреЕрд╢реЗ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдмреНрд▓реЙрдХреНрд╕рдЪреА рдЯрдХреНрдХреЗрд╡рд╛рд░реА рдХрдореА рдХрд░реЗрд▓, рдЬреНрдпрд╛рдореБрд│реЗ рд╕реНрд╡рдпрдВ-рдЯреНрдпреВрдирд┐рдВрдЧ рдпрдВрддреНрд░рдгрд╛ рд▓рд╛рдЧреВ рд╣реЛрдИрд▓.

рддрдерд╛рдкрд┐, рд▓реЛрдб рдХрдореА рдЭрд╛рд▓реНрдпрд╛рд╕, рд╕рдордЬрд╛ рдлрдХреНрдд 200 MB рдмрд╛рд╣реЗрд░ рдХрд╛рдврд▓реЗ рдЬрд╛рддрд╛рдд рдЖрдгрд┐ рдУрд╡реНрд╣рд░рд╣реЗрдб рдирдХрд╛рд░рд╛рддреНрдордХ рд╣реЛрддреЗ (рддрдерд╛рдХрдерд┐рдд рдУрд╡реНрд╣рд░рд╢реВрдЯрд┐рдВрдЧ):

200 * 100 / 500 - 100 = -60%

рдЙрд▓рдЯрдкрдХреНрд╖реА, рдУрд╡реНрд╣рд░рд╣реЗрдб рд╕рдХрд╛рд░рд╛рддреНрдордХ рд╣реЛрдИрдкрд░реНрдпрдВрдд рд╡реИрд╢рд┐рд╖реНрдЯреНрдп рдХреЕрд╢реНрдб рдмреНрд▓реЙрдХреНрд╕рдЪреА рдЯрдХреНрдХреЗрд╡рд╛рд░реА рд╡рд╛рдврд╡реЗрд▓.

рд╣реЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдбреЗрдЯрд╛рд╡рд░ рдХрд╕реЗ рджрд┐рд╕рддреЗ рдпрд╛рдЪреЗ рдЙрджрд╛рд╣рд░рдг рдЦрд╛рд▓реА рджрд┐рд▓реЗ рдЖрд╣реЗ. 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 рдкреБрдиреНрд╣рд╛ рдЕрдзрд┐рдХ рдмреНрд▓реЙрдХреНрд╕ рдХреЕрд╢реЗ рдХрд░рддреЗ.

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

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

HBase рд╡рд░реВрди 3 рдкрдЯ рдЖрдгрд┐ HDFS рд╡рд░реВрди 5 рдкрдЯ рдкрд░реНрдпрдВрдд рд╡рд╛рдЪрди рдЧрддреА рдХрд╢реА рд╡рд╛рдврд╡рд╛рдпрдЪреА

рдЖрдгрд┐ рд╢реЗрд╡рдЯреА, рдЧреНрд░рд╛рдлрдЪреНрдпрд╛ рд╕реНрд╡рд░реВрдкрд╛рдд рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕рдЪреЗ рдСрдкрд░реЗрд╢рди рдХрд╕реЗ рджрд┐рд╕рддреЗ. рддреБрд▓рдиреЗрд╕рд╛рдареА, рд╕реБрд░реБрд╡рд╛рддреАрд▓рд╛ рдХреЕрд╢реЗ рдкреВрд░реНрдгрдкрдгреЗ рдмрдВрдж рдХрд░рдгреНрдпрд╛рдд рдЖрд▓реА рд╣реЛрддреА, рддреНрдпрд╛рдирдВрддрд░ HBase рд▓рд╛ рдХреЕрд╢рд┐рдВрдЧрд╕рд╣ рд▓реЙрдиреНрдЪ рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдЖрдгрд┐ рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди рдХрд╛рд░реНрдп рд╕реБрд░реВ рд╣реЛрдгреНрдпрд╛рд╕ 5 рдорд┐рдирд┐рдЯрд╛рдВрдиреА рд╡рд┐рд▓рдВрдм рдХреЗрд▓рд╛ (30 рдирд┐рд╖реНрдХрд╛рд╕рди рдЪрдХреНрд░).

рдкреВрд░реНрдг рдХреЛрдб рдкреБрд▓ рд╡рд┐рдирдВрддреА рдордзреНрдпреЗ рдЖрдврд│реВ рд╢рдХрддреЛ HBASE 23887 github рд╡рд░.

рддрдерд╛рдкрд┐, рдпрд╛ рдкрд░рд┐рд╕реНрдерд┐рддреАрдд рдпрд╛ рд╣рд╛рд░реНрдбрд╡реЗрдЕрд░рд╡рд░ 300 рд╣рдЬрд╛рд░ рд╡рд╛рдЪрди рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдж рдПрд╡рдвреЗрдЪ рд╕рд╛рдзреНрдп рдХрд░рддрд╛ рдпреЗрдд рдирд╛рд╣реА. рд╡рд╕реНрддреБрд╕реНрдерд┐рддреА рдЕрд╢реА рдЖрд╣реЗ рдХреА рдЬреЗрд╡реНрд╣рд╛ рддреБрдореНрд╣рд╛рд▓рд╛ HDFS рджреНрд╡рд╛рд░реЗ рдбреЗрдЯрд╛ рдНрдХреНрд╕реЗрд╕ рдХрд░рдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЕрд╕рддреЗ рддреЗрд╡реНрд╣рд╛ рд╢реЙрд░реНрдЯ рд╕рд░реНрдХрд┐рдЯ рдХреЕрд╢ (рдпрд╛рдкреБрдвреЗ SSC рдореНрд╣рдгреВрди рд╕рдВрджрд░реНрднрд┐рдд) рдпрдВрддреНрд░рдгрд╛ рд╡рд╛рдкрд░рд▓реА рдЬрд╛рддреЗ, рдЬреА рддреБрдореНрд╣рд╛рд▓рд╛ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░рд╕реНрдкрд░рд╕рдВрд╡рд╛рдж рдЯрд╛рд│реВрди рдереЗрдЯ рдбреЗрдЯрд╛рдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рдХрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ.

рдкреНрд░реЛрдлрд╛рдЗрд▓рд┐рдВрдЧрдиреЗ рджрд░реНрд╢рд╡рд┐рд▓реЗ рдХреА рдЬрд░реА рд╣реА рдпрдВрддреНрд░рдгрд╛ рдореЛрдард╛ рдлрд╛рдпрджрд╛ рджреЗрдд рдЕрд╕рд▓реА рддрд░реА рдХрд╛рд╣реА рд╡реЗрд│рд╛ рддреЗ рдЕрдбрдерд│реЗ рджреЗрдЦреАрд▓ рдмрдирддреЗ, рдХрд╛рд░рдг рдмрд╣реБрддреЗрдХ рд╕рд░реНрд╡ рдЬрдб рдСрдкрд░реЗрд╢рди рд▓реЙрдХрдордзреНрдпреЗ рд╣реЛрддрд╛рдд, рдЬреНрдпрд╛рдореБрд│реЗ рдмрд╣реБрддреЗрдХ рд╡реЗрд│рд╛ рдмреНрд▓реЙрдХ рд╣реЛрддреЗ.

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

рдЖрддрд╛ рддреБрдореНрд╣реА рдЪрд╛рдЪрдгреА рд╕реБрд░реВ рдХрд░реВ рд╢рдХрддрд╛. рд╣реЗ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдЖрдореНрд╣реА рдПрдХрд╛ рд╕рд╛рдзреНрдпрд╛ рдорд▓реНрдЯреА-рдереНрд░реЗрдбреЗрдб рдНрдкреНрд▓рд┐рдХреЗрд╢рдирд╕рд╣ 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 KB рдмреНрд▓реЙрдХреНрд╕рдордзреНрдпреЗ 64 рд╣рдЬрд╛рд░ рд░реАрдбреНрд╕рдЪреНрдпрд╛ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрд╕рд╛рдареА 78 рд╕реЗрдХрдВрдж рд▓рд╛рдЧрддрд╛рдд. рддрд░ 5 рдХреЕрд╢реЗрд╕рд╣ рдпрд╛рд╕ 16 рд╕реЗрдХрдВрдж рд▓рд╛рдЧрддрд╛рдд. рддреНрдпрд╛. ~5 рдкрдЯ рдкреНрд░рд╡реЗрдЧ рдЖрд╣реЗ. рдЖрд▓реЗрдЦрд╛рд╡рд░реВрди рдкрд╛рд╣рд┐рд▓реНрдпрд╛рдкреНрд░рдорд╛рдгреЗ, рд╕рдорд╛рдВрддрд░ рд╡рд╛рдЪрдирд╛рдЪреНрдпрд╛ рдХрдореА рд╕рдВрдЦреНрдпреЗрд╕рд╛рдареА рдкрд░рд┐рдгрд╛рдо рдлрд╛рд░рд╕рд╛ рд▓рдХреНрд╖рд╛рдд рдпреЗрдгреНрдпрд╛рдЬреЛрдЧрд╛ рдирд╕рддреЛ; рдЬреЗрд╡реНрд╣рд╛ 50 рдкреЗрдХреНрд╖рд╛ рдЬрд╛рд╕реНрдд рдереНрд░реЗрдб рд░реАрдбреНрд╕ рдЕрд╕рддрд╛рдд рддреЗрд╡реНрд╣рд╛ рддреЛ рд▓рдХреНрд╖рдгреАрдп рднреВрдорд┐рдХрд╛ рдмрдЬрд╛рд╡реВ рд▓рд╛рдЧрддреЛ. рд╣реЗ рджреЗрдЦреАрд▓ рд▓рдХреНрд╖рд╛рдд рдпреЗрддреЗ рдХреА рдПрд╕рдПрд╕рд╕реАрдЪреА рд╕рдВрдЦреНрдпрд╛ 6 рд╡рд░реВрди рд╡рд╛рдврд╡рдгреЗ рдЖрдгрд┐ рд╡рд░реАрд▓ рдПрдХ рд▓рдХреНрд╖рдгреАрдп рд▓рд╣рд╛рди рдХрд╛рдордЧрд┐рд░реА рд╡рд╛рдв рджреЗрддреЗ.

рдЯреАрдк 1: рдЪрд╛рдЪрдгреА рдкрд░рд┐рдгрд╛рдо рдЦреВрдкрдЪ рдЕрд╕реНрдерд┐рд░ рдЕрд╕рд▓реНрдпрд╛рдиреЗ (рдЦрд╛рд▓реА рдкрд╣рд╛), 3 рдзрд╛рд╡рд╛ рдХреЗрд▓реНрдпрд╛ рдЧреЗрд▓реНрдпрд╛ рдЖрдгрд┐ рдкрд░рд┐рдгрд╛рдореА рдореВрд▓реНрдпрд╛рдВрдЪреА рд╕рд░рд╛рд╕рд░реА рдХрд╛рдврд▓реА рдЧреЗрд▓реА.

рдЯреАрдк 2: рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдкреНрд░рд╡реЗрд╢ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХреЗрд▓реНрдпрд╛рдиреЗ рд╣реЛрдгрд╛рд░рд╛ рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рд▓рд╛рдн рд╕рдорд╛рди рдЖрд╣реЗ, рдЬрд░реА рдкреНрд░рд╡реЗрд╢ рд╕реНрд╡рддрдГрдЪ рдереЛрдбрд╛ рдХрдореА рдЖрд╣реЗ.

рддрдерд╛рдкрд┐, рд╣реЗ рд╕реНрдкрд╖реНрдЯ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ рдХреА, HBase рдЪреНрдпрд╛ рдмрд╛рдмрддреАрдд рд╡рд┐рдкрд░реАрдд, рд╣реЗ рдкреНрд░рд╡реЗрдЧ рдиреЗрд╣рдореАрдЪ рд╡рд┐рдирд╛рдореВрд▓реНрдп рдирд╕рддреЗ. рдпреЗрдереЗ рдЖрдореНрд╣реА CPU рдЪреА рд▓реЙрдХреНрд╕рд╡рд░ рдЯрд╛рдВрдЧрдгреНрдпрд╛рдРрд╡рдЬреА рдЕрдзрд┐рдХ рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рдЪреА рдХреНрд╖рдорддрд╛ "рдЕрдирд▓реЙрдХ" рдХрд░рддреЛ.

HBase рд╡рд░реВрди 3 рдкрдЯ рдЖрдгрд┐ HDFS рд╡рд░реВрди 5 рдкрдЯ рдкрд░реНрдпрдВрдд рд╡рд╛рдЪрди рдЧрддреА рдХрд╢реА рд╡рд╛рдврд╡рд╛рдпрдЪреА

рдпреЗрдереЗ рддреБрдореНрд╣реА рд╣реЗ рдкрд╛рд╣реВ рд╢рдХрддрд╛ рдХреА, рд╕рд░реНрд╡рд╕рд╛рдзрд╛рд░рдгрдкрдгреЗ, рдХреЕрд╢реЗрдЪреНрдпрд╛ рд╕рдВрдЦреНрдпреЗрдд рд╡рд╛рдв рдХреЗрд▓реНрдпрд╛рдиреЗ CPU рд╡рд╛рдкрд░рд╛рдордзреНрдпреЗ рдЕрдВрджрд╛рдЬреЗ рдкреНрд░рдорд╛рдгрд╛рдд рд╡рд╛рдв рд╣реЛрддреЗ. рддрдерд╛рдкрд┐, рдереЛрдбреЗ рдЕрдзрд┐рдХ рд╡рд┐рдЬрдпреА рдЬреЛрдбреНрдпрд╛ рдЖрд╣реЗрдд.

рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, SSC = 3 рд╕реЗрдЯрд┐рдВрдЧ рдЬрд╡рд│реВрди рдкрд╛рд╣реВ рдпрд╛. рд╢реНрд░реЗрдгреАрд╡рд░реАрд▓ рдХрд╛рд░реНрдпрдХреНрд╖рдорддреЗрдд рд╡рд╛рдв рд╕реБрдорд╛рд░реЗ 3.3 рдкрдЯ рдЖрд╣реЗ. рдЦрд╛рд▓реА рд╕рд░реНрд╡ рддреАрди рд╕реНрд╡рддрдВрддреНрд░ рдзрд╛рд╡рд╛рдВрдЪреЗ рдкрд░рд┐рдгрд╛рдо рдЖрд╣реЗрдд.

HBase рд╡рд░реВрди 3 рдкрдЯ рдЖрдгрд┐ HDFS рд╡рд░реВрди 5 рдкрдЯ рдкрд░реНрдпрдВрдд рд╡рд╛рдЪрди рдЧрддреА рдХрд╢реА рд╡рд╛рдврд╡рд╛рдпрдЪреА

рддрд░ CPU рд╡рд╛рдкрд░ рд╕реБрдорд╛рд░реЗ 2.8 рдкрдЯреАрдиреЗ рд╡рд╛рдврддреЛ. рдлрд░рдХ рдлрд╛рд░ рдореЛрдард╛ рдирд╛рд╣реА, рдкрд░рдВрддреБ рд▓рд╣рд╛рди рдЧреНрд░реЗрдЯрд╛ рдЖрдзреАрдЪ рдЖрдирдВрджреА рдЖрд╣реЗ рдЖрдгрд┐ рддрд┐рд▓рд╛ рд╢рд╛рд│реЗрдд рдЬрд╛рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ рдзрдбреЗ рдШреЗрдгреНрдпрд╛рд╕рд╛рдареА рд╡реЗрд│ рдЕрд╕реВ рд╢рдХрддреЛ.

рдЕрд╢рд╛рдкреНрд░рдХрд╛рд░реЗ, рдПрдЪрдбреАрдПрдлрдПрд╕ (рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде рд╕реНрдкрд╛рд░реНрдХ рдЗ.) рдордзреНрдпреЗ рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рдд рдкреНрд░рд╡реЗрд╢ рд╡рд╛рдкрд░рдгрд╛рд▒реНрдпрд╛ рдХреЛрдгрддреНрдпрд╛рд╣реА рд╕рд╛рдзрдирд╛рд╕рд╛рдареА рдпрд╛рдЪрд╛ рд╕рдХрд╛рд░рд╛рддреНрдордХ рдкрд░рд┐рдгрд╛рдо рд╣реЛрдИрд▓, рдмрд╢рд░реНрддреЗ рдЕреЕрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛрдб рд╣рд▓рдХрд╛ рдЕрд╕реЗрд▓ (рдореНрд╣рдгрдЬреЗ рдкреНрд▓рдЧ рдПрдЪрдбреАрдПрдлрдПрд╕ рдХреНрд▓рд╛рдпрдВрдЯрдЪреНрдпрд╛ рдмрд╛рдЬреВрд▓рд╛ рдЕрд╕реЗрд▓) рдЖрдгрд┐ рд╡рд┐рдирд╛рдореВрд▓реНрдп CPU рдкреЙрд╡рд░ рдЕрд╕реЗрд▓. . рддрдкрд╛рд╕рдгреНрдпрд╛рд╕рд╛рдареА, HBase рд╡рд░реВрди рд╡рд╛рдЪрдгреНрдпрд╛рд╕рд╛рдареА BlockCache рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди рдЖрдгрд┐ SSC рдЯреНрдпреВрдирд┐рдВрдЧрдЪрд╛ рдПрдХрддреНрд░рд┐рдд рд╡рд╛рдкрд░ рдХрд╛рдп рдкрд░рд┐рдгрд╛рдо рдХрд░реЗрд▓ рд╣реЗ рддрдкрд╛рд╕реВ.

HBase рд╡рд░реВрди 3 рдкрдЯ рдЖрдгрд┐ HDFS рд╡рд░реВрди 5 рдкрдЯ рдкрд░реНрдпрдВрдд рд╡рд╛рдЪрди рдЧрддреА рдХрд╢реА рд╡рд╛рдврд╡рд╛рдпрдЪреА

рд╣реЗ рдкрд╛рд╣рд┐рд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ рдХреА рдЕрд╢рд╛ рдкрд░рд┐рд╕реНрдерд┐рддреАрдд рдкрд░рд┐рдгрд╛рдо рдкрд░рд┐рд╖реНрдХреГрдд рдЪрд╛рдЪрдгреНрдпрд╛рдВрдЗрддрдХрд╛ рдорд╣рд╛рди рдирд╛рд╣реА (рдХреЛрдгрддреНрдпрд╛рд╣реА рдкреНрд░рдХреНрд░рд┐рдпреЗрд╢рд┐рд╡рд╛рдп рд╡рд╛рдЪрди), рдкрд░рдВрддреБ рдпреЗрдереЗ рдЕрддрд┐рд░рд┐рдХреНрдд 80K рдкрд┐рд│реВрди рдХрд╛рдврдгреЗ рд╢рдХреНрдп рдЖрд╣реЗ. рдПрдХрддреНрд░рд┐рддрдкрдгреЗ, рджреЛрдиреНрд╣реА рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди 4x рд╕реНрдкреАрдбрдЕрдк рдкреНрд░рджрд╛рди рдХрд░рддрд╛рдд.

рдпрд╛ рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рдирд╕рд╛рдареА рдПрдХ рдкреАрдЖрд░ рджреЗрдЦреАрд▓ рдмрдирд╡рд┐рд▓рд╛ рдЧреЗрд▓рд╛ [HDFS-15202], рдЬреЗ рд╡рд┐рд▓реАрди рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗ рдЖрдгрд┐ рд╣реА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рднрд╡рд┐рд╖реНрдпрд╛рддреАрд▓ рдкреНрд░рдХрд╛рд╢рдирд╛рдВрдордзреНрдпреЗ рдЙрдкрд▓рдмреНрдз рдЕрд╕реЗрд▓.

рдЖрдгрд┐ рд╢реЗрд╡рдЯреА, рд╕рдорд╛рди рд╡рд╛рдЗрдб-рдХреЙрд▓рдо рдбреЗрдЯрд╛рдмреЗрд╕, рдХреЕрд╕реЕрдиреНрдбреНрд░рд╛ рдЖрдгрд┐ рдПрдЪрдмреЗрд╕рдЪреНрдпрд╛ рд╡рд╛рдЪрди рдХрд╛рдордЧрд┐рд░реАрдЪреА рддреБрд▓рдирд╛ рдХрд░рдгреЗ рдордиреЛрд░рдВрдЬрдХ рд╣реЛрддреЗ.

рд╣реЗ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдЖрдореНрд╣реА рджреЛрди рд╣реЛрд╕реНрдЯ (рдПрдХреВрдг 800 рдереНрд░реЗрдб) рдХрдбреВрди рдорд╛рдирдХ YCSB рд▓реЛрдб рдЪрд╛рдЪрдгреА рдпреБрдЯрд┐рд▓рд┐рдЯреАрдЪреА рдЙрджрд╛рд╣рд░рдгреЗ рд▓рд╛рдБрдЪ рдХреЗрд▓реА. рд╕рд░реНрд╡реНрд╣рд░рдЪреНрдпрд╛ рдмрд╛рдЬреВрд▓рд╛ - 4 рд╣реЛрд╕реНрдЯрд╡рд░ RegionServer рдЖрдгрд┐ Cassandra рдЪреА 4 рдЙрджрд╛рд╣рд░рдгреЗ (рдЬрд┐рдереЗ рдХреНрд▓рд╛рдпрдВрдЯ рдЪрд╛рд▓реВ рдЖрд╣реЗрдд, рддреНрдпрд╛рдВрдЪрд╛ рдкреНрд░рднрд╛рд╡ рдЯрд╛рд│рдгреНрдпрд╛рд╕рд╛рдареА рдирд╛рд╣реА). рдЖрдХрд╛рд░рд╛рдЪреНрдпрд╛ рд╕рд╛рд░рдгреНрдпрд╛рдВрдордзреВрди рд╡рд╛рдЪрди рдЖрд▓реЗ:

HBase - HDFS рд╡рд░ 300 GB (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 рд▓реЙрдЧ рдПрдХреНрд╕реЗрд▓ рдЖрд▓реЗрдЦрд╛рдордзреНрдпреЗ рдкрд╛рд░реНрд╕ рдХреЗрд▓реЗ рдЖрдгрд┐ рд╕рдВрдХрд▓рд┐рдд рдХреЗрд▓реЗ:

HBase рд╡рд░реВрди 3 рдкрдЯ рдЖрдгрд┐ HDFS рд╡рд░реВрди 5 рдкрдЯ рдкрд░реНрдпрдВрдд рд╡рд╛рдЪрди рдЧрддреА рдХрд╢реА рд╡рд╛рдврд╡рд╛рдпрдЪреА

рдЬрд╕реЗ рддреБрдореНрд╣реА рдмрдШреВ рд╢рдХрддрд╛, рдпрд╛ рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рдирдореБрд│реЗ рдпрд╛ рдбреЗрдЯрд╛рдмреЗрд╕рдЪреНрдпрд╛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддреЗрдЪреА рдпрд╛ рдкрд░рд┐рд╕реНрдерд┐рддреАрдд рддреБрд▓рдирд╛ рдХрд░рдгреЗ рдЖрдгрд┐ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдж 450 рд╣рдЬрд╛рд░ рд╡рд╛рдЪрди рд╕рд╛рдзреНрдп рдХрд░рдгреЗ рд╢рдХреНрдп рд╣реЛрддреЗ.

рдЖрдореНрд╣рд╛рд▓рд╛ рдЖрд╢рд╛ рдЖрд╣реЗ рдХреА рдЙрддреНрдкрд╛рджрдХрддреЗрд╕рд╛рдареА рд░реЛрдорд╛рдВрдЪрдХ рд╕рдВрдШрд░реНрд╖рд╛рджрд░рдореНрдпрд╛рди рд╣реА рдорд╛рд╣рд┐рддреА рдПрдЦрд╛рджреНрдпрд╛рд╕рд╛рдареА рдЙрдкрдпреБрдХреНрдд рдард░реЗрд▓.

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛