Protocolo de commit de duas fases

architectureEdit

em muitos casos o protocolo 2PC é distribuído em uma rede de computadores. É facilmente distribuído pela implementação de múltiplos componentes 2PC dedicados semelhantes um ao outro, tipicamente chamados gerentes de Transação (TMs; também referidos como agentes 2PC ou monitores de processamento de transação), que realizam a execução do Protocolo para cada transação (por exemplo, o X/Open XA do grupo aberto). As bases de dados envolvidas com uma operação distribuída, os participantes, tanto o coordenador como os participantes, registram-se para fechar o TMs (normalmente residindo nos respectivos nós de rede que os participantes) para terminar essa operação usando o 2PC. Cada transacção distribuída tem um conjunto ad hoc de TMs, o TMs para o qual os participantes na transacção se registam. Um líder, o coordenador TM, existe para cada transação para coordenar 2PC para ele, tipicamente o TM da base de dados do coordenador. No entanto, o papel de coordenador pode ser transferido para outro TM por razões de desempenho ou fiabilidade. Em vez de trocarem mensagens 2PC entre si, os participantes trocam as mensagens com os respectivos TMs. The relevant TMs communicate among themselves to execute the 2PC protocol schema above, “representing” the respective participants, for terminating that transaction. Com esta arquitetura, o protocolo é totalmente distribuído (não precisa de qualquer componente central de processamento ou estrutura de dados), e escala-se com o número de nós de rede (Tamanho da rede) efetivamente.

esta arquitetura comum também é eficaz para a distribuição de outros protocolos de compromisso atômico além de 2PC, uma vez que todos esses protocolos usam o mesmo mecanismo de votação e propagação de resultados para os participantes do protocolo.

Protocol optimizationsEdit

Database research has been done on ways to get most of the benefits of the two-phase commit protocol while reducing costs by protocol optimizations and protocol operations saving under certain system’s behavior assumpt.

presumível abortamento e CommitEdit Presumido

presumível abortamento ou commit Presumido são comuns tais otimizações. Uma suposição sobre o resultado das transações, quer commit, quer abortar, pode salvar ambas as mensagens e operações de registro pelos participantes durante a execução do protocolo 2PC. Por exemplo, quando se presume abortar, se durante a recuperação do sistema de falha nenhuma evidência registrada para cometer alguma transação é encontrada pelo procedimento de recuperação, então ele assume que a transação foi abortada, e age em conformidade. Isso significa que não importa se os abortos são registrados, e tal registro pode ser salvo sob esta suposição. Normalmente uma penalidade de operações adicionais é paga durante a recuperação de falhas, dependendo do tipo de otimização. Assim, a melhor variante de otimização, se houver, é escolhida de acordo com as estatísticas de resultados de falhas e transações.O protocolo Tree 2PC (também chamado aninhado 2PC, ou recursivo 2pc) é uma variante comum de 2PC em uma rede de computadores, que melhor utiliza a infra-estrutura de comunicação subjacente. Os participantes em uma transação distribuída são normalmente invocados em uma ordem que define uma estrutura de árvore, a árvore invocação, onde os participantes são os nós e as bordas são as invocações (links de comunicação). A mesma árvore é comumente utilizada para completar a transação por um protocolo 2PC, mas também outra árvore de comunicação pode ser utilizada para isso, em princípio. Em uma árvore 2PC o coordenador é considerado a raiz (“top”) de uma árvore de comunicação (árvore invertida), enquanto os participantes são os outros nós. O coordenador pode ser o nó que originou a transação (invocados recursivamente (transitivamente) os outros participantes), mas também outro nó na mesma árvore pode assumir o papel de coordenador em vez disso. 2PC mensagens do coordenador são propagadas “para baixo” a árvore, enquanto as mensagens para o coordenador são “recolhidos” por um participante de todos os participantes, abaixo, antes de enviar a mensagem apropriada “até” a árvore (exceto uma mensagem de interrupção, que é propagado “up” imediatamente após o recebimento ou se o participante inicia o anular).

o protocolo commit dinâmico de duas fases (Dynamic two-phase commitment, D2PC) é uma variante do Tree 2PC sem coordenador pré-determinado. Ela subsiste de várias otimizações que foram propostas anteriormente. As mensagens de acordo (votos sim) começam a propagar-se a partir de todas as folhas, cada folha ao completar suas tarefas em nome da transação (tornando-se pronto). Um nó intermediário (não Folha) envia pronto quando uma mensagem de acordo para o último nó vizinho (único) do qual a mensagem de acordo ainda não foi recebida. O coordenador é determinado dinamicamente por mensagens de acordo de corrida sobre a árvore de transação, no lugar onde eles colidem. Eles colidem em um nó de árvore de transação, para ser o coordenador, ou em uma borda de árvore. Neste último caso, um dos nós de duas Areias é eleito como um coordenador (qualquer nó). D2PC é o tempo ideal (entre todas as instâncias de uma árvore de transação específica, e qualquer implementação de Protocolo árvore 2PC específica; todas as instâncias têm a mesma árvore; cada instância tem um nó diferente como coordenador): Ao escolher um coordenador ideal, o D2PC compromete o coordenador e cada participante no tempo mínimo possível, permitindo a libertação mais rápida possível de recursos bloqueados em cada participante da operação (nó árvore).

Deixe uma resposta

O seu endereço de email não será publicado.