O mecanismo lockedLoadData precisa diminuir a carga no servidor.
Anteriormente, quando o cache de configuração era limpo em sites carregados com oi, todos os clientes geravam as mesmas informações que aumentam significativamente a carga da CPU / io.
Com lockedLoadData, apenas um cliente gera cache e outros esperam por ele.
Mais detalhes sobre como ele funciona.
A primeira chamada de função "obtém dados" e, se obtém os dados, apenas os retorna (portanto, se houver dados no cache, o código funcionará como o anterior e não usará bloqueios).
Se os dados não estiverem disponíveis e o bloqueio estiver bloqueado, tentamos carregar os dados até que os dados cheguem ou o bloqueio seja removido.
Se não houver bloqueio, criamos um bloqueio e geramos dados, salve-o no cache e removemos o bloqueio e retornamos os dados
PS: Enviamos essas alterações como um patch para um dos clientes com carga de até 20kRPM e funciona por pelo menos três meses, sem nenhum problema. Talvez o problema na sua customização / módulos (por exemplo, se eles quebraram o mecanismo de cache)