เชฌเซ‡ เชฏเชพเช•เซ‹เชเซเชจเชพเชจเซเช‚ เชฏเซเชฆเซเชง, เช…เชฅเชตเชพ เช•เซ‡เชธเชพเชจเซเชกเซเชฐเชพ เชตเชฟ HBase. Sberbank เชŸเซ€เชฎเชจเซ‹ เช…เชจเซเชญเชต

เช† เชเช• เชฎเชœเชพเช• เชชเชฃ เชจเชฅเซ€, เชเชตเซเช‚ เชฒเชพเช—เซ‡ เช›เซ‡ เช•เซ‡ เช† เชšเซ‹เช•เซเช•เชธ เชšเชฟเชคเซเชฐ เช† เชกเซ‡เชŸเชพเชฌเซ‡เชธเซ‡เชธเชจเชพ เชธเชพเชฐเชจเซ‡ เชธเซŒเชฅเซ€ เชธเชšเซ‹เชŸ เชฐเซ€เชคเซ‡ เชชเซเชฐเชคเชฟเชฌเชฟเช‚เชฌเชฟเชค เช•เชฐเซ‡ เช›เซ‡, เช…เชจเซ‡ เช…เช‚เชคเซ‡ เชคเซ‡ เชธเซเชชเชทเซเชŸ เชฅเชถเซ‡ เช•เซ‡ เชถเชพ เชฎเชพเชŸเซ‡:

เชฌเซ‡ เชฏเชพเช•เซ‹เชเซเชจเชพเชจเซเช‚ เชฏเซเชฆเซเชง, เช…เชฅเชตเชพ เช•เซ‡เชธเชพเชจเซเชกเซเชฐเชพ เชตเชฟ HBase. Sberbank เชŸเซ€เชฎเชจเซ‹ เช…เชจเซเชญเชต

DB-Engines เชฐเซ‡เชจเซเช•เชฟเช‚เช— เช…เชจเซเชธเชพเชฐ, เชฌเซ‡ เชธเซŒเชฅเซ€ เชตเชงเซ เชฒเซ‹เช•เชชเซเชฐเชฟเชฏ NoSQL เช•เซ‰เชฒเชฎเชฐ เชกเซ‡เชŸเชพเชฌเซ‡เช เช›เซ‡ เช•เซ‡เชธเชพเชจเซเชกเซเชฐเชพ (เชคเซเชฏเชพเชฐเชฌเชพเชฆ CS) เช…เชจเซ‡ HBase (HB).

เชฌเซ‡ เชฏเชพเช•เซ‹เชเซเชจเชพเชจเซเช‚ เชฏเซเชฆเซเชง, เช…เชฅเชตเชพ เช•เซ‡เชธเชพเชจเซเชกเซเชฐเชพ เชตเชฟ HBase. Sberbank เชŸเซ€เชฎเชจเซ‹ เช…เชจเซเชญเชต

เชญเชพเช—เซเชฏเชจเซ€ เช‡เชšเซเช›เชพเชฅเซ€, Sberbank เชชเชฐ เช…เชฎเชพเชฐเซ€ เชกเซ‡เชŸเชพ เชฒเซ‹เชกเชฟเช‚เช— เชฎเซ‡เชจเซ‡เชœเชฎเซ‡เชจเซเชŸ เชŸเซ€เชฎ เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เช›เซ‡ เชฒเชพเช‚เชฌเชพ เชธเชฎเชฏ เชชเชนเซ‡เชฒเชพ เช…เชจเซ‡ HB เชธเชพเชฅเซ‡ เชจเชœเซ€เช•เชฅเซ€ เช•เชพเชฎ เช•เชฐเซ‡ เช›เซ‡. เช† เชธเชฎเชฏ เชฆเชฐเชฎเชฟเชฏเชพเชจ, เช…เชฎเซ‡ เชคเซ‡เชจเซ€ เชถเช•เซเชคเชฟเช“ เช…เชจเซ‡ เชจเชฌเชณเชพเชˆเช“เชจเซ‹ เชธเชพเชฐเซ€ เชฐเซ€เชคเซ‡ เช…เชญเซเชฏเชพเชธ เช•เชฐเซเชฏเซ‹ เช…เชจเซ‡ เชคเซ‡เชจเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชฐเชพเช‚เชงเชตเซเช‚ เชคเซ‡ เชถเซ€เช–เซเชฏเชพ. เชœเซ‹ เช•เซ‡, CS เชจเชพ เชฐเซ‚เชชเชฎเชพเช‚ เชตเชฟเช•เชฒเซเชชเชจเซ€ เชนเชพเชœเชฐเซ€เช เช…เชฎเชจเซ‡ เชนเช‚เชฎเซ‡เชถเชพ เชถเช‚เช•เชพเช“ เชธเชพเชฅเซ‡ เชฅเซ‹เชกเซ‹ เชคเซเชฐเชพเชธ เช†เชชเชตเชพ เชฎเชพเชŸเซ‡ เชฆเชฌเชพเชฃ เช•เชฐเซเชฏเซเช‚: เชถเซเช‚ เช…เชฎเซ‡ เชฏเซ‹เช—เซเชฏ เชชเชธเช‚เชฆเช—เซ€ เช•เชฐเซ€? เชตเชงเซเชฎเชพเช‚, เชชเชฐเชฟเชฃเชพเชฎเซ‹ เชคเซเชฒเชจเชพ, DataStax เชฆเซเชตเชพเชฐเชพ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เชนเชคเซเช‚, เชคเซ‡เช“เช เชœเชฃเชพเชตเซเชฏเซเช‚ เชนเชคเซเช‚ เช•เซ‡ CS เชฒเช—เชญเช— เชเช• เช•เชพเชฐเชฎเซ€ เชธเซเช•เซ‹เชฐ เชธเชพเชฅเซ‡ HBเชจเซ‡ เชธเชฐเชณเชคเชพเชฅเซ€ เชนเชฐเชพเชตเซ€ เชฆเซ‡ เช›เซ‡. เชฌเซ€เชœเซ€ เชฌเชพเชœเซ, DataStax เชเช• เชฐเชธ เชงเชฐเชพเชตเชคเซ‹ เชชเช•เซเชท เช›เซ‡, เช…เชจเซ‡ เชคเชฎเชพเชฐเซ‡ เชคเซ‡เชจเชพ เชฎเชพเชŸเซ‡ เชคเซ‡เชฎเชจเซ‹ เชถเชฌเซเชฆ เชฒเซ‡เชตเซ‹ เชœเซ‹เชˆเช เชจเชนเซ€เช‚. เช…เชฎเซ‡ เชชเชฐเซ€เช•เซเชทเชฃ เชถเชฐเชคเซ‹ เชตเชฟเชถเซ‡เชจเซ€ เชฅเซ‹เชกเซ€ เชฎเชพเชคเซเชฐเชพเชฎเชพเช‚ เชฎเชพเชนเชฟเชคเซ€เชฅเซ€ เชชเชฃ เชฎเซ‚เช‚เชเชตเชฃเชฎเชพเช‚ เชนเชคเชพ, เชคเซ‡เชฅเซ€ เช…เชฎเซ‡ เชฌเชฟเช—เชกเซ‡เชŸเชพ NoSql เชจเชพ เชฐเชพเชœเชพ เช•เซ‹เชฃ เช›เซ‡ เชคเซ‡ เชถเซ‹เชงเชตเชพเชจเซเช‚ เชจเช•เซเช•เซ€ เช•เชฐเซเชฏเซเช‚, เช…เชจเซ‡ เชชเซเชฐเชพเชชเซเชค เชชเชฐเชฟเชฃเชพเชฎเซ‹ เช–เซ‚เชฌ เชœ เชฐเชธเชชเซเชฐเชฆ เชนเซ‹เชตเชพเชจเซเช‚ เชฌเชนเชพเชฐ เช†เชตเซเชฏเซเช‚.

เชœเซ‹ เช•เซ‡, เชชเชฐเซ€เช•เซเชทเชฃเซ‹เชจเชพ เชชเชฐเชฟเชฃเชพเชฎเซ‹ เชคเชฐเชซ เช†เช—เชณ เชตเชงเชคเชพ เชชเชนเซ‡เชฒเชพ, เชชเชฐเซเชฏเชพเชตเชฐเชฃเชจเซ€ เช—เซ‹เช เชตเชฃเซ€เชจเชพ เชจเซ‹เช‚เชงเชชเชพเชคเซเชฐ เชชเชพเชธเชพเช“เชจเซเช‚ เชตเชฐเซเชฃเชจ เช•เชฐเชตเซเช‚ เชœเชฐเซ‚เชฐเซ€ เช›เซ‡. เชนเช•เซ€เช•เชค เช เช›เซ‡ เช•เซ‡ CS เชจเซ‹ เช‰เชชเชฏเซ‹เช— เชเชตเชพ เชฎเซ‹เชกเชฎเชพเช‚ เชฅเชˆ เชถเช•เซ‡ เช›เซ‡ เชœเซ‡ เชกเซ‡เชŸเชพเชจเซ‡ เชจเซเช•เชถเชพเชจเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡. เชคเซ‡. เช† เชคเซเชฏเชพเชฐเซ‡ เชฅเชพเชฏ เช›เซ‡ เชœเซเชฏเชพเชฐเซ‡ เช•เซ‹เชˆ เชšเซ‹เช•เซเช•เชธ เช•เซ€เชจเชพ เชกเซ‡เชŸเชพ เชฎเชพเชŸเซ‡ เชฎเชพเชคเซเชฐ เชเช• เชธเชฐเซเชตเชฐ (เชจเซ‹เชก) เชœเชตเชพเชฌเชฆเชพเชฐ เชนเซ‹เชฏ เช›เซ‡, เช…เชจเซ‡ เชœเซ‹ เช•เซ‹เชˆ เช•เชพเชฐเชฃเซ‹เชธเชฐ เชคเซ‡ เชจเชฟเชทเซเชซเชณ เชœเชพเชฏ เช›เซ‡, เชคเซ‹ เช† เช•เซ€เชจเซเช‚ เชฎเซ‚เชฒเซเชฏ เช–เซ‹เชตเชพเชˆ เชœเชถเซ‡. เช˜เชฃเชพ เช•เชพเชฐเซเชฏเซ‹ เชฎเชพเชŸเซ‡ เช† เชฎเชนเชคเซเชตเชชเซ‚เชฐเซเชฃ เชจเชฅเซ€, เชชเชฐเช‚เชคเซ เชฌเซ‡เช‚เช•เชฟเช‚เช— เช•เซเชทเซ‡เชคเซเชฐ เชฎเชพเชŸเซ‡ เช† เชจเชฟเชฏเชฎเชจเซ‡ เชฌเชฆเชฒเซ‡ เช…เชชเชตเชพเชฆ เช›เซ‡. เช…เชฎเชพเชฐเชพ เช•เชฟเชธเซเชธเชพเชฎเชพเช‚, เชตเชฟเชถเซเชตเชธเชจเซ€เชฏ เชธเซเชŸเซ‹เชฐเซ‡เชœ เชฎเชพเชŸเซ‡ เชกเซ‡เชŸเชพเชจเซ€ เช˜เชฃเซ€ เชจเช•เชฒเซ‹ เชนเซ‹เชตเซ€ เชฎเชนเชคเซเชตเชชเซ‚เชฐเซเชฃ เช›เซ‡.

เชคเซ‡เชฅเซ€, เชŸเซเชฐเชฟเชชเชฒ เชฐเชฟเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชฎเซ‹เชกเชฎเชพเช‚ เชฎเชพเชคเซเชฐ 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 เชฏเซ‹เชœเชจเชพ เชชเชธเช‚เชฆ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เชนเชคเซ€. เชตเชงเซเชฎเชพเช‚, HB เชธเชฎเชพเชจ เชธเชฟเชฆเซเชงเชพเช‚เชค เชชเชฐ เช•เชพเชฎ เช•เชฐเซ‡ เช›เซ‡, เชเชŸเชฒเซ‡ เช•เซ‡. เช†เชตเซ€ เชธเชฐเช–เชพเชฎเชฃเซ€ เชตเชงเซ เชจเซเชฏเชพเชฏเซ€ เชนเชถเซ‡.

เช เชจเซ‹เช‚เชงเชตเซเช‚ เชœเซ‹เช‡เช เช•เซ‡ เชกเซ‡เชŸเชพเชธเซเชŸเซ‡เช•เซเชธเซ‡ เชคเซ‡เชฎเชจเชพ เช…เชญเซเชฏเชพเชธเชฎเชพเช‚ เชตเชฟเชชเชฐเซ€เชค เช•เชฐเซเชฏเซเช‚, เชคเซ‡เช“เช CS เช…เชจเซ‡ HB เชฌเช‚เชจเซ‡ เชฎเชพเชŸเซ‡ RF = 1 เชธเซ‡เชŸ เช•เชฐเซเชฏเซ‹ (เชฌเชพเชฆเชฎเชพเช‚ HDFS เชธเซ‡เชŸเชฟเช‚เช—เซเชธ เชฌเชฆเชฒเซ€เชจเซ‡). เช† เช–เชฐเซ‡เช–เชฐ เชฎเชนเชคเซเชคเซเชตเชจเซเช‚ เชชเชพเชธเซเช‚ เช›เซ‡ เช•เชพเชฐเชฃ เช•เซ‡ เช† เช•เชฟเชธเซเชธเชพเชฎเชพเช‚ CSเชจเซ€ เช•เชพเชฎเช—เซ€เชฐเซ€ เชชเชฐ เช…เชธเชฐ เช–เซ‚เชฌ เชฎเซ‹เชŸเซ€ เช›เซ‡. เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชจเซ€เชšเซ‡เชจเซเช‚ เชšเชฟเชคเซเชฐ CS เชฎเชพเช‚ เชกเซ‡เชŸเชพ เชฒเซ‹เชก เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชœเชฐเซ‚เชฐเซ€ เชธเชฎเชฏเชฎเชพเช‚ เชตเชงเชพเชฐเซ‹ เชฆเชฐเซเชถเชพเชตเซ‡ เช›เซ‡:

เชฌเซ‡ เชฏเชพเช•เซ‹เชเซเชจเชพเชจเซเช‚ เชฏเซเชฆเซเชง, เช…เชฅเชตเชพ เช•เซ‡เชธเชพเชจเซเชกเซเชฐเชพ เชตเชฟ HBase. 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 เชชเชฐเชฟเชฎเชพเชฃเซ‹เชธเช‚เช–เซเชฏเชพ_เชŸเซ‹เช•เชจเซเชธ: 256
hinted_handoff_enabled: เชธเชพเชšเซเช‚
hinted_handoff_throttle_in_kb: 1024
เชฎเชนเชคเซเชคเชฎ_เชธเช‚เช•เซ‡เชคเซ‹_เชกเชฟเชฒเชฟเชตเชฐเซ€_เชฅเซเชฐเซ‡เชกเซเชธ: 2
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 เชกเชฟเชฐเซ‡เช•เซเชŸเชฐเซ€ เชเช• เช…เชฒเช— เชกเชฟเชธเซเช• เช›เซ‡
- /เชกเซ‡เชŸเชพ2/เช•เซ‡เชธเชพเชจเซเชกเซเชฐเชพ/เชกเซ‡เชŸเชพ
- /เชกเซ‡เชŸเชพ3/เช•เซ‡เชธเชพเชจเซเชกเซเชฐเชพ/เชกเซ‡เชŸเชพ
- /เชกเซ‡เชŸเชพ4/เช•เซ‡เชธเชพเชจเซเชกเซเชฐเชพ/เชกเซ‡เชŸเชพ
- /เชกเซ‡เชŸเชพ5/เช•เซ‡เชธเชพเชจเซเชกเซเชฐเชพ/เชกเซ‡เชŸเชพ
- /เชกเซ‡เชŸเชพ6/เช•เซ‡เชธเชพเชจเซเชกเซเชฐเชพ/เชกเซ‡เชŸเชพ
- /เชกเซ‡เชŸเชพ7/เช•เซ‡เชธเชพเชจเซเชกเซเชฐเชพ/เชกเซ‡เชŸเชพ
- /เชกเซ‡เชŸเชพ8/เช•เซ‡เชธเชพเชจเซเชกเซเชฐเชพ/เชกเซ‡เชŸเชพ
commitlog_directory: /data9/cassandra/commitlog
cdc_enabled: false
disk_failure_policy: เชฐเซ‹เช•เซ‹
เชชเซเชฐเชคเชฟเชฌเชฆเซเชง_เชจเชฟเชทเซเชซเชณเชคเชพ_เชจเซ€เชคเชฟ: เชฐเซ‹เช•เซ‹
เชคเซˆเชฏเชพเชฐ_เชธเซเชŸเซ‡เชŸเชฎเซ‡เชจเซเชŸเซเชธ_เช•เซ‡เชถ_เชธเชพเช‡เช_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
เช•เชฎเซ€เชŸเชฒเซ‹เช—_เชธเซ‡เช—เชฎเซ‡เชจเซเชŸ_เชธเชพเช‡เช_เช‡เชจ_เชเชฎเชฌเซ€: 32
เชฌเซ€เชœ เชชเซเชฐเชฆเชพเชคเชพ:
- เชตเชฐเซเช—_เชจเชพเชฎ: org.apache.cassandra.locator.SimpleSeedProvider
เชชเชฐเชฟเชฎเชพเชฃเซ‹:
- เชฌเซ€เชœ: "*,*"
concurrent_reads: 256 # 64 เชชเซเชฐเชฏเชพเชธ เช•เชฐเซเชฏเซ‹ - เช•เซ‹เชˆ เชคเชซเชพเชตเชค เชœเซ‹เชตเชพ เชฎเชณเซเชฏเซ‹ เชจเชฅเซ€
เชธเชนเชตเชฐเซเชคเซ€_เชฒเซ‡เช–เชจ: 256 # 64 เชชเซเชฐเชฏเชพเชธ เช•เชฐเซเชฏเซ‹ - เช•เซ‹เชˆ เชคเชซเชพเชตเชค เชœเซ‹เชตเชพ เชฎเชณเซเชฏเซ‹ เชจเชฅเซ€
concurrent_counter_writes: 256 # 64 เชชเซเชฐเชฏเชพเชธ เช•เชฐเซเชฏเซ‹ - เช•เซ‹เชˆ เชคเชซเชพเชตเชค เชœเซ‹เชตเชพ เชฎเชณเซเชฏเซ‹ เชจเชฅเซ€
เชธเชฎเชตเชฐเซเชคเซ€_เชฎเชŸเซ€เชฐเซ€เชฏเชฒเชพเช‡เชเซเชก_เชตเซเชฏเซ_เชฐเชพเช‡เชŸเซเชธ: 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
เชธเชพเช‚เชญเชณเซ‹_เชธเชฐเชจเชพเชฎเซเช‚: *
เชฌเซเชฐเซ‹เชกเช•เชพเชธเซเชŸ_เชธเชฐเชจเชพเชฎเซเช‚: *
เชธเชพเช‚เชญเชณเซ‹_เชชเชฐ_เชชเซเชฐเชธเชพเชฐเชฃ_เชธเชฐเชจเชพเชฎเซเช‚: เชธเชพเชšเซเช‚
internode_authenticator: org.apache.cassandra.auth.AllowAllInternodeAuthenticator
เชถเชฐเซ‚เช†เชค_เชฎเซ‚เชณ_เชชเชฐเชฟเชตเชนเชจ: เชธเชพเชšเซเช‚
เชฎเซ‚เชณ_เชŸเซเชฐเชพเชจเซเชธเชชเซ‹เชฐเซเชŸ_เชชเซ‹เชฐเซเชŸ: 9042
start_rpc: เชธเชพเชšเซเช‚
rpc_เชธเชฐเชจเชพเชฎเซเช‚: *
rpc_port: 9160
rpc_keepalive: เชธเชพเชšเซเช‚
rpc_server_type: เชธเชฎเชจเซเชตเชฏเชจ
thrift_framed_transport_size_in_mb: 15
incremental_backups: false
snapshot_before_compaction: false
auto_snapshot: true
column_index_size_in_kb: 64
column_index_cache_size_in_kb: 2
เชธเชฎเชตเชฐเซเชคเซ€_เช•เซ‹เชฎเซเชชเซ‡เช•เซเชŸเชฐเซเชธ: 4
เช•เซ‹เชฎเซเชชเซ‡เช•เซเชถเชจ_เชฅเซเชฐเซเชชเซเชŸ_mb_per_sec: 1600
sstable_preemptive_open_interval_in_mb: 50
เชฐเซ€เชก_เชฐเชฟเช•เซเชตเซ‡เชธเซเชŸ_เชŸเชพเช‡เชฎเช†เช‰เชŸ_เชฎเชพเช‚_เชเชฎเชเชธ: 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
เชธเซเชฒเซ‹_เช•เซเชตเซ‡เชฐเซ€_เชฒเซ‹เช—_เชŸเชพเช‡เชฎเช†เช‰เชŸ_เช‡เชจ_เชเชฎเชเชธ: 500
cross_node_timeout: false
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: เช•เซ‹เชˆ เชจเชนเซ€เช‚
เช•เซเชฒเชพเชฏเช‚เชŸ_เชเชจเซเช•เซเชฐเชฟเชชเซเชถเชจ_เชตเชฟเช•เชฒเซเชชเซ‹:
เชธเช•เซเชทเชฎ: เช–เซ‹เชŸเซเช‚
เช‡เชจเซเชŸเชฐเชจเซ‹เชก_เช•เซ‹เชฎเซเชชเซเชฐเซ‡เชถเชจ: เชกเซ€เชธเซ€
inter_dc_tcp_nodelay: false
tracetype_query_ttl: 86400
tracetype_repair_ttl: 604800
enable_user_defined_functions: false
enable_scripted_user_defined_functions: false
windows_timer_interval: 1
เชชเชพเชฐเชฆเชฐเซเชถเช•_เชกเซ‡เชŸเชพ_เชเชจเซเช•เซเชฐเชฟเชชเซเชถเชจ_เชตเชฟเช•เชฒเซเชชเซ‹:
เชธเช•เซเชทเชฎ: เช–เซ‹เชŸเซเช‚
เชŸเซ‹เชฎเซเชฌเชธเซเชŸเซ‹เชจ_เชตเซ‹เชฐเซเชจ_เชฅเซเชฐเซ‡เชถเซ‹เชฒเซเชก: 1000
เชŸเซ‹เชฎเซเชฌเชธเซเชŸเซ‹เชจ_เชซเซ‡เชฒเซเชฏเซ‹เชฐ_เชฅเซเชฐเซ‡เชถเซ‹เชฒเซเชก: 100000
batch_size_warn_threshold_in_kb: 200
batch_size_fail_threshold_in_kb: 250
unlogged_batch_across_partitions_warn_threshold: 10
เช•เซ‹เชฎเซเชชเซ‡เช•เซเชถเชจ_เชฎเซ‹เชŸเชพ_เชชเชพเชฐเซเชŸเซ€เชถเชจ_เชšเซ‡เชคเชตเชฃเซ€_เชฅเซเชฐเซ‡เชถเซ‹เชฒเซเชก_เชเชฎเชฌเซ€: 100
gc_warn_threshold_in_ms: 1000
back_pressure_enabled: false
enable_materialized_views: true
enable_sasi_indexes: true

GC เชธเซ‡เชŸเชฟเช‚เช—เซเชธ:

### CMS เชธเซ‡เชŸเชฟเช‚เช—เซเชธ-XX:+UseParNewGC
-XX:+UseConcMarkSweepGC
-XX:+CMSparallelRemark เชธเช•เซเชทเชฎ
-XX:เชธเชฐเซเชตเชพเชˆเชตเชฐ เชฐเซ‡เชถเชฟเชฏเซ‹=8
-XX:MaxTenuringThreshold=1
-XX:CMSIinitiating OccupancyFraction=75
-XX:+UseCMSI เชฎเชพเชคเซเชฐ เช“เช•เซเชฏเซเชชเชจเซเชธเซ€ เชถเชฐเซ‚ เช•เชฐเซ‹
-XX:CMSWaitDuration=10000
-XX:+CMSparallelInitialMarkEnabled
-XX:+CMSEdenChunksRecordAlways
-XX:+CMSCเช•เซเชฒเชพเชธ เช…เชจเชฒเซ‹เชกเชฟเช‚เช— เชธเช•เซเชทเชฎ

16Gb jvm.options เชฎเซ‡เชฎเชฐเซ€ เชซเชพเชณเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เชนเชคเซ€ (เช…เชฎเซ‡ 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 เชตเชฐเซเช—เชฎเชพเช‚ เช…เชฎเซ‡ เชฎเซ‡เชŸเซเชฐเชฟเช•เซเชธ เชฐเชฟเชœเชจเชจเซ‡ เชฌเชพเช•เชพเชค เชฐเชพเช–เซเชฏเซเช‚ เชนเชคเซเช‚ เชœเซ‡ GC เชคเชฐเชซ เชฆเซ‹เชฐเซ€ เชœเชพเชฏ เช›เซ‡ เชœเซเชฏเชพเชฐเซ‡ RegionServer เชชเชฐ เชชเซเชฐเชฆเซ‡เชถเซ‹เชจเซ€ เชธเช‚เช–เซเชฏเชพ 1000 เช•เชฐเชคเชพเช‚ เชตเชงเซ เชนเชคเซ€)

เชจเซ‹เชจ-เชกเชฟเชซเซ‹เชฒเซเชŸ 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: 4 เช•เชฒเชพเช•
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 เชฎเชพเชŸเซ‡ เชœเชพเชตเชพ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจ เชตเชฟเช•เชฒเซเชชเซ‹:
-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
เชชเซเชฐเชฆเซ‡เชถ เชธเชฐเซเชตเชฐ เชฎเชนเชคเซเชคเชฎ เชฒเซ‹เช— เช•เชฆ: 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
เช•เซเชฒเชพเชฏเชจเซเชŸ เชœเชพเชตเชพ เชนเซ€เชชเชจเซเช‚ เช•เชฆ เชฌเชพเช‡เชŸเซเชธเชฎเชพเช‚: 1 GiB
HBase REST เชธเชฐเซเชตเชฐ เชกเชฟเชซเซ‹เชฒเซเชŸ เชœเซ‚เชฅ: 3 GiB
HBase เชฅเซเชฐเซ€เชซเซเชŸ เชธเชฐเซเชตเชฐ เชกเชฟเชซเซ‹เชฒเซเชŸ เชœเซ‚เชฅ: 3 GiB
เชฌเชพเช‡เชŸเซเชธเชฎเชพเช‚ HBase เชฎเชพเชธเซเชŸเชฐเชจเซเช‚ เชœเชพเชตเชพ เชนเซ€เชชเชจเซเช‚ เช•เชฆ: 16 GiB
เชฌเชพเชˆเชŸเชฎเชพเช‚ HBase RegionServerเชจเซเช‚ เชœเชพเชตเชพ เชนเซ€เชชเชจเซเช‚ เช•เชฆ: 32 GiB

+ZooKeeper
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);
    }
}

HB เชฎเชพเช‚ เช•เซเชฒเชพเชฏเชจเซเชŸเซ‡ เชกเซ‡เชŸเชพเชจเชพ เชธเชฎเชพเชจ เชตเชฟเชคเชฐเชฃเชจเซ€ เช•เชพเชณเชœเซ€ เชฒเซ‡เชตเซ€ เชœ เชœเซ‹เช‡เช, เช•เซ€ เชธเซ‰เชฒเซเชŸเชฟเช‚เช— เชซเช‚เช•เซเชถเชจ เช†เชจเชพ เชœเซ‡เชตเซเช‚ เชฆเซ‡เช–เชพเชคเซเช‚ เชนเชคเซเช‚:

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

เชนเชตเซ‡ เชธเซŒเชฅเซ€ เชฐเชธเชชเซเชฐเชฆ เชญเชพเช— - เชชเชฐเชฟเชฃเชพเชฎเซ‹:

เชฌเซ‡ เชฏเชพเช•เซ‹เชเซเชจเชพเชจเซเช‚ เชฏเซเชฆเซเชง, เช…เชฅเชตเชพ เช•เซ‡เชธเชพเชจเซเชกเซเชฐเชพ เชตเชฟ HBase. Sberbank เชŸเซ€เชฎเชจเซ‹ เช…เชจเซเชญเชต

เช—เซเชฐเชพเชซ เชธเซเชตเชฐเซ‚เชชเชฎเชพเช‚ เชธเชฎเชพเชจ เชตเชธเซเชคเซ:

เชฌเซ‡ เชฏเชพเช•เซ‹เชเซเชจเชพเชจเซเช‚ เชฏเซเชฆเซเชง, เช…เชฅเชตเชพ เช•เซ‡เชธเชพเชจเซเชกเซเชฐเชพ เชตเชฟ HBase. Sberbank เชŸเซ€เชฎเชจเซ‹ เช…เชจเซเชญเชต

HB เชจเซ‹ เชซเชพเชฏเชฆเซ‹ เชเชŸเชฒเซ‹ เช†เชถเซเชšเชฐเซเชฏเชœเชจเช• เช›เซ‡ เช•เซ‡ เชเชตเซ€ เชถเช‚เช•เชพ เช›เซ‡ เช•เซ‡ CS เชธเซ‡เชŸเช…เชชเชฎเชพเช‚ เช•เซ‹เชˆ เชชเซเชฐเช•เชพเชฐเชจเซ€ เช…เชกเชšเชฃ เช›เซ‡. เชœเซ‹ เช•เซ‡, เช—เซ‚เช—เชฒเชฟเช‚เช— เช…เชจเซ‡ เชธเซŒเชฅเซ€ เชธเซเชชเชทเซเชŸ เชชเชฐเชฟเชฎเชพเชฃเซ‹ (เชœเซ‡เชฎ เช•เซ‡ เชธเชนเชตเชฐเซเชคเซ€_เชฐเชพเช‡เชŸเซเชธ เช…เชฅเชตเชพ เชฎเซ‡เชฎเชŸเซ‡เชฌเชฒ_เชนเซ€เชช_เชธเซเชชเซ‡เชธ_เช‡เชจ_mb) เชถเซ‹เชงเชตเชพเชฅเซ€ เชตเชธเซเชคเซเช“เชจเซ€ เชเชกเชช เชตเชงเซ€ เชจเชฅเซ€. เชคเซ‡ เชœ เชธเชฎเชฏเซ‡, เชฒเซ‹เช— เชธเซเชตเชšเซเช› เช›เซ‡ เช…เชจเซ‡ เช•เช‚เชˆเชชเชฃ เชชเชฐ เชถเชชเชฅ เชฒเซ‡เชคเชพ เชจเชฅเซ€.

เชกเซ‡เชŸเชพ เชธเชฎเช—เซเชฐ เชจเซ‹เชกเซเชธ เชชเชฐ เชธเชฎเชพเชจเชฐเซ‚เชชเซ‡ เชตเชฟเชคเชฐเชฟเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซ‹ เชนเชคเซ‹, เชคเชฎเชพเชฎ เชจเซ‹เชกเซเชธเชจเชพ เช†เช‚เช•เชกเชพ เชฒเช—เชญเช— เชธเชฎเชพเชจ เชนเชคเชพ.

เชเช• เชจเซ‹เชกเชฎเชพเช‚เชฅเซ€ เช•เซ‹เชทเซเชŸเช•เชจเชพ เช†เช‚เช•เชกเชพ เช†เชจเชพ เชœเซ‡เชตเชพ เชฆเซ‡เช–เชพเชฏ เช›เซ‡เช•เซ€เชธเซเชชเซ‡เชธ: ks
เชตเชพเช‚เชšเซ‹ เชธเช‚เช–เซเชฏเชพ: 9383707
เชตเชฟเชฒเช‚เชฌ เชตเชพเช‚เชšเซ‹: 0.04287025042448576 ms
เช•เชพเช‰เชจเซเชŸ เชฒเช–เซ‹: 15462012
เชฒเซ‡เชŸเชจเซเชธเซ€ เชฒเช–เซ‹: 0.1350068438699957 ms
เชฌเชพเช•เซ€ เชซเซเชฒเชถ: 0
เช•เซ‹เชทเซเชŸเช•: t1
SSTเซ‡เชฌเชฒ เชธเช‚เช–เซเชฏเชพ: 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 เชฎเชพเชŸเซ‡ เชฎเซ‡เชณเชตเซ‡เชฒเชพ เชชเชฐเชฟเชฃเชพเชฎเซ‹ DataStax เชฎเชพเชŸเซ‡ เชฎเซ‡เชณเชตเซ‡เชฒเชพ เชชเชฐเชฟเชฃเชพเชฎเซ‹ เชœเซ‡เชตเชพ เชœ เช›เซ‡ - เชธเซ‡เช•เชจเซเชก เชฆเซ€เช  เชฒเช—เชญเช— เชนเชœเชพเชฐเซ‹ เช“เชชเชฐเซ‡เชถเชจเซเชธ. เชตเชงเซเชฎเชพเช‚, เชœเซ‹ เช†เชชเชฃเซ‡ เชธเช‚เชธเชพเชงเชจเชจเชพ เช‰เชชเชฏเซ‹เช—เชจเซ‡ เชœเซ‹เชˆเช, เชคเซ‹ เช†เชชเชฃเซ‡ เชœเซ‹เชˆเชถเซเช‚ เช•เซ‡ CS เชตเชงเซ CPU เช…เชจเซ‡ เชกเชฟเชธเซเช•เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‡ เช›เซ‡:

เชฌเซ‡ เชฏเชพเช•เซ‹เชเซเชจเชพเชจเซเช‚ เชฏเซเชฆเซเชง, เช…เชฅเชตเชพ เช•เซ‡เชธเชพเชจเซเชกเซเชฐเชพ เชตเชฟ HBase. Sberbank เชŸเซ€เชฎเชจเซ‹ เช…เชจเซเชญเชต
เช†เช•เซƒเชคเชฟ เชฌเช‚เชจเซ‡ เชกเซ‡เชŸเชพเชฌเซ‡เช เชฎเชพเชŸเซ‡ เชเช• เชชเช‚เช•เซเชคเชฟเชฎเชพเช‚ เชคเชฎเชพเชฎ เชชเชฐเซ€เช•เซเชทเชฃเซ‹เชจเชพ เชฐเชจ เชฆเชฐเชฎเชฟเชฏเชพเชจ เช‰เชชเชฏเซ‹เช— เชฆเชฐเซเชถเชพเชตเซ‡ เช›เซ‡.

HB เชจเชพ เชถเช•เซเชคเชฟเชถเชพเชณเซ€ เชตเชพเช‚เชšเชจ เชฒเชพเชญ เชตเชฟเชถเซ‡. เช…เชนเซ€เช‚ เชคเชฎเซ‡ เชœเซ‹เชˆ เชถเช•เซ‹ เช›เซ‹ เช•เซ‡ เชฌเช‚เชจเซ‡ เชกเซ‡เชŸเชพเชฌเซ‡เช เชฎเชพเชŸเซ‡, เชตเชพเช‚เชšเชจ เชฆเชฐเชฎเชฟเชฏเชพเชจ เชกเชฟเชธเซเช•เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช…เชคเซเชฏเช‚เชค เช“เช›เซ‹ เช›เซ‡ (เชฐเซ€เชก เชŸเซ‡เชธเซเชŸ เช เชฆเชฐเซ‡เช• เชกเซ‡เชŸเชพเชฌเซ‡เช เชฎเชพเชŸเซ‡ เชชเชฐเซ€เช•เซเชทเชฃ เชšเช•เซเชฐเชจเซ‹ เช…เช‚เชคเชฟเชฎ เชญเชพเช— เช›เซ‡, เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡ CS เชฎเชพเชŸเซ‡ เช† 15:20 เชฅเซ€ 15:40 เชธเซเชงเซ€ เช›เซ‡). HB เชจเชพ เช•เชฟเชธเซเชธเชพเชฎเชพเช‚, เช•เชพเชฐเชฃ เชธเซเชชเชทเซเชŸ เช›เซ‡ - เชฎเซ‹เชŸเชพเชญเชพเช—เชจเซ‹ เชกเซ‡เชŸเชพ เชฎเซ‡เชฎเชฐเซ€เชฎเชพเช‚, เชฎเซ‡เชฎเชธเซเชŸเซ‹เชฐเชฎเชพเช‚ เชนเซ‡เช‚เช— เชฅเชพเชฏ เช›เซ‡ เช…เชจเซ‡ เช…เชฎเซเช• เชฌเซเชฒเซ‹เช•เช•เซ‡เชถเชฎเชพเช‚ เช•เซ‡เชถ เชฅเชพเชฏ เช›เซ‡. CS เชฎเชพเชŸเซ‡, เชคเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช•เชพเชฐเซเชฏ เช•เชฐเซ‡ เช›เซ‡ เชคเซ‡ เช–เซ‚เชฌ เชธเซเชชเชทเซเชŸ เชจเชฅเซ€, เชชเชฐเช‚เชคเซ เชกเชฟเชธเซเช• เชฐเชฟเชธเชพเชฏเช•เซเชฒเชฟเช‚เช— เชชเชฃ เชฆเซƒเชถเซเชฏเชฎเชพเชจ เชจเชฅเซ€, เชชเชฐเช‚เชคเซ เชฎเชพเชคเซเชฐ เช•เชฟเชธเซเชธเชพเชฎเชพเช‚, เช•เซ‡เชถ row_cache_size_in_mb = 2048 เชจเซ‡ เชธเช•เซเชทเชฎ เช•เชฐเชตเชพเชจเซ‹ เชชเซเชฐเชฏเชพเชธ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซ‹ เชนเชคเซ‹ เช…เชจเซ‡ เช•เซ‡เชถเชฟเช‚เช— = {'keys': 'ALL', เชธเซ‡เชŸ เช•เชฐเซ‹. 'rows_per_partition': '2000000'}, เชชเชฐเช‚เชคเซ เชคเซ‡เชจเชพเชฅเซ€ เชคเซ‡ เชฅเซ‹เชกเซเช‚ เช–เชฐเชพเชฌ เชฅเชˆ เช—เชฏเซเช‚.

เชเชšเชฌเซ€เชฎเชพเช‚ เชชเซเชฐเชฆเซ‡เชถเซ‹เชจเซ€ เชธเช‚เช–เซเชฏเชพ เชตเชฟเชถเซ‡ เชซเชฐเซ€ เชเช•เชตเชพเชฐ เชเช• เชฎเชนเชคเซเชตเชชเซ‚เชฐเซเชฃ เชฎเซเชฆเซเชฆเซ‹ เช‰เชฒเซเชฒเซ‡เช– เช•เชฐเชตเซ‹ เชชเชฃ เชฏเซ‹เช—เซเชฏ เช›เซ‡. เช…เชฎเชพเชฐเชพ เช•เชฟเชธเซเชธเชพเชฎเชพเช‚, เชฎเซ‚เชฒเซเชฏ 64 เชคเชฐเซ€เช•เซ‡ เชจเชฟเชฐเซเชฆเชฟเชทเซเชŸ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เชนเชคเซเช‚. เชœเซ‹ เชคเชฎเซ‡ เชคเซ‡เชจเซ‡ เช˜เชŸเชพเชกเซ€เชจเซ‡ เชคเซ‡เชจเซ‡ เชธเชฎเชพเชจ เชฌเชจเชพเชตเซ‹ เช›เซ‹, เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, 4, เชคเซ‹ เชตเชพเช‚เชšเชคเซ€ เชตเช–เชคเซ‡, เชเชกเชช 2 เช—เชฃเซ€ เช˜เชŸเซ€ เชœเชพเชฏ เช›เซ‡. เช•เชพเชฐเชฃ เช เช›เซ‡ เช•เซ‡ เชฎเซ‡เชฎเชธเซเชŸเซ‹เชฐ เชเชกเชชเชฅเซ€ เชญเชฐเชพเชถเซ‡ เช…เชจเซ‡ เชซเชพเช‡เชฒเซ‹ เชตเชงเซ เชตเช–เชค เชซเซเชฒเชถ เชฅเชถเซ‡ เช…เชจเซ‡ เชตเชพเช‚เชšเชคเซ€ เชตเช–เชคเซ‡, เชตเชงเซ เชซเชพเช‡เชฒเซ‹ เชชเชฐ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เชชเชกเชถเซ‡, เชœเซ‡ HB เชฎเชพเชŸเซ‡ เชเช• เชœเชŸเชฟเชฒ เช•เชพเชฎเช—เซ€เชฐเซ€ เช›เซ‡. เชตเชพเชธเซเชคเชตเชฟเช• เชชเชฐเชฟเชธเซเชฅเชฟเชคเชฟเช“เชฎเชพเช‚, เชชเซเชฐเชฟเชธเซเชชเซเชฒเชฟเชŸเชฟเช‚เช— เช…เชจเซ‡ เช•เซ‹เชฎเซเชชเซ‡เช•เซเชŸเชฟเชซเชฟเช•เซ‡เชถเชจ เชตเซเชฏเซ‚เชนเชฐเชšเชจเชพ เชฆเซเชตเชพเชฐเชพ เชตเชฟเชšเชพเชฐเซ€เชจเซ‡ เชคเซ‡เชจเซ€ เชธเชพเชฐเชตเชพเชฐ เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡; เช–เชพเชธ เช•เชฐเซ€เชจเซ‡, เช…เชฎเซ‡ เชธเซเชต-เชฒเชฟเช–เชฟเชค เช‰เชชเชฏเซ‹เช—เชฟเชคเชพเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เช เช›เซ€เช เชœเซ‡ เช•เชšเชฐเซ‹ เชเช•เช เซ‹ เช•เชฐเซ‡ เช›เซ‡ เช…เชจเซ‡ เชชเซƒเชทเซเช เชญเซ‚เชฎเชฟเชฎเชพเช‚ เชธเชคเชค HFilesเชจเซ‡ เชธเช‚เช•เซเชšเชฟเชค เช•เชฐเซ‡ เช›เซ‡. เชคเซ‡ เชคเชฆเซเชฆเชจ เชถเช•เซเชฏ เช›เซ‡ เช•เซ‡ DataStax เชชเชฐเซ€เช•เซเชทเชฃเซ‹ เชฎเชพเชŸเซ‡ เชคเซ‡เช“เช เชŸเซ‡เชฌเชฒ เชฆเซ€เช  เชฎเชพเชคเซเชฐ 1 เชชเซเชฐเชฆเซ‡เชถ เชซเชพเชณเชตเซเชฏเซ‹ เชนเชคเซ‹ (เชœเซ‡ เชธเชพเชšเซ‹ เชจเชฅเซ€) เช…เชจเซ‡ เช† เช•เช‚เชˆเช• เช…เช‚เชถเซ‡ เชธเซเชชเชทเซเชŸ เช•เชฐเชถเซ‡ เช•เซ‡ เชถเชพ เชฎเชพเชŸเซ‡ HB เชคเซ‡เชฎเชจเชพ เชตเชพเช‚เชšเชจ เชชเชฐเซ€เช•เซเชทเชฃเซ‹เชฎเชพเช‚ เช†เชŸเชฒเซเช‚ เช‰เชคเชฐเชคเซเช‚ เชนเชคเซเช‚.

เช†เชจเชพ เชชเชฐเชฅเซ€ เชจเซ€เชšเซ‡เชจเชพ เชชเซเชฐเชพเชฅเชฎเชฟเช• เชคเชพเชฐเชฃเซ‹ เช•เชพเชขเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเชพ เช›เซ‡. เชฎเชพเชจเซ€ เชฒเชˆเช เช•เซ‡ เชชเชฐเซ€เช•เซเชทเชฃ เชฆเชฐเชฎเชฟเชฏเชพเชจ เช•เซ‹เชˆ เชฎเซ‹เชŸเซ€ เชญเซ‚เชฒเซ‹ เชฅเชˆ เชจเชฅเซ€, เชคเซ‹ เชชเช›เซ€ เช•เชธเชพเชจเซเชกเซเชฐเชพ เชฎเชพเชŸเซ€เชจเชพ เชชเช— เชธเชพเชฅเซ‡ เช•เซ‹เชฒเซ‹เชธเชธ เชœเซ‡เชตเซ‹ เชฆเซ‡เช–เชพเชฏ เช›เซ‡. เชตเชงเซ เชธเซเชชเชทเซเชŸ เชฐเซ€เชคเซ‡, เชœเซเชฏเชพเชฐเซ‡ เชคเซ‡เชฃเซ€ เชเช• เชชเช— เชชเชฐ เชธเช‚เชคเซเชฒเชจ เชฐเชพเช–เซ‡ เช›เซ‡, เชœเซ‡เชฎ เช•เซ‡ เชฒเซ‡เช–เชจเซ€ เชถเชฐเซ‚เช†เชคเชฎเชพเช‚ เชšเชฟเชคเซเชฐเชฎเชพเช‚, เชคเซ‡ เชชเซเชฐเชฎเชพเชฃเชฎเชพเช‚ เชธเชพเชฐเชพ เชชเชฐเชฟเชฃเชพเชฎเซ‹ เชฌเชคเชพเชตเซ‡ เช›เซ‡, เชชเชฐเช‚เชคเซ เชคเซ‡ เชœ เชชเชฐเชฟเชธเซเชฅเชฟเชคเชฟเช“ เชนเซ‡เช เชณเชจเซ€ เชฒเชกเชพเชˆเชฎเชพเช‚ เชคเซ‡ เชธเช‚เชชเซ‚เชฐเซเชฃ เชฐเซ€เชคเซ‡ เชนเชพเชฐเซ€ เชœเชพเชฏ เช›เซ‡. เชคเซ‡ เชœ เชธเชฎเชฏเซ‡, เช…เชฎเชพเชฐเชพ เชนเชพเชฐเซเชกเชตเซ‡เชฐ เชชเชฐ เช“เช›เชพ CPU เช‰เชชเชฏเซ‹เช—เชจเซ‡ เชงเซเชฏเชพเชจเชฎเชพเช‚ เชฒเซ‡เชคเชพ, เช…เชฎเซ‡ เชนเซ‹เชธเซเชŸ เชฆเซ€เช  เชฌเซ‡ RegionServer HB เชฐเซ‹เชชเชตเชพเชจเซเช‚ เชถเซ€เช–เซเชฏเชพ เช…เชจเซ‡ เชคเซ‡เชจเชพ เช•เชพเชฐเชฃเซ‡ เช•เชพเชฎเช—เซ€เชฐเซ€ เชฌเชฎเชฃเซ€ เชฅเชˆ. เชคเซ‡. เชธเช‚เชธเชพเชงเชจเซ‹เชจเชพ เช‰เชชเชฏเซ‹เช—เชจเซ‡ เชงเซเชฏเชพเชจเชฎเชพเช‚ เชฒเซ‡เชคเชพ, CS เชฎเชพเชŸเซ‡ เชธเซเชฅเชฟเชคเชฟ เชตเชงเซ เช–เซ‡เชฆเชœเชจเช• เช›เซ‡.

เช…เชฒเชฌเชคเซเชค, เช† เชชเชฐเซ€เช•เซเชทเชฃเซ‹ เชคเชฆเซเชฆเชจ เช•เซƒเชคเซเชฐเชฟเชฎ เช›เซ‡ เช…เชจเซ‡ เช…เชนเซ€เช‚ เชตเชชเชฐเชพเชฏเซ‡เชฒ เชกเซ‡เชŸเชพเชจเซ‹ เชœเชฅเซเชฅเซ‹ เชชเซเชฐเชฎเชพเชฃเชฎเชพเช‚ เชธเชพเชงเชพเชฐเชฃ เช›เซ‡. เชถเช•เซเชฏ เช›เซ‡ เช•เซ‡ เชœเซ‹ เช†เชชเชฃเซ‡ เชŸเซ‡เชฐเชพเชฌเชพเช‡เชŸ เชชเชฐ เชธเซเชตเชฟเชš เช•เชฐเซ€เช, เชคเซ‹ เชชเชฐเชฟเชธเซเชฅเชฟเชคเชฟ เช…เชฒเช— เชนเชถเซ‡, เชชเชฐเช‚เชคเซ เชœเซเชฏเชพเชฐเซ‡ HB เชฎเชพเชŸเซ‡ เช…เชฎเซ‡ เชŸเซ‡เชฐเชพเชฌเชพเช‡เชŸ เชฒเซ‹เชก เช•เชฐเซ€ เชถเช•เซ€เช เช›เซ€เช, CS เชฎเชพเชŸเซ‡ เช† เชธเชฎเชธเซเชฏเชพเชฐเซ‚เชช เชฌเชจเซเชฏเซเช‚. เชคเซ‡ เช˜เชฃเซ€เชตเชพเชฐ เช† เชตเซ‹เชฒเซเชฏเซเชฎเซ‹ เชธเชพเชฅเซ‡ เชชเชฃ OperationTimedOutException เชซเซ‡เช‚เช•เซ€ เชฆเซ‡ เช›เซ‡, เชœเซ‹ เช•เซ‡ เชชเซเชฐเชคเชฟเชธเชพเชฆเชจเซ€ เชฐเชพเชน เชœเซ‹เชตเชพ เชฎเชพเชŸเซ‡เชจเชพ เชชเชฐเชฟเชฎเชพเชฃเซ‹ เชชเชนเซ‡เชฒเชพเชฅเซ€ เชœ เชกเชฟเชซเซ‹เชฒเซเชŸเชจเซ€ เชคเซเชฒเชจเชพเชฎเชพเช‚ เช˜เชฃเซ€ เชตเช–เชค เชตเชงเซ€ เช—เชฏเชพ เชนเชคเชพ.

เชนเซเช‚ เช†เชถเชพ เชฐเชพเช–เซเช‚ เช›เซเช‚ เช•เซ‡ เชธเช‚เชฏเซเช•เซเชค เชชเซเชฐเชฏเชพเชธเซ‹ เชฆเซเชตเชพเชฐเชพ เช…เชฎเซ‡ CS เชจเซ€ เช…เชกเชšเชฃเซ‹ เชถเซ‹เชงเซ€เชถเซเช‚ เช…เชจเซ‡ เชœเซ‹ เช†เชชเชฃเซ‡ เชคเซ‡เชจเซ‡ เชเชกเชชเซ€ เชฌเชจเชพเชตเซ€ เชถเช•เซ€เชถเซเช‚, เชคเซ‹ เชชเซ‹เชธเซเชŸเชจเชพ เช…เช‚เชคเซ‡ เชนเซเช‚ เชšเซ‹เช•เซเช•เชธเชชเชฃเซ‡ เช…เช‚เชคเชฟเชฎ เชชเชฐเชฟเชฃเชพเชฎเซ‹ เชตเชฟเชถเซ‡ เชฎเชพเชนเชฟเชคเซ€ เช‰เชฎเซ‡เชฐเซ€เชถ.

เชฏเซเชชเซ€เชกเซ€: เชธเชพเชฅเซ€เช“เชจเซ€ เชธเชฒเชพเชน เชฌเชฆเชฒ เช†เชญเชพเชฐ, เชนเซเช‚ เชตเชพเช‚เชšเชจเชจเซ‡ เชเชกเชชเซ€ เชฌเชจเชพเชตเชตเชพเชฎเชพเช‚ เชธเชซเชณ เชฐเชนเซเชฏเซ‹. เชนเชคเซ€:
159 เช‘เชชเซเชธ (644 เช•เซ‹เชทเซเชŸเช•เซ‹, 4 เชธเซเชŸเซเชฐเซ€เชฎเซเชธ, เชฌเซ‡เชš 5).
เช‰เชฎเซ‡เชฐเชพเชฏเซ‡เชฒ:
.withLoadBalancingPolicy(เชจเชตเซ€ TokenAwarePolicy(DCAwareRoundRobinPolicy.builder().build()))
เช…เชจเซ‡ เชนเซเช‚ เชฅเซเชฐเซ‡เชกเซ‹เชจเซ€ เชธเช‚เช–เซเชฏเชพ เชธเชพเชฅเซ‡ เช†เชธเชชเชพเชธ เชฐเชฎเซเชฏเซ‹. เชชเชฐเชฟเชฃเชพเชฎ เชจเซ€เชšเซ‡ เชฎเซเชœเชฌ เช›เซ‡:
4 เช•เซ‹เชทเซเชŸเช•เซ‹, 100 เชฅเซเชฐเซ‡เชกเซ‹, เชฌเซ‡เชš = 1 (เชŸเซเช•เชกเชพ เชฆเซเชตเชพเชฐเชพ): 301 เช“เชชเซเชธ
4 เช•เซ‹เชทเซเชŸเช•เซ‹, 100 เชฅเซเชฐเซ‡เชกเซ‹, เชฌเซ‡เชš = 10: 447 เช“เชชเซเชธ
4 เช•เซ‹เชทเซเชŸเช•เซ‹, 100 เชฅเซเชฐเซ‡เชกเซ‹, เชฌเซ‡เชš = 100: 625 เช“เชชเซเชธ

เชชเช›เซ€เชฅเซ€ เชนเซเช‚ เช…เชจเซเชฏ เชŸเซเชฏเซเชจเชฟเช‚เช— เชŸเซ€เชชเซเชธ เชฒเชพเช—เซ เช•เชฐเซ€เชถ, เชธเช‚เชชเซ‚เชฐเซเชฃ เชชเชฐเซ€เช•เซเชทเชฃ เชšเช•เซเชฐ เชšเชฒเชพเชตเซ€เชถ เช…เชจเซ‡ เชชเซ‹เชธเซเชŸเชจเชพ เช…เช‚เชคเซ‡ เชชเชฐเชฟเชฃเชพเชฎเซ‹ เช‰เชฎเซ‡เชฐเซ€เชถ.

เชธเซ‹เชฐเซเชธ: www.habr.com

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹