Desmistificando Concorrência e Consistência em Sistemas Distribuídos
Recentemente, como parte do meu mestrado em Computação Aplicada na UTFPR, mergulhei num artigo chamado "Comprehending Concurrency and Consistency in Distributed Systems" (Nitin Naik, IEEE ISSE 2021...

Source: DEV Community
Recentemente, como parte do meu mestrado em Computação Aplicada na UTFPR, mergulhei num artigo chamado "Comprehending Concurrency and Consistency in Distributed Systems" (Nitin Naik, IEEE ISSE 2021). A discussão foi bem legal e, como já tem um certo tempo que não posto nada, decidi trazer isso para cá. Vamos falar um pouco sobre concorrência e consistência e ver alguns exemplos aplicados ao mundo real. Concorrência vs. Paralelismo (Não, não são a mesma coisa) Concorrência: É sobre lidar com várias coisas ao mesmo tempo. As tarefas se sobrepõem no tempo (estão em andamento), mas não rodam necessariamente no exato mesmo milissegundo. O objetivo aqui é esconder a latência. Paralelismo: É sobre fazer várias coisas no exato mesmo milissegundo. O objetivo é aumentar o throughput computacional, e isso exige hardware (múltiplos núcleos). De uma forma mais simples: concorrência é iniciar várias coisas, mas ir fazendo um pouco de cada. Quando a CPU fica ociosa esperando algo (como uma requisição