Cassandra-在插入过程中截断表

问题描述 投票:1回答:2

我想了解truncate命令在Cassandra(版本3.9)中如何工作,以便能够知道在以下情况下会发生什么:

  • 我在生产中的表上有大约100GB的数据,该表需要被截断。
  • 我想截断该表,但同时每秒将有数百个请求同时在进行插入。

从理论上讲,我试图理解这一点。

  • truncate是否会尝试在表上获取某种锁,然后才能继续?并可能停止插入请求或它本身超时?
  • 或者truncate会随着请求的进入依次进行,而在插入请求之后将创建额外的行,而在截断之后我将剩下少量的行。

我只是试图回收空间,因此,对于在truncate命令之后运行的插入请求中是否剩余少量数据,我并不特别担心。

我只是想了解您是否希望此操作成功完成,否则将失败/超时。

我将尝试在较小的群集上运行类似的方案,但是我不确定这是否是理解实际行为的良好替代方案。任何输入都会有所帮助。

cassandra truncate
2个回答
0
投票

Truncate在执行时向所有节点发送一条消息,要求删除所有SSTable,您将仅获得发出截断后收到的那些Upsert的信息。


0
投票

我为自己尝试过。在由2个节点组成的Cassandra集群上,我在后台以每秒约160个请求的速度进行了插入,并在具有约200,000条记录的同一张表上运行了截断查询。

© www.soinside.com 2019 - 2024. All rights reserved.