O que é o controle de concorrência distribuída?
O controle de concorrência distribuído é uma estratégia que espalha a responsabilidade pelo controle de concorrência por toda a rede. Simultaneidade refere-se a ter todos os computadores trabalhando com a mesma versão dos mesmos arquivos. Depois que os computadores são conectados em rede, as preocupações com a concorrência - problemas em manter todos os arquivos na rede idênticos para todos os usuários - passam à frente, pois vários usuários podem ter acesso simultâneo a todos os arquivos e pastas autorizados no sistema. Sem impor a simultaneidade, esses arquivos podem facilmente se tornar inconsistentes de um computador para o outro, à medida que os usuários alteram e manipulam dados em tempo real, resultando em todos perdendo rapidamente a capacidade de confiar nos arquivos de rede à medida que as alterações ocorrem. O controle de simultaneidade mantém os arquivos consistentes em toda a rede, evitando essa preocupação.
A principal vantagem do controle de simultaneidade distribuído é que ele espalha a carga de trabalho para problemas de simultaneidade em vários computadores, reduzindo a sobrecarga em cada um. Sem controle de concorrência distribuído, manter a concorrência em uma rede poderia facilmente se tornar um trabalho de período integral para um único computador, tornando-o inútil para qualquer outra coisa. Com o controle de simultaneidade distribuído, cada computador na rede pode ajudar a compartilhar a carga de trabalho, garantindo que os usuários finais ainda possam usar os terminais para outras tarefas da rede.
O bloqueio estrito e forte de duas fases é um dos tipos mais comuns de controle de simultaneidade distribuído. No forte bloqueio estrito de duas fases, assim que um arquivo de rede individual é acessado, ele é bloqueado para operações de leitura e gravação até o término do acesso. Isso significa que apenas um usuário na rede pode alterar um arquivo de cada vez, tornando impossível que o arquivo fique fora da concorrência na rede. Depois que o usuário final salva as alterações no arquivo ou sai completamente do arquivo, os bloqueios são removidos, permitindo que outro usuário no sistema lide posteriormente com o arquivo novamente.
Uma das maiores desvantagens do forte bloqueio estrito de duas fases é a sobrecarga adicional que coloca nos recursos da rede. Cada arquivo em cada usuário deve ser reservado pela rede como "bloqueado" e essas informações devem ser mantidas na memória até que o bloqueio termine. No total, com centenas de usuários finais executando centenas de arquivos ao mesmo tempo, isso pode facilmente canibalizar uma parte significativa da memória na rede. Essa excessiva canibalização da memória pode diminuir a velocidade das redes com designs de hardware ineficientes ou desatualizados.