Existe uma lista de problemas canônicos em sistemas distribuídos?

13

Na semana passada, eu estava lendo novamente o transcrito de Leslie de Lamport, de 1982, de uma conferência que ele deu sobre problemas resolvidos, problemas não resolvidos e não problemas em simultâneo . O artigo é de fácil leitura, mas uma das coisas que me fez pensar é a seguinte afirmação:

Algum problema pode ser considerado um problema de exclusão mútua ou um problema produtor-consumidor ou uma combinação dos dois?

Gostaria de saber se esta pergunta foi respondida para o caso de sistemas distribuídos.

Existe um conjunto de problemas de sistemas distribuídos canônicos dos quais todos os possíveis problemas de sistemas distribuídos podem ser reduzidos? O que é essa lista canônica?

Se não houver uma lista canônica, qual é a lista atual de problemas e que reduções existem?

Por exemplo, eu diria muito ingenuamente que os problemas de eleição e exclusão mútua de líderes podem ser reduzidos ao problema de consenso. Eu diria também que um instantâneo distribuído pode ser reduzido a um relógio distribuído. É verdade ou errado?

Se possível, eu preferiria que as respostas fizessem referência a um artigo / livro publicado que apoiasse suas alegações :)

marcmagransdeabril
fonte

Respostas:

9

Existe um conjunto de problemas de sistemas distribuídos canônicos dos quais todos os possíveis problemas de sistemas distribuídos podem ser reduzidos?

Não conheço essa lista publicada de problemas.

Lembre-se de que existem muitos modelos diferentes (e um tanto incomparáveis) na computação distribuída, desde o modelo síncrono "benigno" (sem falhas), onde os nós são executados em rodadas de bloqueio e todas as mensagens são entregues de maneira confiável em cada rodada, até o modelo assíncrono em que não há limites nas velocidades de processamento e atrasos nas mensagens e nos próprios nós podem travar ou enviar mensagens corrompidas. Para aumentar ainda mais essa variedade, existem outros requisitos e suposições ortogonais à sincronia e falhas: o conhecimento inicial dos nós (tamanho da rede, diâmetro da rede, grau máximo de nós, etc.), a capacidade de consultar detectores de falhas , se os nós têm identificadores exclusivos, atomicidade das etapas de envio e recebimento, tamanho máximo de uma única mensagem e muito mais.

2

Por outro lado, quando analisamos as falhas, as questões estão mais relacionadas a questões de solvabilidade como "O consenso é solucionável neste modelo?" ou "Podemos implementar esse detector de falha sofisticado sob essas suposições?"

Se não houver uma lista canônica, qual é a lista atual de problemas e que reduções existem?

Existem muitos exemplos dessas reduções em certos modelos de computação distribuída. Limitarei minha resposta às seguintes 2:

Cálculo local no modelo síncrono (sem falhas)

Ω(registron+registroΔ)nΔ2UMAUMA

Modelo assíncrono com falhas de falha

Aqui, o problema mais estudado é o consenso tolerante a falhas e suas muitas variações, uma vez que implementar primitivas básicas como transmissão atômica e / ou um sincronizador requer consenso.

S PTPS .

PQPQk acordo com o conjunto , o detector de falha mais fraco ainda está aberto [6].

Por exemplo, eu diria muito ingenuamente que os problemas de eleição e exclusão mútua de líderes podem ser reduzidos ao problema de consenso.

Claro, se você pode resolver o consenso, você imediatamente tem um algoritmo para a eleição do líder: basta usar o ID de cada nó como entrada para o algoritmo de consenso. O caminho oposto ocorre apenas nos modelos em que é garantido que o líder é finalmente conhecido por todos.

[1] Pierre Fraigniaud: Complexidades computacionais distribuídas: você é viciado em volvo ou obcecado por nascar? PODC 2010. http://doi.acm.org/10.1145/1835698.1835700

[2] Fabian Kuhn, Thomas Moscibroda, Roger Wattenhofer: computação local: limites inferiores e superiores. CRR abs / 1011.5470 (2010) http://arxiv.org/abs/1011.5470

[3] Tushar Deepak Chandra, Sam Toueg: Detectores de falhas não confiáveis ​​para sistemas distribuídos confiáveis. J. ACM 43 (2): 225-267 (1996). http://doi.acm.org/10.1145/226643.226647

[4] Prasad Jayanti, Sam Toueg: Todo problema tem um detector de falhas mais fraco. PODC 2008: 75-84. http://doi.acm.org/10.1145/1400751.1400763

[5] Tushar Deepak Chandra, Vassos Hadzilacos, Sam Toueg: o mais fraco detector de falhas para resolver consensos. J. ACM 43 (4): 685-722 (1996) http://doi.acm.org/10.1145/234533.234549

[6] Michel Raynal: detectores de falhas para resolver o acordo assíncrono do conjunto k: um vislumbre dos resultados recentes. Boletim do EATCS 103: 74-95 (2011) http://albcom.lsi.upc.edu/ojs/index.php/beatcs/article/view/61

Pedro
fonte
1
Hagit Attiya e Faith Ellen têm um próximo livro intitulado "Resultados de impossibilidade para computação distribuída".
Kaveh