【发布时间】:2015-09-03 08:11:07
【问题描述】:
我在 cassandra 中定义了以下列族
CREATE TABLE metric (
period int,
rollup int,
tenant text,
path text,
time bigint,
data list<double>,
PRIMARY KEY ((tenant, period, rollup, path), time)
) WITH
bloom_filter_fp_chance=0.010000 AND
caching='KEYS_ONLY' AND
comment='' AND
dclocal_read_repair_chance=0.000000 AND
gc_grace_seconds=864000 AND
index_interval=128 AND
read_repair_chance=0.100000 AND
replicate_on_write='true' AND
populate_io_cache_on_flush='false' AND
default_time_to_live=0 AND
speculative_retry='NONE' AND
memtable_flush_period_in_ms=0 AND
compaction={'class': 'SizeTieredCompactionStrategy'} AND
compression={'sstable_compression': 'LZ4Compressor'};
数据列表的大小会影响 cassandra 的读取性能吗?如果是,我们如何衡量它..?
问题在于,对于给定的路径/周期/汇总组合,从 cassandra 查询 Data-Set1 以获取 8640 行(其中每行的数据列表中的元素数为 90)所花费的时间超过了时间需要查询数据集 2,它是 8640 行数据(其中每行的数据列表中的元素数为 10)。
另外,如果我在 10 个用户同时访问 Data-Set1 的情况下运行性能测试,那么我开始在后端看到 cassandra 超时,并且它会在垃圾收集中花费大量时间,但是当我这样做时不会发生同样的情况同样通过查询 Data-Set2。
所以我得出结论,数据列表中的元素数量正在影响性能。
您是否在您的 cassandra 堆栈中看到类似的性能问题......?
【问题讨论】:
标签: performance cassandra cql