Numa investigação publicada na revista ACM Computing Surveys, Paulo Sérgio Almeida, investigador do INESC TEC, sintetiza o conhecimento existente sobre abordagens aos Conflict-free Replicated Data Types, tópico que tem vindo a explorar na última década. Estes permitem replicação em sistemas distribuídos com resolução automática de conflitos, oferecendo grande disponibilidade — mesmo perante falhas de comunicação.
A necessidade de armazenar grandes quantidades de dados, nomeadamente em estruturas de armazenamento distribuídas por múltiplos computadores numa mesma rede — os chamados sistemas distribuídos — pode acarretar problemas ao nível da disponibilidade dos dados e da tolerância a falhas. Estas questões são ampliadas quando se considera por um lado, a tendência atual rumo à computação em nuvem, com centros de dados espalhados pelo mundo, sujeitos a partições, mas por outro as abordagens local-first, com dados locais, e comunicação direta entre os intervenientes, independentemente da nuvem.
Replicar dados apresenta-se como uma técnica cada vez mais explorada e que visa melhorar estes serviços, apesar de esta não estar também livre de problemas. Por exemplo, atualizações simultâneas em múltiplas réplicas dos mesmos dados — sem que exista a coordenação atempada dos computadores que acolhem estas réplicas — podem resultar em inconsistências entre as mesmas, as quais não poderão, regra geral, ser resolvidas. Como tal, muito do trabalho feito em sistemas distribuídos tem se focado em evitar atualizações simultâneas dos dados. Mas tais abordagens têm consequências negativas na disponibilidade.
Neste âmbito, os Conflict-free Replicated Data Types (CRDTs) são um tipo de dados replicados para serem utilizados em sistemas distribuídos, onde as diferentes réplicas evoluem independentemente, mas vão convergindo automaticamente para o mesmo estado. A sua utilização ocorre, sobretudo, em sistemas que privilegiam disponibilidade e baixa latência no acesso, sendo tolerantes a partições de rede.
Em “Approaches to Conflict-free Replicated Data Types”, Paulo Sérgio Almeida, investigador do INESC TEC, parte da investigação que serviu de base à sua lição das provas de agregação para sintetizar o conhecimento essencial sobre as abordagens aos CRDTs, mas também para ser uma fonte de referência sobre os tipos de dados replicados para permitir que investigadores e pessoas que os concebem consigam adquirir os conceitos fundamentais e terem apontadores para a literatura.
Tal como Paulo Sérgio Almeida explica neste trabalho publicado na revista ACM Computing Surveys, classificada como Q1, “os sistemas distribuídos clássicos almejam atingir consistência forte através de máquinas de estado replicadas, mas se é verdade que com este processo performance elevada é possível, uma consistência forte em sistemas com grande escala espacial tem custos, nomeadamente no tempo de resposta e na perda de disponibilidade quando ocorrem partições de rede”.
Se considerarmos negócios online de escala mundial — como é o caso da Amazon — qualquer perturbação, por mais breve que seja, pode representar consequências financeiras significativas, mas também ao nível da confiança do consumidor. Os CRDTs já foram aplicados com sucesso na indústria, o que permitiu a conceção de sistemas que mantêm um tempo de resposta curto mesmo com grande escala espacial.
O investigador mencionado na notícia tem vínculo ao INESC TEC e à U.Minho.