áááºážááẠáá¬ááá áºáá¯áááºááá¯ááºáá«á á€áá¯ááºáá¯á¶ááẠá€áá±áá¬áá±á·á áºáá»á¬ážá á¡ááŸá áºáá¬áááᯠá¡áááá»áá¯á¶ážáááºáááºáá±áá¯á¶áááŒá®áž á¡áá¯á¶ážááœáẠáááºážááẠá¡áááºááŒá±á¬áá·áºááŒá áºáááºááᯠááŸááºážááŸááºážáááºážáááºážááááá±áááá·áºáááº-
DB-Engines Ranking á¡á áá°ááŒáá¯ááºá¡áá»á¬ážáá¯á¶áž NoSQL columnar databases ááŸá
áºáá¯ááŸá¬ Cassandra (áá±á¬áẠCS) ááŸáá·áº HBase (HB) ááŒá
áºáááºá
áá¶ááŒáá¹áá¬áá¡ááá¯á¡áá Sberbank ááŸá áá»áœááºá¯ááºááá¯á·ááá±áá¬áááºááŒááºážá
á®áá¶ááá·áºááœá²ááŸá¯á¡ááœá²á·ááẠááŸáááŸáá·áºááŒá®ážááŒá
áºáááºá
ááá¯á·áá¬ááœááºá á
á
áºáá±ážááŸá¯ááááºáá»á¬ážáá®ááá¯á· áááœá±á·áá®á áááºáááºážáá»ááºááœá²á·á
ááºážáá¯á¶áá»á¬ážááá¯ááºáᬠáááá¬áááºááŸá¬ážáá±á¬ ááŸá¯áá±á¬áá·áºáá»á¬ážááᯠáá±á¬áºááŒááẠááá¯á¡ááºáá«áááºá á¡ááŸááºááŸá¬ CS ááẠáá±áá¬áá¯á¶ážááŸá¯á¶ážááŸá¯ááᯠááœáá·áºááŒá¯ááá·áº áá¯ááºáá
áºáá¯ááœáẠá¡áá¯á¶ážááŒá¯ááá¯ááºáááºá á¡á²áá«ááœá±á áá±á¬á·áá
áºáá¯á á¡áá»ááºá¡áááºá¡ááœáẠáá¬áá¬áá
áºáᯠ(node) áá
áºáá¯áááºážááᬠáá¬áááºááŸáááŒá®áž á¡ááŒá±á¬ááºážáá
áºáá¯áá¯ááŒá±á¬áá·áº áá»ááºááœááºáá«áá á€áá®ážááááºááá¯áž áá¯á¶ážááŸá¯á¶ážááœá¬ážáááºááŒá
áºáááºá á¡áá¯ááºáá»á¬ážá
áœá¬á¡ááœáẠáá«á á¡áá±ážáááŒá®ážáá±ááá·áº áááºáá¯ááºáááºážááá¹áá¡ááœáẠáá«á á
ááºážáááºážááẠááŒáœááºážáá»ááºááŒá
áºáá«áááºá áá»áœááºá¯ááºááá¯á·áá¡ááŒá±á¡áá±ááœááºá áá¯á¶ááŒááºá
áááºáá»ááá±á¬ááá¯ááŸá±á¬ááºááŸá¯á¡ááœáẠáá±áá¬áááá¹áá°áá»á¬ážá
áœá¬ááŸáááẠá¡áá±ážááŒá®ážáá«áááºá
ááá¯á·ááŒá±á¬áá·áºá triple replication mode ááœáẠCS áááºáááºááŸá¯áá¯ááºááá¯áᬠááá·áºááœááºážá ááºážá á¬ážáá²á·áááºá ááá¯ááá¯áááºááŸá¬á casespace ááááºáá®ážááŸá¯ááá¯á¡á±á¬ááºáá«ááá·áºáááºáá»ááºáá»á¬ážááŒáá·áºáá¯ááºáá±á¬ááºáá²á·áááº
CREATE KEYSPACE ks WITH REPLICATION = {'class' : 'NetworkTopologyStrategy', 'datacenter1' : 3};
ááá¯á·áá±á¬áẠááá¯á¡ááºáá±á¬ áá®ááœááºááŸá¯á¡ááá·áºááᯠáá±áá»á¬á
á±ááẠáááºážáááºážááŸá
áºáá¯ááŸááááºá á¡ááœá±ááœá±á
ááºážáá»ááºáž-
NW + NR > RF
ááá¯ááá¯áááºááŸá¬ (NW) ááá¯áá±ážáá¬ážááá·áºá¡áá« node áá»á¬ážááŸá¡áááºááŒá¯áá»ááºá¡áá±á¡ááœááºááŸáá·áº (NR) ááá¯áááºááŸá¯ááá·áºá¡áá« node áá»á¬ážááŸá¡áááºááŒá¯áá»ááºá¡áá±á¡ááœááºááẠreplication factor áááºááá¯ááá¯ááááºááŒá
áºáááºá áá»áœááºá¯ááºááá¯á·áááá
á¹á
ááœááºá RF = 3á ááá¯ááá¯áááºááŸá¬ á¡á±á¬ááºáá«ááœá±ážáá»ááºá
áá¬áá»á¬ážááẠááá·áºáá»á±á¬áºáááº-
á+á > á
á+á > á
áá±áá¬áá»á¬ážááᯠáááºááá¯ááºááá»áŸ á áááºáá»áá¯á¶ááŒááºá áœá¬ ááááºážáááºážááẠáá»áœááºá¯ááºááá¯á·á¡ááœáẠá¡ááŒá±áá¶á¡áá±ážááŒá®ážáá±á¬ááŒá±á¬áá·áº 3+1 á¡á á®á¡á ááºááᯠááœá±ážáá»ááºáá²á·áááºá ááá¯á·á¡ááŒááºá HB ááẠá¡áá¬ážáá°áááá¬ááá áºáá¯ááŒá áºááá·áº i.e. á¡á²áá®ááᯠááŸáá¯ááºážááŸááºáá¬á ááá¯áá»áŸááá«áááá·áºáááºá
DataStax ááẠáááºážááá¯á·ááá±á·áá¬ááŸá¯ááœáẠááá·áºáá»ááºáááºááŒá¯áá¯ááºáá²á·ááŒá±á¬ááºáž ááŸááºáá¬ážááá·áºáááºá áááºážááá¯á·ááẠCS ááŸáá·áº HB ááŸá áºáá¯áá¯á¶ážá¡ááœáẠRF = 1 ááᯠáááºááŸááºáá²á·ááẠ(áá±á¬ááºááá¯ááºážááœáẠHDFS áááºáááºáá»á¬ážááᯠááŒá±á¬ááºážáá²ááŒááºážááŒáá·áº) áááááŒá¯ááá·áºáááºá á€ááá á¹á ááœáẠCS á áœááºážáá±á¬ááºáááºá¡áá±á«áº áááºáá±á¬ááºááŸá¯ááẠááŒá®ážáá¬ážáá±á¬ááŒá±á¬áá·áº áááºážááẠá¡ááŸááºáááẠá¡áá±ážááŒá®ážáá±á¬ ááá¹ááá áºáá¯ááŒá áºáááºá á¥ááá¬á¡á¬ážááŒáá·áºá á¡á±á¬ááºáá±á¬áºááŒáá«áá¯á¶ááẠCS ááá¯á· áá±áá¬áááºááẠááá¯á¡ááºááá·áºá¡áá»ááẠááá¯ážáá¬ááŸá¯ááᯠááŒááááº-
á€áá±áá¬ááœáẠáá»áœááºá¯ááºááá¯á·ááẠá¡á±á¬ááºáá«ááá¯á·ááᯠááœá±á·ááááº- ááŒáá¯ááºááá¯ááºáá±á¬ á¡ááœá²áá»á¬áž ááá¯áá»á¬ážáá± áá±áá¬áá±ážáá±á á¡áá»áááºááá¯ááŒá¬áá±ááŒá
áºáááºá á€áááºááŸá¬ ááá¬áááŒá
áºáááºá ááá¯á·áá±á¬áº RF=3 á¡ááœáẠá
áœááºážáá±á¬ááºááẠáá»áááºážááŸá¯ááẠáááááá¬áᬠááŒáá·áºáá¬ážáá±ááẠá¡áá±ážááŒá®ážáá«áááºá áá
áºáááºážááá¯ááá±á¬áºá áá
áºáá¯áá»áŸáẠááá¬áž 4 áá¯á
á®ááœáẠá
á¬ááœá² 5 áᯠ(á
á¯á
á¯áá±á«ááºáž 20) ááᯠáá±ážááá¯ááºáá»áŸáẠRF=3 ááẠ2 ááŒáááºááá·áº (RF=150 á¡ááœáẠá
áá¹ááá·áº 3 ááŸáá·áº 75 á¡ááœáẠRF=1) ááŒá
áºáááºá áá«áá±ááá·áº áá±áá¬ááᯠááá¬áž 8 áá¯á
á®ááŸá¬ á¡ááá¯ááºáž 5 ááœá² (á
á¯á
á¯áá±á«ááºáž 40) áá²á· data ááœá±ááᯠload ááá¯ážáá±ážáááºááá¯ááẠRF=3 áá¯á¶ážááŸá¯á¶ážááŸá¯áᬠ2,7 á ááŒá
áºáá±ááŒá® (375 á
áá¹ááá·áºáá²á· 138) ááŒá
áºáá«áááºá
CS á¡ááœáẠDataStax ááŸáá¯ááºáá±á¬ááºáá±á¬ á¡á±á¬ááºááŒááºáá±á¬ load test ááá»áŸáá¯á·ááŸááºáá»ááºáá áºá áááºáá áºááá¯ááºážááŒá áºááá¯ááºáááºá á¡ááŒá±á¬ááºážááŸá¬ áá»áœááºá¯ááºááá¯á·ááááºáááºáá»ááºááœáẠHB á¡ááœáẠreplication factor ááᯠ2 á០3 ááá¯á·ááŒá±á¬ááºážáá²ááŒááºážááœáẠáááºááá·áºá¡áá»áá¯ážáááºáá±á¬ááºááŸá¯ááŸáááŸááá²á·áá«á á¡á²áá«ááœá±á áá áºááºáá»á¬ážááẠáá»áœááºá¯ááºááá¯á·áááœá²á·á ááºážáá¯á¶á¡ááœáẠHB ááááºááá¯á·ááŒááºážááá¯ááºáá«á ááá¯á·áá±á¬áºá áá»áœááºá¯ááºááá¯á·á HB áá¬ážááŸááºážááẠá¡áááºážááẠáá¬áá±ážááŒá®áž ááŒá¯ááŒááºááŒá±á¬ááºážáá²áá¬ážáááºá áááºáááºážáá»ááºááẠáá¯á¶ážáááŒá¬ážáá¬ážáá±á¬ááŒá±á¬áá·áº á€áá±áá¬ááœáẠá¡ááŒá¬ážá¡áááºá¡áá²áá»á¬ážá áœá¬ááŸááá«áááºá CS ááᯠááŸááºáááºá áœá¬ ááŒááºáááºáááºážááᯠáá»áœááºá¯áẠááááááᯠáááºážááŸáá·áº áá¯ááºáá±á¬ááºááẠááá¯ááá¯áááá±á¬ááºáá±á¬ áááºážáááºážá¡áá»áá¯á·áááºáž ááŸááá±á¬ááºážááŸáááá¯ááºáááºááᯠáááááŒá¯ááá·áºááŒá®áž ááŸááºáá»ááºáá»á¬ážááœáẠááááŸáááá¯ááºáááºáᯠáá»áŸá±á¬áºááá·áºáá«áááºá áá«áá±ááá·áº á¡áááºá¡áá¬ááœá±ááᯠá¡áááºáá¯ááºáá«á
á ááºážáááºááŸá¯á¡á¬ážáá¯á¶ážááᯠá¡á±á¬ááºáá«ááœá²á·á ááºážáá¯á¶áá áºáá¯á á®ááŒáá·áº áá¬áᬠ4 áá¯áá«áááºáá±á¬ áá¬á·ááºáá²á¡á á¯á¡áá±ážááœáẠáá¯ááºáá±á¬ááºáá²á·áááº-
CPU- Xeon E5-2680 v4 @ 2.40GHz 64 ááá¯ááºážáá»á¬ážá
áá
áºáá»á¬áž- SATA HDD 12 áá¯
java áá¬ážááŸááºáž- 1.8.0_111
CS áá¬ážááŸááºáž- 3.11.5
cassandra.yml ááá·áºáááºáá»ááºáá»á¬ážnum_tokens: 256
hinted_handoff_enabled- ááŸááºáááºá
á¡ááááºá¡ááŒáœááº_handoff_throttle_in_kb- 1024
max_hints_delivery_threads- á
hints_directory- /data10/cassandra/hints
á¡ááááºá¡ááŒáœááº_flush_period_in_ms- 10000
max_hints_file_size_in_mb: 128
batchlog_replay_throttle_in_kb- 1024
á
á
áºááŸááºááŒá±á¬ááºážá¡áá±á¬ááºá¡áá¬áž- AllowAllAuthenticator
authorizer- AllowAllAuthorizer
role_manager- CassandraRoleManager
roles_validity_in_ms- 2000
permissions_validity_in_ms- 2000
á¡áá±á¬ááºá¡áá¬ážáá»á¬áž_validity_in_ms- 2000
partitioner- org.apache.cassandra.dht.Murmur3Partitioner
data_file_directories-
- /data1/cassandra/data # dataN directory áá
áºáá¯á
á®ááẠáá®ážááŒá¬áž disk áá
áºáá¯ááŒá
áºáááºá
- /data2/cassandra/data
- /data3/cassandra/data
- /data4/cassandra/data
- /data5/cassandra/data
- /data6/cassandra/data
- /data7/cassandra/data
- /data8/cassandra/data
commitlog_directory- /data9/cassandra/commitlog
cdc_enabled: ááŸá¬ážáááºá
disk_failure_policy- áááºáá«á
commit_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- á¡áá»áááºá¡ááá¯ááºážá¡ááŒá¬ážá¡ááá¯ááº
commitlog_sync_period_in_ms- 10000
commitlog_segment_size_in_mb: áá
áá»áá¯ážá
á±á·áá±ážáá°-
- class_name: org.apache.cassandra.locator.SimpleSeedProvider
parameters ááœá±ááá¯:
- áá»áá¯ážá
á±á·- "*,*"
concurrent_reads: 256 # ááŒáá¯ážá
á¬ážáá²á·ááẠ64 - áá°ážááŒá¬ážááŸá¯áááŸááááºááᯠáááááŒá¯áááááºá
concurrent_writes: 256 # ááŒáá¯ážá
á¬ážáá²á·ááẠ64 - áá°ážááŒá¬ážááŸá¯áááŸááááºááᯠáááááŒá¯áááááºá
concurrent_counter_writes: 256 # ááŒáá¯ážá
á¬ážáá²á·ááẠ64 - áá°ážááŒá¬ážááŸá¯áááŸááááºááᯠáááááŒá¯áááááºá
concurrent_materialized_view_writes: áá
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_ááááºá
á¬- *
rpc_port: 9160
rpc_keepalive: ááŸááºáá«áááºá
rpc_server_type- á
áá·áºááºáá¯ááºááŒááºážá
thrift_framed_transport_size_in_mb- áá
incremental_backups- ááŸá¬ážáááºá
snapshot_before_compaction- ááŸá¬ážáááºá
auto_snapshot- ááŸááºáááºá
column_index_size_in_kb: áá
column_index_cache_size_in_kb- á
concurrent_compactors- á
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_containion_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-
ááœáá·áºáá¬ážáááº- ááŸá¬ážáááºá
internode_compression- dc
inter_dc_tcp_nodelay- false
tracetype_query_ttl: 86400
tracetype_repair_ttl: 604800
enable_user_defined_functions- ááŸá¬ážáááºá
enable_scripted_user_defined_functions- false
windows_timer_interval- á
transparent_data_encryption_options-
ááœáá·áºáá¬ážáááº- ááŸá¬ážáááºá
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- áá
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-+CMSSIinitiatingOccupancyOnly ááá¯á¡áá¯á¶ážááŒá¯áá«á
-XX:CMSWaitDuration=10000
-XX:+CMSParallelInitialMarkEnabled
-XX:+CMSEdenChunksRecord á¡ááŒá²áááºáž
-XX:+CMSClassUnloadingEnabled
jvm.options áááºááá¯áá®ááᯠ16Gb ááœá²áá±áá»áá¬ážááẠ(áá»áœááºá¯ááºááá¯á·ááẠ32 Gb ááá¯áááºáž á ááºážáá¯á¶ážááŒáá·áºáááºá áá°ážááŒá¬ážááŸá¯áááŸááááºááᯠáááááŒá¯áááá«áááº)á
ááá¬ážáá»á¬ážááᯠcommand ááŒáá·áºáááºáá®ážáá¬ážáááº-
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 ááœáẠááá¯ááºážáá±áááŒá®áž á¡áá±á¡ááœáẠ1000 áá»á±á¬áºááŸááá±á¬á¡áá« RegionServer ááœáẠGC ááá¯á· áŠážáááºááœá¬ážáá±á¬ MetricsRegion ááᯠáááºáá¯ááºáá¬ážáááº)
áá¯á¶áá±ááá¯ááºáá±á¬ HBase ááá·áºáááºáá»ááºáá»á¬ážzookeeper.session.timeout: 120000
hbase.rpc.timeout- 2 áááá
áº(s)
hbase.client.scanner.timeout.period- 2 áááá
áº(áá»á¬áž)
hbase.master.handler.count: áá
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: á
hbase.hstore.compaction áááºááŸááºáá»ááº- á
hbase.hstore.blockingStoreFiles: 200
hbase.hregion.majorcompaction- 1 áááº(áá»á¬áž)
hbase-site.xml á¡ááœáẠHBase Service Advanced Configuration Snippet (Safety Valve)
hbase.regionserver.wal.codecorg.apache.hadoop.hbase.regionserver.wal.á¡ááœáŸááºážWALEditCodec
hbase.master.namespace.init.timeout 3600000
hbase.regionserver.optionalcacheflushinterval18000000
hbase.regionserver.thread.compaction.large12
hbase.regionserver.wal.enablecompressiontrue
hbase.hstore.compaction.max.size1073741824
hbase.server.compactchecker.interval.multiplier200
HBase RegionServer á¡ááœáẠJava Configuration ááœá±ážáá»ááºá
áá¬áá»á¬áž
-XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSIinitiatingOccupancyFraction=70 -XX:+CMSParallelRemarkEnabled -XX:ReservedCodeCacheSize=256m
hbase.snapshot.master.timeoutMillis- á áááá
áº(áá»á¬áž)
hbase.snapshot.region.timeout- 2 áááá
áº(áá»á¬áž)
hbase.snapshot.master.timeout.millis- á áááá
áº(áá»á¬áž)
HBase REST áá¬áá¬á á¡áá»á¬ážáá¯á¶áž ááŸááºáááºážá¡ááœááºá¡á
á¬áž- 100 MiB
HBase REST áá¬áá¬ááœáẠá¡áá»á¬ážáá¯á¶áž ááŸááºáááºážááá¯áẠá¡áááºááááºážáááºážááŸá¯áá»á¬áž- á
HBase Thrift áá¬áᬠMax ááŸááºáááºážá¡ááœááºá¡á
á¬áž- 100 MiB
HBase Thrift áá¬áᬠá¡ááŒáá·áºáá¯á¶áž ááŸááºáááºážááá¯áẠá¡áááºááááºážááŒááºáž- á
Master Max ááŸááºáááºážá¡ááœááºá¡á
á¬áž- 100 MiB
Master Maximum Log File Backups- 5
RegionServer Max ááŸááºáááºážá¡ááœááºá¡á
á¬áž- 100 MiB
RegionServer á¡áá»á¬ážáá¯á¶ážááŸááºáááºážááá¯áẠá¡áááºááááºážááŒááºáž- á
HBase Active Master Detection Window- 4 áááá
áº(áá»á¬áž)
dfs.client.hedged.read.threadpool.size- áá
dfs.client.hedged.read.threshold.millis- 10 áá®áá®á
áá¹ááá·áº(áá»á¬áž)
hbase.rest.threads.min: á
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: á
hbase.ipc.server.read.threadpool.size: 20
ááá¯ááºážáá±áááŒá®áž ááœáŸá±á· ááŒá±á¬ááºáž áááºážááŒá±á¬ááºážáá»á¬áž- á
Client Java Heap Size: 1 GiB
HBase REST áá¬áᬠáá°áááºážá¡á¯ááºá
á¯- 3 GiB
HBase Thrift Server áá°áááºážá¡á¯ááºá
á¯- 3 GiB
Java Heap Size: Bytes in HBase Master : 16 GiB
Bytes in HBase RegionServer á Java Heap á¡ááœááºá¡á
á¬áž- 32 GiB
+ZooKeeper
maxClientCnxns: 601
á¡ááŒáá·áºáá¯á¶ážSession Timeout: 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 á¡áá ááááºážáááºážááá¯ááºáááºááŒá áºáááºá á¡áááºá¡áááºá¡ááœááºá¡á á¬ážá á¬ážááœá²á
á ááºážáááºáá»áááºááœáẠHBase ááœáẠá á¬ážááœá²ááá¯ááºážáá±á«ááºáž 22 ááŸáá·áº áá±ááá±á«ááºáž 67 ááŸááá«ááẠ(á¡áááºáá±á¬áºááŒáá« patch á¡ááœááºááá¯ááºáá«á áá¬ážááŸááºáž 1.2.0 á¡ááœáẠáá±á á±áááá·áºáááº)á
á¡áá¯áá¯ááºá¡ááœááºá áá®ážááŒá¬ážáá±áá¬áá±á·á áºáá áºáá¯á¡ááœáẠáááºááá·áºááœá²á·á ááºážááŸá¯áá¯á¶á á¶áá»á¬ážááẠááá¯ááá¯á¡áá»áá¯ážááŸáááŒá±á¬ááºáž ááŸááºážááŸááºážáááºážáááºážáááááá±ážáá±á¬ááŒá±á¬áá·áº á ááºážáááºááŸá¯áá»á¬ážááᯠáá±á«ááºážá ááºááŸá¯á¡áá»áá¯ážáá»áá¯ážááŒáá·áº ááŒá¯áá¯ááºáá²á·áááºá á¡á²áá«ááœá±á á¡áá»áá¯á·áá±á¬á ááºážáááºááŸá¯áá»á¬ážááœáẠááá¬áž á áá¯ááᯠáá áºááŒáá¯ááºááẠáááºáá±á¬ááºáá²á·ááẠ(á¡á¬ážáá¯á¶ážááẠáá»áááºáááºááŸá¯á¡ááœáẠá¡áá¯á¶ážááŒá¯áá²á·ááŒáááº)á á¡ááŒá¬ážá ááºážáááºááŸá¯áá»á¬ážááœáẠááá°áá®áá±á¬ á á¬ážááœá² á áá¯ááŒáá·áº áá¯ááºáá±á¬ááºáá²á·áááºá á¡áá»áá¯á·ááá á¹á áá»á¬ážááœáẠbatch size ááẠ4 ááŒá áºááŒá®áž á¡ááŒá¬áž 4 (batch parameter - á¡á±á¬ááºááœáẠáá¯ááºááá¯ááŒáá·áºáá«)á áááºááá¯ážá¡ááœáẠáá±áá¬á¡ááœááºá¡á á¬ážááẠ8 bytes ááá¯á·ááá¯áẠ100 bytes (dataSize) ááŒá áºáááºá á á¯á á¯áá±á«ááºáž ááŸááºáááºážáá±á«ááºáž á áááºážááᯠááá¬ážáá áºáá¯á á®ááœáẠáá áºááŒáááºá á®ááœáẠáá±ážááŸááºááŒá®áž áááºááŸá¯áá²á·áááºá áá áºáá»áááºáááºážááŸá¬áááºá ááá¬ážáá áºáá¯á á®ááá¯á· á á¬ááœá² 200 áᯠ(thread number - thNum) ááᯠáá±áž/áááºáá²á·ááŒá®áž áá áºáá¯á á®ááẠáááºážáááá¯ááºááá¯áẠáá±á¬á·á¡ááœá¬á¡áá±áž (á¡áá±á¡ááœáẠ= 10 áááºáž) ááᯠá¡áá¯á¶ážááŒá¯áá²á·áááºá
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 áá²á·ááá¯á·) á¡áá¬áá»á¬ážááᯠá¡ááŸáááºááŒáŸáá·áºááá¬ážáá«á áá
áºáá»áááºáááºážááŸá¬ááẠáá
áºáá¯á¶ážáá»á¬ážááẠááá·áºááŸááºážááŒá®áž áá¬ááá¯á០áá²ááá¯ááŒááºážáááŒá¯áá«á
áá±áá¬ááᯠnode áá»á¬ážáá áºáá»áŸá±á¬áẠá¡áá®á¡áá»áŸ ááŒáá·áºáá±áá²á·áááºá node á¡á¬ážáá¯á¶ážá០á á¬áááºážá¡ááºážáá»á¬ážááẠááá·áºááŸááºážááŒá±á¡á¬ážááŒáá·áº áá°áá®áá«áááºá
á€áááºááŸá¬ node áá»á¬ážáá²ááŸáá
áºáá¯ááŸááá¬ážá
á¬áááºážá¡ááºážáá»á¬ážááŒá
áºáááºáKeyspace: ks
Read Count: 9383707
Latency ááá¯áááºáááº- 0.04287025042448576 ms
Count: 15462012 áá±ážáá«á
Latency áá±ážáá«- 0.1350068438699957 ms
ááá¯ááºážáá¶á·áá±áá±á¬ Flushes: 0
ááá¬áž- t1
SSTable á¡áá±á¡ááœááº- áá
á¡áá¯á¶ážááŒá¯ááá·áºáá±áᬠ(ááá¯ááºááá¯ááºáá¯ááºááœáŸ): 148.59 MiB
á¡áá¯á¶ážááŒá¯ááá·áºáá±áᬠ(á
á¯á
á¯áá±á«ááºáž): 148.59 MiB
áá»áŸááºáá
áºááŒááºááá¯ááºáá»ááºáá»á¬ážááŒáá·áº á¡áá¯á¶ážááŒá¯ááá·áº áá±áᬠ(á
á¯á
á¯áá±á«ááºáž): 0 bytes
Off heap áááºááá¯áá® (á
á¯á
á¯áá±á«ááºáž): 5.17 MiB á¡áá¯á¶ážááŒá¯áááºá
SSTable Compression Ratio: 0.5720989576459437
partitions á¡áá±á¡ááœáẠ(ááá·áºááŸááºážáá»ááº): 3970323
Memtable áá²ááºá¡áá±á¡ááœááº- 0
Memtable áá±áá¬á¡ááœááºá¡á
á¬áž- 0 bytes
Memtable off heap memory ááá¯á¡áá¯á¶ážááŒá¯áááº- 0 bytes
Memtable ááá¯ááºá¡áá±á¡ááœááº- á
ááŒááºááœááºážáááºááŸá¯ááŸá¯á¡áá±á¡ááœááº- 2346045
áá±ááá¹áá áááºááŸá¯áá»áááºááŒá¬áá»áááº- NaN ms
ááŒááºááœááºážáá±áž á¡áá±á¡ááœááº- áááá
á
áá
áá±ááá¹áááá±ážááẠááŒá¬áá»áááº- NaN ms
ááá¯ááºážáá¶á·áá¬ážáá±á¬ áá±á
á®ážááŒá±á¬ááºážáá»á¬áž- 0
ááŒá¯ááŒááºáá¬ážáá±á¬ áá¬ááá¯ááºááŸá¯ááºáž- 0.0
Bloom ááẠááŸá¬ážááœááºážáá±á¬ á¡ááŒá¯ááá±á¬áá»á¬ážááᯠá
á
áºáá¯ááºááŒááºáž- áá
Bloom filter ááŸá¬ážááœááºážáá±á¬á¡áá»áá¯áž- 0.00000
Bloom filter space : 4.57 MiB ááá¯á¡áá¯á¶ážááŒá¯áááºá
Bloom filter off heap memory ááᯠá¡áá¯á¶ážááŒá¯áá¬ážáááº- 4.57 MiB
á¡áá¯á¶ážááŒá¯áá¬ážáá±á¬ áááºááá¯áá®áááẠá¡ááœáŸááºáž- 590.02 KiB
á¡áá¯á¶ážááŒá¯áá¬ážáá±á¬ áááºááá¯áá®ááᯠáááºáá¯ááºááŒááºáž- 19.45 KiB
Compacted partition á¡áááá·áºáá¯á¶áž ááá¯ááºáá»á¬áž- áá
Compacted partition á¡ááŒáá·áºáá¯á¶áž bytes: 42
Compacted partition mean bytes: 42
á¡áá»ááºáá
áºáá¯áá»áŸáẠáá»ááºážáá»áŸá¡áááºááŸááºáá²ááºáá»á¬áž (áá±á¬ááºáá¯á¶ážáá«ážáááá
áº)- NaN
á¡áá»ááºáá
áºáá¯áá»áŸáẠá¡áá»á¬ážáá¯á¶áž á¡áááºááŸááºáá²ááºáá»á¬áž (áá±á¬ááºáá¯á¶ážáá«ážáááá
áº)- 0
á¡áá»ááºáá
áºáá¯áá»áŸáẠáá»ááºážáá»áŸ áááºá¹áá»áá¯ááºážáá»á±á¬ááºáá¯á¶ážáá»á¬áž (áá±á¬ááºáá¯á¶ážáá«ážáááá
áº)- NaN
á¡áá»ááºáá
áºáá¯áá»áŸáẠá¡áá»á¬ážáá¯á¶áž áááºá¹áá»áá¯ááºážáá»á±á¬ááºáá¯á¶ážáá»á¬áž (áá±á¬ááºáá¯á¶ážáá«ážáááá
áº): 0
Dropped Mutations- 0 bytes
á¡áá¯ááºáá¡ááœááºá¡á á¬ážááá¯áá»áŸá±á¬á·áá»áááºááŒáá¯ážáááºážááŸá¯ (áááºážááá¯áá áºáŠážáá»ááºážáá±ážááá¯á·ááŒááºáž) áááºá¡áá»áá¯ážáááºáá±á¬ááºááŸá¯áááŸááá«á áá¬áááá¯ážááœá¬ážáá¬áááºá CS á¡ááœááºáááŸááá±á¬ááááºáá»á¬ážááẠDataStax á¡ááœááºáááŸááá±á¬ááááºáá»á¬ážááŸáá·áºáááºáá°áá±á¬ááŒá±á¬áá·áºá áááºážááẠCS á¡ááœááºá¡ááŸááºááááºá áœááºážáá±á¬ááºáááºá¡ááŒáá·áºáá¯á¶ážááŒá áºááá¯ááºáá±á¬ááŒá±á¬áá·áºá ááá¯á·á¡ááŒááºá áá»áœááºá¯ááºááá¯á·ááẠá¡áááºážá¡ááŒá áºá¡áá¯á¶ážáá»ááŸá¯ááᯠáá±á·áá¬ááŒáá·áºáá»áŸáẠCS ááẠCPU ááŸáá·áº disks á¡áá»á¬ážá¡ááŒá¬ážááᯠááá¯ááá¯á¡áá¯á¶ážááŒá¯áááºááᯠááœá±á·ááá«áááºá
ááááºážááááºážááẠáá±áá¬áá±á·á
áºááŸá
áºáá¯áá¯á¶ážá¡ááœáẠá
ááºážáááºááŸá¯á¡á¬ážáá¯á¶ážááᯠáááºááá¯ááºáá¯ááºáá±á¬ááºáá±á
ááºá¡ááœááºáž á¡áá¯á¶ážááŒá¯ááŸá¯ááᯠááŒááááºá
HB á á¡á áœááºážáááºáá±á¬ á á¬áááºááŒááºáž á¡á¬ážáá¬áá»ááºááŸáá·áº áááºáááºá á€áá±áá¬ááœáẠáá±áá¬áá±á·á áºááŸá áºáá¯áá¯á¶ážá¡ááœáẠáááºáá±á ááºá¡ááœááºáž áá áºááºá¡áá¯á¶ážááŒá¯ááŸá¯ááŸá¬ á¡ááœááºáááºážáááºááᯠáááºááœá±á·ááŒááºááá¯ááºááẠ(áááºáááºá á áºáá±ážááŸá¯áá»á¬ážááẠáá±áá¬áá±á·á áºáá áºáá¯á á®á¡ááœáẠá ááºážáááºáááºáááºááŸá¯á áá±á¬ááºáá¯á¶ážá¡ááá¯ááºážááŒá áºáááºá á¥ááᬠCS á¡ááœáẠá€á¡áá¬ááẠ15:20 á០15:40 á¡ááááŒá áºáááº)á HB áá¡ááŒá±á¡áá±ááœááºá á¡ááŒá±á¬ááºážááŒáá»ááºáááºááŸááºážáá±ááẠ- áá±áá¬á¡áá»á¬ážá á¯ááẠmemory ááœááºá memstore ááœááºááœá²áá¬ážááŒá®ážá¡áá»áá¯á·ááẠblockcache ááœááºááááºážáááºážáá¬ážáááºá CS á¡ááœááºá áááºážááẠáááºááá¯á·á¡áá¯ááºáá¯ááºáááºááᯠááŸááºážááŸááºážáááºážáááºážáááááá±á¬áºáááºáž áá áºááºááᯠááŒááºáááºá¡áá¯á¶ážááŒá¯ááŒááºážááá¯áááºáž áááŒááºááá¯ááºáá±á¬áºáááºáž á¡ááŒá±á¡áá±ááœááºá áááºááŸáº row_cache_size_in_mb = 2048 ááá¯ááœáá·áºáááºááŸáá·áº áááºááŸáẠcaching = {'keys': 'ALL'á 'rows_per_partition': '2000000'}á ááá¯á·áá±á¬áº áááºážááẠá¡áááºážááẠááá¯ááá¯ážááœá¬ážá á±áááºá
HB ááŸá áá±áá¡áá±á¡ááœááºááŸáá·áº áááºáááºáá±á¬ á¡áá±ážááŒá®ážáá±á¬á¡áá»ááºáá áºáá»ááºááá¯áááºáž áááºáá¶áá±á¬áºááŒááá»áá¯ážáááºáá«áááºá áá»áœááºá¯ááºááá¯á·áá¡ááŒá±á¡áá±ááœááºá áááºááá¯ážááᯠ64 á¡ááŒá áºáááºááŸááºáá¬ážáááºá áááºážááá¯áááºáá»áŸá±á¬á·áá»ááŒá®áž á¥ááá¬- 4 ááŸáá·áºáá®á á±áá«áá á á¬áááºááá·áºá¡áá«á ááŒááºááŸá¯ááºážááẠ2 ááá»áááºážááœá¬ážáááºá á¡ááŒá±á¬ááºážááŒáá»ááºááŸá¬ memstore ááẠááá¯ááá¯ááŒááºáááºáá¬ááŒá®áž ááá¯ááºáá»á¬ážááᯠáááŒá¬ááááá¯áááᯠááŸááºážááœá¬ážáááºááŒá áºááŒá®áž á á¬áááºááá·áºá¡áá«ááœáẠááá¯ááºáá»á¬áž ááá¯ááá¯áá¯ááºáá±á¬ááºááẠááá¯á¡ááºáááºááŒá áºáᬠHB á¡ááœáẠááŸá¯ááºááœá±ážáá±á¬ áá¯ááºáá±á¬ááºááŸá¯áá áºáá¯ááŒá áºáááºá áááºááœá±á·á¡ááŒá±á¡áá±ááœááºá ááŒáá¯áááºááŒááºáááºááŒááºážááŸáá·áº áá»á áºáá»á áºáá±á¬áá»á°áá¬ááŒáá·áº ááœá±ážáá±á«áºááŒááºážááŒáá·áº áááºážááᯠáá¯áááá¯ááºáááºá á¡áá°ážáááŒáá·áº áá»áœááºá¯ááºááá¯á·ááẠá¡ááŸáá¯ááºáá»á¬ážááᯠá á¯áá±á¬ááºážááŒá®áž HFiles áá»á¬ážááᯠáá±á¬ááºáá¶ááœáẠá¡áááºáááŒááºáá»á¯á¶á·áá±ážááá·áº ááá¯ááºááá¯ááºáá±ážáá¬ážáá±á¬ utility ááᯠá¡áá¯á¶ážááŒá¯áá«áááºá DataStax á á áºáá±ážááŸá¯áá»á¬ážá¡ááœáẠááá¬ážáá áºáá¯áá»áŸáẠáá±á 1 áá¯áᬠááœá²áá±áá»áá¬ážáá±ážááẠ(ááá¯á¡áá¬ááẠáááŸááºáá«)á áááºážááẠáááºážááá¯á·áá á¬áááºá á áºáá±ážááŸá¯ááœáẠHB á¡áááºááŒá±á¬áá·áº á€áá»áŸ áá¶á·áá»ááºážáá²á·áááºááᯠá¡áááºážáááºááŸááºážáááºážááœá¬ážáááºááŒá áºáááºá
á€á¡áá»ááºá០á¡á±á¬ááºáá« ááá¬á áá±á¬ááºáá»áẠáá»á¬ážááᯠáá±á¬ááºááŸá¯ááºáá¬ážáá«áááºá á ááºážáááºá ááºá¡ááœááºáž ááŒá®ážááŒá®ážáá¬ážáá¬áž á¡ááŸá¬ážá¡ááœááºážáá»á¬áž áááŸááá²á·áᯠáá°ááá«á Cassandra ááẠááœáŸá¶á·ááŒá±ááŒáá·áº áá¯á¶ážá¡á¯ááºáá¬ážáá±á¬ áá¯áááá¹áá¬ááºááŸáá·áºáá°áááºá ááá¯áááááá»áá»ááŒá±á¬ááááºá áá±á¬ááºážáá«ážá¡á ááŸá¬ áá¯á¶ááŸá¬ááŒáá¬ážáááá¯áá² ááŒá±áá±á¬ááºáá áºáááºááᯠáááºáá»ááºáá®á¡á±á¬ááºááááºážáá¬ážáááºážáá²á· á¡áá±á¬áºáá±ážááᯠááááºáá±á¬ááºážááœá± ááŒááá¬ážáá±ááá·áº áá°áá®áá²á·á¡ááŒá±á¡áá±á¡á±á¬ááºááŸá¬ ááá¯ááºááœá²ááŸá¬ áá¯á¶ážáá¯á¶ážáá»á¬ážáá»á¬áž ááŸá¯á¶ážááœá¬ážáá«áááºá áá áºáá»áááºáááºážááŸá¬áááºá áá»áœááºá¯ááºááá¯á·á hardware ááœáẠCPU á¡áá¯á¶ážááŒá¯ááŸá¯áááºážáá«ážááŒááºážááᯠááá·áºááœááºážá ááºážá á¬ážááŒááºážááŒáá·áºá host áá áºáá¯áá»áŸáẠRegionServer HBs ááŸá áºáá¯ááᯠá áá¯ááºáá»áá¯ážááẠáááºáá°áá²á·ááŒá®áž á áœááºážáá±á¬ááºáááºááᯠááŸá áºáááá¯ážá á±áááºá á¡á²áá«ááœá±á á¡áááºážá¡ááŒá áºáá»á¬ážááᯠá¡áá¯á¶ážáá»ááŒááºážááœáẠááá·áºááœááºážá ááºážá á¬ážááŒááºážááŒáá·áº CS á¡ááœáẠá¡ááŒá±á¡áá±ááẠááá¯áááẠá áááºáá»ááºááœááºáá±á¬ááºážáá«áááºá
áá¯ááºáá«áááºá á€á ááºážáááºááŸá¯áá»á¬ážááẠáá±á«ááºážá ááºááœá²á·á ááºážááŸá¯ááŒá áºááŒá®áž á€áá±áá¬ááœáẠá¡áá¯á¶ážááŒá¯áá²á·ááá·áº áá±áá¬ááá¬áááŸá¬ á¡áá±á¬áºáá±ážáááºážáá«áááºá áá»áœááºá¯ááºááá¯á·ááẠterabytes ááá¯á·ááŒá±á¬ááºážáá«á á¡ááŒá±á¡áá± ááœá¬ááŒá¬ážááá¯ááºáá±á¬áºáááºáž HB á¡ááœáẠáá»áœááºá¯ááºááá¯á·ááẠterabytes ááᯠáááºááá¯ááºáá±á¬áºáááºáž CS á¡ááœáẠáááºážááẠááŒá¿áá¬ááŒá áºáá¬áá«áááºá áá¯á¶á·ááŒááºááŸá¯ááᯠá á±á¬áá·áºááá¯ááºážááŒááºážá¡ááœáẠááá·áºáááºáá»ááºáá»á¬ážááẠáá°ááá¯á¶á á¶áá»á¬ážááŸáá·áº ááŸáá¯ááºážááŸááºáá«á á¡ááá»á¬ážá áœá¬ ááá¯ážáá¬áá±á¬áºáááºážá áááºážááẠဠvolumes áá»á¬ážááŸáá·áºááẠOperationTimedOutException áá áºáá¯ááᯠáá áºáá»áá±á·ááŸááááºá
áá°ážáá±á«ááºážááŒáá¯ážáááºážááŸá¯áá»á¬ážá¡á¬ážááŒáá·áº CS á ááááºááá¯á·ááŸá¯áá»á¬ážááᯠááœá±á·ááŸáááŒá®áž áááºážááᯠá¡ááŸáááºááŒáŸáá·áºááá¯ááºáá»áŸáẠááá¯á·á áºáá¡áá¯á¶ážááœáẠáá±á¬ááºáá¯á¶ážááááºáá»á¬ážááŸáá·áºáááºáááºááá·áº á¡áá»ááºá¡áááºáá»á¬ážááᯠáá»áááºážáá±ááá·áºááœááºážáá±ážáááºáᯠáá»áŸá±á¬áºááá·áºáá«áááºá
UPD- áá²áá±á¬áºááœá±áá²á· á¡ááŒá¶áá±ážáá»ááºááŒá±á¬áá·áº á
á¬áááºáá¬ááᯠá¡ááŸáááºááŒáŸáá·áºááá¯ááºáá²á·áááºá ááŒá
áºáá²á·áááº-
159 ops (ááá¬áž 644 áá¯á 4 á
á®ážá batch 5)á
ááá·áºááœááºážáá¬ážááẠ-
.withLoadBalancingPolicy(á¡áá
ẠTokenAwarePolicy(DCAwareRoundRobinPolicy.builder())build()))
ááŒá®ážáá±á¬á· ááŒáá¯ážá¡áá±á¡ááœááºáá²á· áááºáá
á¬ážáá²á·áááºá ááááºááŸá¬ á¡á±á¬ááºáá«á¡ááá¯ááºážááŒá
áºáááºá
ááá¬áž 4 áá¯á á
á¬ááœá² 100á á¡áá¯áẠ= 1 (áá
áºááá¯ááºážáá»ááºáž)- 301 ops
ááá¬áž á áá¯á á
á¬ááœá² áááá á¡áá¯áẠ= 4: 100 ops
ááá¬áž á áá¯á á
á¬ááœá² áááá á¡áá¯áẠ= 4: 100 ops
áá±á¬ááºááá¯ááºážááœáẠáá»áœááºá¯ááºááẠá¡ááŒá¬ážáá±á¬ áá»áááºááŸáááŒááºážááá¯ááºáᬠá¡ááŒá¶ááŒá¯áá»ááºáá»á¬ážááᯠáá»áá·áºáá¯á¶ážááŒá®ážá á
ááºážáááºááŸá¯ áááºáááºááŸá¯ á¡ááŒáá·áºá¡á
á¯á¶ááᯠáá¯ááºáá±á¬ááºááŒá®áž ááá¯á·á
áºá á¡áá¯á¶ážááœáẠááááºáá»á¬ážááᯠááá·áºááœááºážáá«áááºá
source: www.habr.com