从this跟进,在等待二级索引构建完成时终止(SIGINT等)sstableloader进程是否安全?即,在二级索引构建之后,该工具是否执行任何其他关键操作?如果我不允许该工具单独退出,是否会回滚导入?
如果终止sstableloader进程是安全的,那么在前一个实例的二级索引构建尚未完成时启动另一个进程也是安全的吗?
最后,有没有办法让索引构建为异步,以便工具在退出之前不会等待它完成?
编辑:
如果终止sstableloader进程本身是不安全的,我是否可以通过' nodetool stop INDEX_BUILD'来至少停止索引构建过程。它会导致sstableloader正常退出吗?取消的索引构建是否会在后台自动重试?
答案 0 :(得分:2)
SSTableLoader通过终止它不会产生任何不良影响。您可以多次在同一组SSTable上运行它,而不必担心数据损坏。
SSTable索引构建的后续操作会在后台自动发生。您可以增加并发压缩线程的数量。可以同时构建多个索引。
构建索引非常耗时,并且通常比摄取时间更长,但数据可供读取和写入。
您可以手动停止index_build,我不确定这会导致SSTableLoader退出(因为我从未尝试过)但是您需要告诉cassandra重建使用nodetool的索引。