我想了解truncate
命令在Cassandra(版本3.9)中如何工作,以便能够知道在以下情况下会发生什么:
从理论上讲,我试图理解这一点。
truncate
是否会尝试在表上获取某种锁,然后才能继续?并可能停止插入请求或它本身超时?truncate
会随着请求的进入依次进行,而在插入请求之后将创建额外的行,而在截断之后我将剩下少量的行。我只是试图回收空间,因此,对于在truncate命令之后运行的插入请求中是否剩余少量数据,我并不特别担心。
我只是想了解您是否希望此操作成功完成,否则将失败/超时。
我将尝试在较小的群集上运行类似的方案,但是我不确定这是否是理解实际行为的良好替代方案。任何输入都会有所帮助。
Truncate在执行时向所有节点发送一条消息,要求删除所有SSTable,您将仅获得发出截断后收到的那些Upsert的信息。
我为自己尝试过。在由2个节点组成的Cassandra集群上,我在后台以每秒约160个请求的速度进行了插入,并在具有约200,000条记录的同一张表上运行了截断查询。