这是一个新手问题.我曾尝试过做家庭作业,但我一直在努力学习cassandra如何像广告一样线性扩展.当我针对单个cassandra节点运行时,我得到合理的插入率.以下是一些相关的信息:
我的键空间定义是这样的:
create keyspace nms WITH REPLICATION = { 'class' : 'NetworkTopologyStrategy', 'datacenter1' : 1 };
use nms;
CREATE TABLE RN(tableId int, sampleTime timestamp, sampleValue bigint, sampleStdev bigint, sampleRate bigint, tz_offset int,
PRIMARY KEY (tableId, sampleTime));
Run Code Online (Sandbox Code Playgroud)
我的相关java代码看起来像这样(粗略地):
cluster = Cluster.builder().addContactPoint("138.42.229.240")
.withQueryOptions(new QueryOptions().setConsistencyLevel(ConsistencyLevel.ANY))
.withRetryPolicy(DefaultRetryPolicy.INSTANCE)
.withLoadBalancingPolicy(new TokenAwarePolicy(new RoundRobinPolicy()))
.build();
session = cluster.connect("nms");
batch = new BatchStatement();
statement = session.prepare("INSERT INTO RN" +
"(tableId, sampleTime, sampleValue, sampleStdev, sampleRate, tz_offset)" +
"VALUES (?, ?, ?, ?, ?, ?);");
Run Code Online (Sandbox Code Playgroud)
我插入32个tableIds(分区键),每个"拥有"一个线程,以及唯一的sampleTimes.其他数据是填充垃圾.
我发现每个批次的10个插入点和10个executeAsync()调用组的最佳位置.
到现在为止还挺好.现在,添加了4个节点,在SSD SAN上运行硬件和3个虚拟机(我不知道).我使用了与上面描述的每个节点类似的配置,然后运行我的简单测试,期待一些改进.插入率没有变化.我无法解释.我本以期待一些改进.此外,2,3,4和5节点的速率基本保持不变.我意识到奇数可能毫无意义,但我绝望了.
然后,我尝试使用复制因子为零设置密钥空间.我的数据速率降至1K插入/秒.我无法解释这一点.我必须遗漏一些非常明显的东西,但我看不到它.
| 归档时间: |
|
| 查看次数: |
827 次 |
| 最近记录: |