Saltar para o conteúdo

Consistência posterior

Origem: Wikipédia, a enciclopédia livre.

Consistência posterior ou consistência convergente é um modelo de consistência utilizado na computação distribuída com a finalidade de se atingir a alta disponibilidade, garantindo-se informalmente que, se nenhuma nova atualização de um dado for realizada, posteriormente todos os acessos a esse dado retornarão o último valor atualizado.[1] A consistência posterior, também chamada de replicação otimista, é amplamente implementada em sistemas distribuídos e tem origens nos primeiros projetos de computação móvel.[2] Geralmente, diz-se que um sistema que atingiu a consistência posterior convergiu ou alcançou a convergência da réplica.[3] A consistência posterior é uma garantia fraca. A maioria dos modelos de consistência mais fortes, como a Linearidade, são trivialmente posteriormente consistentes. Entretanto, um sistema que é meramente posteriormente consistente não costuma atender a restrições mais fortes.

Serviços Posteriormente Consistentes podem prover garantias semânticas BASE, acrônimo em inglês para as definições de Basically Available, Soft State, Eventual Consistency.[4][5]

  • Basicamente disponível (Basically Available): operações de leitura e escrita estão disponíveis em todos os nós de um cluster, ainda que falhas ocorram, mas sem qualquer tipo de garantia de consistência, ou seja, uma operação de escrita pode não ser persistida após conflitos serem reconciliados ou uma operação de leitura pode não corresponder à última escrita.
  • Estado soft (Soft State): sem a garantia de consistência, passado algum tempo, há apenas uma probabilidade p de que o estado do sistema tenha convergido.
  • Consistência posterior (Eventual Consistency): dado um conjunto de entradas, o sistema converge para um estado consistente após um período de tempo suficientemente longo.

A consistência posterior é, às vezes, criticada[6] como responsável pelo aumento da complexidade de sistemas distribuídos. Em parte, isso ocorre porque a consistência posterior é tão somente uma garantia de liveness, ou seja, um estado consistente é alcançado em algum momento. Entretanto, não há garantia de safety, isto é, o sistema pode retornar qualquer valor antes de convergir.

Da tradução de Eventual Consistency

[editar | editar código-fonte]

O termo Eventual Consistency, do inglês, pode ser encontrado traduzido para o português do Brasil como Consistência Eventual. Até mesmo edições em português de livros bastante conhecidos apresentam a tradução Consistência Eventual [7].

Entretanto, a palavra inglesa eventual significa algo que existe ou acontece ao fim de um processo ou período de tempo [8]. Em português, eventual indica algo casual, fortuito [9]. Portanto, eventual é um falso cognato [10][11].

Deste modo, o termo Consistência Eventual pode ser confuso e deve ser evitado, já que pode expressar uma ideia diferente da definição apresentada.

  1. Vogels, W. (2009). «Eventually consistent». Association for Computing Machinery. Communications of the ACM. 52: 40. 5 páginas. doi:10.1145/1435417.1435432 
  2. Terry, D. B.; Theimer, M. M.; Petersen, K.; Demers, A. J.; Spreitzer, M. J.; Hauser (1995). «Managing update conflicts in Bayou, a weakly connected replicated storage system». Proceedings of the fifteenth ACM symposium on Operating systems principles - SOSP '95. [S.l.: s.n.] 172 páginas. ISBN 978-0897917155. doi:10.1145/224056.224070 
  3. Petersen, K.; Spreitzer, M. J.; Terry, D. B.; Theimer, M. M.; Demers, A. J. (1997). «Flexible update propagation for weakly consistent replication». ACM SIGOPS Operating Systems Review. 31. 288 páginas. CiteSeerX 10.1.1.17.555Acessível livremente. doi:10.1145/269005.266711 
  4. Pritchett, Dan (maio de 2008). «BASE: An Acid Alternative: In partitioned databases, trading some consistency for availability can lead to dramatic improvements in scalability.». Queue (em inglês) (3): 48–55. ISSN 1542-7730. doi:10.1145/1394127.1394128. Consultado em 4 de maio de 2021 
  5. Bailis, Peter; Ghodsi, Ali (1 de março de 2013). «Eventual Consistency Today: Limitations, Extensions, and Beyond: How can applications be built on eventually consistent infrastructure given no guarantee of safety?». Queue (3): 20–32. ISSN 1542-7730. doi:10.1145/2460276.2462076. Consultado em 4 de maio de 2021 
  6. HYaniv Pessach (2013), Distributed Storage Distributed Storage: Concepts, Algorithms, and Implementations ed. , Amazon, OL 25423189M, Systems using Eventual Consistency result in decreased system load and increased system availability but result in increased cognitive complexity for users and developers 
  7. Tanenbaum, Andrew S. (2008). Sistemas distribuídos. Maarten Van Steen. São Paulo: Pearson Educación. OCLC 989815500 
  8. «eventual». dictionary.cambridge.org (em inglês). Consultado em 3 de maio de 2021 
  9. «Eventual». Michaelis On-Line. Consultado em 3 de maio de 2021 
  10. Babbel.com; GmbH, Lesson Nine. «Lista de falsos cognatos em inglês com 47 palavras para você não errar». A revista da Babbel. Consultado em 3 de maio de 2021 
  11. «Falsos cognatos (false friends) - Inglês». InfoEscola. Consultado em 3 de maio de 2021