рджреЛрди рдпрд╛рдХреЛрдЭреБрдирд╛рдЪреА рд▓рдврд╛рдИ рдХрд┐рдВрд╡рд╛ рдХреЕрд╕реЕрдиреНрдбреНрд░рд╛ рд╡рд┐рд░реБрджреНрдз рдПрдЪрдмреЗрд╕. Sberbank рд╕рдВрдШрд╛рдЪрд╛ рдЕрдиреБрднрд╡

рд╣рд╛ рдПрдХ рд╡рд┐рдиреЛрдж рджреЗрдЦреАрд▓ рдирд╛рд╣реА, рдЕрд╕реЗ рджрд┐рд╕рддреЗ рдХреА рд╣реЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЪрд┐рддреНрд░ рдпрд╛ рдбреЗрдЯрд╛рдмреЗрд╕рдЪреЗ рд╕рд╛рд░ рдЕрдЧрджреА рдЕрдЪреВрдХрдкрдгреЗ рдкреНрд░рддрд┐рдмрд┐рдВрдмрд┐рдд рдХрд░рддреЗ рдЖрдгрд┐ рд╢реЗрд╡рдЯреА рд╣реЗ рдХрд╛ рд╕реНрдкрд╖реНрдЯ рд╣реЛрдИрд▓:

рджреЛрди рдпрд╛рдХреЛрдЭреБрдирд╛рдЪреА рд▓рдврд╛рдИ рдХрд┐рдВрд╡рд╛ рдХреЕрд╕реЕрдиреНрдбреНрд░рд╛ рд╡рд┐рд░реБрджреНрдз рдПрдЪрдмреЗрд╕. Sberbank рд╕рдВрдШрд╛рдЪрд╛ рдЕрдиреБрднрд╡

DB-Engines Ranking рдиреБрд╕рд╛рд░, рджреЛрди рд╕рд░реНрд╡рд╛рдд рд▓реЛрдХрдкреНрд░рд┐рдп NoSQL рд╕реНрддрдВрднреАрдп рдбреЗрдЯрд╛рдмреЗрд╕ рдореНрд╣рдгрдЬреЗ Cassandra (рдпрд╛рдкреБрдвреЗ CS) рдЖрдгрд┐ HBase (HB).

рджреЛрди рдпрд╛рдХреЛрдЭреБрдирд╛рдЪреА рд▓рдврд╛рдИ рдХрд┐рдВрд╡рд╛ рдХреЕрд╕реЕрдиреНрдбреНрд░рд╛ рд╡рд┐рд░реБрджреНрдз рдПрдЪрдмреЗрд╕. Sberbank рд╕рдВрдШрд╛рдЪрд╛ рдЕрдиреБрднрд╡

рдирд╢рд┐рдмрд╛рдЪреНрдпрд╛ рдЗрдЪреНрдЫреЗрдиреБрд╕рд╛рд░, Sberbank рдордзреАрд▓ рдЖрдордЪреА рдбреЗрдЯрд╛ рд▓реЛрдбрд┐рдВрдЧ рдореЕрдиреЗрдЬрдореЗрдВрдЯ рдЯреАрдо рдЖрдзреАрдЪ рдЖрд╣реЗ рдЦреВрдк рдкреВрд░реНрд╡реА рдЖрдгрд┐ HB рд╕рд╣ рдЬрд╡рд│реВрди рдХрд╛рд░реНрдп рдХрд░рддреЗ. рдпрд╛ рд╡реЗрд│реА, рдЖрдореНрд╣реА рддреНрдпрд╛рдЪреА рддрд╛рдХрдж рдЖрдгрд┐ рдХрдордХреБрд╡рддрдкрдгрд╛рдЪрд╛ рдЪрд╛рдВрдЧрд▓рд╛ рдЕрднреНрдпрд╛рд╕ рдХреЗрд▓рд╛ рдЖрдгрд┐ рддреЗ рдХрд╕реЗ рд╢рд┐рдЬрд╡рд╛рдпрдЪреЗ рддреЗ рд╢рд┐рдХрд▓реЛ. рддрдерд╛рдкрд┐, рд╕реАрдПрд╕рдЪреНрдпрд╛ рд░реВрдкрд╛рдд рдкрд░реНрдпрд╛рдпреА рдЙрдкрд╕реНрдерд┐рддреАрдиреЗ рдЖрдореНрд╣рд╛рд▓рд╛ рдиреЗрд╣рдореА рд╢рдВрдХрд╛рдВрдиреА рд╕реНрд╡рддрдГрд▓рд╛ рддреНрд░рд╛рд╕ рджреЗрдгреНрдпрд╛рд╕ рднрд╛рдЧ рдкрд╛рдбрд▓реЗ: рдЖрдореНрд╣реА рдпреЛрдЧреНрдп рдирд┐рд╡рдб рдХреЗрд▓реА рдЖрд╣реЗ рдХрд╛? рд╢рд┐рд╡рд╛рдп, рдкрд░рд┐рдгрд╛рдо рддреБрд▓рдирд╛, DataStax рджреНрд╡рд╛рд░реЗ рд╕рд╛рджрд░ рдХреЗрд▓реЗ рдЧреЗрд▓реЗ, рддреЗ рдореНрд╣рдгрд╛рд▓реЗ рдХреА CS рд╕рд╣рдЬрдкрдгреЗ HB рд▓рд╛ рдЬрд╡рд│рдЬрд╡рд│ рдХреНрд░рд╢рд┐рдВрдЧ рд╕реНрдХреЛрдЕрд░рд╕рд╣ рд╣рд░рд╡рддреЗ. рджреБрд╕рд░реАрдХрдбреЗ, DataStax рдПрдХ рд╕реНрд╡рд╛рд░рд╕реНрдп рдЕрд╕рд▓реЗрд▓рд╛ рдкрдХреНрд╖ рдЖрд╣реЗ рдЖрдгрд┐ рддреБрдореНрд╣реА рддреНрдпрд╛рд╕рд╛рдареА рддреНрдпрд╛рдВрдЪрд╛ рд╢рдмреНрдж рдШреЗрдК рдирдпреЗ. рдЖрдореНрд╣реА рдЪрд╛рдЪрдгреАрдЪреНрдпрд╛ рдкрд░рд┐рд╕реНрдерд┐рддреАрдВрдмрджреНрджрд▓ рдереЛрдбреНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рдд рдорд╛рд╣рд┐рддреАрдореБрд│реЗ рдЧреЛрдВрдзрд│рд▓реЛ рд╣реЛрддреЛ, рдореНрд╣рдгреВрди рдЖрдореНрд╣реА рдмрд┐рдЧрдбреЗрдЯрд╛ NoSql рдЪрд╛ рд░рд╛рдЬрд╛ рдХреЛрдг рдЖрд╣реЗ рд╣реЗ рд╕реНрд╡рддрдГ рд╢реЛрдзрдгреНрдпрд╛рдЪрд╛ рдирд┐рд░реНрдгрдп рдШреЗрддрд▓рд╛ рдЖрдгрд┐ рдкреНрд░рд╛рдкреНрдд рдЭрд╛рд▓реЗрд▓реЗ рдкрд░рд┐рдгрд╛рдо рдЕрддрд┐рд╢рдп рдордиреЛрд░рдВрдЬрдХ рдЕрд╕рд▓реНрдпрд╛рдЪреЗ рджрд┐рд╕реВрди рдЖрд▓реЗ.

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

рдореНрд╣рдгреВрди, рддрд┐рд╣реЗрд░реА рдкреНрд░рддрд┐рдХреГрддреА рдореЛрдбрдордзреНрдпреЗ рдлрдХреНрдд CS рдСрдкрд░реЗрдЯрд┐рдВрдЧ рдореЛрдбрдЪрд╛ рд╡рд┐рдЪрд╛рд░ рдХреЗрд▓рд╛ рдЧреЗрд▓рд╛, рдореНрд╣рдгрдЬреЗ. рдХреЗрд╕рд╕реНрдкреЗрд╕рдЪреА рдирд┐рд░реНрдорд┐рддреА рдЦрд╛рд▓реАрд▓ рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕рд╕рд╣ рдХреЗрд▓реА рдЧреЗрд▓реА:

CREATE KEYSPACE ks WITH REPLICATION = {'class' : 'NetworkTopologyStrategy', 'datacenter1' : 3};

рдкреБрдвреЗ, рд╕реБрд╕рдВрдЧрддрддреЗрдЪреА рдЖрд╡рд╢реНрдпрдХ рдкрд╛рддрд│реА рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдгреНрдпрд╛рдЪреЗ рджреЛрди рдорд╛рд░реНрдЧ рдЖрд╣реЗрдд. рд╕рд╛рдорд╛рдиреНрдп рдирд┐рдпрдо:
NW + NR > RF

рдпрд╛рдЪрд╛ рдЕрд░реНрде рдЕрд╕рд╛ рдХреА (NW) рд▓рд┐рд╣рд┐рддрд╛рдирд╛ рдиреЛрдбреНрд╕рдЪреНрдпрд╛ рдкреБрд╖реНрдЯреАрдХрд░рдгрд╛рдВрдЪреА рд╕рдВрдЦреНрдпрд╛ рддрд╕реЗрдЪ рд╡рд╛рдЪрддрд╛рдирд╛ (NR) рдиреЛрдбреНрд╕рдЪреНрдпрд╛ рдкреБрд╖реНрдЯреАрдХрд░рдгрд╛рдВрдЪреА рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рддрд┐рдХреГрддреА рдШрдЯрдХрд╛рдкреЗрдХреНрд╖рд╛ рдЬрд╛рд╕реНрдд рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рдЖрдордЪреНрдпрд╛ рдмрд╛рдмрддреАрдд, RF = 3, рдореНрд╣рдгрдЬреЗ рдЦрд╛рд▓реАрд▓ рдкрд░реНрдпрд╛рдп рдпреЛрдЧреНрдп рдЖрд╣реЗрдд:
2 + 2 > 3
3 + 1 > 3

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

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

рджреЛрди рдпрд╛рдХреЛрдЭреБрдирд╛рдЪреА рд▓рдврд╛рдИ рдХрд┐рдВрд╡рд╛ рдХреЕрд╕реЕрдиреНрдбреНрд░рд╛ рд╡рд┐рд░реБрджреНрдз рдПрдЪрдмреЗрд╕. Sberbank рд╕рдВрдШрд╛рдЪрд╛ рдЕрдиреБрднрд╡

рдпреЗрдереЗ рдЖрдкрдг рдЦрд╛рд▓реАрд▓ рдкрд╛рд╣рддреЛ: рдЬрд┐рддрдХреЗ рдЕрдзрд┐рдХ рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзреА рдереНрд░реЗрдб рдбреЗрдЯрд╛ рд▓рд┐рд╣рд┐рддрд╛рдд, рддрд┐рддрдХрд╛ рдЬрд╛рд╕реНрдд рд╡реЗрд│ рд▓рд╛рдЧрддреЛ. рд╣реЗ рд╕рд╛рд╣рдЬрд┐рдХ рдЖрд╣реЗ, рдкрд░рдВрддреБ рд╣реЗ рдорд╣рддреНрддреНрд╡рд╛рдЪреЗ рдЖрд╣реЗ рдХреА RF=3 рд╕рд╛рдареА рдХрд╛рд░реНрдпрдХреНрд╖рдорддреЗрдд рдШрдЯ рд▓рдХреНрд╖рдгреАрдпрд░реАрддреНрдпрд╛ рдЬрд╛рд╕реНрдд рдЖрд╣реЗ. рджреБрд╕рд▒реНрдпрд╛ рд╢рдмреНрджрд╛рдВрдд, рдЬрд░ рдЖрдкрдг рдкреНрд░рддреНрдпреЗрдХреА 4 рдЯреЗрдмрд▓реНрд╕рдордзреНрдпреЗ (рдПрдХреВрдг 5) 20 рдереНрд░реЗрдбреНрд╕ рд▓рд┐рд╣рд┐рддреЛ, рддрд░ RF=3 рд╕реБрдорд╛рд░реЗ 2 рдкрдЯреАрдиреЗ рдХрдореА рд╣реЛрддреЛ (RF=150 рд╕рд╛рдареА 3 рд╕реЗрдХрдВрдж рд╡рд┐рд░реБрджреНрдз RF=75 рд╕рд╛рдареА 1). рдкрд░рдВрддреБ рдЬрд░ рдЖрдкрдг рдкреНрд░рддреНрдпреЗрдХреА 8 рдереНрд░реЗрдбрд╕рд╣ 5 рдЯреЗрдмрд▓реНрд╕рдордзреНрдпреЗ рдбреЗрдЯрд╛ рд▓реЛрдб рдХрд░реВрди рд▓реЛрдб рд╡рд╛рдврд╡рд▓рд╛ (рдПрдХреВрдг 40), рддрд░ RF=3 рдЪреЗ рдиреБрдХрд╕рд╛рди рдЖрдзреАрдЪ 2,7 рдкрдЯ (375 рд╕реЗрдХрдВрдж рд╡рд┐рд░реБрджреНрдз 138) рдЖрд╣реЗ.

рдХрджрд╛рдЪрд┐рдд рд╣реЗ CS рд╕рд╛рдареА DataStax рджреНрд╡рд╛рд░реЗ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдпрд╢рд╕реНрд╡реА рд▓реЛрдб рдЪрд╛рдЪрдгреАрдЪреЗ рдЕрдВрд╢рддрдГ рд░рд╣рд╕реНрдп рдЖрд╣реЗ, рдХрд╛рд░рдг HB рд╕рд╛рдареА рдЖрдордЪреНрдпрд╛ рд╕реНрдЯрдБрдбрд╡рд░ рдкреНрд░рддрд┐рдХреГрддреА рдШрдЯрдХ 2 рддреЗ 3 рдкрд░реНрдпрдВрдд рдмрджрд▓рдгреНрдпрд╛рдЪрд╛ рдХреЛрдгрддрд╛рд╣реА рдкрд░рд┐рдгрд╛рдо рдЭрд╛рд▓рд╛ рдирд╛рд╣реА. рддреНрдпрд╛. рдбрд┐рд╕реНрдХреНрд╕ рдЖрдордЪреНрдпрд╛ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рдирд╕рд╛рдареА HB рдмреЙрдЯрд▓рдиреЗрдХ рдирд╛рд╣реАрдд. рддрдерд╛рдкрд┐, рдпреЗрдереЗ рдЗрддрд░ рдЕрдиреЗрдХ рддреЛрдЯреЗ рдЖрд╣реЗрдд, рдХрд╛рд░рдг рд╣реЗ рд▓рдХреНрд╖рд╛рдд рдШреЗрддрд▓реЗ рдкрд╛рд╣рд┐рдЬреЗ рдХреА рдЖрдордЪреА HB рдЖрд╡реГрддреНрддреА рдереЛрдбреАрд╢реА рдкреЕрдЪ рдЖрдгрд┐ рдЪрд┐рдордЯрд╛ рдЖрд╣реЗ, рд╡рд╛рддрд╛рд╡рд░рдг рдкреВрд░реНрдгрдкрдгреЗ рднрд┐рдиреНрди рдЖрд╣реЗ, рдЗ. рд╣реЗ рджреЗрдЦреАрд▓ рд▓рдХреНрд╖рд╛рдд рдШреЗрдгреНрдпрд╛рд╕рд╛рд░рдЦреЗ рдЖрд╣реЗ рдХреА рдХрджрд╛рдЪрд┐рдд рдорд▓рд╛ CS рдпреЛрдЧреНрдпрд░рд┐рддреНрдпрд╛ рдХрд╕реЗ рддрдпрд╛рд░ рдХрд░рд╛рд╡реЗ рд╣реЗ рдорд╛рд╣рд┐рдд рдирд╛рд╣реА рдЖрдгрд┐ рддреНрдпрд╛рд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рдЪреЗ рдЖрдгрдЦреА рдХрд╛рд╣реА рдкреНрд░рднрд╛рд╡реА рдорд╛рд░реНрдЧ рдЖрд╣реЗрдд рдЖрдгрд┐ рдорд▓рд╛ рдЖрд╢рд╛ рдЖрд╣реЗ рдХреА рдЖрдореНрд╣рд╛рд▓рд╛ рдЯрд┐рдкреНрдкрдгреНрдпрд╛рдВрдордзреНрдпреЗ рд╕рд╛рдкрдбреЗрд▓. рдкрдг рдкреНрд░рдердо рдЧреЛрд╖реНрдЯреА рдкреНрд░рдердо.

рд╕рд░реНрд╡ рдЪрд╛рдЪрдгреНрдпрд╛ 4 рд╕рд░реНрд╡реНрд╣рд░ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рд╣рд╛рд░реНрдбрд╡реЗрдЕрд░ рдХреНрд▓рд╕реНрдЯрд░рд╡рд░ рдХреЗрд▓реНрдпрд╛ рдЧреЗрд▓реНрдпрд╛, рдкреНрд░рддреНрдпреЗрдХ рдЦрд╛рд▓реАрд▓ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рдирд╕рд╣:

CPU: Xeon E5-2680 v4 @ 2.40GHz 64 рдереНрд░реЗрдбреНрд╕.
рдбрд┐рд╕реНрдХ: 12 рддреБрдХрдбреЗ SATA HDD
java рдЖрд╡реГрддреНрддреА: 1.8.0_111

CS рдЖрд╡реГрддреНрддреА: 3.11.5

cassandra.yml рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕num_tokens: 256
hinted_handoff_enabled: рдЦрд░реЗ
hinted_handoff_throttle_in_kb: 1024
рдХрдорд╛рд▓_рд╕рдВрдХреЗрдд_рд╡рд┐рддрд░рдг_рдереНрд░реЗрдб: реи
hints_directory: /data10/cassandra/hints
hints_flush_period_in_ms: 10000
max_hints_file_size_in_mb: 128
batchlog_replay_throttle_in_kb: 1024
рдкреНрд░рдорд╛рдгрдХрд░реНрддрд╛: AllowAllAuthenticator
рдЕрдзрд┐рдХреГрдд: AllowAllAuthorizer
рднреВрдорд┐рдХрд╛_рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ: CassandraRoleManager
рднреВрдорд┐рдХрд╛_рд╡реИрдзрддрд╛_рдЗрди_рдПрдордПрд╕: 2000
permissions_validity_in_ms: 2000
credentials_validity_in_ms: 2000
рд╡рд┐рднрд╛рдЬрдирдХрд░реНрддрд╛: org.apache.cassandra.dht.Murmur3Partitioner
data_file_directories:
- /data1/cassandra/data # рдкреНрд░рддреНрдпреЗрдХ dataN рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╡реЗрдЧрд│реА рдбрд┐рд╕реНрдХ рдЖрд╣реЗ
- /data2/cassandra/data
- /data3/cassandra/data
- /data4/cassandra/data
- /data5/cassandra/data
- /data6/cassandra/data
- /data7/cassandra/data
- /data8/cassandra/data
commitlog_directory: /data9/cassandra/commitlog
cdc_enabled: рдЕрд╕рддреНрдп
disk_failure_policy: рдерд╛рдВрдмрд╡рд╛
рдХрдорд┐рдЯ_рдлреЗрд▓реНрдпреБрдЕрд░_рдкреЙрд▓рд┐рд╕реА: рдерд╛рдВрдмрд╡рд╛
рддрдпрд╛рд░_рд╕реНрдЯреЗрдЯрдореЗрдВрдЯреНрд╕_cache_size_mb:
thrift_prepared_statements_cache_size_mb:
key_cache_size_in_mb:
key_cache_save_period: 14400
row_cache_size_in_mb: 0
row_cache_save_period: 0
counter_cache_size_in_mb:
counter_cache_save_period: 7200
saved_caches_directory: /data10/cassandra/saved_caches
рдХрдорд┐рдЯрд▓реЙрдЧ_рд╕рд┐рдВрдХ: рдирд┐рдпрддрдХрд╛рд▓рд┐рдХ
commitlog_sync_period_in_ms: 10000
commitlog_segment_size_in_mb: 32
рдмрд┐рдпрд╛рдгреЗ_рдкреНрд░рджрд╛рддрд╛:
- class_name: org.apache.cassandra.locator.SimpleSeedProvider
рдкреЕрд░рд╛рдорд┐рдЯрд░реНрд╕:
тАФ рдмрд┐рдпрд╛: "*,*"
concurrent_reads: 256 # 64 рдкреНрд░рдпрддреНрди рдХреЗрд▓рд╛ - рдлрд░рдХ рд▓рдХреНрд╖рд╛рдд рдЖрд▓рд╛ рдирд╛рд╣реА
concurrent_writes: 256 # 64 рдкреНрд░рдпрддреНрди рдХреЗрд▓рд╛ - рдлрд░рдХ рд▓рдХреНрд╖рд╛рдд рдЖрд▓рд╛ рдирд╛рд╣реА
concurrent_counter_writes: 256 # рдкреНрд░рдпрддреНрди рдХреЗрд▓рд╛ 64 - рдлрд░рдХ рд▓рдХреНрд╖рд╛рдд рдЖрд▓рд╛ рдирд╛рд╣реА
concurrent_materialized_view_writes: 32
memtable_heap_space_in_mb: 2048 # рдиреЗ 16 GB рдкреНрд░рдпрддреНрди рдХреЗрд▓рд╛ - рддреЗ рд╣рд│реВ рд╣реЛрддреЗ
memtable_allocation_type: heap_buffers
index_summary_capacity_in_mb:
index_summary_resize_interval_in_minutes: 60
trickle_fsync: рдЕрд╕рддреНрдп
trickle_fsync_interval_in_kb: 10240
рд╕реНрдЯреЛрд░реЗрдЬ_рдкреЛрд░реНрдЯ: 7000
ssl_storage_port: 7001
рдРрдХрд╛_рдкрддреНрддрд╛: *
рдкреНрд░рд╕рд╛рд░рдг_рдкрддреНрддрд╛: *
listen_on_broadcast_address: true
internode_authenticator: org.apache.cassandra.auth.AllowAllInternodeAuthenticator
start_native_transport: рдЦрд░реЗ
рдиреЗрдЯрд┐рд╡реНрд╣_рдЯреНрд░рд╛рдиреНрд╕рдкреЛрд░реНрдЯ_рдкреЛрд░реНрдЯ: 9042
start_rpc: рдЦрд░реЗ
rpc_address: *
rpc_port: 9160
rpc_keepalive: рдЦрд░реЗ
rpc_server_type: рд╕рд┐рдВрдХ
thrift_framed_transport_size_in_mb: 15
incremental_backups: рдЕрд╕рддреНрдп
snapshot_before_compaction: рдЕрд╕рддреНрдп
auto_snapshot: рдЦрд░реЗ
column_index_size_in_kb: 64
column_index_cache_size_in_kb: 2
рд╕рдорд╡рд░реНрддреА_рдХреЙрдореНрдкреЕрдХреНрдЯрд░: рек
compaction_throughput_mb_per_sec: 1600
sstable_preemptive_open_interval_in_mb: 50
read_request_timeout_in_ms: 100000
range_request_timeout_in_ms: 200000
write_request_timeout_in_ms: 40000
counter_write_request_timeout_in_ms: 100000
cas_contention_timeout_in_ms: 20000
truncate_request_timeout_in_ms: 60000
request_timeout_in_ms: 200000
slow_query_log_timeout_in_ms: 500
cross_node_timeout: рдЕрд╕рддреНрдп
endpoint_snitch: GossipingPropertyFileSnitch
dynamic_snitch_update_interval_in_ms: 100
dynamic_snitch_reset_interval_in_ms: 600000
dynamic_snitch_badness_threshold: 0.1
request_scheduler: org.apache.cassandra.scheduler.NoScheduler
рд╕рд░реНрд╡реНрд╣рд░_рдПрдирдХреНрд░рд┐рдкреНрд╢рди_рдкрд░реНрдпрд╛рдп:
internode_encryption: рдХрд╛рд╣реАрд╣реА рдирд╛рд╣реА
client_encryption_options:
рд╕рдХреНрд╖рдо: рдЕрд╕рддреНрдп
internode_compression: dc
inter_dc_tcp_nodelay: рдЕрд╕рддреНрдп
tracetype_query_ttl: 86400
tracetype_repair_ttl: 604800
enable_user_defined_functions: рдЕрд╕рддреНрдп
enable_scripted_user_defined_functions: рдЕрд╕рддреНрдп
windows_timer_interval: 1
рдкрд╛рд░рджрд░реНрд╢рдХ_рдбреЗрдЯрд╛_рдПрдирдХреНрд░рд┐рдкреНрд╢рди_рдкрд░реНрдпрд╛рдп:
рд╕рдХреНрд╖рдо: рдЕрд╕рддреНрдп
tombstone_warn_threshold: 1000
tombstone_failure_threshold: 100000
batch_size_warn_threshold_in_kb: 200
batch_size_fail_threshold_in_kb: 250
unlogged_batch_across_partitions_warn_threshold: 10
compaction_large_partition_warning_threshold_mb: 100
gc_warn_threshold_in_ms: 1000
back_pressure_enabled: рдЕрд╕рддреНрдп
enable_materialized_views: рдЦрд░реЗ
enable_sasi_indexes: рдЦрд░реЗ

GC рд╕реЗрдЯрд┐рдВрдЧреНрдЬ:

### CMS рд╕реЗрдЯрд┐рдВрдЧреНрдЬ-XX:+UseParNewGC
-XX:+ConcMarkSweepGC рд╡рд╛рдкрд░рд╛
-XX:+CMSParallelRemark рд╕рдХреНрд╖рдо
-XX:рд╕рд░реНрд╡реНрд╣рд╛рдпрд╡реНрд╣рд░ рд░реЗрд╢реЛ=8
-XX:MaxTenuringThreshold=1
-XX:CMSIinitiating OccupancyFraction=75
-XX:+рд╕реАрдПрдордПрд╕рдЖрдпрдЪреА рд╕реБрд░реБрд╡рд╛рдд рдХреЗрд╡рд│ рдСрдХреНрдпреБрдкрдиреНрд╕реА рд╡рд╛рдкрд░рд╛
-XX:CMSWaitDuration=10000
-XX:+CMSParallelInitialMark рд╕рдХреНрд╖рдо
-XX:+CMSEdenChunksRecordAlways
-XX:+CMSCрд╡рд░реНрдЧ рдЕрдирд▓реЛрдбрд┐рдВрдЧ рд╕рдХреНрд╖рдо

jvm.options рдореЗрдорд░реА 16Gb рд╡рд╛рдЯрдк рдХрд░рдгреНрдпрд╛рдд рдЖрд▓реА рд╣реЛрддреА (рдЖрдореНрд╣реА 32 Gb рджреЗрдЦреАрд▓ рд╡рд╛рдкрд░реВрди рдкрд╛рд╣рд┐рд▓реЗ, рдХреЛрдгрддрд╛рд╣реА рдлрд░рдХ рд▓рдХреНрд╖рд╛рдд рдЖрд▓рд╛ рдирд╛рд╣реА).

рдЯреЗрдмрд▓ рдХрдорд╛рдВрдбрд╕рд╣ рддрдпрд╛рд░ рдХреЗрд▓реЗ рдЧреЗрд▓реЗ:

CREATE TABLE ks.t1 (id bigint PRIMARY KEY, title text) WITH compression = {'sstable_compression': 'LZ4Compressor', 'chunk_length_kb': 64};

HB рдЖрд╡реГрддреНрддреА: 1.2.0-cdh5.14.2 (org.apache.hadoop.hbase.regionserver.HRegion рд╡рд░реНрдЧрд╛рдд рдЖрдореНрд╣реА MetricsRegion рд╡рдЧрд│рд▓реЗ рдЬреНрдпрд╛рдореБрд│реЗ RegionServer рд╡рд░ рдХреНрд╖реЗрддреНрд░рд╛рдВрдЪреА рд╕рдВрдЦреНрдпрд╛ 1000 рдкреЗрдХреНрд╖рд╛ рдЬрд╛рд╕реНрдд рд╣реЛрддреА рддреЗрд╡реНрд╣рд╛ GC рдЭрд╛рд▓рд╛)

рдиреЙрди-рдбрд┐рдлреЙрд▓реНрдЯ HBase рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕zookeeper.session.timeout: 120000
hbase.rpc.рдЯрд╛рдЗрдордЖрдЙрдЯ: 2 рдорд┐рдирд┐рдЯреЗ
hbase.client.scanner.timeout.period: 2 рдорд┐рдирд┐рдЯреЗ
hbase.master.handler.count: 10
hbase.regionserver.lease.period, hbase.client.scanner.timeout.period: 2 рдорд┐рдирд┐рдЯреЗ
hbase.regionserver.handler.count: 160
hbase.regionserver.metahandler.count: 30
hbase.regionserver.logroll.period: рек рддрд╛рд╕
hbase.regionserver.maxlogs: 200
hbase.hregion.memstore.flush.size: 1 GiB
hbase.hregion.memstore.block.multiplier: 6
hbase.hstore.compactionThreshold: 5
hbase.hstore.blockingStoreFiles: 200
hbase.hregion.majorcompaction: 1 рджрд┐рд╡рд╕
hbase-site.xml рд╕рд╛рдареА HBase рд╕реЗрд╡рд╛ рдкреНрд░рдЧрдд рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рд╕реНрдирд┐рдкреЗрдЯ (рд╕реЗрдлреНрдЯреА рд╡реНрд╣реЙрд▓реНрд╡реНрд╣):
hbase.regionserver.wal.codecorg.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec
hbase.master.namespace.init.timeout3600000
hbase.regionserver.optionalcacheflushinterval18000000
hbase.regionserver.thread.compaction.large12
hbase.regionserver.wal.enablecompressiontrue
hbase.hstore.compaction.max.size1073741824
hbase.server.compactchecker.interval.multiplier200
HBase RegionServer рд╕рд╛рдареА Java рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдкрд░реНрдпрд╛рдп:
-XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSIinitiatingOccupancyFraction=70 -XX:+CMSParallelRemarkEnabled -XX:ReservedCodeCacheSize=256m
hbase.snapshot.master.timeoutMillis: 2 рдорд┐рдирд┐рдЯреЗ
hbase.snapshot.region.timeout: 2 рдорд┐рдирд┐рдЯреЗ
hbase.snapshot.master.timeout.millis: 2 рдорд┐рдирд┐рдЯреЗ
HBase REST рд╕рд░реНрд╡реНрд╣рд░ рдХрдорд╛рд▓ рд▓реЙрдЧ рдЖрдХрд╛рд░: 100 MiB
HBase REST рд╕рд░реНрд╡реНрд╣рд░ рдХрдорд╛рд▓ рд▓реЙрдЧ рдлрд╛рдЗрд▓ рдмреЕрдХрдЕрдк: 5
HBase рдереНрд░рд┐рдлреНрдЯ рд╕рд░реНрд╡реНрд╣рд░ рдХрдорд╛рд▓ рд▓реЙрдЧ рдЖрдХрд╛рд░: 100 MiB
HBase рдереНрд░рд┐рдлреНрдЯ рд╕рд░реНрд╡реНрд╣рд░ рдХрдорд╛рд▓ рд▓реЙрдЧ рдлрд╛рдЗрд▓ рдмреЕрдХрдЕрдк: 5
рдорд╛рд╕реНрдЯрд░ рдХрдорд╛рд▓ рд▓реЙрдЧ рдЖрдХрд╛рд░: 100 MiB
рдорд╛рд╕реНрдЯрд░ рдХрдорд╛рд▓ рд▓реЙрдЧ рдлрд╛рдЗрд▓ рдмреЕрдХрдЕрдк: 5
RegionServer рдХрдорд╛рд▓ рд▓реЙрдЧ рдЖрдХрд╛рд░: 100 MiB
RegionServer рдХрдорд╛рд▓ рд▓реЙрдЧ рдлрд╛рдЗрд▓ рдмреЕрдХрдЕрдк: 5
HBase рд╕рдХреНрд░рд┐рдп рдорд╛рд╕реНрдЯрд░ рдбрд┐рдЯреЗрдХреНрд╢рди рд╡рд┐рдВрдбреЛ: 4 рдорд┐рдирд┐рдЯреЗ
dfs.client.hedged.read.threadpool.size: 40
dfs.client.hedged.read.threshold.millis: 10 рдорд┐рд▓реАрд╕реЗрдХрдВрдж
hbase.rest.threads.min: 8
hbase.rest.threads.max: 150
рдХрдорд╛рд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдлрд╛рдЗрд▓ рд╡рд░реНрдгрдирдХрд░реНрддрд╛: 180000
hbase.thrift.minWorkerThreads: 200
hbase.master.executor.openregion.threads: 30
hbase.master.executor.closeregion.threads: 30
hbase.master.executor.serverops.threads: 60
hbase.regionserver.thread.compaction.small: 6
hbase.ipc.server.read.threadpool.size: 20
рд░реАрдЬрди рдореВрд╡реНрд╣рд░ рдереНрд░реЗрдбреНрд╕: 6
рдХреНрд▓рд╛рдпрдВрдЯ Java рд╣реАрдк рдЖрдХрд╛рд░ рдмрд╛рдЗрдЯреНрд╕рдордзреНрдпреЗ: 1 GiB
HBase REST рд╕рд░реНрд╡реНрд╣рд░ рдбреАрдлреЙрд▓реНрдЯ рдЧрдЯ: 3 GiB
HBase рдереНрд░рд┐рдлреНрдЯ рд╕рд░реНрд╡реНрд╣рд░ рдбреАрдлреЙрд▓реНрдЯ рдЧрдЯ: 3 GiB
рдмрд╛рдЗрдЯреНрд╕рдордзреНрдпреЗ рдПрдЪрдмреЗрд╕ рдорд╛рд╕реНрдЯрд░рдЪрд╛ Java рд╣реАрдк рдЖрдХрд╛рд░: 16 GiB
HBase RegionServer рдЪрд╛ Java рд╣реАрдк рдЖрдХрд╛рд░ рдмрд╛рдЗрдЯреНрд╕рдордзреНрдпреЗ: 32 GiB

+рдЭреВрдХреАрдкрд░
maxClientCnxns: 601
maxSessionTimeout: 120000
рдЯреЗрдмрд▓ рддрдпрд╛рд░ рдХрд░рдгреЗ:
hbase org.apache.hadoop.hbase.util.RegionSplitter ns:t1 UniformSplit -c 64 -f cf
alter 'ns:t1', {NAME => 'cf', DATA_BLOCK_ENCODING => 'FAST_DIFF', COMPRESSION => 'GZ'}

рдпреЗрдереЗ рдПрдХ рдорд╣рддреНрддреНрд╡рд╛рдЪрд╛ рдореБрджреНрджрд╛ рдЖрд╣реЗ - рдбреЗрдЯрд╛рд╕реНрдЯреЕрдХреНрд╕рдЪреЗ рд╡рд░реНрдгрди HB рдЯреЗрдмрд▓ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХрд┐рддреА рдХреНрд╖реЗрддреНрд░реЗ рд╡рд╛рдкрд░рдгреНрдпрд╛рдд рдЖрд▓реА рд╣реЗ рд╕рд╛рдВрдЧрдд рдирд╛рд╣реА, рдЬрд░реА рд╣реЗ рдореЛрдареНрдпрд╛ рдЦрдВрдбрд╛рдВрд╕рд╛рдареА рдорд╣рддреНрддреНрд╡рд╛рдЪреЗ рдЖрд╣реЗ. рдореНрд╣рдгреВрди, рдЪрд╛рдЪрдгреНрдпрд╛рдВрд╕рд╛рдареА, рдкреНрд░рдорд╛рдг = 64 рдирд┐рд╡рдбрд▓реЗ рдЧреЗрд▓реЗ, рдЬреЗ 640 GB рдкрд░реНрдпрдВрдд рд╕рдВрдЪрдпрд┐рдд рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЗ, рдореНрд╣рдгрдЬреЗ. рдордзреНрдпрдо рдЖрдХрд╛рд░рд╛рдЪреЗ рдЯреЗрдмрд▓.

рдЪрд╛рдЪрдгреАрдЪреНрдпрд╛ рд╡реЗрд│реА, HBase рдХрдбреЗ 22 рд╣рдЬрд╛рд░ рддрдХреНрддреЗ рдЖрдгрд┐ 67 рд╣рдЬрд╛рд░ рдкреНрд░рджреЗрд╢ рд╣реЛрддреЗ (рд╡рд░ рдЙрд▓реНрд▓реЗрдЦ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдкреЕрдЪрд╕рд╛рдареА рдирд╕рд▓реНрдпрд╛рд╕ рдЖрд╡реГрддреНрддреА 1.2.0 рд╕рд╛рдареА рд╣реЗ рдШрд╛рддрдХ рдард░рд▓реЗ рдЕрд╕рддреЗ).

рдЖрддрд╛ рдХреЛрдбрд╕рд╛рдареА. рд╡рд┐рд╢рд┐рд╖реНрдЯ рдбреЗрдЯрд╛рдмреЗрд╕рд╕рд╛рдареА рдХреЛрдгрддреА рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдЕрдзрд┐рдХ рдлрд╛рдпрджреЗрд╢реАрд░ рдЖрд╣реЗ рд╣реЗ рд╕реНрдкрд╖реНрдЯ рдирд╕рд▓реНрдпрд╛рдореБрд│реЗ, рдЪрд╛рдЪрдгреНрдпрд╛ рд╡рд┐рд╡рд┐рдз рд╕рдВрдпреЛрдЬрдирд╛рдВрдордзреНрдпреЗ рдХреЗрд▓реНрдпрд╛ рдЧреЗрд▓реНрдпрд╛. рддреНрдпрд╛. рдХрд╛рд╣реА рдЪрд╛рдЪрдгреНрдпрд╛рдВрдордзреНрдпреЗ, 4 рдЯреЗрдмрд▓реНрд╕ рдПрдХрд╛рдЪ рд╡реЗрд│реА рд▓реЛрдб рдХреЗрд▓реНрдпрд╛ рдЧреЗрд▓реНрдпрд╛ (рд╕рд░реНрд╡ 4 рдиреЛрдб рдХрдиреЗрдХреНрд╢рдирд╕рд╛рдареА рд╡рд╛рдкрд░рд▓реЗ рдЧреЗрд▓реЗ). рдЗрддрд░ рдЪрд╛рдЪрдгреНрдпрд╛рдВрдордзреНрдпреЗ рдЖрдореНрд╣реА 8 рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рдЯреЗрдмрд▓рд╛рдВрд╕рд╣ рдХрд╛рдо рдХреЗрд▓реЗ. рдХрд╛рд╣реА рдкреНрд░рдХрд░рдгрд╛рдВрдордзреНрдпреЗ, рдмреЕрдЪрдЪрд╛ рдЖрдХрд╛рд░ 100 рд╣реЛрддрд╛, рдЗрддрд░рд╛рдВрдордзреНрдпреЗ 200 (рдмреЕрдЪ рдкреЕрд░рд╛рдореАрдЯрд░ - рдЦрд╛рд▓реА рдХреЛрдб рдкрд╣рд╛). рдореВрд▓реНрдпрд╛рд╕рд╛рдареА рдбреЗрдЯрд╛ рдЖрдХрд╛рд░ 10 рдмрд╛рдЗрдЯреНрд╕ рдХрд┐рдВрд╡рд╛ 100 рдмрд╛рдЗрдЯреНрд╕ (рдбреЗрдЯрд╛рдЖрдХрд╛рд░) рдЖрд╣реЗ. рдПрдХреВрдг, рдкреНрд░рддреНрдпреЗрдХ рд╡реЗрд│реА рдкреНрд░рддреНрдпреЗрдХ рдЯреЗрдмрд▓рдордзреНрдпреЗ 5 рджрд╢рд▓рдХреНрд╖ рд░реЗрдХреЙрд░реНрдб рд▓рд┐рд╣рд┐рд▓реЗ рдЖрдгрд┐ рд╡рд╛рдЪрд▓реЗ рдЧреЗрд▓реЗ. рддреНрдпрд╛рдЪ рд╡реЗрд│реА, рдкреНрд░рддреНрдпреЗрдХ рдЯреЗрдмрд▓рд╡рд░ 5 рдереНрд░реЗрдбреНрд╕ рд▓рд┐рд╣рд┐рд▓реЗ/рд╡рд╛рдЪрд▓реЗ рдЧреЗрд▓реЗ (рдереНрд░реЗрдб рдХреНрд░рдорд╛рдВрдХ - thNum), рдЬреНрдпрд╛рдкреИрдХреА рдкреНрд░рддреНрдпреЗрдХрд╛рдиреЗ рд╕реНрд╡рддрдГрдЪреА рдХреА рд╡рд╛рдкрд░рд▓реА (рдЧрдгрдирд╛ = 1 рджрд╢рд▓рдХреНрд╖):

if (opType.equals("insert")) {
    for (Long key = count * thNum; key < count * (thNum + 1); key += 0) {
        StringBuilder sb = new StringBuilder("BEGIN BATCH ");
        for (int i = 0; i < batch; i++) {
            String value = RandomStringUtils.random(dataSize, true, true);
            sb.append("INSERT INTO ")
                    .append(tableName)
                    .append("(id, title) ")
                    .append("VALUES (")
                    .append(key)
                    .append(", '")
                    .append(value)
                    .append("');");
            key++;
        }
        sb.append("APPLY BATCH;");
        final String query = sb.toString();
        session.execute(query);
    }
} else {
    for (Long key = count * thNum; key < count * (thNum + 1); key += 0) {
        StringBuilder sb = new StringBuilder("SELECT * FROM ").append(tableName).append(" WHERE id IN (");
        for (int i = 0; i < batch; i++) {
            sb = sb.append(key);
            if (i+1 < batch)
                sb.append(",");
            key++;
        }
        sb = sb.append(");");
        final String query = sb.toString();
        ResultSet rs = session.execute(query);
    }
}

рддреНрдпрд╛рдиреБрд╕рд╛рд░, HB рд╕рд╛рдареА рд╕рдорд╛рди рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХреЗрд▓реА рдЧреЗрд▓реА:

Configuration conf = getConf();
HTable table = new HTable(conf, keyspace + ":" + tableName);
table.setAutoFlush(false, false);
List<Get> lGet = new ArrayList<>();
List<Put> lPut = new ArrayList<>();
byte[] cf = Bytes.toBytes("cf");
byte[] qf = Bytes.toBytes("value");
if (opType.equals("insert")) {
    for (Long key = count * thNum; key < count * (thNum + 1); key += 0) {
        lPut.clear();
        for (int i = 0; i < batch; i++) {
            Put p = new Put(makeHbaseRowKey(key));
            String value = RandomStringUtils.random(dataSize, true, true);
            p.addColumn(cf, qf, value.getBytes());
            lPut.add(p);
            key++;
        }
        table.put(lPut);
        table.flushCommits();
    }
} else {
    for (Long key = count * thNum; key < count * (thNum + 1); key += 0) {
        lGet.clear();
        for (int i = 0; i < batch; i++) {
            Get g = new Get(makeHbaseRowKey(key));
            lGet.add(g);
            key++;
        }
        Result[] rs = table.get(lGet);
    }
}

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

public static byte[] makeHbaseRowKey(long key) {
    byte[] nonSaltedRowKey = Bytes.toBytes(key);
    CRC32 crc32 = new CRC32();
    crc32.update(nonSaltedRowKey);
    long crc32Value = crc32.getValue();
    byte[] salt = Arrays.copyOfRange(Bytes.toBytes(crc32Value), 5, 7);
    return ArrayUtils.addAll(salt, nonSaltedRowKey);
}

рдЖрддрд╛ рд╕рд░реНрд╡рд╛рдд рдордиреЛрд░рдВрдЬрдХ рднрд╛рдЧ - рдкрд░рд┐рдгрд╛рдо:

рджреЛрди рдпрд╛рдХреЛрдЭреБрдирд╛рдЪреА рд▓рдврд╛рдИ рдХрд┐рдВрд╡рд╛ рдХреЕрд╕реЕрдиреНрдбреНрд░рд╛ рд╡рд┐рд░реБрджреНрдз рдПрдЪрдмреЗрд╕. Sberbank рд╕рдВрдШрд╛рдЪрд╛ рдЕрдиреБрднрд╡

рдЖрд▓реЗрдЦ рд╕реНрд╡рд░реВрдкрд╛рдд рд╕рдорд╛рди рдЧреЛрд╖реНрдЯ:

рджреЛрди рдпрд╛рдХреЛрдЭреБрдирд╛рдЪреА рд▓рдврд╛рдИ рдХрд┐рдВрд╡рд╛ рдХреЕрд╕реЕрдиреНрдбреНрд░рд╛ рд╡рд┐рд░реБрджреНрдз рдПрдЪрдмреЗрд╕. Sberbank рд╕рдВрдШрд╛рдЪрд╛ рдЕрдиреБрднрд╡

HB рдЪрд╛ рдлрд╛рдпрджрд╛ рдЗрддрдХрд╛ рдЖрд╢реНтАНрдЪрд░реНрдпрдХрд╛рд░рдХ рдЖрд╣реЗ рдХреА CS рд╕реЗрдЯрдЕрдкрдордзреНрдпреЗ рдХрд╛рд╣реА рдкреНрд░рдХрд╛рд░рдЪреА рдЕрдбрдЪрдг рдЕрд╕рд▓реНрдпрд╛рдЪрд╛ рд╕рдВрд╢рдп рдЖрд╣реЗ. рддрдерд╛рдкрд┐, рдЧреБрдЧрд▓рд┐рдВрдЧ рдЖрдгрд┐ рд╕рд░реНрд╡рд╛рдд рд╕реНрдкрд╖реНрдЯ рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕ (рдЬрд╕реЗ рдХреА рд╕рдорд╡рд░реНрддреА_рд▓реЗрдЦрди рдХрд┐рдВрд╡рд╛ рдореЗрдордЯреЗрдмрд▓_рд╣реАрдк_рд╕реНрдкреЗрд╕_рдЗрди_рдПрдордмреА) рд╢реЛрдзрд▓реНрдпрд╛рдиреЗ рдЧреЛрд╖реНрдЯреАрдВрдирд╛ рдЧрддреА рдорд┐рд│рд╛рд▓реА рдирд╛рд╣реА. рддреНрдпрд╛рдЪ рд╡реЗрд│реА, рд▓реЙрдЧ рд╕реНрд╡рдЪреНрдЫ рдЖрд╣реЗрдд рдЖрдгрд┐ рдХрд╢рд╛рдЪреАрд╣реА рд╢рдкрде рдШреЗрдд рдирд╛рд╣реАрдд.

рдбреЗрдЯрд╛ рд╕рд░реНрд╡ рдиреЛрдбреНрд╕рд╡рд░ рд╕рдорд╛рди рд░реАрддреАрдиреЗ рд╡рд┐рддрд░реАрдд рдХреЗрд▓рд╛ рдЧреЗрд▓рд╛, рд╕рд░реНрд╡ рдиреЛрдбреНрд╕рдордзреАрд▓ рдЖрдХрдбреЗрд╡рд╛рд░реА рдЕрдВрджрд╛рдЬреЗ рд╕рдорд╛рди рд╣реЛрддреА.

рдПрдХрд╛ рдиреЛрдбреНрд╕рд╡рд░реВрди рд╕рд╛рд░рдгреАрдЪреА рдЖрдХрдбреЗрд╡рд╛рд░реА рдЕрд╢реА рджрд┐рд╕рддреЗрдХреАрд╕реНрдкреЗрд╕: ks
рд╡рд╛рдЪрд╛ рд╕рдВрдЦреНрдпрд╛: 9383707
рд▓реЗрдЯрдиреНрд╕реА рд╡рд╛рдЪрд╛: 0.04287025042448576 ms
рд╕рдВрдЦреНрдпрд╛ рд▓рд┐рд╣рд╛: 15462012
рд╡рд┐рд▓рдВрдм рд▓рд┐рд╣рд╛: 0.1350068438699957 ms
рдкреНрд░рд▓рдВрдмрд┐рдд рдлреНрд▓рд╢: 0
рддрдХреНрддрд╛: t1
SSTable рд╕рдВрдЦреНрдпрд╛: 16
рд╡рд╛рдкрд░рд▓реЗрд▓реА рдЬрд╛рдЧрд╛ (рд▓рд╛рдЗрд╡реНрд╣): 148.59 MiB
рд╡рд╛рдкрд░рд▓реЗрд▓реА рдЬрд╛рдЧрд╛ (рдПрдХреВрдг): 148.59 MiB
рд╕реНрдиреЕрдкрд╢реЙрдЯреНрд╕рджреНрд╡рд╛рд░реЗ рд╡рд╛рдкрд░рд▓реЗрд▓реА рдЬрд╛рдЧрд╛ (рдПрдХреВрдг): 0 рдмрд╛рдЗрдЯреНрд╕
рдСрдл рд╣реАрдк рдореЗрдорд░реА рд╡рд╛рдкрд░рд▓реА (рдПрдХреВрдг): 5.17 MiB
SSTable рдХреЙрдореНрдкреНрд░реЗрд╢рди рд░реЗрд╢реЛ: 0.5720989576459437
рд╡рд┐рднрд╛рдЬрдирд╛рдВрдЪреА рд╕рдВрдЦреНрдпрд╛ (рдЕрдВрджрд╛рдЬ): 3970323
рдореЗрдордЯреЗрдмрд▓ рд╕реЗрд▓ рд╕рдВрдЦреНрдпрд╛: 0
рдореЗрдордЯреЗрдмрд▓ рдбреЗрдЯрд╛ рдЖрдХрд╛рд░: 0 рдмрд╛рдЗрдЯреНрд╕
рдореЗрдордЯреЗрдмрд▓ рдСрдл рд╣реАрдк рдореЗрдорд░реА рд╡рд╛рдкрд░рд▓реА: 0 рдмрд╛рдЗрдЯреНрд╕
рдореЗрдордЯреЗрдмрд▓ рд╕реНрд╡рд┐рдЪ рд╕рдВрдЦреНрдпрд╛: 5
рд╕реНрдерд╛рдирд┐рдХ рд╡рд╛рдЪрди рд╕рдВрдЦреНрдпрд╛: 2346045
рд╕реНрдерд╛рдирд┐рдХ рд░реАрдб рд▓реЗрдЯрдиреНрд╕реА: NaN ms
рд╕реНрдерд╛рдирд┐рдХ рд▓реЗрдЦрди рд╕рдВрдЦреНрдпрд╛: 3865503
рд╕реНрдерд╛рдирд┐рдХ рд▓реЗрдЦрди рд╡рд┐рд▓рдВрдм: NaN ms
рдкреНрд░рд▓рдВрдмрд┐рдд рдлреНрд▓рд╢: 0
рджреБрд░реБрд╕реНрддреАрдЪреА рдЯрдХреНрдХреЗрд╡рд╛рд░реА: 0.0
рдмреНрд▓реВрдо рдлрд┐рд▓реНрдЯрд░ рдЦреЛрдЯреЗ рд╕рдХрд╛рд░рд╛рддреНрдордХ: 25
рдмреНрд▓реВрдо рдлрд┐рд▓реНрдЯрд░ рдЪреБрдХреАрдЪреЗ рдкреНрд░рдорд╛рдг: 0.00000
рдмреНрд▓реВрдо рдлрд┐рд▓реНрдЯрд░ рдЬрд╛рдЧрд╛ рд╡рд╛рдкрд░рд▓реА: 4.57 MiB
рдмреНрд▓реВрдо рдлрд┐рд▓реНрдЯрд░ рдСрдл рд╣реАрдк рдореЗрдорд░реА рд╡рд╛рдкрд░рд▓реА: 4.57 MiB
рдЗрдВрдбреЗрдХреНрд╕ рд╕рд╛рд░рд╛рдВрд╢ рдСрдл рд╣реАрдк рдореЗрдорд░реА рд╡рд╛рдкрд░рд▓реА: 590.02 KiB
рдХреЙрдореНрдкреНрд░реЗрд╢рди рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдСрдл рд╣реАрдк рдореЗрдорд░реА рд╡рд╛рдкрд░рд▓реА: 19.45 KiB
рдХреЙрдореНрдкреЕрдХреНрдЯ рдХреЗрд▓реЗрд▓реЗ рд╡рд┐рднрд╛рдЬрди рдХрд┐рдорд╛рди рдмрд╛рдЗрдЯреНрд╕: 36
рдХреЙрдореНрдкреЕрдХреНрдЯ рдХреЗрд▓реЗрд▓реЗ рд╡рд┐рднрд╛рдЬрди рдХрдорд╛рд▓ рдмрд╛рдЗрдЯреНрд╕: 42
рдХреЙрдореНрдкреЕрдХреНрдЯ рдХреЗрд▓реЗрд▓реЗ рд╡рд┐рднрд╛рдЬрди рдореАрди рдмрд╛рдЗрдЯреНрд╕: 42
рдкреНрд░рддрд┐ рд╕реНрд▓рд╛рдЗрд╕ рд╕рд░рд╛рд╕рд░реА рдереЗрдЯ рдкреЗрд╢реА (рдЕрдВрддрд┐рдо рдкрд╛рдЪ рдорд┐рдирд┐рдЯреЗ): NaN
рдкреНрд░рддрд┐ рд╕реНрд▓рд╛рдЗрд╕ рдХрдорд╛рд▓ рдЬрд┐рд╡рдВрдд рдкреЗрд╢реА (рд╢реЗрд╡рдЯрдЪреА рдкрд╛рдЪ рдорд┐рдирд┐рдЯреЗ): 0
рдкреНрд░рддрд┐ рд╕реНрд▓рд╛рдЗрд╕ рд╕рд░рд╛рд╕рд░реА рд╕рдорд╛рдзреА рджрдЧрдб (рд╢реЗрд╡рдЯрдЪреА рдкрд╛рдЪ рдорд┐рдирд┐рдЯреЗ): NaN
рдкреНрд░рддрд┐ рд╕реНрд▓рд╛рдЗрд╕ (рд╢реЗрд╡рдЯрдЪреА рдкрд╛рдЪ рдорд┐рдирд┐рдЯреЗ) рдЬрд╛рд╕реНрддреАрдд рдЬрд╛рд╕реНрдд рдердбрдЧреЗ: 0
рдбреНрд░реЙрдк рдХреЗрд▓реЗрд▓реЗ рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрди: 0 рдмрд╛рдЗрдЯреНрд╕

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

рджреЛрди рдпрд╛рдХреЛрдЭреБрдирд╛рдЪреА рд▓рдврд╛рдИ рдХрд┐рдВрд╡рд╛ рдХреЕрд╕реЕрдиреНрдбреНрд░рд╛ рд╡рд┐рд░реБрджреНрдз рдПрдЪрдмреЗрд╕. Sberbank рд╕рдВрдШрд╛рдЪрд╛ рдЕрдиреБрднрд╡
рдЖрдХреГрддреА рджреЛрдиреНрд╣реА рдбреЗрдЯрд╛рдмреЗрд╕рд╕рд╛рдареА рд▓рд╛рдЧреЛрдкрд╛рда рд╕рд░реНрд╡ рдЪрд╛рдЪрдгреНрдпрд╛ рдЪрд╛рд▓рд╡рддрд╛рдирд╛ рд╣реЛрдгрд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рджрд░реНрд╢рд╡рддреЗ.

HB рдЪреНрдпрд╛ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рд╡рд╛рдЪрди рдлрд╛рдпрджреНрдпрд╛рдмрджреНрджрд▓. рдпреЗрдереЗ рддреБрдореНрд╣реА рдкрд╛рд╣реВ рд╢рдХрддрд╛ рдХреА рджреЛрдиреНрд╣реА рдбреЗрдЯрд╛рдмреЗрд╕рд╕рд╛рдареА, рд╡рд╛рдЪрдирд╛рджрд░рдореНрдпрд╛рди рдбрд┐рд╕реНрдХрдЪрд╛ рд╡рд╛рдкрд░ рдЕрддреНрдпрдВрдд рдХрдореА рдЖрд╣реЗ (рд╡рд╛рдЪрди рдЪрд╛рдЪрдгреНрдпрд╛ рдкреНрд░рддреНрдпреЗрдХ рдбреЗрдЯрд╛рдмреЗрд╕рд╕рд╛рдареА рдЪрд╛рдЪрдгреА рдЪрдХреНрд░рд╛рдЪрд╛ рдЕрдВрддрд┐рдо рднрд╛рдЧ рдЖрд╣реЗрдд, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде CS рд╕рд╛рдареА рд╣реЗ 15:20 рддреЗ 15:40 рдкрд░реНрдпрдВрдд рдЖрд╣реЗ). рдПрдЪрдмреАрдЪреНрдпрд╛ рдмрд╛рдмрддреАрдд, рдХрд╛рд░рдг рд╕реНрдкрд╖реНрдЯ рдЖрд╣реЗ - рдмрд╣реБрддреЗрдХ рдбреЗрдЯрд╛ рдореЗрдорд░реАрдордзреНрдпреЗ, рдореЗрдорд╕реНрдЯреЛрдЕрд░рдордзреНрдпреЗ рд╣рдБрдЧ рд╣реЛрддреЛ рдЖрдгрд┐ рдХрд╛рд╣реА рдмреНрд▓реЙрдХрдХреЕрд╢реЗрдордзреНрдпреЗ рдХреЕрд╢ рдХреЗрд▓рд╛ рдЬрд╛рддреЛ. CS рд╕рд╛рдареА, рддреЗ рдХрд╕реЗ рдХрд╛рд░реНрдп рдХрд░рддреЗ рд╣реЗ рдЕрдЧрджреА рд╕реНрдкрд╖реНрдЯ рдирд╛рд╣реА, рдкрд░рдВрддреБ рдбрд┐рд╕реНрдХ рд░реАрд╕рд╛рдпрдХрд▓рд┐рдВрдЧ рджреЗрдЦреАрд▓ рджреГрд╢реНрдпрдорд╛рди рдирд╛рд╣реА, рдкрд░рдВрддреБ рдлрдХреНрдд рдмрд╛рдмрддреАрдд, рдХреЕрд╢реЗ рд╕рдХреНрд╖рдо рдХрд░рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХреЗрд▓рд╛ рдЧреЗрд▓рд╛ row_cache_size_in_mb = 2048 рдЖрдгрд┐ рд╕реЗрдЯ рдХреЕрд╢рд┐рдВрдЧ = {'keys': 'ALL', 'rows_per_partition': '2000000'}, рдкрдг рддреНрдпрд╛рдореБрд│реЗ рддреЗ рдЖрдгрдЦреАрдирдЪ рдмрд┐рдШрдбрд▓реЗ.

HB рдордзреАрд▓ рдкреНрд░рджреЗрд╢рд╛рдВрдЪреНрдпрд╛ рд╕рдВрдЦреНрдпреЗрдмрджреНрджрд▓ рдкреБрдиреНрд╣рд╛ рдПрдХрджрд╛ рдПрдХ рдорд╣рддреНрддреНрд╡рд╛рдЪрд╛ рдореБрджреНрджрд╛ рдирдореВрдж рдХрд░рдгреЗ рдпреЛрдЧреНрдп рдЖрд╣реЗ. рдЖрдордЪреНрдпрд╛ рдмрд╛рдмрддреАрдд, рдореВрд▓реНрдп 64 рдореНрд╣рдгреВрди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЗрд▓реЗ рдЖрд╣реЗ. рдЬрд░ рддреБрдореНрд╣реА рддреЗ рдХрдореА рдХреЗрд▓реЗ рдЖрдгрд┐ рддреЗ рд╕рдорд╛рди рдХреЗрд▓реЗ, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, 4, рддрд░ рд╡рд╛рдЪрддрд╛рдирд╛, рд╡реЗрдЧ 2 рдкрдЯ рдХрдореА рд╣реЛрдИрд▓. рдпрд╛рдЪреЗ рдХрд╛рд░рдг рдЕрд╕реЗ рдЖрд╣реЗ рдХреА рдореЗрдорд╕реНрдЯреЛрдЕрд░ рдЬрд▓рдж рднрд░реЗрд▓ рдЖрдгрд┐ рдлрд╛рдпрд▓реА рдЕрдзрд┐рдХ рд╡реЗрд│рд╛ рдлреНрд▓рд╢ рдХреЗрд▓реНрдпрд╛ рдЬрд╛рддреАрд▓ рдЖрдгрд┐ рд╡рд╛рдЪрддрд╛рдирд╛, рдЕрдзрд┐рдХ рдлрд╛рдпрд▓реАрдВрд╡рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рд╛рд╡реА рд▓рд╛рдЧреЗрд▓, рдЬреЗ рдПрдЪрдмреАрд╕рд╛рдареА рдПрдХ рдЬрдЯрд┐рд▓ рдСрдкрд░реЗрд╢рди рдЖрд╣реЗ. рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд░рд┐рд╕реНрдерд┐рддреАрдд, рдкреНрд░реАрд╕реНрдкреНрд▓рд┐рдЯрд┐рдВрдЧ рдЖрдгрд┐ рдХреЙрдореНрдкреЕрдХреНрдЯрд┐рдлрд┐рдХреЗрд╢рди рдзреЛрд░рдгрд╛рджреНрд╡рд╛рд░реЗ рд╡рд┐рдЪрд╛рд░ рдХрд░реВрди рдпрд╛рд╡рд░ рдЙрдкрдЪрд╛рд░ рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддрд╛рдд; рд╡рд┐рд╢реЗрд╖рддрдГ, рдЖрдореНрд╣реА рдПрдХ рд╕реНрд╡рдпрдВ-рд▓рд┐рдЦрд┐рдд рдЙрдкрдпреБрдХреНрддрддрд╛ рд╡рд╛рдкрд░рддреЛ рдЬреА рдХрдЪрд░рд╛ рдЧреЛрд│рд╛ рдХрд░рддреЗ рдЖрдгрд┐ рдкрд╛рд░реНрд╢реНрд╡рднреВрдореАрдордзреНрдпреЗ рд╕рддрдд HFiles рд╕рдВрдХреБрдЪрд┐рдд рдХрд░рддреЗ. рд╣реЗ рд╢рдХреНрдп рдЖрд╣реЗ рдХреА рдбреЗрдЯрд╛рд╕реНрдЯреЕрдХреНрд╕ рдЪрд╛рдЪрдгреНрдпрд╛рдВрд╕рд╛рдареА рддреНрдпрд╛рдВрдиреА рдкреНрд░рддрд┐ рдЯреЗрдмрд▓ рдлрдХреНрдд 1 рдХреНрд╖реЗрддреНрд░ рд╡рд╛рдЯрдк рдХреЗрд▓реЗ (рдЬреЗ рдмрд░реЛрдмрд░ рдирд╛рд╣реА) рдЖрдгрд┐ рдпрд╛рдореБрд│реЗ рддреНрдпрд╛рдВрдЪреНрдпрд╛ рд╡рд╛рдЪрди рдЪрд╛рдЪрдгреНрдпрд╛рдВрдордзреНрдпреЗ HB рдЗрддрдХрд╛ рдирд┐рдХреГрд╖реНрдЯ рдХрд╛ рдЖрд╣реЗ рд╣реЗ рдХрд╛рд╣реА рдкреНрд░рдорд╛рдгрд╛рдд рд╕реНрдкрд╖реНрдЯ рд╣реЛрдИрд▓.

рдпрд╛рд╡рд░реВрди рдкреБрдвреАрд▓ рдкреНрд░рд╛рдердорд┐рдХ рдирд┐рд╖реНрдХрд░реНрд╖ рдХрд╛рдврдгреНрдпрд╛рдд рдЖрд▓реЗ рдЖрд╣реЗрдд. рдЪрд╛рдЪрдгреА рджрд░рдореНрдпрд╛рди рдХреЛрдгрддреАрд╣реА рдореЛрдареА рдЪреВрдХ рдЭрд╛рд▓реА рдирд╛рд╣реА рдЕрд╕реЗ рдЧреГрд╣реАрдд рдзрд░рд▓реЗ, рддрд░ рдХреЕрд╕реЕрдиреНрдбреНрд░рд╛ рдорд╛рддреАрдЪреНрдпрд╛ рдкрд╛рдпрд╛рдВрд╕рд╣ рдХреЛрд▓реЛрд╕рд╕рд╕рд╛рд░рдЦреЗ рджрд┐рд╕рддреЗ. рдЕрдзрд┐рдХ рддрдВрддреЛрддрдВрдд, рд▓реЗрдЦрд╛рдЪреНрдпрд╛ рд╕реБрд░реБрд╡рд╛рддреАрд▓рд╛ рджрд┐рд▓реЗрд▓реНрдпрд╛ рдЪрд┐рддреНрд░рд╛рдкреНрд░рдорд╛рдгреЗ рддреА рдПрдХрд╛ рдкрд╛рдпрд╛рд╡рд░ рд╕рдорддреЛрд▓ рд░рд╛рдЦрддреЗ, рддреА рддреБрд▓рдиреЗрдиреЗ рдЪрд╛рдВрдЧрд▓реЗ рдкрд░рд┐рдгрд╛рдо рджрд░реНрд╢рд╡рддреЗ, рдкрд░рдВрддреБ рддреНрдпрд╛рдЪ рдкрд░рд┐рд╕реНрдерд┐рддреАрдд рдЭрд╛рд▓реЗрд▓реНрдпрд╛ рд▓рдврддреАрдд рддреА рдкреВрд░реНрдгрдкрдгреЗ рд╣рд░рддреЗ. рддреНрдпрд╛рдЪ рд╡реЗрд│реА, рдЖрдордЪреНрдпрд╛ рд╣рд╛рд░реНрдбрд╡реЗрдЕрд░рд╡рд░ рдХрдореА CPU рд╡рд╛рдкрд░ рд▓рдХреНрд╖рд╛рдд рдШреЗрдКрди, рдЖрдореНрд╣реА рдкреНрд░рддреНрдпреЗрдХ рд╣реЛрд╕реНрдЯрд╡рд░ рджреЛрди RegionServer HB рд▓рд╛рд╡рд╛рдпрд▓рд╛ рд╢рд┐рдХрд▓реЛ рдЖрдгрд┐ рддреНрдпрд╛рдореБрд│реЗ рдХрд╛рдордЧрд┐рд░реА рджреБрдкреНрдкрдЯ рдЭрд╛рд▓реА. рддреНрдпрд╛. рд╕рдВрд╕рд╛рдзрдирд╛рдВрдЪрд╛ рд╡рд╛рдкрд░ рд▓рдХреНрд╖рд╛рдд рдШреЗрддрд╛, CS рд╕рд╛рдареА рдкрд░рд┐рд╕реНрдерд┐рддреА рдЖрдгрдЦреАрдирдЪ рд╢реЛрдЪрдиреАрдп рдЖрд╣реЗ.

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

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

UPD: рдХреЙрдореНрд░реЗрдбрдЪреНрдпрд╛ рд╕рд▓реНрд▓реНрдпрд╛рдмрджреНрджрд▓ рдзрдиреНрдпрд╡рд╛рдж, рдореА рд╡рд╛рдЪрдирд╛рдЪрд╛ рд╡реЗрдЧ рд╡рд╛рдврд╡реВ рд╢рдХрд▓реЛ. рд╣реЛрддреЗ:
159 рдСрдкреНрд╕ (644 рдЯреЗрдмрд▓, 4 рдкреНрд░рд╡рд╛рд╣, рдмреЕрдЪ 5).
рдЬреЛрдбрд▓реЗ:
.withLoadBalancingPolicy(рдирд╡реАрди TokenAwarePolicy(DCAwareRoundRobinPolicy.builder().build()))
рдЖрдгрд┐ рдореА рдереНрд░реЗрдбреНрд╕рдЪреНрдпрд╛ рд╕рдВрдЦреНрдпреЗрд╕рд╣ рдЦреЗрд│рд▓реЛ. рдкрд░рд┐рдгрд╛рдо рдЦрд╛рд▓реАрд▓рдкреНрд░рдорд╛рдгреЗ рдЖрд╣реЗ:
4 рдЯреЗрдмрд▓реНрд╕, 100 рдереНрд░реЗрдбреНрд╕, рдмреЕрдЪ = 1 (рддреБрдХрдбрд╛ рддреБрдХрдбрд╛): 301 рдСрдкреНрд╕
4 рдЯреЗрдмрд▓, 100 рдзрд╛рдЧреЗ, рдмреЕрдЪ = 10: 447 рдСрдкреНрд╕
4 рдЯреЗрдмрд▓, 100 рдзрд╛рдЧреЗ, рдмреЕрдЪ = 100: 625 рдСрдкреНрд╕

рдирдВрддрд░ рдореА рдЗрддрд░ рдЯреНрдпреВрдирд┐рдВрдЧ рдЯрд┐рдкреНрд╕ рд▓рд╛рдЧреВ рдХрд░реЗрди, рдкреВрд░реНрдг рдЪрд╛рдЪрдгреА рдЪрдХреНрд░ рдЪрд╛рд▓рд╡реАрди рдЖрдгрд┐ рдкреЛрд╕реНрдЯрдЪреНрдпрд╛ рд╢реЗрд╡рдЯреА рдкрд░рд┐рдгрд╛рдо рдЬреЛрдбреЗрди.

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

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