gestão de dados partilhados em ambientes de computação móvel
gestão de dados partilhados em ambientes de computação móvel gestão de dados partilhados em ambientes de computação móvel
58 CAPÍTULO 4. DESCRIÇÃO DAS FUNCIONALIDADES PRINCIPAIS DO SISTEMA DOORS à da ordenação total usando um sequenciador). Para garantir a execução correcta dos blocos só-uma-vez usa-se a mesma aproximação utilizada no componente de reconciliação ordem causal pessimista. Quando se usam técnicas de estabilidade, a falha definitiva de um qualquer servidor impede a orde- nação de novas operações. No caso de todas as falhas nos servidores serem temporárias, garante-se que todas as operações são finalmente ordenadas desde que todos os servidores continuem a participar em sessões de sincronização, mesmo que não exista nenhum “momento” em que todos os servidores estejam activos. As múltiplas réplicas de um coobjecto convergem para um estado comum passando pelos mesmos estados intermédios. Em cada momento existe uma réplica que executou um maior número de operações (e cujo estado se pode definir como estado oficial actual do coobjecto). No entanto, apenas é possível determinar a sua identidade comparando o estado das várias réplicas. 4.1.4.3 Consenso/eleição/quorum As técnicas apresentadas anteriormente para ordenar totalmente as operações executadas num coobjecto apresentam algumas limitações na tolerância a falhas. Assim, no caso da utilização de uma réplica sequenciadora, a falha do sequenciador impede o progresso do sistema, i.e., a ordenação de novas men- sagens. No caso da utilização de técnicas de verificação de estabilidade, a falha definitiva de um servidor impede o progresso do sistema (até o servidor ser removido do grupo de replicadores do volume). Para ultrapassar as limitações anteriores é possível implementar técnicas de ordenação por consenso. Neste caso, o sistema pode progredir desde que exista um qualquer quorum [56, 121] de réplicas activas. Usando técnicas de consenso, a ordenação das operações faz-se em rondas sucessivas. Em cada ronda, as réplicas de um coobjecto executam um algoritmo de consenso [102] no qual decidem qual a operação (ou conjunto de operações) a ordenar. Os algoritmos de consenso propostos em [70] e [82], baseados na utilização de comunicação epi- démica, podem ser implementados de forma imediata no sistema DOORS. Nestes algoritmos, em cada ronda, cada servidor deve votar em uma e uma só operação. A operação a ser executada é aquela que obtiver um quorum de votos em [70] ou a maioria dos votos em [82]. Enquanto no algoritmo [70] é pos- sível a existência de rondas em que nenhuma operação é ordenada, em [82] selecciona-se sempre uma operação. Em ambos os algoritmos existem situações em que a decisão apenas pode ser tomada após conhecer o voto de todos os servidores, o que é consistente com a conhecida impossibilidade de definir um algoritmo de consenso que termine em todas as situações num sistema distribuído assíncrono [52]. Para contornar esta impossibilidade foram propostos vários algoritmos usando diferentes aproximações, entre as quais a utilização de detectores de falhas [3, 72, 110] e aleatoriedade [15].
4.1. RECONCILIAÇÃO 59 No decurso do trabalho que conduziu a esta dissertação explorou-se a possibilidade de desenvolver e implementar um componente de reconciliação baseado na utilização de um algoritmo de consenso 6 . Este componente teria como objectivo ultrapassar as limitações na tolerância a falhas expostas anteriormente. No entanto, um estudo desenvolvido num ambiente de larga escala (a Internet) [9] mostra que as falhas de comunicação limitam a disponibilidade dos sistemas de quorum. Nos ambientes de larga escala, o melhor sistema de quorum parece ser obtido limitando os servidores utilizados a uma única rede local. No âmbito de uma rede local, a forte correlação nas falhas dos servidores (as quais são explicadas pela dependência de um serviço de DNS comum, de uma fonte de energia comum, de um sistema distribuído de ficheiros comum, etc.) limita a melhoria de disponibilidade obtida pela utilização de um sistema de quorum face ao recurso a um servidor único. Assim, como os algoritmos de consenso requerem que exista um quorum de servidores activos, parece não ser clara a vantagem na utilização de um componente de reconciliação usando técnicas de consenso para ultrapassar as limitações na tolerância a falhas, face à utilização do componente de reconciliação que usa um sequenciador. Este facto, conjugado com o elevado número de mensagens envolvidas num algoritmo de consenso (i.e., mensagens necessárias para ordenar cada operação ou conjunto de operações), levou a que não se tivesse implementado nenhum componente de reconciliação utilizando técnicas de consenso. 4.1.5 Transformação de operações A execução pela mesma ordem em todas as réplicas de um conjunto de operações executadas concor- rentemente garante a equivalência final das várias réplicas. No entanto, como cada operação vai ser executada num estado do coobjecto diferente do observado aquando da execução (submissão) original da operação, os seus efeitos podem ser diferentes dos esperados pelo utilizador. Para solucionar este problema foi proposto que, antes de executar uma operação numa réplica, a operação fosse transformada para incluir os efeitos das operações não conhecidas aquando da execução inicial da operação. Desta forma, as intenções do utilizador são respeitadas. Vários algoritmos foram propostos utilizando esta ideia [46, 159, 118, 158]. Esta aproximação tem o inconveniente de requerer a definição de uma ou várias funções capazes de transformar as operações. No caso geral, definir uma função de transformação de operações pode ser bastante complexo, pelo que esta técnica tem sido utilizada quase exclusivamente no âmbito dos editores cooperativos síncronos. No entanto, os exemplos apresentados na literatura e a experiência obtida com o sistema DOORS, parecem sugerir que esta técnica pode ser usada facilmente nas seguintes situações: anular a execução de operações idênticas; e ajustar parâmetros que contêm posições absolutas. No protótipo do sistema DOORS estendeu-se o componente de reconciliação ordem total optimista 6 No âmbito deste trabalho, chegaram a ser produzidos alguns resultado relativos à teoria de sistemas de quorum [127].
- Page 25 and 26: 1.3. VISÃO GERAL E CONTRIBUIÇÕES
- Page 27 and 28: Capítulo 2 Princípios gerais No c
- Page 29 and 30: 2.2. MOTIVAÇÃO - ALGUMAS APLICAÇ
- Page 31 and 32: 2.3. PRINCÍPIOS 13 garantir a disp
- Page 33 and 34: 2.3. PRINCÍPIOS 15 obter o estado
- Page 35 and 36: 2.3. PRINCÍPIOS 17 sobre a evoluç
- Page 37 and 38: 2.3. PRINCÍPIOS 19 2.3.6 Invocaç
- Page 39 and 40: 2.3. PRINCÍPIOS 21 solúveis). As
- Page 41 and 42: Capítulo 3 Apresentação do siste
- Page 43 and 44: 3.1. MODELO GERAL 25 para a activid
- Page 45 and 46: 3.1. MODELO GERAL 27 Aplicação At
- Page 47 and 48: 3.2. FRAMEWORK DE COMPONENTES: PRIN
- Page 49 and 50: 3.2. FRAMEWORK DE COMPONENTES: PRIN
- Page 51 and 52: 3.2. FRAMEWORK DE COMPONENTES: PRIN
- Page 53 and 54: 3.2. FRAMEWORK DE COMPONENTES: PRIN
- Page 55 and 56: 3.3. FRAMEWORK DE COMPONENTES: COMP
- Page 57 and 58: 3.3. FRAMEWORK DE COMPONENTES: COMP
- Page 59 and 60: 3.3. FRAMEWORK DE COMPONENTES: COMP
- Page 61 and 62: 3.3. FRAMEWORK DE COMPONENTES: COMP
- Page 63 and 64: 3.3. FRAMEWORK DE COMPONENTES: COMP
- Page 65 and 66: 3.4. FRAMEWORK DE COMPONENTES: IMPL
- Page 67 and 68: 3.4. FRAMEWORK DE COMPONENTES: IMPL
- Page 69 and 70: Capítulo 4 Descrição das funcion
- Page 71 and 72: 4.1. RECONCILIAÇÃO 53 Segundo, um
- Page 73 and 74: 4.1. RECONCILIAÇÃO 55 4.1.3 Ordem
- Page 75: 4.1. RECONCILIAÇÃO 57 4.1.4.2 Ver
- Page 79 and 80: 4.3. INVOCAÇÃO CEGA 61 4.3 Invoca
- Page 81 and 82: 4.4. INTEGRAÇÃO DE SESSÕES SÍNC
- Page 83 and 84: 4.4. INTEGRAÇÃO DE SESSÕES SÍNC
- Page 85 and 86: 4.4. INTEGRAÇÃO DE SESSÕES SÍNC
- Page 87 and 88: Capítulo 5 Avaliação do modelo d
- Page 89 and 90: 5.1. EDITOR MULTI-SÍNCRONO DE DOCU
- Page 91 and 92: 5.1. EDITOR MULTI-SÍNCRONO DE DOCU
- Page 93 and 94: 5.1. EDITOR MULTI-SÍNCRONO DE DOCU
- Page 95 and 96: 5.2. AGENDA PARTILHADA 77 Figura 5.
- Page 97 and 98: 5.2. AGENDA PARTILHADA 79 de awaren
- Page 99 and 100: Capítulo 6 Núcleo do sistema DOOR
- Page 101 and 102: 6.1. COOBJECTOS 83 o mesmo estado i
- Page 103 and 104: 6.2. SERVIDORES 85 global a associa
- Page 105 and 106: 6.2. SERVIDORES 87 segundo servidor
- Page 107 and 108: 6.2. SERVIDORES 89 6.2.2 Sincroniza
- Page 109 and 110: 6.2. SERVIDORES 91 6.2.3 Serviço d
- Page 111 and 112: 6.2. SERVIDORES 93 ao cliente compl
- Page 113 and 114: 6.2. SERVIDORES 95 • Emulação d
- Page 115 and 116: 6.3. CLIENTES 97 do coobjecto consi
- Page 117 and 118: 6.3. CLIENTES 99 seguinte informaç
- Page 119 and 120: 6.3. CLIENTES 101 A propagação as
- Page 121 and 122: Capítulo 7 Apresentação do siste
- Page 123 and 124: 7.1. MODELO GERAL 105 encomenda de
- Page 125 and 126: 7.2. ARQUITECTURA 107 BD réplica C
4.1. RECONCILIAÇÃO 59<br />
No <strong>de</strong>curso do trabalho que conduziu a esta dissertação explorou-se a possibilida<strong>de</strong> <strong>de</strong> <strong>de</strong>senvolver e<br />
impl<strong>em</strong>entar um componente <strong>de</strong> reconciliação baseado na utilização <strong>de</strong> um algoritmo <strong>de</strong> consenso 6 . Este<br />
componente teria como objectivo ultrapassar as limitações na tolerância a falhas expostas anteriormente.<br />
No entanto, um estudo <strong>de</strong>senvolvido num ambiente <strong>de</strong> larga escala (a Internet) [9] mostra que as<br />
falhas <strong>de</strong> comunicação limitam a disponibilida<strong>de</strong> dos sist<strong>em</strong>as <strong>de</strong> quorum. Nos <strong>ambientes</strong> <strong>de</strong> larga escala,<br />
o melhor sist<strong>em</strong>a <strong>de</strong> quorum parece ser obtido limitando os servidores utilizados a uma única re<strong>de</strong> local.<br />
No âmbito <strong>de</strong> uma re<strong>de</strong> local, a forte correlação nas falhas dos servidores (as quais são explicadas pela<br />
<strong>de</strong>pendência <strong>de</strong> um serviço <strong>de</strong> DNS comum, <strong>de</strong> uma fonte <strong>de</strong> energia comum, <strong>de</strong> um sist<strong>em</strong>a distribuído<br />
<strong>de</strong> ficheiros comum, etc.) limita a melhoria <strong>de</strong> disponibilida<strong>de</strong> obtida pela utilização <strong>de</strong> um sist<strong>em</strong>a<br />
<strong>de</strong> quorum face ao recurso a um servidor único. Assim, como os algoritmos <strong>de</strong> consenso requer<strong>em</strong> que<br />
exista um quorum <strong>de</strong> servidores activos, parece não ser clara a vantag<strong>em</strong> na utilização <strong>de</strong> um componente<br />
<strong>de</strong> reconciliação usando técnicas <strong>de</strong> consenso para ultrapassar as limitações na tolerância a falhas, face<br />
à utilização do componente <strong>de</strong> reconciliação que usa um sequenciador. Este facto, conjugado com o<br />
elevado número <strong>de</strong> mensagens envolvidas num algoritmo <strong>de</strong> consenso (i.e., mensagens necessárias para<br />
or<strong>de</strong>nar cada operação ou conjunto <strong>de</strong> operações), levou a que não se tivesse impl<strong>em</strong>entado nenhum<br />
componente <strong>de</strong> reconciliação utilizando técnicas <strong>de</strong> consenso.<br />
4.1.5 Transformação <strong>de</strong> operações<br />
A execução pela mesma or<strong>de</strong>m <strong>em</strong> todas as réplicas <strong>de</strong> um conjunto <strong>de</strong> operações executadas concor-<br />
rent<strong>em</strong>ente garante a equivalência final das várias réplicas. No entanto, como cada operação vai ser<br />
executada num estado do coobjecto diferente do observado aquando da execução (submissão) original<br />
da operação, os seus efeitos po<strong>de</strong>m ser diferentes dos esperados pelo utilizador.<br />
Para solucionar este probl<strong>em</strong>a foi proposto que, antes <strong>de</strong> executar uma operação numa réplica, a<br />
operação fosse transformada para incluir os efeitos das operações não conhecidas aquando da execução<br />
inicial da operação. Desta forma, as intenções do utilizador são respeitadas. Vários algoritmos foram<br />
propostos utilizando esta i<strong>de</strong>ia [46, 159, 118, 158].<br />
Esta aproximação t<strong>em</strong> o inconveniente <strong>de</strong> requerer a <strong>de</strong>finição <strong>de</strong> uma ou várias funções capazes <strong>de</strong><br />
transformar as operações. No caso geral, <strong>de</strong>finir uma função <strong>de</strong> transformação <strong>de</strong> operações po<strong>de</strong> ser<br />
bastante complexo, pelo que esta técnica t<strong>em</strong> sido utilizada quase exclusivamente no âmbito dos editores<br />
cooperativos síncronos. No entanto, os ex<strong>em</strong>plos apresentados na literatura e a experiência obtida com<br />
o sist<strong>em</strong>a DOORS, parec<strong>em</strong> sugerir que esta técnica po<strong>de</strong> ser usada facilmente nas seguintes situações:<br />
anular a execução <strong>de</strong> operações idênticas; e ajustar parâmetros que contêm posições absolutas.<br />
No protótipo do sist<strong>em</strong>a DOORS esten<strong>de</strong>u-se o componente <strong>de</strong> reconciliação or<strong>de</strong>m total optimista<br />
6 No âmbito <strong>de</strong>ste trabalho, chegaram a ser produzidos alguns resultado relativos à teoria <strong>de</strong> sist<strong>em</strong>as <strong>de</strong> quorum [127].