ืืึธืก ืืื ื ืืฉื ืืคืืื ืึท ืืืืฅ, ืขืก ืืืื ื ืึทื ืืึธืก ืืึทืืื ืืขืจ ืืืื ืฉืคึผืืืื ืืขืจืกื ืึทืงืืขืจืึทืืื ืื ืขืกืึทื ืก ืคืื ืื ืืึทืืึทืืืืกืื, ืืื ืืื ืื ืกืืฃ ืขืก ืืืขื ืืืื ืงืืึธืจ ืืืึธืก:
ืืืื DB-Engines ืจืึทื ืงืื ื, ืื ืฆืืืื ืืขืจืกื ืคืึธืืงืก NoSQL ืงืึธืืืื ืขืจ ืืึทืืึทืืืืกืื ืืขื ืขื Cassandra (ืืขืจื ืึธื CS) ืืื HBase (HB).
ืืืื ืืขื ืืืจื ืคืื ืืืจื, ืืื ืืืขืจ ืืึทืื ืืึธืืืื ื ืคืึทืจืืืึทืืืื ื ืืึทื ืฉืึทืคึฟื ืืื ืกืืขืจืืึทื ืง ืืื ืฉืืื
ืึธืืขืจ, ืืืืืขืจ ืืืจ ืืึทื ืืืืฃ ืฆื ืื ืจืขืืืืืึทืื ืคืื ืื ืืืจืืืขืงืึธืื ืืขืกืฅ, ืขืก ืืื ื ืืืืืง ืฆื ืืึทืฉืจืืึทืื ืื ืืึทืืืึทืืืง ืึทืกืคึผืขืงืฅ ืคืื ืื ืกืืืืืืข ืงืึทื ืคืืืืขืจืืืฉืึทื ื. ืืขืจ ืคืึทืงื ืืื ืึทื CS ืงืขื ืขื ืืืื ืืขืืืืื ื ืืื ืึท ืืึธืืข ืืืึธืก ืึทืืึทืื ืืึทืื ืึธื ืืืขืจ. ืืขื ืข. ืืึธืก ืืื ืืืขื ืืืืื ืืืื ืกืขืจืืืขืจ (ื ืึธืืข) ืืื ืคืึทืจืึทื ืืืืึธืจืืืขื ืคึฟืึทืจ ืื ืืึทืื ืคืื ืึท ืืืืขืจ ืฉืืืกื, ืืื ืืืื ืคึฟืึทืจ ืขืืืขืืข ืกืืื ืขืก ืคืืืื, ืื ืืืขืจื ืคืื ืืขื ืฉืืืกื ืืืขื ืืืื ืคืึทืจืคืึทืื. ืคึฟืึทืจ ืคืืืข ืืึทืกืงืก ืืึธืก ืืื ื ืืฉื ืงืจืืืืฉ, ืึธืืขืจ ืคึฟืึทืจ ืื ืืึทื ืงืื ื ืกืขืงืืึธืจ ืืึธืก ืืื ืื ืืืกื ืขื ืืื ืืื ืื ืืขืจืฉื. ืืื ืืื ืืืขืจ ืคืึทื, ืขืก ืืื ืืืืืืืง ืฆื ืืึธืื ืขืืืขืืข ืงืืคืืขืก ืคืื ืืึทืื ืคึฟืึทืจ ืคืึทืจืืึธืืืขื ืกืืึธืจืืืืฉ.
ืืขืจืืืขืจ, ืืืืื ืื CS ืึธืคึผืขืจืืืืื ื ืืึธืืข ืืื ืืจืืึทืืง ืจืขืคึผืืึทืงืืืฉืึทื ืืึธืืข ืืื ืืึทืืจืึทืื, ื.ื. ืื ืฉืึทืคืื ื ืคืื ืื ืงืึทืกืขืคึผืึทืกืข ืืื ืืืจืืืขืงืึธืื ืืื ืื ืคืืืืขื ืืข ืคึผืึทืจืึทืืขืืขืจืก:
CREATE KEYSPACE ks WITH REPLICATION = {'class' : 'NetworkTopologyStrategy', 'datacenter1' : 3};
ืืืืึทืืขืจ, ืขืก ืืขื ืขื ืฆืืืื ืืืขืื ืฆื ืขื ืฉืืจ ืื ืคืืจืืื ืื ืืืจืื ืคืื ืงืึธื ืกืืกืืขื ืกื. ืึทืืืขืืืื ืข ืืขืจืฉื:
ื ืื + ื ืจ > ืจืฃ
ืืืึธืก ืืืื ืึทื ืื ื ืืืขืจ ืคืื ืืึทืฉืืขืืืงืื ื ืคืื ื ืึธืืื ืืืขื ืฉืจืืืื (NW) ืคึผืืืก ืื ื ืืืขืจ ืคืื ืืึทืฉืืขืืืงืื ื ืคืื ื ืึธืืื ืืืขื ืืืืขื ืขื (NR) ืืืื ืืืื ืืจืขืกืขืจ ืืื ืื ืจืขืคึผืืึทืงืืืฉืึทื ืคืึทืงืืึธืจ. ืืื ืืื ืืืขืจ ืคืึทื, RF = 3, ืืืึธืก ืืืื ืื ืคืืืืขื ืืข ืึธืคึผืฆืืขืก ืืขื ืขื ืคึผืึทืกืืง:
2 + 2 > 3
3 + 1 > 3
ืืื ื ืขืก ืืื ืคืึทื ืืึทืืขื ืืึทืื ืืืืืืืง ืคึฟืึทืจ ืืื ืื ืฆื ืงืจืึธื ืื ืืึทืื ืืื ืจืืืืืึทืืื ืืื ืืขืืืขื, ืื 3 + 1 ืกืืขืืข ืืื ืืืืกืืขืจืืืืืื. ืืื ืืขืจืฆื, HB ืึทืจืืขื ืืืืฃ ืึท ืขื ืืขื ืคึผืจืื ืฆืืคึผ, ื.ื. ืึทืืึท ืคืึทืจืืืืึทื ืืืขื ืืืื ืืขืจ ืฉืืื.
ืขืก ืืึธื ืืืื ืื ืืขืืืืื ืึทื DataStax ืืื ืื ืคืึทืจืงืขืจื ืืื ืืืืขืจ ืืขืจื ืขื, ืืื ืฉืืขืื RF = 1 ืคึฟืึทืจ ืืืืืข CS ืืื HB (ืคึฟืึทืจ ืื ืืขื ืขืจ ืืืจื ืืฉืึทื ืืื ื ืื HDFS ืกืขืืืื ืืก). ืืึธืก ืืื ืึท ืืึทืงืข ืืืืืืืง ืึทืกืคึผืขืงื ืืืืึทื ืื ืคึผืจืึทื ืืืืฃ CS ืคืึธืจืฉืืขืืื ื ืืื ืืขื ืคืึทื ืืื ืจืืืืง. ืฆืื ืืืืฉืคึผืื, ืื ืืืื ืืื ืื ืืืืืื ืื ืคืึทืจืืจืขืกืขืจื ืืื ืื ืฆืืื ืคืืจืืื ืื ืฆื ืืึธืื ืืึทืื ืืื CS:
ืืึธ ืืืจ ืืขื ืื ืคืืืืขื ืืข: ืื ืืขืจ ืงืึทืืคึผืืืื ื ืคึฟืขืืขื ืฉืจืืึทืื ืืึทืื, ืื ืืขืจ ืขืก ื ืขืื. ืืึธืก ืืื ื ืึทืืืจืืขื, ืึธืืขืจ ืขืก ืืื ืืืืืืืง ืึทื ืื ืคืึธืจืฉืืขืืื ื ืืขืจื ืืืขืจืืงืื ื ืคึฟืึทืจ RF=3 ืืื ืืืืืืืืง ืืขืืขืจ. ืืื ืื ืืขืจืข ืืืขืจืืขืจ, ืืืื ืืืจ ืฉืจืืึทืื 4 ืคึฟืขืืขื ืืื 5 ืืืฉื ืืขืืขืจ (20 ืืื ืืึทื ืฅ), ืืขืืึธืื RF=3 ืคืืจืืืจื ืืืขืื 2 ืืื (150 ืกืขืงืื ืืขืก ืคึฟืึทืจ ืจืฃ=3 ืงืขืื 75 ืคึฟืึทืจ ืจืฃ=1). ืืืขืจ ืืืื ืืืจ ืคืึทืจืืจืขืกืขืจื ืื ืืึทืกืข ืืืจื ืืึธืืืื ื ืืึทืื ืืื 8 ืืืฉื ืืื 5 ืคึฟืขืืขื ืืขืืขืจ (40 ืืื ืืึทื ืฅ), ืื ืึธื ืืืขืจ ืคืื RF=3 ืืื ืฉืืื 2,7 ืืื (375 ืกืขืงืื ืืขืก ืงืขืื 138).
ืืึธืืขืจ ืืึธืก ืืื ืืืื ืืขืจ ืกืื ืคืื ืื ืืขืจืึธืื ืืึทืกืข ืืขืกืืื ื ืืืจืืืขืงืึธืื ืืืจื DataStax ืคึฟืึทืจ CS, ืืืืึทื ืคึฟืึทืจ HB ืืื ืืื ืืืขืจ ืฉืืืื ืืฉืึทื ืืื ื ืื ืจืขืคึผืืึทืงืืืฉืึทื ืคืึทืงืืึธืจ ืคืื 2 ืฆื 3 ืืื ื ืืฉื ืืึธืื ืงืืื ืืืืจืงืื ื. ืืขื ืข. ืืืกืงืก ืืขื ืขื ื ืืฉื ืื HB ืืึทืืึทืื ืขืง ืคึฟืึทืจ ืืื ืืืขืจ ืงืึทื ืคืืืืขืจืืืฉืึทื. ืึธืืขืจ, ืขืก ืืขื ืขื ืคืืืข ืื ืืขืจืข ืคึผืืืคืึธืื ืืึธ, ืืืืึทื ืขืก ืืึธื ืืืื ืืืืขืจืงื ืึทื ืืื ืืืขืจ ืืืขืจืกืืข ืคืื โโโโืื ืืื ืืขืืืขื ืึท ืืืกื ืคึผืึทืืฉื ืืื ืืืืืงื, ืื ืื ืืืืืจืึทื ืืึทื ืฅ ืืขื ืขื ืืึธืจ ืึทื ืืขืจืฉ, ืืื"ื ื. ืขืก ืืื ืืืื ืืืื ืฆื ืืืืขืจืงื ืึทื ืืคึฟืฉืจ ืืื ื ืึธืจ ืืึธื ื ืื ืืืืกื ืืื ืฆื ืฆืืืจืืืื CS ืจืืืืืง ืืื ืขืก ืืขื ืขื ืขืืืขืืข ืืขืจ ืขืคืขืงืืืื ืืืขืื ืฆื ืึทืจืืขืื ืืื ืืื, ืืื ืืื ืืึธืคึฟื ืืืจ ืืืขืื ืืขืคึฟืื ืขื ืืื ืืื ืื ืืึทืืขืจืงืื ืืขื. ืืืขืจ ืขืจืฉืืขืจ ืืืื ืขืจืฉืืขืจ.
ืึทืืข ืืขืกืฅ ืืขื ืขื ืืืจืืืขืงืึธืื ืืืืฃ ืึท ืืึทืื ืืืึทืจื ืงื ืืื ืงืึทื ืกืืกืืื ื ืคืื 4 ืกืขืจืืืขืจืก, ืืขืืขืจ ืืื ืื ืคืืืืขื ืืข ืงืึทื ืคืืืืขืจืืืฉืึทื:
ืงืคึผื: Xeon E5-2680 v4 @ 2.40GHz 64 ืคึฟืขืืขื.
ืืืกืงืก: 12 SATA HDD
Java ืืืขืจืกืืข: 1.8.0_111
CS ืืืขืจืกืืข: 3.11.5
cassandra.yml ืคึผืึทืจืึทืืขืืขืจืกื ืืืขืจ_ืืึธืงืขื ืก: 256
hinted_handoff_enabled: ืืืช
hinted_handoff_throttle_in_kb: 1024
max_hints_delivery_threads: 2
ืืื ืฅ_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
ืจืึธืืขืก_ืืืึทืืืืืื_ืืื_ืืก: 2000
permissions_validity_in_ms: 2000
ืงืจืึทืืขื ืืฉืึทืื_ืืืึทืืืืืื_ืืื_ืืก: 2000
ืฆืขืืืืืื ื: org.apache.cassandra.dht.Murmur3Partitioner
ืืึทืื_ืืขืงืข_ืืืจืขืงืืึธืจืืขืก:
- /data1/cassandra/data # ืืขืืขืจ ืืึทืืึท ื ืืืขืืืืืึทืืขืจ ืืื ืึท ืืึทืืื ืืขืจ ืืืกืง
- /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: ืืึทืืื
ready_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:
ืงืึธืื ืืขืจ_ืงืึทืืฉืข_ืืื_ืคึผืขืจืืึธื: 7200
saved_caches_directory: /data10/cassandra/saved_caches
commitlog_sync: ืคึผืขืจืืึธืืืฉ
commitlog_sync_period_in_ms: 10000
commitlog_segment_size_in_mb: 32
ืืืืืขื_ืคืจืฒึทืืขืจ:
- ืงืืึทืก_ื ืึทืืข: org.apache.cassandra.locator.SimpleSeedProvider
ืคึผืึทืจืึทืืขืืขืจืก:
โ ืืืืขื: "*,*"
concurrent_reads: 256 # ืืขืคืจืืืื 64 - ืงืืื ืืืืืง ืืืืขืจืงื
concurrent_writes: 256 # ืืขืคืจืืืื 64 - ืงืืื ืืืืืง ืืืืขืจืงื
concurrent_counter_writes: 256 # ืืขืคืจืืืื 64 - ืงืืื ืืืืืง ืืืืขืจืงื
ืงืึธื ืงืืจืขื ื_ืืึทืืขืจืืึทืืืืขื_ืืืืขืื_ืฉืจืืืื: 32
memtable_heap_space_in_mb: 2048 # ืืขืคืจืืืื 16 ืืืืืืืื - ืขืก ืืื ืืขืืืขื ืกืืึธืืขืจ
memtable_allocation_type: heap_buffers
index_summary_capacity_in_mb:
index_summary_resize_interval_in_minutes: 60
trickle_fsync: ืคืึทืืฉ
trickle_fsync_interval_in_kb: 10240
ืกืืึธืจืืืืฉ_ืคึผืึธืจื: 7000
ssl_storage_port: 7001
ืืขืจื_ืึทืืจืขืก: *
ืืจืึธืืงืึทืกื_ืึทืืจืขืก: *
listen_on_broadcast_address: ืืืช
internode_authenticator: org.apache.cassandra.auth.AllowAllInternodeAuthenticator
start_native_transport: ืืืช
ืืขืืืืจื_ืืจืึทื ืกืคึผืึธืจื_ืคึผืึธืจื: 9042
start_rpc: ืืืช
rpc_ืึทืืจืขืก: *
rpc_port: 9160
rpc_keepalive: ืืืช
rpc_server_type: ืกืื ืง
thrift_framed_transport_size_in_mb: 15
ืื ืงืจืขืืขื ืืึทื_ืืึทืงืึทืคึผืก: ืคืึทืืฉ
snapshot_before_compaction: ืคืึทืืฉ
auto_snapshot: ืืืช
column_index_size_in_kb: 64
column_index_cache_size_in_kb: 2
ืงืึธื ืงืืจืจืขื ื_ืงืึธืืคึผืึทืงืืึธืจืก: 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
ืกืขืจืืืขืจ_ืขื ืงืจืืคึผืืืึธื_ืึธืคึผืฆืืขืก:
internode_encryption: ืืึธืจื ืื
client_encryption_options:
ืขื ืืืืึทืื: ืคืึทืืฉ
internode_compression: ืืง
inter_dc_tcp_nodelay: ืคืึทืืฉ
tracetype_query_ttl: 86400
tracetype_repair_ttl: 604800
enable_user_defined_functions: ืคืึทืืฉ
enable_scripted_user_defined_functions: ืคืึทืืฉ
windows_timer_interval: 1
ืืจืึทื ืกืคึผืขืจืึทื ื_ืืึทืืึท_ืขื ืงืจืืคึผืืืึธื_ืึธืคึผืฆืืขืก:
ืขื ืืืืึทืื: ืคืึทืืฉ
Tombstone_warn_threshold: 1000
Tombstone_failure_threshold: 100000
batch_size_warn_threshold_in_kb: 200
batch_size_fail_threshold_in_kb: 250
unlogged_batch_across_partitions_warn_threshold: 10
compaction_large_partition_warning_threshold_mb: 100
gc_warn_threshold_in_ms: 1000
back_pressure_enabled: ืคืึทืืฉ
enable_materialized_views: ืืืช
enable_sasi_indexes: ืืืช
GC ืกืขืืืื ืืก:
### CMS ืกืขืืืื ืืก-ืงืกืงืก:+UseParNewGC
-ืงืกืงืก:+UseConcMarkSweepGC
-ืงืกืงืก:+CMSParallelRemarkEnabled
-ืงืกืงืก: ืกืืจืืืืืืึธืจ ืคืึทืจืืขืืืขื ืืฉ=8
-ืงืกืงืก: ืืึทืงืกืืขื ืืจืื ืืืืจืขืฉืึธืื=1
-ืงืกืงืก:CMSInitiatingOccupancyFraction=75
-ืงืกืงืก:+ื ืืฆื ืืืืื CMSI-initiatingoccupancy
-XX:CMSWaitDuration=10000
-XX:+CMSParallelInitialMarkEnabled
-ืงืกืงืก: + ืงืืกืืขืืฉืื ืงืก ืจืขืงืึธืจื ืฉืืขื ืืืง
-ืงืกืงืก:+CMSClassUnloadingEnabled
ืื jvm.options ืืืงืึธืจื ืืื ืืขืืืขื ืึทืืึทืงืืืืื 16 ืื (ืืืจ ืืืื ืืขืคืจืืืื 32 ืื, ืงืืื ืืืืืง ืืื ืืืืขืจืงื).
ืื ืืืฉื ืืขื ืขื ืืืฉืืคื ืืื ืืขื ืืึทืคึฟืขื:
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 ืืื ืื (s)
hbase.client.scanner.timeout.period: 2 ืืื ืื (s)
hbase.master.handler.count: 10
hbase.regionserver.lease.period, hbase.client.scanner.timeout.period: 2 ืืื ืื (s)
hbase.regionserver.handler.count: 160
hbase.regionserver.metahandler.count: 30
hbase.regionserver.logroll.period: 4 ืฉืขื (s)
hbase.regionserver.maxlogs: 200
hbase.hregion.memstore.flush.ืืจืืืก: 1 ืืื
hbase.hregion.memstore.block.multiplier: 6
hbase.hstore.compactionThreshold: 5
hbase.hstore.blockingStoreFiles: 200
hbase.hregion.majorcompaction: 1 ืืึธื (s)
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:CMSInitiatingOccupancyFraction=70 -XX:+CMSParallelRemarkEnabled -XX:ReservedCodeCacheSize=256m
hbase.snapshot.master.timeoutMillis: 2 ืืื ืื (s)
hbase.snapshot.region.timeout: 2 ืืื ืื (s)
hbase.snapshot.master.timeout.millis: 2 ืืื ืื (s)
HBase REST ืกืขืจืืืืจืขืจ ืืึทืงืก ืืึธื ืืจืืืก: 100 MiB
HBase REST ืกืขืจืืืืจืขืจ ืืึทืงืกืืืื ืงืืึธืฅ ืืขืงืข ืืึทืงืึทืคึผืก: 5
HBase Thrift Server ืืึทืงืก ืืึธื ืืจืืืก: 100 MiB
HBase Thrift Server ืืึทืงืกืืืื ืืึธื ืืขืงืข ืืึทืงืึทืคึผืก: 5
ืืขื ืืึทืงืก ืงืืึธืฅ ืืจืืืก: 100 ืืื
ืืขื ืืึทืงืกืืืื ืงืืึธืฅ ืืขืงืข ืืึทืงืึทืคึผืก: 5
ืจืขืืืึธื ืึทืืกืขืจืืืขืจ ืืึทืงืก ืืึธื ืืจืืืก: 100 ืืื
RegionServer ืืึทืงืกืืืื ืงืืึธืฅ ืืขืงืข ืืึทืงืึทืคึผืก: 5
HBase ืึทืงืืืื ืืืจ ืืขืืขืงืฉืึทื ืคึฟืขื ืฆืืขืจ: 4 ืืื ืื (s)
dfs.client.hedged.read.threadpool.ืืจืืืก: 40
dfs.client.hedged.read.threshold.millis: 10 ืืืืืกืขืงืื ืื (s)
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.ืืจืืืก: 20
ืืขืื ื ืืึธืืืขืจ ืคึฟืขืืขื: 6
ืงืืืขื ื Java ืืืคึผ ืืจืืืก ืืื ืืืืขืก: 1 ืืื
HBase REST ืกืขืจืืืืจืขืจ ืคืขืืืงืืึทื ืืจืืคืข: 3 GiB
HBase Thrift Server Default Group: 3 GiB
Java ืืืคึผ ืืจืืืก ืคืื HBase ืืืจ ืืื ืืืืขืก: 16 GiB
Java ืืขืึทืคึผ ืืจืืืก ืคืื HBase RegionServer ืืื ืืืืขืก: 32 GiB
+ ืืืึธืงืขืขืคึผืขืจ
maxClientCnxns: 601
ืืึทืงืกืืืื ืกืขืฉืึทื ืฆืืื: 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 ืืืืืืืื, ื.ืข. ืืืื ืืจืืืก ืืืฉ.
ืืื ืืขืจ ืฆืืื ืคืื ืื ืคึผืจืึธืืข, HBase ืืื 22 ืืืืื ื ืืืฉื ืืื 67 ืืืืื ื ืืงืืืืช (ืืึธืก ืืืึธืื ืืขืืืขื ืืืืืืขื ืคึฟืึทืจ ืืืขืจืกืืข 1.2.0 ืืืื ื ืืฉื ืคึฟืึทืจ ืื ืืึทืืข ืืขืจืืื ื ืืืืื).
ืืืฆื ืคึฟืึทืจ ืื ืงืึธื. ืืื ื ืขืก ืืื ื ืืฉื ืงืืึธืจ ืืืึธืก ืงืึทื ืคืืืืขืจืืืฉืึทื ื ืืขื ืขื ืืขืจ ืึทืืืืึทื ืืืืืืฉืึทืก ืคึฟืึทืจ ืึท ืืึทืืื ืืขืจ ืืึทืืึทืืืืก, ืืขืกืฅ ืืขื ืขื ืืืจืืืขืงืึธืื ืืื ืคืึทืจืฉืืื ืงืึทืืืึทื ืืืฉืึทื ื. ืืขื ืข. ืืื ืขืืืขืืข ืืขืกืฅ, 4 ืืืฉื ืืขื ืขื ืืึธืืืื ืกืืืืึทืืืืื ืืึทืกืื (ืึทืืข 4 ื ืึธืืื ืืขื ืขื ืืขื ืืฆื ืคึฟืึทืจ ืงืฉืจ). ืืื ืื ืืขืจืข ืืขืกืฅ ืืืจ ืืขืืจืืขื ืืื 8 ืคืึทืจืฉืืืขื ืข ืืืฉื. ืืื ืขืืืขืืข ืงืึทืกืขืก, ืื ืคึผืขืงื ืืจืืืก ืืื ืืขืืืขื 100, ืืื ืื ืืขืจืข 200 (ืคึผืึทืจืขืืข ืคึผืึทืจืึทืืขืืขืจ - ืืขื ืงืึธื ืืื ืื). ืื ืืึทืื ืืจืืืก ืคึฟืึทืจ ืืืขืจื ืืื 10 ืืืืขืก ืึธืืขืจ 100 ืืืืขืก (ืืึทืืึทืกืืื). ืืื ืืึทื ืฅ, 5 ืืืืืึธื ืจืขืงืึธืจืืก ืืขื ืขื ืืขืฉืจืืื ืืื ืืืืขื ืขื ืืื ืืขืืขืจ ืืืฉ ืืขืืขืจ ืืึธื. ืืื ืืขืจ ืืขืืืืงืขืจ ืฆืืื, 5 ืคึฟืขืืขื ืืขื ืขื ืืขืฉืจืืื / ืืืืขื ืขื ืฆื ืืขืืขืจ ืืืฉ (ืคืึธืืขื ื ืืืขืจ - thNum), ืืขืืขืจ ืคืื ืืืึธืก ืืขืืืืื ื ืืืื ืืืืืขื ืข ืงืืื ืคืื ืฉืืืกืืขื (ืฆืืืื = 1 ืืืืืึธื):
if (opType.equals("insert")) {
for (Long key = count * thNum; key < count * (thNum + 1); key += 0) {
StringBuilder sb = new StringBuilder("BEGIN BATCH ");
for (int i = 0; i < batch; i++) {
String value = RandomStringUtils.random(dataSize, true, true);
sb.append("INSERT INTO ")
.append(tableName)
.append("(id, title) ")
.append("VALUES (")
.append(key)
.append(", '")
.append(value)
.append("');");
key++;
}
sb.append("APPLY BATCH;");
final String query = sb.toString();
session.execute(query);
}
} else {
for (Long key = count * thNum; key < count * (thNum + 1); key += 0) {
StringBuilder sb = new StringBuilder("SELECT * FROM ").append(tableName).append(" WHERE id IN (");
for (int i = 0; i < batch; i++) {
sb = sb.append(key);
if (i+1 < batch)
sb.append(",");
key++;
}
sb = sb.append(");");
final String query = sb.toString();
ResultSet rs = session.execute(query);
}
}
ืึทืงืงืึธืจืืื ืืื, ืขื ืืขื ืคืึทื ืืงืฉืึทื ืึทืืืื ืืื ืฆืืืขืฉืืขืื ืคึฟืึทืจ HB:
Configuration conf = getConf();
HTable table = new HTable(conf, keyspace + ":" + tableName);
table.setAutoFlush(false, false);
List<Get> lGet = new ArrayList<>();
List<Put> lPut = new ArrayList<>();
byte[] cf = Bytes.toBytes("cf");
byte[] qf = Bytes.toBytes("value");
if (opType.equals("insert")) {
for (Long key = count * thNum; key < count * (thNum + 1); key += 0) {
lPut.clear();
for (int i = 0; i < batch; i++) {
Put p = new Put(makeHbaseRowKey(key));
String value = RandomStringUtils.random(dataSize, true, true);
p.addColumn(cf, qf, value.getBytes());
lPut.add(p);
key++;
}
table.put(lPut);
table.flushCommits();
}
} else {
for (Long key = count * thNum; key < count * (thNum + 1); key += 0) {
lGet.clear();
for (int i = 0; i < batch; i++) {
Get g = new Get(makeHbaseRowKey(key));
lGet.add(g);
key++;
}
Result[] rs = table.get(lGet);
}
}
ืืื ื ืืื HB ืืขืจ ืงืืืขื ื ืืืื ื ืขืืขื ืงืขืืจ ืคืื ืื ืืื ืืืจ ืคืึทืจืฉืคึผืจืืืืื ื ืคืื ืืึทืื, ืื ืฉืืืกื ืกืึธืืืื ื ืคึฟืื ืงืฆืืข ืืขืงืืงื ืืื ืืึธืก:
public static byte[] makeHbaseRowKey(long key) {
byte[] nonSaltedRowKey = Bytes.toBytes(key);
CRC32 crc32 = new CRC32();
crc32.update(nonSaltedRowKey);
long crc32Value = crc32.getValue();
byte[] salt = Arrays.copyOfRange(Bytes.toBytes(crc32Value), 5, 7);
return ArrayUtils.addAll(salt, nonSaltedRowKey);
}
ืืืฆื ืื ืืขืจืกื ืืฉืืงืึทืืืข ืืืื - ืื ืจืขืืืืืึทืื:
ืื ืืขืืืข ืืึทื ืืื ืืจืึทืคืืง ืคืึธืจืขื:
ืื ืืืึทืืข ืคืื โโHB ืืื ืึทืืื ืืืืืฉ ืึทื ืขืก ืืื ืึท ืืฉื ืึทื ืขืก ืืื ืึท ืืื ืคืื ืืึทืืึทืื ืขืง ืืื ืื CS ืกืขืืึทืคึผ. ืึธืืขืจ, ืืึธืืืื ื ืืื ืืืื ืคึฟืึทืจ ืื ืืขืจืกื ืงืืึธืจ ืืื ืืขืจ ืืึธื ืคึผืึทืจืึทืืขืืขืจืก (ืืื concurrent_writes ืึธืืขืจ memtable_heap_space_in_mb) ืืื ื ืืฉื ืคืึทืจืืืืขืจื ืื ืืื ืื. ืืื ืืขืจ ืืขืืืืงืขืจ ืฆืืึทื, ืื ืืึธืืก ืืขื ืขื ืจืืื ืืื ืืึธื ื ืื ืฉืืืขืจื ืืื ืขืคึผืขืก.
ืื ืืึทืื ืืขื ืขื ืคืื ืื ืืขืจืืขืืืืื ืืืืึทื ืื ืืืืขืจ ืื ื ืึธืืื, ืื ืกืืึทืืืกืืืง ืคืื ืึทืืข ื ืึธืืื ืืขื ืขื ืืขืขืจืขื ืื ืืขืืืข.
ืืึธืก ืืื ืืื ืื ืืืฉ ืกืืึทืืืกืืืง ืงืืง ืืื ืืืื ืขืจ ืคืื ืื ื ืึธืืืKeyspace: ks
ืืืืขื ืขื ืืจืืฃ: 9383707
ืืืืขื ืขื ืืืืืึทื ืกื: 0.04287025042448576 ืืื
ืฉืจืืื ืืจืืฃ: 15462012
ืฉืจืืื ืืืืืึทื ืก: 0.1350068438699957 ืืื
ืคึผืขื ืืื ื ืคืืืฉืขืก: 0
ืืืฉ: ื1
ืกืืึทืืื ืฆืืืื: 16
ืกืคืขืืก ืืขื ืืฆื (ืืขืื): 148.59 MiB
ืคึผืืึทืฅ ืืขื ืืฆื (ืืึทื ืฅ): 148.59 ืืื
ืคึผืืึทืฅ ืืขื ืืฆื ืืืจื ืกื ืึทืคึผืฉืึทืฅ (ืืึทื ืฅ): 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 - ืืืขืื ืืื ืืขืจืืขืจ ืคืื ืืืืื ืืขืจ ืคืื ืึทืคึผืขืจืืืฉืึทื ื ืคึผืขืจ ืกืขืงืื ืืข. ืืื ืึทืืืฉืึทื, ืืืื ืืืจ ืงืืงื ืืื ืืืื ืืืืึทืืึทืืืืฉืึทื, ืืืจ ืืืขืื ืืขื ืึทื CS ื ืืฆื ืคืื ืืขืจ ืงืคึผื ืืื ืืืกืงืก:
ืื ืคืืืืจ ืืืืืื ืื ืืืืึทืืึทืืืืฉืึทื ืืขืฉืึทืก ืื ืืืืคื ืคืื ืึทืืข ืืขืกืฅ ืืื ืึท ืจืืืขืจื ืคึฟืึทืจ ืืืืืข ืืึทืืึทืืืืกืื.
ืืืขืื HB ืก ืฉืืึทืจืง ืืืืขื ืขื ืืืึทืืข. ืืึธ ืืืจ ืงืขื ืขื ืืขื ืึทื ืคึฟืึทืจ ืืืืืข ืืึทืืึทืืืืกืื, ืืืกืง ืืืืึทืืึทืืืืฉืึทื ืืขืฉืึทืก ืืืืขื ืขื ืืื ืืึธืจ ื ืืืขืจืืง (ืืืืขื ืขื ืืขืกืฅ ืืขื ืขื ืื ืืขืฆื ืืืื ืคืื ืื ืืขืกืืื ื ืฆืืงื ืคึฟืึทืจ ืืขืืขืจ ืืึทืืึทืืืืก, ืืืฉื ืคึฟืึทืจ CS ืืึธืก ืืื ืคึฟืื 15:20 ืฆื 15:40). ืืื ืืขื ืคืึทื ืคืื HB, ืื ืกืืื ืืื ืงืืึธืจ - ืจืืึฟ ืคืื ืื ืืึทืื ืืึทื ืื ืืื ืืึผืจืื, ืืื ืื ืืขืืกืืึธืจ, ืืื ืขืืืขืืข ืืื ืงืึทืฉื ืืื ืืืึธืงืงืึทืืฉืข. ืืื ืคึฟืึทืจ CS, ืขืก ืืื ื ืืฉื ืืืืขืจ ืงืืึธืจ ืืื ืขืก ืึทืจืืขื, ืึธืืขืจ ืืืกืง ืจืืกืืืงืืื ื ืืื ืืืื ื ืืฉื ืงืขื ืืืง, ืึธืืขืจ ื ืึธืจ ืืื ืคืึทื, ืึทื ืคึผืจืืืื ืืื ืืขืืืื ืฆื ืืขืื ืื ืงืึทืฉ row_cache_size_in_mb = 2048 ืืื ืฉืืขืื ืงืึทืืฉืื ื = {'keys': 'ALL', 'rows_per_partition': '2000000'}, ืึธืืขืจ ืืึธืก ืืึธื ืขืก ืืคืืื ืึท ืืืกื ืขืจืืขืจ.
ืขืก ืืื ืืืื ืืืื ืฆื ืืขืจืืึธื ืขื ืึทืืึธื ืืืืืขืจ ืึท ืืืืืืืง ืคืื ื ืืืขืื ืื ื ืืืขืจ ืคืื ืืงืืืืช ืืื ืื. ืืื ืืื ืืืขืจ ืคืึทื, ืื ืืืขืจื ืืื ืืขืืืขื ืกืคึผืขืกืืคืืขื ืืื 64. ืืืื ืืืจ ืจืขืืืฆืืจื ืขืก ืืื ืืึทืื ืขืก ืืืืึทื ืฆื, ืคึฟืึทืจ ืืืึทืฉืคึผืื, 4, ืืขืืึธืื ืืืขื ืืืืขื ืขื, ืื ืืืืงืืึทื ืืจืืคื ืก ืืืจื 2 ืืื. ืื ืกืืื ืืื ืึทื ืืขืืกืืึธืจ ืืืขื ืคึผืืึธืืืืจื ืืื ืคืึทืกืืขืจ ืืื ืืขืงืขืก ืืืขื ืืืื ืคืืึทืฉื ืืขืจ ืึธืคื ืืื ืืืขื ืืืืขื ืขื, ืืขืจ ืืขืงืขืก ืืืขื ืืึทืจืคึฟื ืฆื ืืืื ืคึผืจืึทืกืขืกื, ืืืึธืก ืืื ืึท ืืึทื ืฅ ืงืึธืืคึผืืืฆืืจื ืึธืคึผืขืจืึทืฆืืข ืคึฟืึทืจ HB. ืืื ืคืึทืงืืืฉ ืื ืึธืื, ืืึธืก ืงืขื ืขื ืืืื ืืืืื ืืื ืืืจื ืืจืืืื ืืืจื ืึท ืคึผืจืืกืคึผืืืืืื ื ืืื ืงืึทืืคึผืึทืงืืึทืคืึทืงืืืฉืึทื ืกืืจืึทืืขืืืข; ืืื ืืึทืืื ืืขืจ, ืืืจ ื ืืฆื ืึท ืืื-ืืขืฉืจืืื ื ืืฆื ืืืึธืก ืงืึทืืขืงืฅ ืืืกื ืืื ืงืึทืืคึผืจืขืกืื HFiles ืงืขืกืืืืขืจ ืืื ืืขืจ ืืื ืืขืจืืจืื ื. ืขืก ืืื ืืึทื ืฅ ืืขืืืขื ืึทื ืคึฟืึทืจ DataStax ืืขืกืฅ ืืื ืึทืืึทืงืืืืื ืืืืื 1 ืืขืื ื ืคึผืขืจ ืืืฉ (ืืืึธืก ืืื ื ืืฉื ืจืืืืืง) ืืื ืืึธืก ืืืึธืื ืึท ืืืกื ืืขืจืงืืขืจื ืืืึธืก HB ืืื ืืขืืืขื ืึทืืื ืขืจืืขืจ ืืื ืืืืขืจ ืืืืขื ืขื ืืขืกืฅ.
ืื ืคืืืืขื ืืข ืคึผืจืืืืืึทื ืขืจื ืงืึทื ืงืืืืฉืึทื ื ืืขื ืขื ืฆืืขื ืคืื ืืขื. ืึทืกืืืื ื ืึทื ืงืืื ืืืืคึผื ืืืกืืืืงืก ืืขื ืขื ืืขืืืื ืืขืฉืึทืก ืืขืกืืื ื, ืงืึทืกืึทื ืืจืึท ืงืืงื ืืื ืึท ืงืึธืืึธืกืกืืก ืืื ืคึฟืืก ืคืื ืืืื. ืืขืจ ืืขื ืื, ืืฉืขืช ืื ืืึทืืึทื ืกื ืืืืฃ ืืืื ืคืืก, ืืื ืืื ืื ืืืื ืืื ืื ืึธื ืืืื ืคืื ืืขื ืึทืจืืืงื, ืื ืืืืืื ืืขืคืืขืจืขื ืืื ืจืขืืืืืึทืื, ืึธืืขืจ ืืื ืึท ืงืึทืืฃ ืืื ืืขืจ ืื ืืขืืืข ืืืืื ืืื ืืขื ืื ืคืืจืืืจื ืืืืื. ืืื ืืขืจ ืืขืืืืงืขืจ ืฆืืื, ืืขื ืืืขื ืืื ืืฉืืื ืื ื ืืืขืจืืง ืงืคึผื ืืืืึทืืึทืืืืฉืึทื ืืืืฃ ืืื ืืืขืจ ืืึทืื ืืืึทืจื, ืืืจ ืืขืืขืจื ื ืฆื ืคืึทืืจืืง ืฆืืืื RegionServer HBs ืคึผืขืจ ืืึทืืขืืึธืก ืืื ืืขืจืืื ืืึทืืึทืื ืื ืคืึธืจืฉืืขืืื ื. ืืขื ืข. ืืขื ืืืขื ืืื ืืฉืืื ืื ืืืืึทืืึทืืืืฉืึทื ืคืื ืจืขืกืืจืกื, ืื ืกืืืืึทืฆืืข ืคึฟืึทืจ CS ืืื ืืคืืื ืืขืจ ืืืคึผืืึธืจืึทืืึทื.
ืคืื ืงืืจืก, ืื ืืขืกืฅ ืืขื ืขื ืืึทื ืฅ ืกืื ืืขืืืฉ ืืื ืื ืกืืืข ืคืื โโืืึทืื ืืืึธืก ืืื ืืขื ืืฆื ืืึธ ืืื ืืขืคืืขืจืขื ืืึทืฉืืืื. ืขืก ืืื ืืขืืืขื ืึทื ืืืื ืืืจ ืืึทืฉืืืืขื ืฆื ืืขืจืึทืืืืขืก, ืื ืกืืืืึทืฆืืข ืืืึธืื ืืืื ืึทื ืืขืจืฉ, ืึธืืขืจ ืืฉืขืช ืคึฟืึทืจ HB ืืืจ ืงืขื ืขื ืืึธืื ืืขืจืึทืืืืขืก, ืคึฟืึทืจ CS ืืึธืก ืืื ืืขืืืขื ืคึผืจืึธืืืขืืึทืืืง. ืขืก ืึธืคื ืืื ืึทื OperationTimedOutException ืืคืืื ืืื ืื ืืืึทืืืืื, ืืึธืืฉ ืื ืคึผืึทืจืึทืืขืืขืจืก ืคึฟืึทืจ ืืืืจืื ืคึฟืึทืจ ืึท ืขื ืืคืขืจ ืืขื ืขื ืฉืืื ืืขืืืืงืกื ืขืืืขืืข ืืึธื ืงืึทืืคึผืขืจื ืืื ืื ืคืขืืืงืืึทื ืึธื ืขืก.
ืืื ืืึธืคึฟื ืึทื ืืืจื ืฉืืึธืก ืืฉืชืืืืช ืืืจ ืืืขืื ืืขืคึฟืื ืขื ืื ืืึทืืึทืื ืขืงืก ืคืื CS ืืื ืืืื ืืืจ ืงืขื ืขื ืคืึทืจืืืืขืจื ืขืก, ืืื ืื ืกืืฃ ืคืื ืืขื ืคึผืึธืกืื ืืื ืืืขื ืืืฉืืืื ืืืืื ืืื ืคึฟืึธืจืืึทืฆืืข ืืืขืื ืื ืืขืฆื ืจืขืืืืืึทืื.
UPD: ืืึทื ืง ืฆื ืื ืขืฆื ืคืื ืงืึทืืจืึทืื, ืืื ืืขืจืืื ืฆื ืคืึทืจืืืืขืจื ืื ืืืืขื ืขื. ืืื ืืขืืืขื:
159 ืึธืคึผืก (644 ืืืฉื, 4 ืกืืจืืื, ืคึผืขืงื 5).
ืฆืืืขืืขืื:
.withLoadBalancingPolicy(new TokenAwarePolicy(DCAwareRoundRobinPolicy.builder().build()))
ืืื ืืื ืืึธื ืืื ืืขืฉืคึผืืื ืืื ืื ื ืืืขืจ ืคืื ืคึฟืขืืขื. ืืขืจ ืจืขืืืืืึทื ืืื ืื ืคืืืืขื ืืข:
4 ืืืฉื, 100 ืคึฟืขืืขื, ืคึผืขืงื = 1 (ืฉืืืง ืืืจื ืฉืืืง): 301 ืึธืคึผืก
4 ืืืฉื, 100 ืคึฟืขืืขื, ืคึผืขืงื = 10: 447 ืึธืคึผืก
4 ืืืฉื, 100 ืคึฟืขืืขื, ืคึผืขืงื = 100: 625 ืึธืคึผืก
ืฉืคึผืขืืขืจ ืืื ืืืขื ืฆืืืืืื ืื ืืขืจืข ืืื ืื ื ืขืฆืืช, ืืืืคื ืึท ืคืื ืคึผืจืืืืจื ืฆืืงื ืืื ืืืืื ืื ืจืขืืืืืึทืื ืืื ืื ืกืืฃ ืคืื ืืขื ืคึผืึธืกืื.
ืืงืืจ: www.habr.com