我在使用Docker容器的单台机器上设置了一个完全复制的3节点Cassandra集群,具有以下状态:
Datacenter: dc_n1
=================
Status Address Load Tokens Owns Host_ID Rack
UN 172.18.0.3 83.98 MiB 256 100.0% 5bf rack_n1
Datacenter: dc_n2
=================
Status Address Load Tokens Owns Host_ID Rack
UN 172.18.0.6 83.52 MiB 256 100.0% 0518 rack_n2
Datacenter: dc_n3
=================
Status Address Load Tokens Owns Host_ID Rack
UN 172.18.0.2 83.52 MiB 256 100.0% ca95 rack_n3
现在考虑以下键空间:
create KEYSPACE stackoverflow WITH replication = {'class': 'NetworkTopologyStrategy', 'dc_n1':1,'dc_n2':1,'dc_n3':1};
和一个定义为的表(假设T_notID是唯一的):
create TABLE stackoverflow.TABLE (T_ID int PRIMARY KEY, T_notID int, T_Data text);
当我发送一个(例如,一百个)并发Java线程向Cassandra节点提交以下两个JDBC查询(重复,一分钟)时,我看到(B)查询的性能下降100倍:
(A)SELECT T_Data …