我目前正在使用CassandraSharp对3个节点的Cassandra进行基准测试.我主要担心的是延迟比吞吐量更多,所以经过一些GC调整后我的数字(在100 000K插入,单线程):
我的问题是,偶尔我会遇到"坏"延迟(50ms),我的目标是保持一致的延迟,即使以更高的平均值为代价.
我相信这是由GC造成的,我想知道是否可以避免.
(作为旁注,向一个节点发送大量插入并让它处理它或者我应该在客户端"负载均衡"它是一个好习惯吗?)
我正在尝试使用Datastax Enterprise,我正在尝试使用一个混合Enterprise节点和标准Cassandra社区节点的集群.我只需要一些具有Solr等高级功能的节点,将所有节点放在同一个集群中会很不错.
我尝试将社区节点引导到测试企业集群,它无法正确加入环,抛出类似的异常:
Unable to find compaction strategy class
'com.datastax.bdp.hadoop.cfs.compaction.CFSCompactionStrategy'
Run Code Online (Sandbox Code Playgroud)
我假设Enterprise节点尝试复制具有DSE功能的CF,社区节点无法识别这些功能.
有没有办法防止这种情况发生?我是否尝试做一些DSE不可能/不支持/允许的事情?
我正在测试范围切片,作为一个例子,我跟踪产品的价格,所以我的关键是产品ID,列是日期,包含该日期的价格.
我使用TimeUUIDType比较器来截断日期,以获得给定时期的报价.
这是我的架构:
{
"ItemCode1": {
"<timestamp>": { "name": "<timestamp>", "value": "<price>" },
"<timestamp>": { "name": "<timestamp>", "value": "<price>" },
...
},
"ItemCode2": {
"<timestamp>": { "name": "<timestamp>", "value": "<price>" },
"<timestamp>": { "name": "<timestamp>", "value": "<price>" },
...
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,每次我查询Cassandra时,它都会给我一个略有不同的列列表(1-2个或更多).我使用get_slice切片范围,ConsistencyLevel = ALL我甚至尝试修复ColumnFamily.