Ir para o conteúdo

Modelos Centrados nos Clientes

Ideia básica

Evitar sincronização global focando-se no que os clientes vêem do sistema. Se para os clientes parecer consistente, tudo bem.

  • Consistência Eventual

    • Se nenhuma escrita ocorrer em período considerável de tempo, os clientes gradualmente se sincronizarão e ficarão consistentes.
    • Se clientes sempre acessarem as mesmas réplicas, terão impressão de consistência.
  • Garantias são do ponto de vista de um cliente.

    • Leituras monotônicas
    • Escrita monotônicas
    • Leia suas escritas
    • Escritas seguem leituras.
Modelo de Sistema

Cliente pode se mover antes de sua última operação ter replicado do servidor onde estava para o novo servidor.

Leituras Monotônicas

Garantia

Se um processo lê o valor de um item \(x\), qualquer leitura sucessiva de \(x\) retornará o mesmo valor ou um mais recente.

  • Toda vez que se conecta a um servidor de email, seu cliente lê novas mensagens, caso haja.
  • O cliente nunca esquece uma mensagem, mesmo que ainda não esteja no servidor conectado por último.
  • WS(\(x_i\)) -- operações de escrita (write set) que levaram a variável \(x\) a ter o valor \(x_i\).
  • WS(\(x_i;x_j\)) -- operações de escrita relativas a \(x_j\) incluem operações de escrita relativas a \(x_i\)

Escritas Monotônicas

Garantia:

Se um processo escreve em item \(x\), então esta operação deve terminar antes que qualquer escrita sucessiva em \(x\) possa ser executada pelo mesmo processo.

  • Em um sistema de arquivos na rede, a escrita do conteúdo de um arquivo, em certa posição, só pode ser feita se escritas anteriores já estão registradas no arquivo, independentemente de o cliente contactar novo servidor de arquivos.

Leia suas Escritas

Garantia:

Se um processo escreve em item \(x\), então leituras sucessivas no mesmo item pelo mesmo processo devem refletir tal escrita.

  • Atualizar código fonte de uma página e exigir que o navegador carrega a nova versão.

Escritas seguem Leituras

Garantia:

Se um processo lê um item \(x\), então escritas sucessivas no mesmo item só podem ser completadas se o mesmo reflete o valor lido anteriormente.

  • Só é permitido enviar uma resposta a uma mensagem se a mensagem em si é vista, independentemente do cliente ter se movimentado.