Computer Science › Software + Computação Distribuída

Sistemas Distribuídos III

0 de 23
  1. Broadcast de Ordem Total Construído sobre Consenso

    O broadcast de ordem total como a abstração de que sistemas replicados realmente precisam, como ele se reduz a uma sequência de instâncias de consenso, e por que os dois problemas são equivalentes.

    Ler →6 seções11 min
  2. Multi-Paxos: De uma Decisão a um Log Replicado

    Do Paxos de decisão única a um log replicado: um líder estável, pular a fase 1 nos slots seguintes, preencher lacunas, e o que a lição existente de Paxos deixou de fora sobre vivacidade.

    Ler →6 seções12 min
  3. Fast Paxos e Quóruns Flexíveis

    O Fast Paxos e o seu caminho rápido que pula o líder, com os quóruns maiores que ele paga, e depois o Flexible Paxos, que mostra que só os quóruns da fase 1 e da fase 2 precisam se intersectar.

    Ler →6 seções13 min
  4. Reconfiguração: Mudando a Composição do Cluster no Paxos e no Raft

    Como trocar o conjunto de réplicas sem perder segurança: entradas de configuração no log, o joint consensus e as mudanças de um servidor por vez do Raft, e a falha de maiorias disjuntas que eles evitam.

    Ler →6 seções13 min
  5. Detectores de Falha

    Detectores de falha não confiáveis como definidos por Chandra e Toueg, suas classes de completude e precisão, o detector mais fraco para consenso, e detectores por heartbeat e phi-accrual na prática.

    Ler →6 seções13 min
  6. Gerenciamento de Grupo e View Synchrony

    Group membership como uma sequência de views acordadas, a comunicação view-synchronous e como o modelo de virtual synchrony se relaciona com a replicação baseada em consenso.

    Ler →6 seções12 min
  7. Consistência Causal

    A consistência causal exige que cada processo veja alguma serialização das próprias operações e de todas as escritas que respeite o fecho transitivo da ordem de programa com a ordem writes-into. O modelo fica entre a consistência sequencial e a PRAM, é rastreado com vector clocks ou metadados explícitos de dependência, e o teorema costumeiro sobre ele trata, na verdade, da consistência causal em tempo real: sob falhas de omissão, nada mais forte que ela é alcançável com armazenamento sempre disponível e one-way convergent.

    Ler →6 seções10 min
  8. Consistência Causal Transacional

    Leituras de uma chave por vez não dão visão consistente de várias chaves, nem com causalidade. O COPS-GT acrescenta transações só de leitura em até duas rodadas, e o Cure define a Consistência Causal Transacional: transações interativas sobre snapshots causalmente consistentes, com visibilidade atômica e convergência por CRDTs. O modelo abre mão de invariantes entre transações concorrentes, de parte do frescor e de escritas recentes de um datacenter perdido.

    Ler →6 seções11 min
  9. Replicando um Banco de Dados: Eager vs Lazy, Primary-Copy vs Update-Everywhere e Certificação

    O espaço clássico de projeto da replicação de bancos de dados: quando as atualizações se propagam, quem pode originá-las, as cinco fases de Wiesmann e o modelo de Gray, em que deadlocks e reconciliações crescem com o cubo do número de nós. A certificação sobre atomic broadcast executa localmente, difunde read set e write set e deixa um teste determinístico decidir o mesmo em todo site, com one-copy serializability e sem atomic commit.

    Ler →6 seções13 min
  10. Gossip e Disseminação Epidêmica

    Algoritmos epidêmicos do trabalho da Xerox PARC: gossip em push, pull e push-pull, a velocidade com que um rumor se espalha, e a diferença entre anti-entropy e rumor mongering.

    Ler →6 seções13 min
  11. P2P Não Estruturado: Flooding, Super-Peers e BitTorrent

    Overlays não estruturados: flooding e seu custo, super-peers como meio-termo, e como o tit-for-tat e o rarest-first do BitTorrent trocam o problema de busca por um de disseminação.

    Ler →6 seções13 min
  12. Chord: Uma DHT em Anel com Lookup Logarítmico

    O anel de identificadores do Chord, successors e finger tables, por que um lookup leva um número logarítmico de hops, e como a stabilization lida com nós que entram e falham.

    Ler →6 seções13 min
  13. Kademlia e Pastry

    Duas DHTs que roteiam por dígitos compartilhados do identificador ou por distância XOR: os k-buckets do Kademlia, a tabela de roteamento do Pastry, e por que lookups paralelos e localidade importam na prática.

    Ler →6 seções14 min
  14. Publish-Subscribe sobre uma DHT

    Como construir publish-subscribe sobre um overlay estruturado: árvores de disseminação por tópico, como no Scribe, e como esse desenho se compara a um broker centralizado.

    Ler →6 seções13 min
  15. A Abstração de Shared Log: CORFU, Tango e vCorfu

    O shared log como primitiva: o sequenciador e a replicação conduzida pelo cliente do CORFU sobre flash, as estruturas de dados replicadas do Tango construídas em cima dele e os streams materializados do vCorfu.

    Ler →6 seções12 min
  16. Escalando Shared Logs: Ordem Parcial (FuzzyLog) e Replicar Primeiro, Ordenar Depois (Scalog)

    Dois caminhos para além de um sequenciador único: o FuzzyLog relaxa a ordem total em uma ordem parcial entre cores, e o Scalog replica os registros primeiro e os ordena depois.

    Ler →6 seções12 min
  17. Serverless com Estado sobre Shared Logs: Boki e FlexLog

    Um shared log como substrato de estado para funções serverless: as abstrações do Boki baseadas em log para workflows e transações, e a abordagem do FlexLog para o mesmo problema.

    Ler →6 seções13 min
  18. Shared Logs de Baixa Latência: LazyLog e SpecLog

    Como reduzir o custo de ordenação de um shared log sem abrir mão da ordem total: o LazyLog confirma o append antes de existir posição e fixa a ordem em segundo plano, antes que ela possa ser lida, e o SpecLog entrega registros numa ordem prevista para o consumidor computar enquanto a coordenação acontece, com a confirmação ainda limitando o que pode sair para fora.

    Ler →6 seções10 min
  19. Transações Determinísticas: Calvin

    A inversão do Calvin: as máquinas concordam com uma sequência global de transações antes de pegar qualquer lock, e cada réplica executa essa sequência de forma determinística, o que tira o two-phase commit do caminho e encurta o tempo em que locks ficam presos, ao custo de conjuntos de leitura e escrita declarados, de bloqueios que não podem ser contornados e de latência no sequenciamento.

    Ler →6 seções10 min
  20. Consenso Ordenado pela Rede: NOPaxos, Eris e Hydra

    Levar a ordenação para a rede e deixar a entrega confiável na aplicação: o multicast ordenado e não confiável do NOPaxos, os multi-stamps do Eris para transações entre shards e o Hydra, que combina relógios e números de sequência para dispensar um ponto único de serialização.

    Ler →6 seções11 min
  21. Metadados Causais para Geo-Replicação: Saturn

    O Saturn separa dados de metadados causais: uma árvore de serializadores propaga um label pequeno e de tamanho constante, cada datacenter recebe a própria serialização, e a troca entre latência de visibilidade e vazão encolhe e se muda para a configuração da árvore.

    Ler →6 seções10 min
  22. Capstone: Escolhendo um Projeto de Replicação e Ordenação para uma Carga de Trabalho

    Dada uma carga de trabalho concreta, cinco perguntas levam a uma escolha entre consenso, certificação, réplicas causais, shared logs, projetos determinísticos e ordenação na rede, com o custo calculado e cada decisão defendida contra seus modos de falha.

    Ler →6 seções12 min

Sistemas Distribuídos III

Part of the Computer Science curriculum.

Sort
1

Consenso Baseado em Líder no Modelo Síncrono

Consenso quando os atrasos de mensagem são limitados: escolha de líder por rodadas, o que um crash custa, o limite inferior de f+1 rodadas e por que este mundo simples é a referência contra a qual os protocolos assíncronos são medidos.

2

Broadcast de Ordem Total Construído sobre Consenso

O broadcast de ordem total como a abstração de que sistemas replicados realmente precisam, como ele se reduz a uma sequência de instâncias de consenso, e por que os dois problemas são equivalentes.

3

Multi-Paxos: De uma Decisão a um Log Replicado

Do Paxos de decisão única a um log replicado: um líder estável, pular a fase 1 nos slots seguintes, preencher lacunas, e o que a lição existente de Paxos deixou de fora sobre vivacidade.

4

Fast Paxos e Quóruns Flexíveis

O Fast Paxos e o seu caminho rápido que pula o líder, com os quóruns maiores que ele paga, e depois o Flexible Paxos, que mostra que só os quóruns da fase 1 e da fase 2 precisam se intersectar.

5

Reconfiguração: Mudando a Composição do Cluster no Paxos e no Raft

Como trocar o conjunto de réplicas sem perder segurança: entradas de configuração no log, o joint consensus e as mudanças de um servidor por vez do Raft, e a falha de maiorias disjuntas que eles evitam.

6

Detectores de Falha

Detectores de falha não confiáveis como definidos por Chandra e Toueg, suas classes de completude e precisão, o detector mais fraco para consenso, e detectores por heartbeat e phi-accrual na prática.

7

Gerenciamento de Grupo e View Synchrony

Group membership como uma sequência de views acordadas, a comunicação view-synchronous e como o modelo de virtual synchrony se relaciona com a replicação baseada em consenso.

8

Consistência Causal

A consistência causal exige que cada processo veja alguma serialização das próprias operações e de todas as escritas que respeite o fecho transitivo da ordem de programa com a ordem writes-into. O modelo fica entre a consistência sequencial e a PRAM, é rastreado com vector clocks ou metadados explícitos de dependência, e o teorema costumeiro sobre ele trata, na verdade, da consistência causal em tempo real: sob falhas de omissão, nada mais forte que ela é alcançável com armazenamento sempre disponível e one-way convergent.

9

Consistência Causal Transacional

Leituras de uma chave por vez não dão visão consistente de várias chaves, nem com causalidade. O COPS-GT acrescenta transações só de leitura em até duas rodadas, e o Cure define a Consistência Causal Transacional: transações interativas sobre snapshots causalmente consistentes, com visibilidade atômica e convergência por CRDTs. O modelo abre mão de invariantes entre transações concorrentes, de parte do frescor e de escritas recentes de um datacenter perdido.

10

Replicando um Banco de Dados: Eager vs Lazy, Primary-Copy vs Update-Everywhere e Certificação

O espaço clássico de projeto da replicação de bancos de dados: quando as atualizações se propagam, quem pode originá-las, as cinco fases de Wiesmann e o modelo de Gray, em que deadlocks e reconciliações crescem com o cubo do número de nós. A certificação sobre atomic broadcast executa localmente, difunde read set e write set e deixa um teste determinístico decidir o mesmo em todo site, com one-copy serializability e sem atomic commit.

11

Gossip e Disseminação Epidêmica

Algoritmos epidêmicos do trabalho da Xerox PARC: gossip em push, pull e push-pull, a velocidade com que um rumor se espalha, e a diferença entre anti-entropy e rumor mongering.

12

P2P Não Estruturado: Flooding, Super-Peers e BitTorrent

Overlays não estruturados: flooding e seu custo, super-peers como meio-termo, e como o tit-for-tat e o rarest-first do BitTorrent trocam o problema de busca por um de disseminação.

13

Chord: Uma DHT em Anel com Lookup Logarítmico

O anel de identificadores do Chord, successors e finger tables, por que um lookup leva um número logarítmico de hops, e como a stabilization lida com nós que entram e falham.

14

Kademlia e Pastry

Duas DHTs que roteiam por dígitos compartilhados do identificador ou por distância XOR: os k-buckets do Kademlia, a tabela de roteamento do Pastry, e por que lookups paralelos e localidade importam na prática.

15

Publish-Subscribe sobre uma DHT

Como construir publish-subscribe sobre um overlay estruturado: árvores de disseminação por tópico, como no Scribe, e como esse desenho se compara a um broker centralizado.

16

A Abstração de Shared Log: CORFU, Tango e vCorfu

O shared log como primitiva: o sequenciador e a replicação conduzida pelo cliente do CORFU sobre flash, as estruturas de dados replicadas do Tango construídas em cima dele e os streams materializados do vCorfu.

17

Escalando Shared Logs: Ordem Parcial (FuzzyLog) e Replicar Primeiro, Ordenar Depois (Scalog)

Dois caminhos para além de um sequenciador único: o FuzzyLog relaxa a ordem total em uma ordem parcial entre cores, e o Scalog replica os registros primeiro e os ordena depois.

18

Serverless com Estado sobre Shared Logs: Boki e FlexLog

Um shared log como substrato de estado para funções serverless: as abstrações do Boki baseadas em log para workflows e transações, e a abordagem do FlexLog para o mesmo problema.

19

Shared Logs de Baixa Latência: LazyLog e SpecLog

Como reduzir o custo de ordenação de um shared log sem abrir mão da ordem total: o LazyLog confirma o append antes de existir posição e fixa a ordem em segundo plano, antes que ela possa ser lida, e o SpecLog entrega registros numa ordem prevista para o consumidor computar enquanto a coordenação acontece, com a confirmação ainda limitando o que pode sair para fora.

20

Transações Determinísticas: Calvin

A inversão do Calvin: as máquinas concordam com uma sequência global de transações antes de pegar qualquer lock, e cada réplica executa essa sequência de forma determinística, o que tira o two-phase commit do caminho e encurta o tempo em que locks ficam presos, ao custo de conjuntos de leitura e escrita declarados, de bloqueios que não podem ser contornados e de latência no sequenciamento.

21

Consenso Ordenado pela Rede: NOPaxos, Eris e Hydra

Levar a ordenação para a rede e deixar a entrega confiável na aplicação: o multicast ordenado e não confiável do NOPaxos, os multi-stamps do Eris para transações entre shards e o Hydra, que combina relógios e números de sequência para dispensar um ponto único de serialização.

22

Metadados Causais para Geo-Replicação: Saturn

O Saturn separa dados de metadados causais: uma árvore de serializadores propaga um label pequeno e de tamanho constante, cada datacenter recebe a própria serialização, e a troca entre latência de visibilidade e vazão encolhe e se muda para a configuração da árvore.

23

Capstone: Escolhendo um Projeto de Replicação e Ordenação para uma Carga de Trabalho

Dada uma carga de trabalho concreta, cinco perguntas levam a uma escolha entre consenso, certificação, réplicas causais, shared logs, projetos determinísticos e ordenação na rede, com o custo calculado e cada decisão defendida contra seus modos de falha.