Monitorar e abortar uma construção de índice em andamento
MongoDBManutençãoComando
// Index builds in progress and their completion percentage:
db.getSiblingDB("admin").aggregate([
{ $currentOp: { allUsers: true } },
{ $match: { $or: [{ "command.createIndexes": { $exists: true } }, { desc: /^IndexBuildsCoordinator/ }] } },
{ $project: { opid: 1, desc: 1, ns: 1, secs_running: 1, msg: 1, progress: 1, "command.indexes.name": 1 } }
])
// Abort the build (on the primary; in a replica set it stops on all members):
db.musteri.dropIndex("idx_email")O que faz
Lista as construções de índice em execução com o número de documentos varridos e o percentual de progresso (progress.done / progress.total); se necessário, aborta a construção com dropIndex.
Quando usar
Para estimar quando um createIndex iniciado em uma collection grande vai terminar, ou para parar uma construção que gera carga no horário de pico.
Atenção
Aborte uma construção de índice com dropIndex/dropIndexes, não com killOp; em um replica set, rode-o no primário para que o abort se propague a todos os membros. Algumas operações DDL na collection esperam durante a construção. Um lock exclusivo curto é obtido no fim da construção; sob escritas muito pesadas, esse momento pode causar latência.