เดฐเดฃเตเดŸเต เดฏเดพเด•เตเด•เต‹เดธเตเดจ เดฏเตเดฆเตเดงเด‚, เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด•เดธเดพเดจเตเดฆเตเดฐ vs HBase. Sberbank เดŸเต€เด‚ เด…เดจเตเดญเดตเด‚

เด‡เดคเตŠเดฐเต เดคเดฎเดพเดถ เดชเต‹เดฒเตเดฎเดฒเตเดฒ, เดˆ เดชเตเดฐเดคเตเดฏเต‡เด• เดšเดฟเดคเตเดฐเด‚ เดˆ เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเตเด•เดณเตเดŸเต† เดธเดคเตเดคเดฏเต† เดเดฑเตเดฑเดตเตเด‚ เด•เตƒเดคเตเดฏเดฎเดพเดฏเดฟ เดชเตเดฐเดคเดฟเดซเดฒเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดพเดฏเดฟ เดคเต‹เดจเตเดจเตเดจเตเดจเต, เด…เดตเดธเดพเดจเด‚ เดŽเดจเตเดคเตเด•เตŠเดฃเตเดŸเต†เดจเตเดจเต เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด‚:

เดฐเดฃเตเดŸเต เดฏเดพเด•เตเด•เต‹เดธเตเดจ เดฏเตเดฆเตเดงเด‚, เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด•เดธเดพเดจเตเดฆเตเดฐ vs HBase. Sberbank เดŸเต€เด‚ เด…เดจเตเดญเดตเด‚

DB-Engines เดฑเดพเด™เตเด•เดฟเด‚เด—เต เด…เดจเตเดธเดฐเดฟเดšเตเดšเต, เดเดฑเตเดฑเดตเตเด‚ เดœเดจเดชเตเดฐเดฟเดฏเดฎเดพเดฏ เดฐเดฃเตเดŸเต NoSQL เด•เต‹เดณเด‚ เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเตเด•เตพ เด•เดธเดพเดจเตเดฆเตเดฐ (เด‡เดจเดฟเดฎเตเดคเตฝ CS), HBase (HB) เดŽเดจเตเดจเดฟเดตเดฏเดพเดฃเต.

เดฐเดฃเตเดŸเต เดฏเดพเด•เตเด•เต‹เดธเตเดจ เดฏเตเดฆเตเดงเด‚, เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด•เดธเดพเดจเตเดฆเตเดฐ vs HBase. Sberbank เดŸเต€เด‚ เด…เดจเตเดญเดตเด‚

เดตเดฟเดงเดฟเดฏเตเดŸเต† เด‡เดทเตเดŸเดชเตเดฐเด•เดพเดฐเด‚, Sberbank-เดฒเต† เดžเด™เตเด™เดณเตเดŸเต† เดกเดพเดฑเตเดฑ เดฒเต‹เดกเดฟเด‚เด—เต เดฎเดพเดจเต‡เดœเตเดฎเต†เดจเตเดฑเต เดŸเต€เด‚ เด‡เดคเดฟเดจเด•เด‚ เดคเดจเตเดจเต† เด‰เดฃเตเดŸเต เดตเดณเดฐเต† เดฎเตเดฎเตเดชเต เด•เต‚เดŸเดพเดคเต† HB-เดฏเตเดฎเดพเดฏเดฟ เด…เดŸเตเดคเตเดคเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต. เดˆ เดธเดฎเดฏเดคเตเดคเต, เดžเด™เตเด™เตพ เด…เดคเดฟเดจเตเดฑเต† เดถเด•เตเดคเดฟเดฏเตเด‚ เดฌเดฒเดนเต€เดจเดคเดฏเตเด‚ เดจเดจเตเดจเดพเดฏเดฟ เดชเด เดฟเด•เตเด•เตเด•เดฏเตเด‚ เด…เดคเต เดŽเด™เตเด™เดจเต† เดชเดพเดšเด•เด‚ เดšเต†เดฏเตเดฏเดพเดฎเต†เดจเตเดจเต เดชเด เดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดคเต. เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เดธเดฟโ€ŒเดŽเดธเดฟเดจเตเดฑเต† เดฐเต‚เดชเดคเตเดคเดฟเดฒเตเดณเตเดณ เด’เดฐเต เดฌเดฆเดฒเดฟเดจเตเดฑเต† เดธเดพเดจเตเดจเดฟเดงเตเดฏเด‚ เดŽเดฒเตเดฒเดพเดฏเตเดชเตเดชเต‹เดดเตเด‚ เดธเด‚เดถเดฏเด™เตเด™เดณเดพเตฝ เดธเตเดตเดฏเด‚ เดชเต€เดกเดฟเดชเตเดชเดฟเด•เตเด•เดพเตป เดžเด™เตเด™เดณเต† เดจเดฟเตผเดฌเดจเตเดงเดฟเดคเดฐเดพเด•เตเด•เดฟ: เดžเด™เตเด™เตพ เดถเดฐเดฟเดฏเดพเดฏ เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดชเตเดชเต เดจเดŸเดคเตเดคเดฟเดฏเต‹? เดฎเดพเดคเตเดฐเดฎเดฒเตเดฒ, เดซเดฒเด™เตเด™เตพ เดคเดพเดฐเดคเดฎเตเดฏเด™เตเด™เตพ, DataStax เดจเดฟเตผเดตเดนเดฟเดšเตเดšเดคเต, เดเดคเดพเดฃเตเดŸเต เดคเด•เตผเดชเตเดชเตป เดธเตเด•เต‹เตผ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต CS เดŽเดณเตเดชเตเดชเดคเตเดคเดฟเตฝ HB-เดฏเต† เดคเต‹เตฝเดชเตเดชเดฟเด•เตเด•เตเดฎเต†เดจเตเดจเต เด…เดตเตผ เดชเดฑเดžเตเดžเต. เดฎเดฑเตเดตเดถเดคเตเดคเต, DataStax เด’เดฐเต เดคเดพเตฝเดชเตเดชเดฐเตเดฏเดฎเตเดณเตเดณ เด•เด•เตเดทเดฟเดฏเดพเดฃเต, เด…เดคเดฟเดจเดพเดฏเดฟ เดจเดฟเด™เตเด™เตพ เด…เดตเดฐเตเดŸเต† เดตเดพเด•เตเด•เต เดŽเดŸเตเด•เตเด•เดฐเตเดคเต. เดŸเต†เดธเตเดฑเตเดฑเดฟเด‚เด—เต เด…เดตเดธเตเดฅเด•เดณเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เดšเต†เดฑเดฟเดฏ เด…เดณเดตเดฟเดฒเตเดณเตเดณ เดตเดฟเดตเดฐเด™เตเด™เดณเดพเดฒเตเด‚ เดžเด™เตเด™เตพ เด†เดถเดฏเด•เตเด•เตเดดเดชเตเดชเดคเตเดคเดฟเดฒเดพเดฏเดฟ, เด…เดคเดฟเดจเดพเตฝ BigData 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 เดธเดฎเดพเดจเดฎเดพเดฏ เดคเดคเตเดตเดคเตเดคเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต, เด…เดคเดพเดฏเดคเต. เด…เดคเตเดคเดฐเดฎเตŠเดฐเต เดคเดพเดฐเดคเดฎเตเดฏเด‚ เด•เต‚เดŸเตเดคเตฝ เดจเตเดฏเดพเดฏเดฎเดพเดฏเดฟเดฐเดฟเด•เตเด•เตเด‚.

DataStax เด…เดตเดฐเตเดŸเต† เดชเด เดจเดคเตเดคเดฟเตฝ เดตเดฟเดชเดฐเต€เดคเดฎเดพเดฃเต เดšเต†เดฏเตเดคเดคเต เดŽเดจเตเดจเดคเต เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเดพเดฃเต, เด…เดตเตผ CS, HB เดŽเดจเตเดจเดฟเดตเดฏเตโ€Œเด•เตเด•เต RF = 1 เดธเดœเตเดœเดฎเดพเด•เตเด•เดฟ (เด…เดตเดธเดพเดจเดคเตเดคเต‡เดคเดฟเดจเต HDFS เด•เตเดฐเดฎเต€เด•เดฐเดฃเด™เตเด™เตพ เดฎเดพเดฑเตเดฑเตเดจเตเดจเดคเดฟเดฒเต‚เดŸเต†). เด‡เดคเต เดตเดณเดฐเต† เดชเตเดฐเดงเดพเดจเดชเตเดชเต†เดŸเตเดŸ เด’เดฐเต เดตเดถเดฎเดพเดฃเต, เด•เดพเดฐเดฃเด‚ เดˆ เด•เต‡เดธเดฟเตฝ เดธเดฟเดŽเดธเต เดชเตเดฐเด•เดŸเดจเดคเตเดคเต† เดฌเดพเดงเดฟเด•เตเด•เตเดจเตเดจเดคเต เดตเดณเดฐเต† เดตเดฒเตเดคเดพเดฃเต. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดšเตเดตเดŸเต†เดฏเตเดณเตเดณ เดšเดฟเดคเตเดฐเด‚ CS-เดฒเต‡เด•เตเด•เต เดกเดพเดฑเตเดฑ เดฒเต‹เดกเตเดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต เด†เดตเดถเตเดฏเดฎเดพเดฏ เดธเดฎเดฏเดคเตเดคเดฟเดจเตเดฑเต† เดตเตผเดฆเตเดงเดจเดตเต เด•เดพเดฃเดฟเด•เตเด•เตเดจเตเดจเต:

เดฐเดฃเตเดŸเต เดฏเดพเด•เตเด•เต‹เดธเตเดจ เดฏเตเดฆเตเดงเด‚, เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด•เดธเดพเดจเตเดฆเตเดฐ vs 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 เดคเดŸเดธเตเดธเดฎเดฒเตเดฒ. เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เด‡เดตเดฟเดŸเต† เดฎเดฑเตเดฑเต เดจเดฟเดฐเดตเดงเดฟ เด…เดชเด•เดŸเด™เตเด™เดณเตเดฃเตเดŸเต, เด•เดพเดฐเดฃเด‚ เดžเด™เตเด™เดณเตเดŸเต† เดŽเดšเตเดšเตเดฌเดฟ เดชเดคเดฟเดชเตเดชเต เดšเต†เดฑเตเดคเดพเดฏเดฟ เด’เดคเตเดคเตเด•เดณเดฟ เดฎเดพเดฑเตเดฑเดฟ, เดชเดฐเดฟเดคเดธเตเดฅเดฟเดคเดฟเด•เตพ เดคเดฟเด•เดšเตเดšเตเด‚ เดตเตเดฏเดคเตเดฏเดธเตเดคเดฎเดพเดฃเต เดŽเดจเตเดจเดคเต เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเดพเดฃเต. เดธเดฟเดŽเดธเต เดŽเด™เตเด™เดจเต† เดถเดฐเดฟเดฏเดพเดฏเดฟ เดคเดฏเตเดฏเดพเดฑเดพเด•เตเด•เดฃเดฎเต†เดจเตเดจเต เดŽเดจเดฟเด•เตเด•เดฑเดฟเดฏเดฟเดฒเตเดฒ เดŽเดจเตเดจเดคเตเด‚ เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเดพเดฃเต, เด•เต‚เดŸเดพเดคเต† เด‡เดคเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดพเตป เด•เต‚เดŸเตเดคเตฝ เดซเดฒเดชเตเดฐเดฆเดฎเดพเดฏ เดฎเดพเตผเด—เด™เตเด™เดณเตเดฃเตเดŸเต, เด…เดญเดฟเดชเตเดฐเดพเดฏเด™เตเด™เดณเดฟเตฝ เดžเด™เตเด™เตพ เด•เดฃเตเดŸเต†เดคเตเดคเตเดฎเต†เดจเตเดจเต เดžเดพเตป เดชเตเดฐเดคเต€เด•เตเดทเดฟเด•เตเด•เตเดจเตเดจเต. เดŽเดจเตเดจเดพเตฝ เด†เดฆเตเดฏเด‚ เด•เดพเดฐเตเดฏเด™เตเด™เตพ เด†เดฆเตเดฏเด‚.

เดŽเดฒเตเดฒเดพ เดชเดฐเดฟเดถเต‹เดงเดจเด•เดณเตเด‚ 4 เดธเต†เตผเดตเดฑเตเด•เตพ เด…เดŸเด™เตเด™เตเดจเตเดจ เด’เดฐเต เดนเดพเตผเดกเตโ€Œเดตเต†เดฏเตผ เด•เตเดฒเดธเตเดฑเตเดฑเดฑเดฟเดฒเดพเดฃเต เดจเดŸเดคเตเดคเดฟเดฏเดคเต, เด“เดฐเต‹เดจเตเดจเดฟเดจเตเด‚ เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เด‰เดฃเตเดŸเต:

CPU: Xeon E5-2680 v4 @ 2.40GHz 64 เดคเตเดฐเต†เดกเตเด•เตพ.
เดกเดฟเดธเตเด•เตเด•เตพ: 12 เด•เดทเดฃเด™เตเด™เตพ SATA HDD
เดœเดพเดต เดชเดคเดฟเดชเตเดชเต: 1.8.0_111

CS เดชเดคเดฟเดชเตเดชเต: 3.11.5

cassandra.yml เดชเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เตพเดŸเต‹เด•เตเด•เดฃเตเด•เดณเตเดŸเต†_เดธเด‚เด–เตเดฏ: 256
hinted_handoff_enabled: true
hinted_handoff_throttle_in_kb: 1024
max_hints_delivery_threads: 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
เด…เดจเตเดฎเดคเดฟเด•เตพ_เดธเดพเดงเตเดค_เด‡เตป_เดŽเด‚เดŽเดธเต: 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: false
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: เด†เดจเตเด•เดพเดฒเดฟเด•เด‚
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
เด•เต‡เตพเด•เตเด•เตเด•_เดตเดฟเดฒเดพเดธเด‚: *
เดชเตเดฐเด•เตเดทเต‡เดชเดฃเด‚_เดตเดฟเดฒเดพเดธเด‚: *
เดถเตเดฐเดตเดฟเด•เตเด•เตเด•_เดชเตเดฐเด•เตเดทเต‡เดชเดฃเด‚_เดตเดฟเดฒเดพเดธเด‚: เดถเดฐเดฟ
internode_authenticator: org.apache.cassandra.auth.AllowAllInternodeAuthenticator
start_native_transport: true
เดจเต‡เดฑเตเดฑเต€เดตเต_เดŸเตเดฐเดพเตปเดธเตเดชเต‹เตผเดŸเตเดŸเต_เดชเต‹เตผเดŸเตเดŸเต: 9042
start_rpc: true
rpc_เดตเดฟเดฒเดพเดธเด‚: *
rpc_port: 9160
rpc_keepalive: true
rpc_server_type: เดธเดฎเดจเตเดตเดฏเด‚
thrift_framed_transport_size_in_mb: 15
incremental_backups: false
เดธเตเดจเดพเดชเตเดชเตเดทเต‹เดŸเตเดŸเต_เดฌเดฟเดซเต‹เตผ_เด•เต‹เด‚เดชเดพเด•เตเดทเตป: เดคเต†เดฑเตเดฑเต
auto_snapshot: true
column_index_size_in_kb: 64
column_index_cache_size_in_kb: 2
concurrent_compactors: 4
เด•เต‹เด‚เดชเดพเด•เตเดทเตป_เดคเตเดฐเต‚เดชเตเดŸเตเดŸเต_mb_per_sec: 1600
sstable_preemptive_open_interval_in_mb: 50
read_request_timeout_in_ms: 100000
เดฑเต‡เดžเตเดšเต_เด•เตเดตเดธเตเดฑเตเดฑเต_เดŸเตˆเด‚เด”เดŸเตเดŸเต_เด‡เตป_เดŽเด‚เดŽเดธเต: 200000
เดฑเตˆเดฑเตเดฑเต_เด•เตเดตเดธเตเดฑเตเดฑเต_เดŸเตˆเด‚เด”เดŸเตเดŸเต_เด‡เตป_เดŽเด‚เดŽเดธเต: 40000
counter_write_request_timeout_in_ms: 100000
cas_contention_timeout_in_ms: 20000
60000
เดฑเดฟเด•เตเดตเดธเตเดฑเตเดฑเต_เดŸเตˆเด‚เด”เดŸเตเดŸเต_เด‡เตป_เดŽเด‚เดŽเดธเต: 200000
slow_query_log_timeout_in_ms: 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
server_encryption_options:
internode_encryption: เด’เดจเตเดจเตเดฎเดฟเดฒเตเดฒ
client_encryption_options:
เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดฎเดพเด•เตเด•เดฟ: เดคเต†เดฑเตเดฑเต
เด‡เดจเตเดฑเตผเดจเต‹เดกเต_เด•เด‚เดชเตเดฐเดทเตป: เดกเดฟเดธเดฟ
inter_dc_tcp_nodelay: เดคเต†เดฑเตเดฑเต
tracetype_query_ttl: 86400
tracetype_repair_ttl: 604800
enable_user_defined_functions: false
enable_scripted_user_defined_functions: false
windows_timer_interval: 1
transparent_data_encryption_options:
เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดฎเดพเด•เตเด•เดฟ: เดคเต†เดฑเตเดฑเต
เดถเดตเด•เตเดŸเต€เดฐเด‚_เดฎเตเดจเตเดจเดฑเดฟเดฏเดฟเดชเตเดชเต_เดชเดฐเดฟเดงเดฟ: 1000
เดถเดตเด•เตเดŸเต€เดฐเด‚_เดชเดฐเดพเดœเดฏเด‚_เดชเดฐเดฟเดงเดฟ: 100000
batch_size_warn_threshold_in_kb: 200
batch_size_fail_threshold_in_kb: 250
unlogged_batch_across_partitions_warn_threshold: 10
compact_large_partition_warning_threshold_mb: 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:+CMSSparallelRemark เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดฎเดพเด•เตเด•เดฟ
-XX:เดธเตผเดตเตˆเดตเตผ เดฑเต‡เดทเตเดฏเต‹=8
-XX:MaxTenuring Threshold=1
-XX:CMSเด‡เดจเดฟเดทเตเดฏเต‡เดฑเตเดฑเดฟเด‚เด—เต เด’เด•เตเดฏเตเดชเตปเดธเดฟ เดซเตเดฐเดพเด•เตเดทเตป=75
-XX:+เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด•CMSเด†เดฐเด‚เดญเดฟเด•เตเด•เตเดจเตเดจเดคเต เด’เด•เตเดฏเตเดชเตปเดธเดฟ เดฎเดพเดคเตเดฐเด‚
-XX:CMSWaitDuration=10000
-XX:+CMSSparallelInitialMarkEnabled
-XX:+CMSEdenChunksRecordAlways
-XX:+CMSClassUnloadingEnabled

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.timeout: 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.compaction เดคเตเดฐเต†เดทเต‹เตพเดกเต: 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:CMSเด‡เดจเดฟเดทเตเดฏเต‡เดฑเตเดฑเดฟเด‚เด—เต เด’เด•เตเดฏเตเดชเตปเดธเดฟ เดซเตเดฐเดพเด•เตเดทเตป=70 -XX:+CMSเดธเดฎเดพเดจเตเดคเดฐเดฑเดฟเดฎเดพเตผเด•เตเด•เต เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดฎเดพเด•เตเด•เดฟ -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 เดŽเด‚เดเดฌเดฟ
เดฎเดพเดธเตเดฑเตเดฑเตผ เดชเดฐเดฎเดพเดตเดงเดฟ เดฒเต‹เด—เต เดซเดฏเตฝ เดฌเดพเด•เตเด•เดชเตเดชเตเด•เตพ: 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
เดฌเตˆเดฑเตเดฑเตเด•เดณเดฟเตฝ เด•เตเดฒเดฏเดจเตเดฑเต เดœเดพเดต เดนเต€เดชเตเดชเต เดตเดฒเตเดชเตเดชเด‚: 1 GiB
HBase REST เดธเต†เตผเดตเตผ เดกเดฟเดซเต‹เตพเดŸเตเดŸเต เด—เตเดฐเต‚เดชเตเดชเต: 3 GiB
HBase เดคเตเดฐเดฟเดซเตเดฑเตเดฑเต เดธเต†เตผเดตเตผ เดกเดฟเดซเต‹เตพเดŸเตเดŸเต เด—เตเดฐเต‚เดชเตเดชเต: 3 GiB
เดฌเตˆเดฑเตเดฑเตเด•เดณเดฟเตฝ HBase Master-เดจเตเดฑเต† Java Heap Size: 16 GiB
HBase RegionServer-เดจเตเดฑเต† Java Heap Size Size: 32 GiB

+ZooKeeper
maxClientCnxns: 601
maxSessionTimeout: 120000
เดชเดŸเตเดŸเดฟเด•เด•เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเต:
hbase org.apache.hadoop.hbase.util.RegionSplitter ns:t1 UniformSplit -c 64 -f cf
'ns:t1' เดฎเดพเดฑเตเดฑเตเด•, {NAME => 'cf', DATA_BLOCK_ENCODING => 'FAST_DIFF', COMPRESSION => 'GZ'}

เด‡เดตเดฟเดŸเต† เด’เดฐเต เดชเตเดฐเดงเดพเดจ เด•เดพเดฐเตเดฏเด‚ เด‰เดฃเตเดŸเต - เดŽเดšเตเดšเตเดฌเดฟ เดŸเต‡เดฌเดฟเดณเตเด•เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดพเตป เดŽเดคเตเดฐ เดชเตเดฐเดฆเต‡เดถเด™เตเด™เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเตเดตเต†เดจเตเดจเต เดกเดพเดฑเตเดฑเดพเดธเตเดฑเตเดฑเดพเด•เตเดธเต เดตเดฟเดตเดฐเดฃเด‚ เดชเดฑเดฏเตเดจเตเดจเดฟเดฒเตเดฒ, เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚ เด‡เดคเต เดตเดฒเดฟเดฏ เดตเต‹เดณเตเดฏเด™เตเด™เตพเด•เตเด•เต เดจเดฟเตผเดฃเดพเดฏเด•เดฎเดพเดฃเต. เด…เดคเดฟเดจเดพเตฝ, เดชเดฐเดฟเดถเต‹เดงเดจเด•เตพเด•เตเด•เดพเดฏเดฟ, เด…เดณเดตเต = 64 เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดคเตเดคเต, เด‡เดคเต 640 GB เดตเดฐเต† เดธเด‚เดญเดฐเดฟเด•เตเด•เดพเตป เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต, เด…เดคเดพเดฏเดคเต. เด‡เดŸเดคเตเดคเดฐเด‚ เดตเดฒเดฟเดชเตเดชเดฎเตเดณเตเดณ เดชเดŸเตเดŸเดฟเด•.

เดŸเต†เดธเตเดฑเตเดฑเต เดธเดฎเดฏเดคเตเดคเต, HBase-เตฝ 22 เด†เดฏเดฟเดฐเด‚ เดชเดŸเตเดŸเดฟเด•เด•เดณเตเด‚ 67 เด†เดฏเดฟเดฐเด‚ เดชเตเดฐเดฆเต‡เดถเด™เตเด™เดณเตเด‚ เด‰เดฃเตเดŸเดพเดฏเดฟเดฐเตเดจเตเดจเต (เดฎเตเด•เดณเดฟเตฝ เดธเต‚เดšเดฟเดชเตเดชเดฟเดšเตเดš เดชเดพเดšเตเดšเต เด‡เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดชเดคเดฟเดชเตเดชเต 1.2.0-เดจเต เด‡เดคเต เดฎเดพเดฐเด•เดฎเดพเดฏเต‡เดจเต†).

เด‡เดชเตเดชเต‹เตพ เด•เต‹เดกเดฟเดจเดพเดฏเดฟ. เด’เดฐเต เดชเตเดฐเดคเตเดฏเต‡เด• เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเดฟเดจเต เดเดคเต เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเดจเดพเดฃเต เด•เต‚เดŸเตเดคเตฝ เดชเตเดฐเดฏเต‹เดœเดจเด•เดฐเดฎเต†เดจเตเดจเต เดตเตเดฏเด•เตเดคเดฎเดฒเตเดฒเดพเดคเตเดคเดคเดฟเดจเดพเตฝ, เดตเดฟเดตเดฟเดง เด•เต‹เดฎเตเดชเดฟเดจเต‡เดทเดจเตเด•เดณเดฟเตฝ เดชเดฐเดฟเดถเต‹เดงเดจเด•เตพ เดจเดŸเดคเตเดคเดฟ. เด†. เดšเดฟเดฒ เดŸเต†เดธเตเดฑเตเดฑเตเด•เดณเดฟเตฝ, 4 เดŸเต‡เดฌเดฟเดณเตเด•เตพ เด’เดฐเต‡เดธเดฎเดฏเด‚ เดฒเต‹เดกเต เดšเต†เดฏเตเดคเต (เดŽเดฒเตเดฒเดพ 4 เดจเต‹เดกเตเด•เดณเตเด‚ เด•เดฃเด•เตเดทเดจเดพเดฏเดฟ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต). เดฎเดฑเตเดฑเต เดŸเต†เดธเตเดฑเตเดฑเตเด•เดณเดฟเตฝ เดžเด™เตเด™เตพ 8 เดตเตเดฏเดคเตเดฏเดธเตเดค เดชเดŸเตเดŸเดฟเด•เด•เดณเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดšเตเดšเต. เดšเดฟเดฒ เดธเดจเตเดฆเตผเดญเด™เตเด™เดณเดฟเตฝ, เดฌเดพเดšเตเดšเต เดตเดฒเตเดชเตเดชเด‚ 100 เด†เดฏเดฟเดฐเตเดจเตเดจเต, เดฎเดฑเตเดฑเตเดณเตเดณเดตเดฏเดฟเตฝ 200 (เดฌเดพเดšเตเดšเต เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเตผ - เดšเตเดตเดŸเต†เดฏเตเดณเตเดณ เด•เต‹เดกเต เด•เดพเดฃเตเด•). เดฎเต‚เดฒเตเดฏเดคเตเดคเดฟเดจเดพเดฏเตเดณเตเดณ เดกเดพเดฑเตเดฑ เดตเดฒเตเดชเตเดชเด‚ 10 เดฌเตˆเดฑเตเดฑเตเด•เตพ เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ 100 โ€‹โ€‹เดฌเตˆเดฑเตเดฑเตเด•เตพ (dataSize) เด†เดฃเต. เดฎเตŠเดคเตเดคเดคเตเดคเดฟเตฝ, เด“เดฐเต‹ เดคเดตเดฃเดฏเตเด‚ เด“เดฐเต‹ เดŸเต‡เดฌเดฟเดณเดฟเดฒเตเด‚ 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);
    }
}

เด…เดคเดจเตเดธเดฐเดฟเดšเตเดšเต, เดŽเดšเตเดšเตเดฌเดฟเด•เตเด•เต เดธเดฎเดพเดจเดฎเดพเดฏ เดชเตเดฐเดตเตผเดคเตเดคเดจเด‚ เดจเตฝเด•เดฟ:

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

เด‡เดชเตเดชเต‹เตพ เดเดฑเตเดฑเดตเตเด‚ เดฐเดธเด•เดฐเดฎเดพเดฏ เดญเดพเด—เด‚ - เดซเดฒเด™เตเด™เตพ:

เดฐเดฃเตเดŸเต เดฏเดพเด•เตเด•เต‹เดธเตเดจ เดฏเตเดฆเตเดงเด‚, เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด•เดธเดพเดจเตเดฆเตเดฐ vs HBase. Sberbank เดŸเต€เด‚ เด…เดจเตเดญเดตเด‚

เด—เตเดฐเดพเดซเต เดฐเต‚เดชเดคเตเดคเดฟเตฝ เดธเดฎเดพเดจ เด•เดพเดฐเตเดฏเด‚:

เดฐเดฃเตเดŸเต เดฏเดพเด•เตเด•เต‹เดธเตเดจ เดฏเตเดฆเตเดงเด‚, เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด•เดธเดพเดจเตเดฆเตเดฐ vs HBase. Sberbank เดŸเต€เด‚ เด…เดจเตเดญเดตเด‚

HB เดฏเตเดŸเต† เดชเตเดฐเดฏเต‹เดœเดจเด‚ เดตเดณเดฐเต† เด†เดถเตเดšเดฐเตเดฏเด•เดฐเดฎเดพเดฃเต, CS เดธเดœเตเดœเต€เด•เดฐเดฃเดคเตเดคเดฟเตฝ เดŽเดจเตเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดคเดŸเดธเตเดธเดฎเตเดฃเตเดŸเต‹ เดŽเดจเตเดจเต เดธเด‚เดถเดฏเดฎเตเดฃเตเดŸเต. เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เด—เต‚เด—เดฟเตพ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเตเด‚ เดเดฑเตเดฑเดตเตเด‚ เดตเตเดฏเด•เตเดคเดฎเดพเดฏ เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เตพเด•เตเด•เดพเดฏเดฟ เดคเดฟเดฐเดฏเตเดจเตเดจเดคเตเด‚ (concurrent_writes เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ memtable_heap_space_in_mb) เด•เดพเดฐเตเดฏเด™เตเด™เตพ เดตเต‡เด—เดคเตเดคเดฟเดฒเดพเด•เตเด•เดฟเดฏเดฟเดฒเตเดฒ. เด…เดคเต‡ เดธเดฎเดฏเด‚, เดฒเต‹เด—เตเด•เตพ เดถเตเดฆเตเดงเดฎเดพเดฃเต, เด’เดจเตเดจเตเด‚ เด†เดฃเดฏเดฟเดŸเดฐเตเดคเต.

เดกเดพเดฑเตเดฑ เดจเต‹เดกเตเด•เดณเดฟเดฒเตเดŸเดจเต€เดณเด‚ เดคเตเดฒเตเดฏเดฎเดพเดฏเดฟ เดตเดฟเดคเดฐเดฃเด‚ เดšเต†เดฏเตเดฏเดชเตเดชเต†เดŸเตเดŸเต, เดŽเดฒเตเดฒเดพ เดจเต‹เดกเตเด•เดณเดฟเตฝ เดจเดฟเดจเตเดจเตเดฎเตเดณเตเดณ เดธเตเดฅเดฟเดคเดฟเดตเดฟเดตเดฐเด•เตเด•เดฃเด•เตเด•เตเด•เตพ เดเด•เดฆเต‡เดถเด‚ เดธเดฎเดพเดจเดฎเดพเดฃเต.

เด’เดฐเต เดจเต‹เดกเดฟเตฝ เดจเดฟเดจเตเดจเต เดชเดŸเตเดŸเดฟเด•เดฏเตเดŸเต† เดธเตเดฅเดฟเดคเดฟเดตเดฟเดตเดฐเด•เตเด•เดฃเด•เตเด•เตเด•เตพ เด‡เด™เตเด™เดจเต†เดฏเดพเดฃเต เด•เดพเดฃเดชเตเดชเต†เดŸเตเดจเตเดจเดคเตเด•เต€เดธเตเดชเต‡เดธเต: 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 เด•เดฟเดฌเดฟ
เด•เด‚เดชเตเดฐเดทเตป เดฎเต†เดฑเตเดฑเดพเดกเดพเดฑเตเดฑ เด“เดซเต เดนเต€เดชเตเดชเต เดฎเต†เดฎเตเดฎเดฑเดฟ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต: 19.45 เด•เดฟเดฌเดฟ
เดšเตเดฐเตเด•เตเด•เดฟเดฏ เดชเดพเตผเดŸเตเดŸเต€เดทเตป เดเดฑเตเดฑเดตเตเด‚ เด•เตเดฑเดžเตเดž เดฌเตˆเดฑเตเดฑเตเด•เตพ: 36
เด’เดคเตเด•เตเด•เดฟเดฏ เดชเดพเตผเดŸเตเดŸเต€เดทเตป เดชเดฐเดฎเดพเดตเดงเดฟ เดฌเตˆเดฑเตเดฑเตเด•เตพ: 42
เด•เต‹เด‚เดชเดพเด•เตเดฑเตเดฑเต เดšเต†เดฏเตเดค เดชเดพเตผเดŸเตเดŸเต€เดทเตป เดถเดฐเดพเดถเดฐเดฟ เดฌเตˆเดฑเตเดฑเตเด•เตพ: 42
เด“เดฐเต‹ เดธเตเดฒเตˆเดธเดฟเดฒเตเด‚ เดถเดฐเดพเดถเดฐเดฟ เดฒเตˆเดตเต เดธเต†เดฒเตเดฒเตเด•เตพ (เด…เดตเดธเดพเดจ เด…เดžเตเดšเต เดฎเดฟเดจเดฟเดฑเตเดฑเต): NaN
เด’เดฐเต เดธเตเดฒเตˆเดธเดฟเดจเต เดชเดฐเดฎเดพเดตเดงเดฟ เดฒเตˆเดตเต เดธเต†เดฒเตเดฒเตเด•เตพ (เด…เดตเดธเดพเดจ เด…เดžเตเดšเต เดฎเดฟเดจเดฟเดฑเตเดฑเต): 0
เด“เดฐเต‹ เดธเตเดฒเตˆเดธเดฟเดฒเตเด‚ เดถเดฐเดพเดถเดฐเดฟ เดถเดตเด•เตเดŸเต€เดฐเด™เตเด™เตพ (เด…เดตเดธเดพเดจ เด…เดžเตเดšเต เดฎเดฟเดจเดฟเดฑเตเดฑเต): NaN
เด’เดฐเต เดธเตเดฒเตˆเดธเดฟเดจเต เดชเดฐเดฎเดพเดตเดงเดฟ เดถเดตเด•เตเดŸเต€เดฐเด™เตเด™เตพ (เด…เดตเดธเดพเดจ เด…เดžเตเดšเต เดฎเดฟเดจเดฟเดฑเตเดฑเต): 0
เด‰เดชเต‡เด•เตเดทเดฟเดšเตเดš เดฎเตเดฏเต‚เดŸเตเดŸเต‡เดทเดจเตเด•เตพ: 0 เดฌเตˆเดฑเตเดฑเตเด•เตพ

เดฌเดพเดšเตเดšเดฟเดจเตเดฑเต† เดตเดฒเตเดชเตเดชเด‚ เด•เตเดฑเดฏเตเด•เตเด•เดพเดจเตเดณเตเดณ เดถเตเดฐเดฎเด‚ (เด…เดคเต เดตเตเดฏเด•เตเดคเดฟเด—เดคเดฎเดพเดฏเดฟ เด…เดฏเดšเตเดšเดพเดฒเตเด‚) เดซเดฒเดฎเตเดฃเตเดŸเดพเดฏเดฟเดฒเตเดฒ, เด…เดคเต เด•เต‚เดŸเตเดคเตฝ เดตเดทเดณเดพเดฏเดฟ. เดตเดพเดธเตเดคเดตเดคเตเดคเดฟเตฝ เด‡เดคเต CS-เดจเตเดฑเต† เดชเดฐเดฎเดพเดตเดงเดฟ เดชเตเดฐเด•เดŸเดจเดฎเดพเดฃเต, เด•เดพเดฐเดฃเด‚ CS-เดจเต เดฒเดญเดฟเดšเตเดš เดซเดฒเด™เตเด™เตพ DataStax-เดจเต เดฒเดญเดฟเดšเตเดšเดคเดฟเดจเต เดธเดฎเดพเดจเดฎเดพเดฃเต - เดธเต†เด•เตเด•เตปเดกเดฟเตฝ เดฒเด•เตเดทเด•เตเด•เดฃเด•เตเด•เดฟเดจเต เดชเตเดฐเดตเตผเดคเตเดคเดจเด™เตเด™เตพ. เด•เต‚เดŸเดพเดคเต†, เดžเด™เตเด™เตพ เดฑเดฟเดธเต‹เดดเตเดธเต เดตเดฟเดจเดฟเดฏเต‹เด—เด‚ เดจเต‹เด•เตเด•เตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ, เดธเดฟเดŽเดธเต เด•เต‚เดŸเตเดคเตฝ เดธเดฟเดชเดฟเดฏเตเดตเตเด‚ เดกเดฟเดธเตเด•เตเด•เดณเตเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเดพเดฏเดฟ เด•เดพเดฃเดพเด‚:

เดฐเดฃเตเดŸเต เดฏเดพเด•เตเด•เต‹เดธเตเดจ เดฏเตเดฆเตเดงเด‚, เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด•เดธเดพเดจเตเดฆเตเดฐ vs HBase. Sberbank เดŸเต€เด‚ เด…เดจเตเดญเดตเด‚
เดฐเดฃเตเดŸเต เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเตเด•เตพเด•เตเด•เตเดฎเดพเดฏเดฟ เด’เดฐเต เดจเดฟเดฐเดฏเดฟเดฒเตเดณเตเดณ เดŽเดฒเตเดฒเดพ เดŸเต†เดธเตเดฑเตเดฑเตเด•เดณเตเดŸเต†เดฏเตเด‚ เดฑเตบ เดธเดฎเดฏเดคเตเดคเต เด‰เดชเดฏเต‹เด—เดคเตเดคเต† เดšเดฟเดคเตเดฐเด‚ เด•เดพเดฃเดฟเด•เตเด•เตเดจเตเดจเต.

เดŽเดšเตเดšเตเดฌเดฟเดฏเตเดŸเต† เดถเด•เตเดคเดฎเดพเดฏ เดตเดพเดฏเดจเดพ เดจเต‡เดŸเตเดŸเดคเตเดคเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต. เดฐเดฃเตเดŸเต เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเตเด•เดณเดฟเดฒเตเด‚, เดฑเต€เดกเดฟเด‚เด—เต เดธเดฎเดฏเดคเตเดคเต เดกเดฟเดธเตเด•เต เด‰เดชเดฏเต‹เด—เด‚ เดตเดณเดฐเต† เด•เตเดฑเดตเดพเดฃเต†เดจเตเดจเต เด‡เดตเดฟเดŸเต† เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด•เดพเดฃเดพเตป เด•เดดเดฟเดฏเตเด‚ (เด“เดฐเต‹ เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเดฟเดจเตเด‚ เดŸเต†เดธเตเดฑเตเดฑเดฟเด‚เด—เต เดธเตˆเด•เตเด•เดฟเดณเดฟเดจเตเดฑเต† เด…เดตเดธเดพเดจ เดญเดพเด—เดฎเดพเดฃเต เดฑเต€เดกเต เดŸเต†เดธเตเดฑเตเดฑเตเด•เตพ, เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต CS-เดจเต เด‡เดคเต 15:20 เดฎเตเดคเตฝ 15:40 เดตเดฐเต†เดฏเดพเดฃเต). เดŽเดšเตเดšเตเดฌเดฟเดฏเตเดŸเต† เด•เดพเดฐเตเดฏเดคเตเดคเดฟเตฝ, เด•เดพเดฐเดฃเด‚ เดตเตเดฏเด•เตเดคเดฎเดพเดฃเต - เดฎเดฟเด•เตเด• เดกเดพเดฑเตเดฑเดฏเตเด‚ เดฎเต†เดฎเตเดฎเดฑเดฟเดฏเดฟเดฒเตเด‚ เดฎเต†เด‚เดธเตเดฑเตเดฑเต‹เดฑเดฟเดฒเตเด‚ เดคเต‚เด™เตเด™เดฟเด•เตเด•เดฟเดŸเด•เตเด•เตเดจเตเดจเต, เดšเดฟเดฒเดคเต เดฌเตเดฒเต‹เด•เตเด•เต เด•เดพเดทเต†เดฏเดฟเตฝ เด•เดพเดทเต† เดšเต†เดฏเตเดฏเตเดจเตเดจเต. CS-เดจเต† เดธเด‚เดฌเดจเตเดงเดฟเดšเตเดšเดฟเดŸเดคเตเดคเต‹เดณเด‚, เด‡เดคเต เดŽเด™เตเด™เดจเต† เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต เดŽเดจเตเดจเดคเต เดตเดณเดฐเต† เดตเตเดฏเด•เตเดคเดฎเดฒเตเดฒ, เดชเด•เตเดทเต‡ เดกเดฟเดธเตเด•เต เดฑเต€เดธเตˆเด•เตเดฒเดฟเด‚เด—เตเด‚ เดฆเตƒเดถเตเดฏเดฎเดฒเตเดฒ, เดชเด•เตเดทเต‡, เด•เดพเดทเต† row_cache_size_in_mb = 2048 เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดฎเดพเด•เตเด•เดพเดจเตเด‚ เด•เดพเดทเดฟเด‚เด—เต = {'เด•เต€เด•เตพ' เดธเดœเตเดœเดฎเดพเด•เตเด•เดพเดจเตเด‚: 'เดŽเดฒเตเดฒเดพเด‚', 'rows_per_partition': ' 2000000'}, เดชเด•เตเดทเต‡ เด…เดคเต เด•เตเดฑเดšเตเดšเตเด•เต‚เดŸเดฟ เดฎเต‹เดถเดฎเดพเด•เตเด•เดฟ.

เดŽเดšเตเดšเตเดฌเดฟเดฏเดฟเดฒเต† เดชเตเดฐเดฆเต‡เดถเด™เตเด™เดณเตเดŸเต† เดŽเดฃเตเดฃเดคเตเดคเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เด’เดฐเต เดชเตเดฐเดงเดพเดจ เด•เดพเดฐเตเดฏเด‚ เด’เดฐเดฟเด•เตเด•เตฝ เด•เต‚เดŸเดฟ เดชเดฐเดพเดฎเตผเดถเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเดพเดฃเต. เดžเด™เตเด™เดณเตเดŸเต† เด•เดพเดฐเตเดฏเดคเตเดคเดฟเตฝ, เดฎเต‚เดฒเตเดฏเด‚ 64 เด†เดฏเดฟ เดธเต‚เดšเดฟเดชเตเดชเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต. เดจเดฟเด™เตเด™เตพ เด…เดคเต เด•เตเดฑเดฏเตเด•เตเด•เตเด•เดฏเตเด‚ เดคเตเดฒเตเดฏเดฎเดพเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดคเดพเตฝ, เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, 4, เดคเตเดŸเตผเดจเตเดจเต เดตเดพเดฏเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ, เดตเต‡เด—เดค 2 เดฎเดŸเด™เตเด™เต เด•เตเดฑเดฏเตเดจเตเดจเต. เด•เดพเดฐเดฃเด‚, เดฎเต†เด‚เดธเตเดฑเตเดฑเต‹เตผ เดตเต‡เด—เดคเตเดคเดฟเตฝ เดจเดฟเดฑเดฏเตเด•เดฏเตเด‚ เดซเดฏเดฒเตเด•เตพ เด•เต‚เดŸเตเดคเตฝ เดคเดตเดฃ เดซเตเดฒเดทเต เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเด‚, เดตเดพเดฏเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ, เด•เต‚เดŸเตเดคเตฝ เดซเดฏเดฒเตเด•เตพ เดชเตเดฐเต‹เดธเดธเตเดธเต เดšเต†เดฏเตเดฏเต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต, เด‡เดคเต เดŽเดšเตเดšเตเดฌเดฟเด•เตเด•เต เดตเดณเดฐเต† เดธเด™เตเด•เต€เตผเดฃเตเดฃเดฎเดพเดฏ เดชเตเดฐเดตเตผเดคเตเดคเดจเดฎเดพเดฃเต. เดฏเดฅเดพเตผเดคเตเดฅ เด…เดตเดธเตเดฅเดฏเดฟเตฝ, เดฎเตเตปเด•เต‚เตผ เดตเดฟเดญเดœเดจเดตเตเด‚ เด•เต‹เด‚เดชเดพเด•เตเดฑเตเดฑเดฟเดซเดฟเด•เตเด•เต‡เดทเตป เดคเดจเตเดคเตเดฐเดตเตเด‚ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด‡เดคเต เด•เตˆเด•เดพเดฐเตเดฏเด‚ เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเตเด‚; เดชเตเดฐเดคเตเดฏเต‡เด•เดฟเดšเตเดšเตเด‚, เดฎเดพเดฒเดฟเดจเตเดฏเด™เตเด™เตพ เดถเต‡เด–เดฐเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดชเดถเตเดšเดพเดคเตเดคเดฒเดคเตเดคเดฟเตฝ เดจเดฟเดฐเดจเตเดคเดฐเด‚ HFiles เด•เด‚เดชเตเดฐเดธเต เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจ เด’เดฐเต เดธเตเดตเดฏเด‚-เดŽเดดเตเดคเดชเตเดชเต†เดŸเตเดŸ เดฏเต‚เดŸเตเดŸเดฟเดฒเดฟเดฑเตเดฑเดฟ เดžเด™เตเด™เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต. DataStax เดŸเต†เดธเตเดฑเตเดฑเตเด•เตพเด•เตเด•เดพเดฏเดฟ เด…เดตเตผ เด’เดฐเต เดŸเต‡เดฌเดฟเดณเดฟเดจเต 1 เดชเตเดฐเดฆเต‡เดถเด‚ เดฎเดพเดคเตเดฐเดฎเต‡ เด…เดจเตเดตเดฆเดฟเดšเตเดšเดฟเดŸเตเดŸเตเดณเตเดณเต‚ (เด…เดคเต เดถเดฐเดฟเดฏเดฒเตเดฒ) เด…เดตเดฐเตเดŸเต† เดตเดพเดฏเดจเดพ เดชเดฐเดฟเดถเต‹เดงเดจเด•เดณเดฟเตฝ เดŽเดšเตเดšเตเดฌเดฟ เดตเดณเดฐเต† เดคเดพเดดเตเดจเตเดจเดคเต เดŽเดจเตเดคเตเด•เตŠเดฃเตเดŸเดพเดฃเต†เดจเตเดจเต เด‡เดคเต เด’เดฐเต เดชเดฐเดฟเดงเดฟเดตเดฐเต† เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เตเด‚.

เด‡เดคเดฟเตฝ เดจเดฟเดจเตเดจเดพเดฃเต เดคเดพเดดเต† เดชเดฑเดฏเตเดจเตเดจ เดชเตเดฐเดพเดฅเดฎเดฟเด• เดจเดฟเด—เดฎเดจเด™เตเด™เตพ. เดชเดฐเดฟเดถเต‹เดงเดจเดฏเตเด•เตเด•เดฟเดŸเต† เดตเดฒเดฟเดฏ เดชเดฟเดดเดตเตเด•เดณเตŠเดจเตเดจเตเด‚ เดธเด‚เดญเดตเดฟเดšเตเดšเดฟเดŸเตเดŸเดฟเดฒเตเดฒเต†เดจเตเดจเต เด•เดฐเตเดคเดฟเดฏเดพเตฝ, เด•เดธเดพเดจเตเดฆเตเดฐเดฏเตเด•เตเด•เต เด•เดพเดฒเตเด•เตพ เด•เดณเดฟเดฎเดฃเตเดฃเตเดณเตเดณ เด’เดฐเต เดญเต€เดฎเดพเด•เดพเดฐเดฎเดพเดฏ เดชเต‹เดฒเต† เดคเต‹เดจเตเดจเตเดจเตเดจเต. เด•เต‚เดŸเตเดคเตฝ เด•เตƒเดคเตเดฏเดฎเดพเดฏเดฟ เดชเดฑเดžเตเดžเดพเตฝ, เดฒเต‡เด–เดจเดคเตเดคเดฟเดจเตเดฑเต† เดคเตเดŸเด•เตเด•เดคเตเดคเดฟเดฒเต† เดšเดฟเดคเตเดฐเดคเตเดคเดฟเดฒเต†เดจเตเดจเดชเต‹เดฒเต† เด…เดตเตพ เด’เดฐเต เด•เดพเดฒเดฟเตฝ เดธเดจเตเดคเตเดฒเดฟเดคเดฎเดพเด•เตเด•เตเดฎเตเดชเต‹เตพ, เด…เดตเตพ เดคเดพเดฐเดคเดฎเตเดฏเต‡เดจ เดจเดฒเตเดฒ เดซเดฒเด™เตเด™เตพ เด•เดพเดฃเดฟเด•เตเด•เตเดจเตเดจเต, เดŽเดจเตเดจเดพเตฝ เด…เดคเต‡ เดธเดพเดนเดšเดฐเตเดฏเด™เตเด™เดณเดฟเตฝ เด’เดฐเต เดชเต‹เดฐเดพเดŸเตเดŸเดคเตเดคเดฟเตฝ เด…เดตเตพ เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏเตเด‚ เดชเดฐเดพเดœเดฏเดชเตเดชเต†เดŸเตเดจเตเดจเต. เด…เดคเต‡ เดธเดฎเดฏเด‚, เดžเด™เตเด™เดณเตเดŸเต† เดนเดพเตผเดกเตโ€Œเดตเต†เดฏเดฑเดฟเดฒเต† เด•เตเดฑเดžเตเดž เดธเดฟเดชเดฟเดฏเต เด‰เดชเดฏเต‹เด—เด‚ เด•เดฃเด•เตเด•เดฟเดฒเต†เดŸเตเดคเตเดคเต, เด’เดฐเต เดนเต‹เดธเตเดฑเตเดฑเดฟเดจเต เดฐเดฃเตเดŸเต เดฑเต€เดœเดฟเดฏเตบเดธเต†เตผเดตเตผ เดŽเดšเตเดšเตเดฌเดฟเด•เตพ เดจเดŸเตเดŸเตเดชเดฟเดŸเดฟเดชเตเดชเดฟเด•เตเด•เดพเตป เดžเด™เตเด™เตพ เดชเด เดฟเดšเตเดšเต, เด…เดคเตเดตเดดเดฟ เดชเตเดฐเด•เดŸเดจเด‚ เด‡เดฐเดŸเตเดŸเดฟเดฏเดพเด•เตเด•เดฟ. เด†. เดตเดฟเดญเดตเด™เตเด™เดณเตเดŸเต† เดตเดฟเดจเดฟเดฏเต‹เด—เด‚ เด•เดฃเด•เตเด•เดฟเดฒเต†เดŸเตเด•เตเด•เตเดฎเตเดชเต‹เตพ, เดธเดฟเดŽเดธเดฟเดจเตเดฑเต† เดธเตเดฅเดฟเดคเดฟ เด•เต‚เดŸเตเดคเตฝ เดชเดฐเดฟเดคเดพเดชเด•เดฐเดฎเดพเดฃเต.

เดคเต€เตผเดšเตเดšเดฏเดพเดฏเตเด‚, เดˆ เดชเดฐเดฟเดถเต‹เดงเดจเด•เตพ เดคเดฟเด•เดšเตเดšเตเด‚ เดธเดฟเดจเตเดคเดฑเตเดฑเดฟเด•เต เด†เดฃเต, เด‡เดตเดฟเดŸเต† เด‰เดชเดฏเต‹เด—เดฟเดšเตเดš เดกเดพเดฑเตเดฑเดฏเตเดŸเต† เด…เดณเดตเต เดคเดพเดฐเดคเดฎเตเดฏเต‡เดจ เดฎเดฟเดคเดฎเดพเดฃเต. เดžเด™เตเด™เตพ เดŸเต†เดฑเดพเดฌเตˆเดฑเตเดฑเดฟเดฒเต‡เด•เตเด•เต เดฎเดพเดฑเดฟเดฏเดพเตฝ, เดธเดพเดนเดšเดฐเตเดฏเด‚ เดตเตเดฏเดคเตเดฏเดธเตเดคเดฎเดพเด•เดพเตป เดธเดพเดงเตเดฏเดคเดฏเตเดฃเตเดŸเต, เดชเด•เตเดทเต‡ เดŽเดšเตเดšเตเดฌเดฟเด•เตเด•เต เดจเดฎเตเด•เตเด•เต เดŸเต†เดฑเดพเดฌเตˆเดฑเตเดฑเตเด•เตพ เดฒเต‹เดกเต เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเตเด‚, เดธเดฟเดŽเดธเดฟเดจเต เด‡เดคเต เดชเตเดฐเดถเตเดจเดฎเดพเดฏเดฟ เดฎเดพเดฑเดฟ. เดˆ เดตเต‹เดณเตเดฏเด™เตเด™เดณเดฟเตฝ เดชเต‹เดฒเตเด‚ เด‡เดคเต เดชเดฒเดชเตเดชเต‹เดดเตเด‚ เด’เดฐเต 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

เด’เดฐเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•