索引创建与删除同时执行造成的从库锁库

生产环境索引创建的太多,导致dml操作效率低下,需要清理一部分索引
操作时首先创建索引,防止索引删除后造成查询性能下降,等待主库索引创建完成,执行索引删除命令,此时Mongo副本集全部锁死,应用无法进行增删改查操作,通过客户端可以登录主库,正常进行增删改。
后期通过ycsb复盘,总结出以下几点:

软件信息
Mongo 3.6.23
Redhat 7.6
YCSB 0.17.0

因为是副本集,测试时YCSB连接信息配置如下:
admin:admin1234表示用户名密码
authSource为数据库
replicaSet表示副本集

mongodb.url=mongodb://admin:admin1234@192.168.124.30:27017,192.168.124.30:27018,192.168.224.30:27019/?authSource=admin&replicaSet=Repl01

压测过程未记录,如下是压测结果:

  • 索引会等待主库创建完,从库才会开始创建
  • 后台索引未创建完成,会阻塞当前集合的操作,不会阻塞其他集合的操作
    从库索引未创建阶段删除其他集合的索引,未造成死锁
  • 副本集阻塞后,将副本集hiden,重启压测工具,可正常提供服务
    压测工具没有重连机制,生产环境需要确认应用是否能重连,不能重连可能需要重启应用
  • 尝试kill副本集创建索引的线程,直接导致副本集进程crash
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值