我总是插入数据PRIMARY KEY((site_name,date),time,id),而site_nname和date可以相同,时间是驯服字段,id(uuid)不同。所以我总是添加新数据。使用TTL插入数据(目前为3天)。所以,如果我不删除或更新,我可以禁用压缩吗?考虑到TTL的存在。这会有什么影响吗。此外,由于没有记录被删除,我可以禁用gc_grace时间吗?我想尽可能地减少服务器上的负载。如果有人能帮忙,我会非常感激的?
7ivaypg91#
TTL创建墓碑。因此,需要压实。如果您的数据是时间序列数据,您可以考虑新的日期分层压缩:http://www.datastax.com/dev/blog/datetieredcompactionstrategy。如果您使用TTL并将grace设置为0,那么除非您的集群是单节点集群,否则这是自找麻烦。恩典是在收集墓碑之前等待的时间。如果为0,则不会等待。这听起来不错,但实际上,这意味着“删除”可能不会在整个集群中传播,被删除的数据可能会重新出现(因为其他节点可能拥有它,最后一个当前值将“获胜”)。这种类型的数据称为僵尸数据。僵尸很坏。不要喂僵尸。你可以禁用自动压缩:http://www.datastax.com/documentation/cassandra/2.1/cassandra/tools/toolsDisableAutoCompaction.html。但是,我再次怀疑你会从中获得很多好处。再次查看日期分层压缩。
lyfkaqu12#
您可以分别永久禁用表(列族)上的自动压缩,如下所示(cql)
alter table <tablename> with compaction = { 'class':'CompactionStrategy', 'enabled':'false'}
enabled:false永久禁用该表上的自动压缩,但您可以随时使用“nodetoolcompact”命令进行手动压缩
lqfhib0f3#
您可以将gc宽限设置为0,但不能关闭压缩。如果你从不删除或更新,我想你可以关闭压缩。编辑:C*从2.0到更高版本的优化,完全适用于这种情况:https://issues.apache.org/jira/browse/CASSANDRA-4917关于TTL、墓碑和GC Grace http://mail-archives.apache.org/mod_mbox/cassandra-user/201307.mbox/%3CCALY91SNy=cxvcGJh6Cp171GnyXv+EURe4uadso1Kgb4AyFo09g@mail.gmail.com%3E
3条答案
按热度按时间7ivaypg91#
TTL创建墓碑。因此,需要压实。如果您的数据是时间序列数据,您可以考虑新的日期分层压缩:http://www.datastax.com/dev/blog/datetieredcompactionstrategy。
如果您使用TTL并将grace设置为0,那么除非您的集群是单节点集群,否则这是自找麻烦。恩典是在收集墓碑之前等待的时间。如果为0,则不会等待。这听起来不错,但实际上,这意味着“删除”可能不会在整个集群中传播,被删除的数据可能会重新出现(因为其他节点可能拥有它,最后一个当前值将“获胜”)。这种类型的数据称为僵尸数据。僵尸很坏。不要喂僵尸。
你可以禁用自动压缩:http://www.datastax.com/documentation/cassandra/2.1/cassandra/tools/toolsDisableAutoCompaction.html。但是,我再次怀疑你会从中获得很多好处。再次查看日期分层压缩。
lyfkaqu12#
您可以分别永久禁用表(列族)上的自动压缩,如下所示(cql)
enabled:false永久禁用该表上的自动压缩,但您可以随时使用“nodetoolcompact”命令进行手动压缩
lqfhib0f3#
您可以将gc宽限设置为0,但不能关闭压缩。如果你从不删除或更新,我想你可以关闭压缩。
编辑:C*从2.0到更高版本的优化,完全适用于这种情况:https://issues.apache.org/jira/browse/CASSANDRA-4917
关于TTL、墓碑和GC Grace http://mail-archives.apache.org/mod_mbox/cassandra-user/201307.mbox/%3CCALY91SNy=cxvcGJh6Cp171GnyXv+EURe4uadso1Kgb4AyFo09g@mail.gmail.com%3E