O que é eventual consistência?

A consistência eventual é um modelo de programação no qual os programadores assumem que, durante um período de tempo suficiente e sem alterações em um sistema, a versão atual de um programa específico acabará por distribuir até que cada réplica do programa seja consistente. O conceito de consistência eventual é usado em métodos de programação, como replicação otimista, memória compartilhada distribuída e transações distribuídas. Em relação aos bancos de dados, a consistência eventual é alcançada através de um processo de três etapas. Primeiro, as informações distribuídas são disponibilizadas no sistema; Isto é seguido por um estado suave, no qual diferentes usuários ainda podem estar trabalhando com diferentes versões dos dados; E, finalmente, a consistência é alcançada e todos os computadores têm acesso a dados idênticos. Nos primeiros segundos após a divulgação de uma atualização, ninguém a terá; Não é suficiente TiEu já passou para os usuários do software baixar e instalar a atualização. Este é o estado "disponível"; A atualização existe, mas ainda não foi distribuída. Com o tempo, quando os usuários baixam a atualização, alguns terão e outros não. Depois de passar o tempo, porém, todo mundo que usa o software terá atualizado para a versão mais recente. Esta é a premissa por trás do estado de consistência eventual: com tempo suficiente, qualquer atualização se propaga totalmente em todo o sistema.

Como o sistema trabalha para eventual consistência, os conflitos são inevitáveis. Isso ocorre quando a versão do programa ou as informações atualmente no computador falha em corresponder à "versão do modelo" do programa. Os programas geralmente são criados para reconhecer esses conflitos e gerenciá -los. Quando os arquivos em um computador específico são mais antigos que a mais recente versão modelo do software ou dados em questão, o sistema geralmente solicitao usuário para iniciar uma atualização para resolver a disparidade.

Três métodos possíveis estão disponíveis para efetuar essas resoluções: gravar reparo, ler reparos e reparo assíncrono. Todos esses métodos trazem a versão do programa ou dados de acordo com o modelo consistente. A principal diferença entre eles tem a ver com a maneira como o sistema obtém a operação de reparo. Todas essas operações têm benefícios e desvantagens.

Em um reparo de gravação, as alterações no código armazenadas no computador são feitas durante uma operação de gravação, quando o computador já está escrevendo algo no disco rígido do sistema. Isso repara a inconsistência, alinhando o programa ou os dados com o modelo, mas também diminui temporariamente a operação de gravação original. Para um reparo de leitura, a operação corretiva ocorre durante um ciclo de leitura do disco rígido. Isso, por sua vez, diminui a operação de leitura. Em reparo assíncrono, o reparo ocorre quando nem uma operação de leitura nem gravação ocorre, levando ao CONSUMING de ciclos ociosos na CPU.

OUTRAS LÍNGUAS

Este artigo foi útil? Obrigado pelo feedback Obrigado pelo feedback

Como podemos ajudar? Como podemos ajudar?