【发布时间】:2019-04-14 08:56:11
【问题描述】:
我有初始数据,当加载到 Cassandra 中时,显示的总大小为 3.5GB
之后,我进行重读(例如每秒 10k 次读取)和适度更新(例如每秒 1k 次更新),但在更新中,列大小之一被更新为更大的大小,使得行的总大小从 1k 增加到几乎 5k
存储的问题是节点的大小不断增加,甚至达到 300GB 并且只会上升
Compaction 正在运行,读取性能不断下降。 Cassandra 在将行从 2k 更新到 5k 时遇到问题吗?
这是一台 AWS 30GB RAM 机器,具有 16 个处理器和 1TB SSD,已激活 32k IOPS。压缩吞吐量设置为 256,压缩器设置为 8,读取的偏差仍在继续,SS 表的大小仍在增加
在 1 天的时间里,每秒读取次数从每秒 22k 下降到每秒 5k
请告诉我配置有什么问题
【问题讨论】:
-
在更新时你是否重复更新同一行?您是更新整行还是仅更新一列?您能在这里提供您的架构和查询吗?
-
首先预填充了 3000 万行,然后从初始大小 2k 到 5k 依次逐一更新。所有值都是随机的,尤其是与行中所有列相比大小最大的那一列
-
能否包含现有架构(包括压缩设置)和 tablestats 输出?
-
您使用哪种压缩策略?您能否将“nodetool compactionstats”的输出以及 ssh 发布到节点并检查数据目录中存在多少 SSTable 文件?另外,您使用的是哪个版本的 Cassandra?
-
分级压缩挂起任务:582 - t.cc: 299 - t.ss: 283