เบเบตเปเบเปเปเปเบกเปเบเปเบฅเบทเปเบญเบเบเบฐเบซเบฅเบปเบ, เบกเบฑเบเปเบเบดเปเบเบเบทเบงเปเบฒเบฎเบนเบเบเบฒเบเบชเบฐเปเบเบฒเบฐเบเบตเปเบชเบฐเบเปเบญเบเปเบซเปเปเบซเบฑเบเปเบเบดเบเบเบงเบฒเบกเบชเปเบฒเบเบฑเบเบเบญเบเบเบฒเบเบเปเปเบกเบนเบเปเบซเบผเบปเปเบฒเบเบตเปเบขเปเบฒเบเบเบทเบเบเปเบญเบ, เปเบฅเบฐเปเบเบเบตเปเบชเบธเบเบกเบฑเบเบเบฐเปเบเปเบเบงเปเบฒ:
เบญเบตเบเบเบฒเบก DB-Engines Ranking, เบชเบญเบเบเบฒเบเบเปเปเบกเบนเบ NoSQL columnar เบเบตเปเบเบดเบเบปเบกเบเบตเปเบชเบธเบเปเบกเปเบ Cassandra (เบเปเปเปเบเบเบตเปเปเบกเปเบ CS) เปเบฅเบฐ HBase (HB).
เปเบเบเบเบงเบฒเบกเบเบฐเบชเบปเบเบเบญเบเปเบเบเบเบฐเบเบฒ, เบเบตเบกเบเบฒเบเบเบธเปเบกเบเบญเบเบเบฒเบเปเบซเบผเบเบเปเปเบกเบนเบเบเบญเบเบเบงเบเปเบฎเบปเบฒเบขเบนเป Sberbank เปเบเปเปเบฅเปเบง
เบขเปเบฒเบเปเบเบเปเปเบเบฒเบก, เบเปเบญเบเบเบตเปเบเบฐเบเปเบฒเบงเปเบเบชเบนเปเบเบปเบเบเบญเบเบเบฒเบเบเบปเบเบชเบญเบเบเบตเปเบเปเบฒเปเบเบตเบ, เบกเบฑเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเบญเบฐเบเบดเบเบฒเบเบฅเบฑเบเบชเบฐเบเบฐเบเบตเปเบชเปเบฒเบเบฑเบเบเบญเบเบเบฒเบเบเบฑเปเบเบเปเบฒเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบก. เบเบงเบฒเบกเบเบดเบเปเบฅเปเบงเปเบกเปเบเบงเปเบฒ CS เบชเบฒเบกเบฒเบเบเบทเบเบเปเบฒเปเบเปเปเบเบฎเบนเบเปเบเบเบเบตเปเบญเบฐเบเบธเบเบฒเบเปเบซเปเบเบฒเบเบชเบนเบเปเบชเบเบเปเปเบกเบนเบ. เปเบซเบผเบปเปเบฒเบเบฑเปเบ. เบเบตเปเปเบกเปเบเปเบงเบฅเบฒเบเบตเปเบกเบตเบเบฝเบเปเบเปเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบ (node) เบฎเบฑเบเบเบดเบเบเบญเบเบชเปเบฒเบฅเบฑเบเบเปเปเบกเบนเบเบเบญเบเบฅเบฐเบซเบฑเบเบเบตเปเปเบเปเบเบญเบ, เปเบฅเบฐเบเปเบฒเบชเปเบฒเบฅเบฑเบเปเบซเบเบเบปเบเบเบฒเบเบขเปเบฒเบเบกเบฑเบเบฅเบปเปเบกเปเบซเบฅเบง, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบกเบนเบเบเปเบฒเบเบญเบเบฅเบฐเบซเบฑเบเบเบตเปเบเบฐเบชเบนเบเปเบชเบเปเบ. เบชเปเบฒเบฅเบฑเบเบงเบฝเบเบเบฒเบเบเปเบฒเบเบงเบเบซเบผเบฒเบ, เบเบตเปเบเปเปเปเบกเปเบเบเบงเบฒเบกเบชเปเบฒเบเบฑเบ, เปเบเปเบชเปเบฒเบฅเบฑเบเบเบฐเปเบซเบเบเบเบฒเบเบเบฐเบเบฒเบเบฒเบเบเบตเปเปเบกเปเบเบเปเปเบเบปเบเปเบงเบฑเปเบเปเบเบเบเบตเปเบเบฐเปเบเบฑเบเบเบปเบเบฅเบฐเบเบฝเบ. เปเบเบเปเบฅเบฐเบเบตเบเบญเบเบเบงเบเปเบฎเบปเบฒ, เบกเบฑเบเปเบเบฑเบเบชเบดเปเบเบชเปเบฒเบเบฑเบเบเบตเปเบเบฐเบกเบตเบชเปเบฒเปเบเบปเบฒเบเปเปเบกเบนเบเบเปเบฒเบเบงเบเบซเบเบถเปเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเปเบเบฑเบเบฎเบฑเบเบชเบฒเบเบตเปเปเบเบทเปเบญเบเบทเปเบเป.
เบเบฑเปเบเบเบฑเปเบ, เบเบฝเบเปเบเปเบฎเบนเบเปเบเบเบเบฒเบเปเบฎเบฑเบเบงเบฝเบ CS เปเบเปเบซเบกเบ replication triple เปเบเปเบเบทเบเบเบดเบเบฒเบฅเบฐเบเบฒ, i.e. เบเบฒเบเบชเปเบฒเบ casespace เปเบเปเบเบทเบเบเบฐเบเบดเบเบฑเบเบเปเบงเบเบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบเบเบฑเปเบเบเปเปเปเบเบเบตเป:
CREATE KEYSPACE ks WITH REPLICATION = {'class' : 'NetworkTopologyStrategy', 'datacenter1' : 3};
เบเปเปเปเบ, เบกเบตเบชเบญเบเบงเบดเบเบตเปเบเบทเปเบญเบฎเบฑเบเบเบฐเบเบฑเบเบฅเบฐเบเบฑเบเบเบงเบฒเบกเบชเบญเบเบเปเบญเบเบเบตเปเบเปเบญเบเบเบฒเบ. เบเบปเบโเบฅเบฐโเบเบฝเบโเบเบปเปเบงโเปเบโ:
NW + NR > RF
เบเบถเปเบเบซเบกเบฒเบเบเบงเบฒเบกเบงเปเบฒเบเปเบฒเบเบงเบเบเบญเบเบเบฒเบเบขเบทเบเบขเบฑเบเบเบฒเบ nodes เปเบเปเบงเบฅเบฒเบเบตเปเบเบฝเบ (NW) เบเบงเบเบเบฑเบเบเปเบฒเบเบงเบเบเบญเบเบเบฒเบเบขเบทเบเบขเบฑเบเบเบฒเบ nodes เปเบเปเบงเบฅเบฒเบเบตเปเบญเปเบฒเบ (NR) เบเบฐเบเปเบญเบเบซเบผเบฒเบเบเปเบงเบฒเบเบฑเบเปเบเบเบฒเบเบเปเบฒเบฅเบญเบ. เปเบเบเปเบฅเบฐเบเบตเบเบญเบเบเบงเบเปเบฎเบปเบฒ, RF = 3, เบเบถเปเบเบซเบกเบฒเบเบเบงเบฒเบกเบงเปเบฒเบเบฒเบเปเบฅเบทเบญเบเบเปเปเปเบเบเบตเปเปเบกเปเบเปเบซเบกเบฒเบฐเบชเบปเบก:
2 + 2 > 3
3 + 1 > 3
เปเบเบทเปเบญเบเบเบฒเบเบกเบฑเบเปเบเบฑเบเบชเบดเปเบเบชเปเบฒเบเบฑเบเบเบทเปเบเบเบฒเบเบชเปเบฒเบฅเบฑเบเบเบงเบเปเบฎเบปเบฒเบเบตเปเบเบฐเปเบเบฑเบเบฎเบฑเบเบชเบฒเบเปเปเบกเบนเบเบเบตเปเปเบเบทเปเบญเบเบทเปเบเปเปเบเบปเปเบฒเบเบตเปเปเบเบฑเบเปเบเปเบเป, เปเบเบเบเบฒเบ 3+1 เปเบเปเบเบทเบเปเบฅเบทเบญเบ. เบเบญเบเบเบฒเบเบเบฑเปเบ, HB เปเบฎเบฑเบเบงเบฝเบเบขเบนเปเปเบเบซเบผเบฑเบเบเบฒเบเบเบตเปเบเปเบฒเบเบเบทเบเบฑเบ, i.e. เบเบฒเบเบเบฝเบเบเบฝเบเบเบฑเปเบเบเปเบฒเบงเบเบฐเบกเบตเบเบงเบฒเบกเบเบธเบเบดเบเปเบฒเบเบงเปเบฒ.
เบกเบฑเบเบเบงเบเบเบฐเบชเบฑเบเปเบเบเบงเปเบฒ DataStax เปเบเปเปเบฎเบฑเบเบเบปเบเบเบฑเบเบเปเบฒเบกเปเบเบเบฒเบเบชเบถเบเบชเบฒเบเบญเบเบเบงเบเปเบเบปเบฒ, เบเบงเบเปเบเบปเบฒเบเปเบฒเบเบปเบ RF = 1 เบชเปเบฒเบฅเบฑเบเบเบฑเบ CS เปเบฅเบฐ HB (เบชเปเบฒเบฅเบฑเบเบเปเปเบกเบฒเปเบเบเบเบฒเบเบเปเบฝเบเปเบเบเบเบฒเบเบเบฑเปเบเบเปเบฒ HDFS). เบเบตเปเปเบกเปเบเบฅเบฑเบเบชเบฐเบเบฐเบเบตเปเบชเปเบฒเบเบฑเบเปเบเบฒเบฐเบงเปเบฒเบเบปเบเบเบฐเบเบปเบเบเบญเบเบเบฒเบเบเบฐเบเบดเบเบฑเบ CS เปเบเบเปเบฅเบฐเบเบตเบเบตเปเปเบกเปเบเปเบซเบเปเบซเบผเบงเบ. เบเบปเบงเบขเปเบฒเบ, เบฎเบนเบเบเปเบฒเบเบฅเบธเปเบกเบเบตเปเบชเบฐเปเบเบเปเบซเปเปเบซเบฑเบเปเบเบดเบเบเบฒเบเปเบเบตเปเบกเปเบงเบฅเบฒเบเบตเปเบเปเบญเบเบเบฒเบเปเบเบทเปเบญเปเบซเบฅเบเบเปเปเบกเบนเบเปเบเบปเปเบฒเปเบ CS:
เปเบเบเบตเปเบเบตเปเบเบงเบเปเบฎเบปเบฒเปเบซเบฑเบเบชเบดเปเบเบเปเปเปเบเบเบตเป: เบซเบปเบงเบเปเปเบเบตเปเบกเบตเบเบฒเบเปเบเปเบเบเบฑเบเบซเบผเบฒเบเบเบฝเบเบเปเปเบกเบนเบ, เบกเบฑเบเปเบเปเปเบงเบฅเบฒเบเบปเบ. เบเบตเปเปเบกเปเบเบเปเบฒเบกเบฐเบเบฒเบ, เปเบเปเบกเบฑเบเปเบเบฑเบเบชเบดเปเบเบชเปเบฒเบเบฑเบเบเบตเปเบเบฒเบเบซเบผเบธเบเบฅเบปเบเบเบฐเบชเบดเบเบเบดเบเบฒเบเบชเปเบฒเบฅเบฑเบ RF = 3 เปเบกเปเบเบชเบนเบเบเบถเปเบเบขเปเบฒเบเบซเบผเบงเบเบซเบผเบฒเบ. เปเบเบเปเบฒเบชเบฑเบเบเปเบฒเบเปเบญเบทเปเบเป, เบเปเบฒเบเบงเบเปเบฎเบปเบฒเบเบฝเบ 4 เบเบฐเบเบนเปเปเบเบปเปเบฒเปเบเปเบ 5 เบเบฒเบเบฐเบฅเบฒเบเปเบเปเบฅเบฐเบเบปเบ (20 เปเบเบเปเบฒเบเบงเบเบเบฑเบเบซเบกเบปเบ), RF = 3 เบเบฐเบชเบนเบเปเบชเบเบเบฐเบกเบฒเบ 2 เปเบเบทเปเบญ (150 เบงเบดเบเบฒเบเบตเบชเปเบฒเบฅเบฑเบ RF = 3 เบเบฝเบเบเบฑเบ 75 เบชเปเบฒเบฅเบฑเบ RF = 1). เปเบเปเบเปเบฒเบเบงเบเปเบฎเบปเบฒเปเบเบตเปเบกเบเบฒเบเปเบซเบผเบเปเบเบเบเบฒเบเปเบซเบผเบเบเปเปเบกเบนเบเปเบเบปเปเบฒเปเบเปเบ 8 เบเบฒเบเบฐเบฅเบฒเบเบเบตเปเบกเบต 5 threads เปเบเปเบฅเบฐเบเบปเบ (40 เปเบเบเปเบฒเบเบงเบเบเบฑเบเบซเบกเบปเบ), เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบเบฒเบเบชเบนเบเปเบชเบ RF = 3 เปเบกเปเบเปเบฅเปเบง 2,7 เปเบเบปเปเบฒ (375 เบงเบดเบเบฒเบเบตเบเบฝเบเบเบฑเบ 138).
เบเบฒเบเบเบตเบเบตเปเปเบกเปเบเบเบฒเบเบชเปเบงเบเปเบเบฑเบเบเบงเบฒเบกเบฅเบฑเบเบเบญเบเบเบฒเบเบเบปเบเบชเบญเบเบเบฒเบเปเบซเบผเบเบเบตเปเบเบฐเบชเบปเบเบเบปเบเบชเปเบฒเปเบฅเบฑเบเบเบตเปเบเปเบฒเปเบเบตเบเปเบเบ DataStax เบชเปเบฒเบฅเบฑเบ CS, เปเบเบฒเบฐเบงเปเบฒเบชเปเบฒเบฅเบฑเบ HB เบขเบนเปเปเบเบเบธเบเบขเบทเบเบเบญเบเบเบงเบเปเบฎเบปเบฒเบเบฒเบเบเปเบฝเบเปเบเบเบเบฑเบเปเบเบเบฒเบเบเปเบฒเบฅเบญเบเบเบฒเบ 2 เบซเบฒ 3 เบเปเปเบกเบตเบเบปเบเปเบเป. เปเบซเบผเบปเปเบฒเบเบฑเปเบ. เปเบเปเบเบเปเปเปเบกเปเบเบเปเบเบงเบ HB เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบฑเปเบเบเปเบฒเบเบญเบเบเบงเบเปเบฎเบปเบฒ. เบขเปเบฒเบเปเบเบเปเบเบฒเบก, เบกเบตเบซเบผเบฒเบ pitfalls เบเบตเปเบเบตเป, เปเบเบทเปเบญเบเบเบฒเบเบงเปเบฒเบกเบฑเบเบเบงเบเบเบฐเบชเบฑเบเปเบเบเบงเปเบฒเบชเบฐเบเบฑเบเบเบญเบเบเบงเบเปเบฎเบปเบฒเบเบญเบ HB เปเบเปเบเบทเบ patched เปเบฅเบฑเบเบเปเบญเบเปเบฅเบฐ tweaked, เบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเปเบกเปเบเปเบเบเบเปเบฒเบเบเบฑเบเบซเบกเบปเบ, เปเบฅเบฐเบญเบทเปเบเป. เบกเบฑเบเบเบฑเบเปเบเบฑเบเบกเบนเบเบเปเบฒเบเบตเปเบชเบฑเบเปเบเบเบงเปเบฒเบเบฒเบเบเบตเบเปเบญเบเบเบฝเบเปเบเปเบเปเปเบฎเบนเปเบงเบดเบเบตเบเบฒเบเบเบฐเบเบฝเบก 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
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
authenticator: AllowAllAuthenticator
authorizer: AllowAllAuthorizer
role_manager: CassandraRoleManager
roles_validity_in_ms: 2000
permissions_validity_in_ms: 2000
credentials_validity_in_ms: 2000
partitioner: 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: เบขเบธเบ
commit_failure_policy: เบขเบธเบ
Prepare_statements_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
storage_port: 7000
ssl_storage_port: 7001
เบเบตเปเบขเบนเปเบเบฑเบ: *
เบเบตเปเบขเบนเปเบญเบญเบเบญเบฒเบเบฒเบ: *
listen_on_broadcast_address: เบเบดเบ
internode_authenticator: org.apache.cassandra.auth.AllowAllInternodeAuthenticator
start_native_transport: เบเบทเบ
native_transport_port: 9042
start_rpc: เปเบเป
rpc_dress: *
rpc_port: 9160
rpc_keepalive: เบเบดเบ
rpc_server_type: sync
thrift_framed_transport_size_in_mb: 15
incremental_backups: false
snapshot_before_compaction: false
auto_snapshot: เบเบดเบ
column_index_size_in_kb: 64
column_index_cache_size_in_kb: 2
concurrent_compactors: 4
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
server_encryption_options:
internode_encryption: เบเปเปเบกเบต
client_encryption_options:
เปเบเบตเบเปเบเปเบเบฒเบ: false
internode_compression: dc
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
transparent_data_encryption_options:
เปเบเบตเบเปเบเปเบเบฒเบ: false
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: false
enable_materialized_views: เปเบกเปเบเปเบเป
enable_sasi_indexes: เบเบดเบ
เบเบฒเบเบเบฑเปเบเบเปเบฒ GC:
### เบเบฒเบเบเบฑเปเบเบเปเบฒ CMS-XX:+UseParNewGC
-XX:+UseConcMarkSweepGC
-XX:+CMSParallelRemarkEnabled
-XX:SurvivorRatio=8
-XX:MaxTenuringThreshold=1
-XX:CMSIinitiatingOccupancyFraction=75
-XX:+UseCMSSIinitiatingOccupancyOnly
-XX:CMSWaitDuration=10000
-XX:+CMSParallelInitialMarkEnabled
-XX:+CMSEdenChunksRecordเบชเบฐเปเปเบต
-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 เบเบตเปเบเปเบฒเปเบเบชเบนเป GC เปเบกเบทเปเบญเบเปเบฒเบเบงเบเบเบฒเบเบเบทเปเบเบกเบตเบซเบผเบฒเบเบเบงเปเบฒ 1000 เปเบ RegionServer)
เบเบฒเบฃเบฒเบกเบดเปเบเบต 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.compactionThreshold: 5
hbase.hstore.blockingStoreFiles: 200
hbase.hregion.majorcompaction: 1 เบกเบทเป
HBase Service Advanced Configuration Snippet (Safety Valve) เบชเปเบฒเบฅเบฑเบ hbase-site.xml:
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
เบเบปเบงเปเบฅเบทเบญเบเบเบฒเบเบเบฑเปเบเบเปเบฒ Java เบชเปเบฒเบฅเบฑเบ 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 Thrift Server Max เบเบฐเปเบฒเบเบเบฑเบเบเบถเบ: 100 MiB
HBase Thrift Server Maximum Log File Backups: 5
เบเบฐเปเบฒเบเบเบฑเบเบเบถเบ Master Max: 100 MiB
Master เบเบฑเบเบเบถเบเปเบเบฅเปเบชเปเบฒเบฎเบญเบเบชเบนเบเบชเบธเบ: 5
RegionServer Max Log Size: 100 MiB
RegionServer เบเบฑเบเบเบถเบเปเบเบฅเปเบชเบณเบฎเบญเบเบชเบนเบเบชเบธเบ: 5
HBase Active Master Detection Window: 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
Region Mover Threads: 6
Client Java Heap Size เปเบ Bytes: 1 GiB
HBase REST Server Default Group: 3 GiB
HBase Thrift Server Default Group: 3 GiB
Java Heap เบเบฐเบซเบเบฒเบเบเบญเบ HBase Master เปเบ Bytes: 16 GiB
Java Heap เบเบฐเบซเบเบฒเบเบเบญเบ HBase RegionServer เปเบ Bytes: 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'}
เบกเบตเบเบธเบเบซเบเบถเปเบเบเบตเปเบชเปเบฒเบเบฑเบเบขเบนเปเบเบตเปเบเบตเป - เบเปเบฒเบญเบฐเบเบดเบเบฒเบ DataStax เบเปเปเปเบเปเบเบญเบเบงเปเบฒเบกเบตเบเปเบฒเบเบงเบเบเบฒเบเบเบทเปเบเบเบตเปเบเบทเบเบเปเบฒเปเบเปเปเบเบทเปเบญเบชเปเบฒเบเบเบฒเบเบฐเบฅเบฒเบ HB, เปเบเบดเบเปเบกเปเบเบงเปเบฒเบเบตเปเปเบกเปเบเบชเปเบฒเบเบฑเบเบชเปเบฒเบฅเบฑเบเบเบฐเบฅเบดเบกเบฒเบเบเบฐเบซเบเบฒเบเปเบซเบเป. เบเบฑเปเบเบเบฑเปเบ, เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบปเบเบชเบญเบ, เบเบฐเบฅเบดเบกเบฒเบ = 64 เปเบเปเบเบทเบเปเบฅเบทเบญเบ, เปเบเบดเปเบเบญเบฐเบเบธเบเบฒเบเปเบซเปเปเบเบฑเบเบฎเบฑเบเบชเบฒเปเบเปเปเบเบดเบ 640 GB, i.e. เบเบฒโเบเบฐโเบฅเบฒเบโเบเบฐโเบซเบเบฒเบโเบเบฒเบโ.
เปเบเปเบงเบฅเบฒเบเบญเบเบเบฒเบเบเบปเบเบชเบญเบ, HBase เบกเบต 22 เบเบฑเบเบเบฒเบเบฐเบฅเบฒเบเปเบฅเบฐ 67 เบเบฑเบเบเบฒเบเบเบทเปเบ (เบเบตเปเบเบฐเปเบเบฑเบเบเบฒเบเบเบฒเบเบชเปเบฒเบฅเบฑเบเบชเบฐเบเบฑเบ 1.2.0 เบเปเบฒเบเปเปเปเบกเปเบเบชเปเบฒเบฅเบฑเบ patch เบเบตเปเปเบเปเบเปเบฒเบงเบกเบฒเบเปเบฒเบเปเบเบดเบ).
เปเบเบเบฑเบเบเบธเบเบฑเบเบชเปเบฒเบฅเบฑเบเบฅเบฐเบซเบฑเบ. เปเบเบทเปเบญเบเบเบฒเบเบกเบฑเบเบเปเปเบเบฑเบเปเบเบเบงเปเบฒเบเบฒเบเบเบฑเปเบเบเปเบฒเปเบเบกเบตเบเบฐเปเบซเบเบเบซเบผเบฒเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเปเปเบกเบนเบเบชเบฐเปเบเบฒเบฐ, เบเบฒเบเบเบปเบเบชเบญเบเปเบเปเบเบทเบเบเบฐเบเบดเบเบฑเบเปเบเบเบฒเบเบเบฐเบชเบปเบกเบเบฐเบชเบฒเบเบเปเบฒเบเป. เปเบซเบผเบปเปเบฒเบเบฑเปเบ. เปเบเบเบฒเบเบเบฒเบเบเบปเบเบชเบญเบ, 4 เบเบฒเบเบฐเบฅเบฒเบเปเบเปเบเบทเบเปเบซเบฅเบเบเปเบญเบกเปเบเบฑเบ (เบเบฑเบเบซเบกเบปเบ 4 nodes เปเบเปเบเบทเบเบเปเบฒเปเบเปเบชเปเบฒเบฅเบฑเบเบเบฒเบเปเบเบทเปเบญเบกเบเปเป). เปเบเบเบฒเบเบเบปเบเบชเบญเบเบญเบทเปเบเปเบเบงเบเปเบฎเบปเบฒเปเบเปเปเบฎเบฑเบเบงเบฝเบเบเบฑเบ 8 เบเบฒเบเบฐเบฅเบฒเบเบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบ. เปเบเบเบฒเบเบเปเบฅเบฐเบเบต, เบเบฐเบซเบเบฒเบ batch เปเบกเปเบ 100, เปเบเบเบปเบเบญเบทเปเบ 200 (เบเบฒเบฅเบฒเบกเบดเปเบเบต batch - เปเบเบดเปเบเบฅเบฐเบซเบฑเบเบเปเบฒเบเบฅเบธเปเบกเบเบตเป). เบเบฐเปเบฒเบเบเปเปเบกเบนเบเบชเบณเบฅเบฑเบเบเปเบฒเปเบกเปเบ 10 bytes เบซเบผเบท 100 bytes (dataSize). เปเบเบเปเบฒเบเบงเบเบเบฑเบเบซเบกเบปเบ, 5 เบฅเปเบฒเบเบเบฑเบเบเบถเบเปเบเปเบเบทเบเบเบฝเบเปเบฅเบฐเบญเปเบฒเบเปเบเบปเปเบฒเปเบเปเบเบเบฒเบเบฐเบฅเบฒเบเปเบเปเบฅเบฐเบเบฑเปเบ. เปเบเปเบงเบฅเบฒเบเบฝเบงเบเบฑเบ, 5 เบเบฐเบเบนเปเปเบเปเบเบทเบเบเบฝเบ / เบญเปเบฒเบเปเบชเปเปเบเปเบฅเบฐเบเบฒเบเบฐเบฅเบฒเบ (thread number - 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);
}
เปเบเบเบฑเบเบเบธเบเบฑเบเบชเปเบงเบเบเบตเปเบซเบเปเบฒเบชเบปเบเปเบเบซเบผเบฒเบเบเบตเปเบชเบธเบ - เบเบปเบเปเบเปเบฎเบฑเบ:
เบชเบดเปเบเบเบฝเบงเบเบฑเบเปเบเบฎเบนเบเปเบเบเบเบฒเบ:
เบเบฐเปเบซเบเบเบเบญเบ HB เปเบกเปเบเบซเบเปเบฒเบเบฐเบซเบฅเบฒเบเปเบเบซเบฅเบฒเบเบเบตเปเบกเบตเบเบงเบฒเบกเบชเบปเบเปเบชเบงเปเบฒเบกเบตเบเบฒเบเบเบฐเปเบเบเบเบญเบเบเบฒเบเบเบฑเบเบเบงเบฒเบเปเบเบเบฒเบเบเบดเบเบเบฑเปเบ CS. เบขเปเบฒเบเปเบเบเปเบเบฒเบก, Googling เปเบฅเบฐเบเบฒเบเบเบญเบเบซเบฒเบเบฒเบฅเบฒเบกเบดเปเบเบตเบเบตเปเบเบฑเบเปเบเบเบเบตเปเบชเบธเบ (เปเบเบฑเปเบ concurrent_writes เบซเบผเบท memtable_heap_space_in_mb) เบเปเปเปเบเปเปเบฅเบฑเปเบเบชเบดเปเบเบเปเบฒเบเป. เปเบเปเบงเบฅเบฒเบเบฝเบงเบเบฑเบ, เปเบกเปเบเปเบญเบเปเบกเปเบเบชเบฐเบญเบฒเบเปเบฅเบฐเบเปเปเบชเบฒเบเบฒเบเปเบเป.
เบเปเปโเบกเบนเบโเปเบเปโเบเบทเบโเปเบเบโเบขเบฒเบโเปเบเบปเปเบฒโเบเบฝเบกโเบเบฑเบโเปเบโเบเบปเปเบงโเบเปเปโ, เบชเบฐโเบเบดโเบเบดโเบเบฒเบโเบเปเปโเบกเบนเบโเบเบฑเบโเบซเบกเบปเบโเปเบกเปเบโเบเบฐโเบกเบฒเบโเบเบฝเบงโเบเบฑเบโ.
เบเบตเปเปเบกเปเบเบชเบดเปเบเบเบตเปเบชเบฐเบเบดเบเบดเบเบฒเบเบฐเบฅเบฒเบเปเบเบดเปเบเบเบทเบงเปเบฒเบเบฒเบเบซเบเบถเปเบเปเบ nodesKeyspace: ks
เบเบณเบเบงเบเบญเปเบฒเบ: 9383707
เบญเปเบฒเบ Latency: 0.04287025042448576 ms
เบเบฝเบเบเปเบฒเบเบงเบ: 15462012
เบเบฝเบ Latency: 0.1350068438699957 ms
Flushes เบเบตเปเบเบฑเบเบเปเบฒเบ: 0
เบเบฒเบเบฐเบฅเบฒเบ: t1
เบเบณเบเบงเบ SSTable: 16
เบเบทเปเบเบเบตเปเบเบณเปเบเป (เบชเบปเบ): 148.59 MiB
เบเบทเปเบเบเบตเปเปเบเปเบชเบญเบ (เบเบฑเบเปเบปเบ): 148.59 MiB
เบเบทเปเบเบเบตเปเบเบตเปเปเบเปเปเบเบเบเบฒเบเบเปเบฒเบ (เบเบฑเบเปเบปเบ): 0 bytes
เปเปเบงเบเบเบงเบฒเบกเบเบณเบเบญเบ heap เปเบเป (เบเบฑเบเปเบปเบ): 5.17 MiB
เบญเบฑเบเบเบฒเบชเปเบงเบเบเบฒเบเบเบตเบเบญเบฑเบ SSTable: 0.5720989576459437
เบเปเบฒเบเบงเบเบเบฒเบเปเบเปเบเบชเปเบงเบ (เบเบฒเบเบเบฐเปเบ): 3970323
เบเบณเบเบงเบเบเบฒเบฅเบฒเบ Memtable: 0
เบเบฐเปเบฒเบเบเปเปเบกเบนเบ Memtable: 0 bytes
Memtable off heap memory เบเบตเปเปเบเป: 0 bytes
เบเบณเบเบงเบเบชเบฐเบงเบดเบ Memtable: 5
เบเปเบฒเบเบงเบเบเบฒเบเบญเปเบฒเบเบเปเบญเบเบเบดเปเบ: 2346045
latency เบญเปเบฒเบเปเบเบเปเบญเบเบเบดเปเบ: NaN ms
เบเปเบฒเบเบงเบเบเบฒเบเบเบฝเบเบเปเบญเบเบเบดเปเบ: 3865503
latency เบเบฒเบเบเบฝเบเบเปเบญเบเบเบดเปเบ: NaN ms
เบเบฐเปเบชเปเบเบเบตเปเบเปเบฒเบเบขเบนเป: 0
เปเบเบตเปเบเบฑเบเบเบฒเบเบชเปเบญเบกเปเบเบ: 0.0
Bloom เบเบฒเบเบเบฑเปเบเบเบญเบเบเบปเบเบเบงเบเบเบตเปเบเปเปเบเบทเบเบเปเบญเบ: 25
Bloom filter เบญเบฑเบเบเบฒเบชเปเบงเบเบเบตเปเบเปเปเบเบทเบเบเปเบญเบ: 0.00000
Bloom filter space เปเบเป: 4.57 MiB
Bloom filter off heap memory เปเบเป: 4.57 MiB
เบเบฑเบเบเบฐเบเบตเบชเบฐเบซเบผเบธเบเบเบดเบเบซเบเปเบงเบเบเบงเบฒเบกเบเปเบฒ heap เปเบเป: 590.02 KiB
เบเบฒเบเบเบตเบเบญเบฑเบเปเบกเบเบฒเปเบเบเบฒเบญเบญเบเบเบฒเบเปเปเบงเบเบเบงเบฒเบกเบเบณ heap เปเบเปเปเบฅเปเบง: 19.45 KiB
Compacted partition bytes เบเปเบฒเปเบชเบธเบเบเบตเป: 36
Compacted partition bytes เบชเบนเบเบชเบธเบ: 42
Compacted partition mean bytes: 42
เปเบเบฅเบเบตเปเบกเบตเบเบตเบงเบดเบเบชเบฐเปเบฅเปเบเบเปเปเปเบกเบฑเบ (เบซเปเบฒเบเบฒเบเบตเบชเบธเบเบเปเบฒเบ): NaN
เบเบธเบฅเบฑเบเบเบตเปเบกเบตเบเบตเบงเบดเบเบชเบนเบเบชเบธเบเบเปเปเบเบญเบ (เบซเปเบฒเบเบฒเบเบตเบชเบธเบเบเปเบฒเบ): 0
เบเบธเบกเบเบฑเบเบชเบปเบเบชเบฐเปเบฅเปเบเบเปเปเบเปเบญเบ (เบซเปเบฒเบเบฒเบเบตเบชเบธเบเบเปเบฒเบ): NaN
เบเบธเบกเบเบฑเบเบชเบปเบเบชเบนเบเบชเบธเบเบเปเปเบเบดเปเบ (เบซเปเบฒเบเบฒเบเบตเบชเบธเบเบเปเบฒเบ): 0
เบเบฒเบเบเบฒเบเบเบฑเบเบเบตเปเบซเบผเบธเบเบฅเบปเบ: 0 bytes
เบเบงเบฒเบกเบเบฐเบเบฒเบเบฒเบกเบเบตเปเบเบฐเบซเบผเบธเบเบเปเบญเบเบเบฐเบซเบเบฒเบเบเบญเบ batch (เปเบเบดเบเปเบกเปเบเบงเปเบฒเบเบฒเบเบชเบปเปเบเบกเบฑเบเบชเปเบงเบเบเบธเบเบเบปเบ) เบเปเปเบกเบตเบเบปเบ, เบกเบฑเบเบเบฝเบเปเบเปเบฎเปเบฒเบเปเบฎเบเบเบงเปเบฒเปเบเบปเปเบฒ. เบกเบฑเบเปเบเบฑเบเปเบเปเบเปเบงเปเบฒเปเบเบเบงเบฒเบกเปเบเบฑเบเบเบดเบเบเบตเปเปเบกเปเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบชเบนเบเบชเบธเบเบชเปเบฒเบฅเบฑเบ CS, เปเบเบทเปเบญเบเบเบฒเบเบงเปเบฒเบเบปเบเปเบเปเบฎเบฑเบเบชเปเบฒเบฅเบฑเบ CS เปเบกเปเบเบเปเบฒเบเบเบทเบเบฑเบเบเบฑเบเบเปเปเบกเบนเบเบเบตเปเปเบเปเบฎเบฑเบเบชเปเบฒเบฅเบฑเบ DataStax - เบเบฐเบกเบฒเบเบซเบผเบฒเบเบฎเปเบญเบเบเบฑเบเบเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบเบเปเปเบงเบดเบเบฒเบเบต. เบเบญเบเบเบฒเบเบเบฑเปเบ, เบเปเบฒเบเบงเบเปเบฎเบปเบฒเปเบเบดเปเบเบเบฒเบเบเปเบฒเปเบเปเบเบฑเบเบเบฐเบเบฒเบเบญเบ, เบเบงเบเปเบฎเบปเบฒเบเบฐเปเบซเบฑเบเบงเปเบฒ CS เปเบเป CPU เปเบฅเบฐเปเบเปเบเบซเบผเบฒเบเบเบงเปเบฒเปเบเบปเปเบฒ:
เบเบปเบงเปเบฅเบเบชเบฐเปเบเบเปเบซเปเปเบซเบฑเบเบเบฒเบเบเปเบฒเปเบเปเปเบเบฅเบฐเบซเบงเปเบฒเบเบเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบเบเบปเบเบชเบญเบเบเบฑเบเบซเบกเบปเบเบเบดเบเบเปเปเบเบฑเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเปเปเบกเบนเบเบเบฑเบเบชเบญเบ.
เบเปเบฝเบงเบเบฑเบเบเบปเบเบเบฐเปเบซเบเบเบเบฒเบเบญเปเบฒเบเบเบตเปเบกเบตเบเบฐเบชเบดเบเบเบดเบเบฒเบเบเบญเบ HB. เปเบเบเบตเปเบเบตเปเบเปเบฒเบเบชเบฒเบกเบฒเบเปเบซเบฑเบเปเบเปเบงเปเบฒเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเปเปเบกเบนเบเบเบฑเบเบชเบญเบ, เบเบฒเบเบเปเบฒเปเบเปเปเบเปเบเปเบเบฅเบฐเบซเบงเปเบฒเบเบเบฒเบเบญเปเบฒเบเปเบกเปเบเบเปเปเบฒเบเบตเปเบชเบธเบ (เบเบฒเบเบเบปเบเบชเบญเบเบเบฒเบเบญเปเบฒเบเปเบกเปเบเบชเปเบงเบเบชเบธเบเบเปเบฒเบเบเบญเบเบฎเบญเบเบงเบฝเบเบเบฒเบเบเบปเบเบชเบญเบเบชเปเบฒเบฅเบฑเบเปเบเปเบฅเบฐเบเบฒเบเบเปเปเบกเบนเบ, เบเบปเบงเบขเปเบฒเบเบชเปเบฒเบฅเบฑเบ CS เบเบตเปเปเบกเปเบเบเบฒเบ 15: 20 เบซเบฒ 15: 40). เปเบเบเปเบฅเบฐเบเบตเบเบญเบ HB, เปเบซเบเบเบปเบเปเบกเปเบเบเบฐเปเบเปเบ - เบเปเปเบกเบนเบเบชเปเบงเบเปเบซเบเปเปเบกเปเบเบซเปเบญเบเบขเบนเปเปเบเบซเบเปเบงเบเบเบงเบฒเบกเบเปเบฒ, เปเบ memstore, เปเบฅเบฐเบเบฒเบเบเปเบญเบเบเบทเบเปเบเบฑเบเปเบงเปเปเบ blockcache. เบชเปเบฒเบฅเบฑเบ CS, เบกเบฑเบเบเปเปเบเบฑเบเปเบเบเบซเบผเบฒเบเบงเปเบฒเบกเบฑเบเปเบฎเบฑเบเบงเบฝเบเปเบเบงเปเบ, เปเบเปเบเบฒเบเบฅเบตเปเบเปเบเบตเบเปเบเปเบเปเบกเปเบเบเบฑเบเบเปเปเบชเบฒเบกเบฒเบเปเบซเบฑเบเปเบเป, เปเบเปเปเบเบเปเบฅเบฐเบเบต, เปเบเปเบเบฐเบเบฒเบเบฒเบกเปเบเบตเบเปเบเป cache row_cache_size_in_mb = 2048 เปเบฅเบฐเบเบฑเปเบ cache = {'keys': 'ALL', 'rows_per_partition': ' 2000000'}, เปเบเปเบเบฑเปเบเปเบฎเบฑเบเปเบซเปเบกเบฑเบเบฎเปเบฒเบเปเบฎเบเบเบถเปเบเปเบฅเบฑเบเบเปเบญเบ.
เบกเบฑเบเบเบฑเบเบกเบตเบกเบนเบเบเปเบฒเบเบฒเบเบเปเบฒเบงเปเบเบดเบเบญเบตเบเปเบเบทเปเบญเบซเบเบถเปเบเบเบธเบเบชเปเบฒเบเบฑเบเบเปเบฝเบงเบเบฑเบเบเปเบฒเบเบงเบเบเบฒเบเบเบทเปเบเปเบ HB. เปเบเบเปเบฅเบฐเบเบตเบเบญเบเบเบงเบเปเบฎเบปเบฒ, เบกเบนเบเบเปเบฒเปเบเปเบเบทเบเบเปเบฒเบเบปเบเปเบเบฑเบ 64. เบเปเบฒเบเปเบฒเบเบซเบผเบธเบเบฅเบปเบเปเบฅเบฐเปเบฎเบฑเบเปเบซเปเบกเบฑเบเปเบเบปเปเบฒเบเบฑเบ, เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบปเบเบเบปเบงเบขเปเบฒเบ, 4, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ, เปเบกเบทเปเบญเบญเปเบฒเบ, เบเบงเบฒเบกเปเบงเบซเบผเบธเบเบฅเบปเบ 2 เปเบเบทเปเบญ. เปเบซเบเบเบปเบเปเบกเปเบเบงเปเบฒ memstore เบเบฐเบเบทเปเบกเบเปเปเบกเบนเบเปเบงเบเบถเปเบเปเบฅเบฐเปเบเบฅเปเบเบฐเบเบทเบ flushed เปเบฅเบทเปเบญเบเปเปเบฅเบฐเปเบกเบทเปเบญเบญเปเบฒเบ, เปเบเบฅเปเบซเบผเบฒเบเบเบฐเบเปเบญเบเบเบทเบเบเบธเบเปเบเปเบ, เปเบเบดเปเบเปเบเบฑเบเบเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบเบเบตเปเบชเบฑเบเบชเบปเบเบซเบผเบฒเบเบชเปเบฒเบฅเบฑเบ HB. เปเบเบชเบฐเบเบฒเบเบเบปเบงเบเบดเบ, เบเบตเปเบชเบฒเบกเบฒเบเบเบฐเบเบดเบเบฑเบเปเบเปเปเบเบเบเบฒเบเบเบดเบเปเบเบเบเปเบฒเบเบเบธเบเบเบฐเบชเบฒเบ presplitting เปเบฅเบฐเบซเบเบฒเปเบซเบเปเบ; เปเบเบเบชเบฐเปเบเบฒเบฐ, เบเบงเบเปเบฎเบปเบฒเบเปเบฒเปเบเปเบเบปเบเบเบฐเปเบซเบเบเบเบตเปเบเบฝเบเบเปเบงเบเบเบปเบเปเบญเบเบเบตเปเปเบเบฑเบเบเปเบฒเบเบตเปเปเบซเบเบทเปเบญเปเบฅเบฐเบเบตเบเบญเบฑเบ HFiles เบขเปเบฒเบเบเปเปเปเบเบทเปเบญเบเปเบเบเบทเปเบเบซเบฅเบฑเบ. เบกเบฑเบเปเบเบฑเบเปเบเปเบเปเบเปเบญเบเบเปเบฒเบเบงเปเบฒเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบปเบเบชเบญเบ DataStax เบเบงเบเปเบเบปเบฒเบเบฑเบเบชเบฑเบเบเบฝเบเปเบเป 1 เบเบฒเบเบเบทเปเบเบเปเปเบเบฒเบเบฐเบฅเบฒเบ (เปเบเบดเปเบเบเปเปเบเบทเบเบเปเบญเบ) เปเบฅเบฐเบเบตเปเบญเบฒเบเบเบฐเบเบตเปเปเบเบเบเบฒเบเบขเปเบฒเบเบงเปเบฒเปเบเบฑเบเบซเบเบฑเบ HB เบเบถเปเบเบเปเปเบฒเบเบงเปเบฒเปเบเบเบฒเบเบเบปเบเบชเบญเบเบเบฒเบเบญเปเบฒเบเบเบญเบเบเบงเบเปเบเบปเบฒ.
เบเบปเบเบชเบฐเบซเบผเบธเบเปเบเบทเปเบญเบเบเบปเปเบเบเปเปเปเบเบเบตเปเปเบกเปเบเบกเบฒเบเบฒเบเบเบตเป. เปเบเบเบชเบปเบกเบกเบธเบเบงเปเบฒเบเปเปเบกเบตเบเบงเบฒเบกเบเบดเบเบเบฒเบเบญเบฑเบเปเบซเบเปเบซเบผเบงเบเปเบเปเปเบเบตเบเบเบถเปเบเปเบเบฅเบฐเบซเบงเปเบฒเบเบเบฒเบเบเบปเบเบชเบญเบ, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ Cassandra เปเบเบดเปเบเบเบทเบงเปเบฒเปเบเบฑเบเบฎเบนเบเปเบเปเบเบตเปเบกเบตเบเบตเบเบเบญเบเบเบดเบเปเบเบปเบฒ. เบซเบผเบฒเบเบเบตเปเบเบฑเบเปเบเบ, เปเบเบเบฐเบเบฐเบเบตเปเบเบฒเบเบเบธเปเบเบเปเบฝเบเบเบฒเบซเบเบถเปเบ, เบเบฑเปเบเปเบเบฎเบนเบเปเบเบเบญเบเบเบปเปเบเบเบญเบเบเบปเบเบเบงเบฒเบก, เบเบฒเบเบชเบฐเปเบเบเปเบซเปเปเบซเบฑเบเบเบปเบเปเบเปเบฎเบฑเบเบเบตเปเบเบต, เปเบเปเปเบเบเบฒเบเบเปเปเบชเบนเปเบเบฒเบเปเบเปเปเบเบทเปเบญเบเปเบเบเบฝเบงเบเบฑเบ, เบเบฒเบเบชเบนเบเปเบชเบเบเบฑเบเบเบต. เปเบเปเบงเบฅเบฒเบเบฝเบงเบเบฑเบ, เบเบดเบเบฒเบฅเบฐเบเบฒเบเบฒเบเบเปเบฒเปเบเป CPU เบเปเปเบฒเปเบเบฎเบฒเบเปเบงเบเบญเบเบเบงเบเปเบฎเบปเบฒ, เบเบงเบเปเบฎเบปเบฒเปเบเปเบฎเบฝเบเบฎเบนเปเบเบตเปเบเบฐเบเบนเบเบชเบญเบ RegionServer HBs เบเปเปเปเบเบปเปเบฒเบเบฒเบเปเบฅเบฐเบเบฑเปเบเบเบฑเปเบเบเบถเปเบเปเบฎเบฑเบเปเบซเปเบเบฒเบเบเบฐเบเบดเบเบฑเบเปเบเปเบชเบญเบเปเบเบปเปเบฒ. เปเบซเบผเบปเปเบฒเบเบฑเปเบ. โเปเบเบโเบเบทโเปเบญเบปเบฒโเบเบฒเบโเบเบณโเปเบเปโเบเบฑเบโเบเบฐโเบเบฒโเบเบญเบ, เบชเบฐเบเบฒเบโเบเบฒเบโเบเบญเบ CS โเปเบกเปเบโเปเปเบฒโเปเบชเบโเปเบโเบเบงเปเบฒ.
เปเบเปเบเบญเบ, เบเบฒเบเบเบปเบเบชเบญเบเปเบซเบผเบปเปเบฒเบเบตเปเปเบกเปเบเบเปเบญเบเบเปเบฒเบเบชเบฑเบเปเบเบฒเบฐเปเบฅเบฐเบเปเบฒเบเบงเบเบเปเปเบกเบนเบเบเบตเปเบเบทเบเบเปเบฒเปเบเปเบขเบนเปเบเบตเปเบเบตเปเปเบกเปเบเบเปเบญเบเบเปเบฒเบเปเบฅเบฑเบเบเปเบญเบ. เบกเบฑเบเปเบเบฑเบเปเบเปเบเปเบงเปเบฒเบเปเบฒเบเบงเบเปเบฎเบปเบฒเบเปเบฝเบเปเบเบฑเบ terabytes, เบชเบฐเบเบฒเบเบฐเบเบฒเบเบเบฐเปเบเบเบเปเบฒเบเบเบฑเบ, เปเบเปเปเบเบเบฐเบเบฐเบเบตเปเบชเปเบฒเบฅเบฑเบ HB เบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเปเบซเบฅเบ terabytes, เบชเปเบฒเบฅเบฑเบ CS เบเบตเปเปเบเปเบเบฒเบเปเบเบฑเบเบเบฑเบเบซเบฒ. เบกเบฑเบเบกเบฑเบเบเบฐเบเบดเปเบก OperationTimedOutException เปเบเบดเบเปเบกเปเบเบงเปเบฒเบกเบตเบเบฐเบฅเบดเบกเบฒเบเปเบซเบผเบปเปเบฒเบเบตเป, เปเบเบดเบเปเบกเปเบเบงเปเบฒเบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบเบฅเปเบเปเบฒเบเบฒเบเบเบญเบเปเบเปเปเบเปเปเบเบตเปเบกเบเบถเปเบเบซเบผเบฒเบเบเบฑเปเบเปเบกเบทเปเบญเบเบฝเบเปเบชเปเบเบฑเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบ.
เบเปเบฒเบเบฐเปเบเบปเปเบฒเบซเบงเบฑเบเบงเปเบฒเปเบเบเบเปเบฒเบเบเบงเบฒเบกเบเบฐเบเบฒเบเบฒเบกเบฎเปเบงเบกเบเบฑเบเบเบงเบเปเบฎเบปเบฒเบเบฐเบเบญเบเบซเบฒเบเปเปเบเบปเบเบเปเบญเบเบเบญเบ CS เปเบฅเบฐเบเปเบฒเบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเปเบฅเบฑเปเบเบกเบฑเบเปเบเป, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ, เปเบเบเบญเบเบเปเบฒเบเบเบญเบเบเบฒเบเบเบญเบ, เบเปเบฒเบเบฐเปเบเบปเปเบฒเบเบฐเปเบเบตเปเบกเบเปเปเบกเบนเบเบเปเบฝเบงเบเบฑเบเบเบปเบเปเบเปเบฎเบฑเบเบชเบธเบเบเปเบฒเบเบขเปเบฒเบเปเบเปเบเบญเบ.
UPD: เบเปเบเบญเบเปเบเบเบฑเบเบเปเบฒเปเบเบฐเบเปเบฒเบเบญเบ comrades, เบเปเบฒเบเบฐเปเบเบปเปเบฒเปเบเปเบเบฑเบเบเบฒเบเปเบฅเบฑเปเบเบเบฒเบเบญเปเบฒเบ. เปเบกเปเบ:
159 ops (644 เบเบฒเบเบฐเบฅเบฒเบ, 4 เบชเบฒเบ, batch 5).
เปเบเบตเปเบก:
.withLoadBalancingPolicy(New TokenAwarePolicy(DCAwareRoundRobinPolicy.builder().build()))
เปเบฅเบฐเบเปเบฒเบเบฐเปเบเบปเปเบฒเปเบเปเบซเบผเบดเปเบเบเบฐเบกเบฒเบเบเบฑเบเบเปเบฒเบเบงเบเบเบญเบเบเบฐเบเบนเป. เบเบปเบเปเบเปเบฎเบฑเบเปเบกเปเบเบเบฑเปเบเบเปเปเปเบเบเบตเป:
4 เบเบฒเบเบฐเบฅเบฒเบ, 100 เบเบฐเบเบนเป, batch = 1 (เบชเบดเปเบเปเบเบเบชเบดเปเบ): 301 ops
4 เบเบฒเบเบฐเบฅเบฒเบ, 100 เบเบฐเบเบนเป, batch = 10: 447 ops
4 เบเบฒเบเบฐเบฅเบฒเบ, 100 เบเบฐเบเบนเป, batch = 100: 625 ops
เบเปเปเบกเบฒเบเปเบฒเบเบฐเปเบเบปเปเบฒเบเบฐเบเปเบฒเปเบเปเบเปเบฒเปเบเบฐเบเปเบฒเบเบฒเบเบเบฑเบเปเบเปเบเบญเบทเปเบเป, เบเปเบฒเปเบเบตเบเบเบฒเบเบฎเบญเบเบงเบฝเบเบเบฒเบเบเบปเบเบชเบญเบเบขเปเบฒเบเปเบเบฑเบกเบเบตเปเปเบฅเบฐเปเบเบตเปเบกเบเบปเบเปเบเปเบฎเบฑเบเปเบเบเบญเบเบเปเบฒเบเบเบญเบเบเบฒเบเบเบญเบ.
เปเบซเบผเปเบเบเปเปเบกเบนเบ: www.habr.com