700 likes | 800 Views
Controle de Concorrência e Consistência Otimista – Operational Transformation. Lucas Augusto Scotta Merlo scotta@inf.ufes.br. Agenda. Introdução Resolução de conflitos de forma otimista OT Modelos de consistência Estrutura de um sistema de OT Funções em OT
E N D
Controle de Concorrência e Consistência Otimista – Operational Transformation Lucas Augusto Scotta Merlo scotta@inf.ufes.br
Agenda • Introdução • Resolução de conflitos de forma otimista • OT • Modelos de consistência • Estrutura de um sistema de OT • Funções em OT • Propriedades de Transformação • Algoritmos para OT • Exemplo com treeOPT • Conclusão
Introdução • Autoria distribuída • Porque? • Pessoas com um interesse em comum compartilhando um documento. • Agilidade e comodidade. • Ganho da produção. • Problemas • Necessidade de manter o documento atualizado e consistente. • Permitindo colaboração (no lock). • Minimizando tempo de resposta e visualizações não atualizadas.
Introdução(cont.) • Controle de Concorrência e Consistência: • Pessimista. • supõe que sempre ocorre conflito entre alterações; • bloqueio (locking) • Otimista. • Supõe que não haverão muitos conflitos, mas se houver, uma forma de se recuperar será executada. • Operational Transformation.
Introdução (cont.) • Comumente, a edição textual colaborativa usa uma estrutura linear, com as seguintes operações: • insert(p; c) - inserts character c at position p; • delete(p) - deletes the character at position p; • Algumas definições para o melhor entendimento das abordagens para manter consistência:
Introdução (cont.) • Há dois modos básicos para o merge das informações. • Baseado em estado (todo o documento deverá ser trocado). • Ex. CVS e SVN. • Onde o usuário é o auditor de conflitos. • Baseado em operações (msg com operações são trocadas). • Melhor para resolver conflitos. • Histórico das operações.
Introdução (cont.) • Problemas genéricos de inconsistência: divergência, violação de causalidade e, violação de intenção.
Agenda • Introdução • Resolução de conflitos de forma otimista • OT • Modelos de consistência • Estrutura de um sistema de OT • Funções em OT • Propriedades de Transformação • Algoritmos para OT • Exemplo com treeOPT • Conclusão
Protocolos sociais para mediação • Segue a ideia que as pessoas conversam entre si (chat, vídeo) para resolver os problemas. • Todos podem editar qualquer parte do objeto compartilhado. • Os 3 problemas citados acima, não são tratados por essa forma. • Conflitos são descobertos, mas não tratados.
Optimistic locking • Ao se solicitar o bloqueio inicia-se a edição. • Se negada, volta ao estado inicial. • O que pode confundir o usuário. • Se permitido, continua a edição. • Alto custo para implementação e possível confusão devido a negação de aquisição dos locks.
Serialisation • Executa a ordem das operações de forma serial. • Isto é, uma operação só pode ser executada somente após todas operações precedentes a ela tiverem sido executadas. • Exemplo: • Supondo que haja três operações que possuem ordem causal, O1, O2 e O3. • Se a ordem de operação é: O2->O1->O3, esta técnica garante que nos sites participantes essa ordem não será alterada.
Multi-versioning • Abordagem que tenta executar todos os efeitos das operações de um objeto em comum em formas de versões. • Preservando a intenção do usuário e violação de causalidade. • SVN, CVS,... .
Multi-versioning (cont.) • A desvantagem dessa técnica é que não há correlação entre as diferentes versões do mesmo objeto e do objeto base. • Não ficando claro no fim da edição qual é a versão correta. • Gerando conflitos no final da edição se mais de um usuário tentar resolvê-los.
Agenda • Introdução • Resolução de conflitos de forma otimista • OT • Modelos de consistência • Estrutura de um sistema de OT • Funções em OT • Propriedades de Transformação • Algoritmos para OT • Exemplo com treeOPT • Conclusão
Operational transformation (OT) • Ellis et al, em 1989propõem a utilização de uma técnica diferente em seu sistema, GROVE (GRoup Outline Viewing Edit): OT. • Sub-área de pesquisa há mais de 2 décadas no contexto de edição em grupo. • Mecanismo que mantém consistente as cópias de objetos de uma forma otimista. • Usuário alteram sua cópia localmente e recebem /enviam alterações que devem ser transformadas e executadas nas cópias remotas.
Operational transformation (cont.) • Abordagem mais apropriada para arquitetura de sistema de edição colaborativa na qual a consistência das cópias compartilhada é algo que deve apresentar um bom tempo de resposta. • A operação é executada imediatamente localmente e depois são geradas as alterações que serão enviadas para as cópias remotas, onde serão transformadas e aplicadas. • Transformações são executadas de forma que a intenção do usuário seja preservada e ao final que as cópias convirjam.
Operational Transformation (cont.) • Sua forma não bloqueante, faz que o tempo de resposta seja quase o mesmo da latência de transmissão entre redes. • Seu uso é particularmente uma ótima escolha para autoria colaborativa na Web e no contexto da Internet.
Operational transformation (cont.) • Abordagem baseada em operações. • Para capturar as relações causais entre as operações, foi criado um vetor baseado no esquema timestamping, chamado de vetor de estados (SV).
Agenda • Introdução • Resolução de conflitos de forma otimista • OT • Modelos de consistência • Estrutura de um sistema de OT • Funções em OT • Propriedades de Transformação • Algoritmos para OT • Exemplo com treeOPT • Conclusão
Modelos de consistência CC: • Propriedade de Precedência (Causalidade): assegura a execução das operações dependentes durante o processo de colaboração • A relação causal entre as duas operações é definida como relação de Lamport "happened-before". • Convergência: assegura que ao final da edição compartilhada os documentos são idênticos em todos os sites. O state-vector é usado para preservar a propriedade de precedência.
Modelos de consistência CCI: • Proposto como um framework mais geral, onde as seguintes propriedades devem ser seguidas: • Preservaçãode Causalidade: mesmo do CC • Convergência: mesmo do CC. • Preservação de Intenção: assegura que o efeito da execução da operação em qualquer site seja o mesmo.
Modelos de consistência CSM: • Após estudos, foi formalizado um modelo mais conciso que o modelo CCI: • Causalidade: mesmo que CC. • Single-operation effects: o efeito de executar qualquer operação em qualquer estado de execução, atinge o mesmo efeito no seu estado de geração. • Multi-operation effects: a relação dos efeitos de quaisquer duas operações são mantidas depois que ambas são executados em quaisquer estados .
Modelos de consistência CA • CSM, requer que a ordem total dos objetos envolvidos sejam especificadas. • Essa ordem deve ser mantida nas funções de transformação e nos procedimentos, o que aumenta a complexidade de tempo e espaço do algoritmo. • CA é baseado na Teoria de Admissibilidade.
Modelos de consistência CA (cont.) • Duas condições devem ser satisfeitas: • Causalidade: a mesma do CC. • Admissibilidade: A invocação de cada operação é admissível no seu estado de execução, ou seja, cada invocação não deve violar qualquer relação com os efeitos (ordenação de objeto) que tenham sido estabelecido por invocações anteriores.
Agenda • Introdução • Resolução de conflitos de forma otimista • OT • Modelos de consistência • Estrutura de um sistema de OT • Funções em OT • Propriedades de Transformação • Algoritmos para OT • Exemplo com treeOPT • Conclusão
Agenda • Introdução • Resolução de conflitos de forma otimista • OT • Modelos de consistência • Estrutura de um sistema de OT • Funções em OT • Propriedades de Transformação • Algoritmos para OT • Exemplo com treeOPT • Conclusão
Funções em OT • Inclusion Transformation: IT(Oa, Ob) ou T(op1,op2), a qual transforma uma operação Oa contrastando-a há uma outra operação Ob, de tal forma que o impacto do Ob é efetivamente incluído em Oa. • Exclusion Transformation ET(Oa, Ob) ou T− 1(op1,op2), a qual transforma uma operação Oa contrastando-a há uma outra operação Ob, de tal forma que o impacto do Ob é efetivamente excluído de Oa.
Agenda • Introdução • Resolução de conflitos de forma otimista • OT • Modelos de consistência • Estrutura de um sistema de OT • Funções em OT • Propriedades de Transformação • Algoritmos para OT • Exemplo com treeOPT • Conclusão
Propriedades de Transformação • Propriedade de Convergência • CP1/TP1: para cada par de operações concorrentes op1 e op2, definidas no mesmo estado(contexto), a função de transformação T, satisfaz as propriedades TP1 sse: • onde denota a sequencia de operações contendo opi seguido por opj, e onde denota a equivalência das duas sequencias de operações.
Propriedades de Transformação (cont.) • Pré-requisito: • CP1/TP1 é necessária apenas se o sistema OT permitir que qualquer duas operações sejam executadas em ordens diferentes.
Propriedades de Transformação (cont.) • CP2/TP2: Para cada três operações concorrentes, op1, op2 e op3, definidas no mesmo estado do documento, a função de transformação T satisfaz as propriedades de CP2/TP2 sse:
Propriedades de Transformação (cont.) • CP2/TP2 estabelece a igualdade entre duas operações transformadas no que diz respeito a duas sequencias equivalentes de operações: a transformação de op3 contrastando a sequencia de operação op2 seguido por T (op1, op2) devem obter a mesma operação como a transformação de op3 contrastando a sequencia formada por op1 e T(op2, op1).
Propriedades de Transformação (cont.) • Pré-requisitos: • CP2/TP2 é requerido se o sistema de OT permite que duas operações op1 e op2 sejam transformadas (IT) em dois estados diferentes do documento ou contexto.
Agenda • Introdução • Resolução de conflitos de forma otimista • OT • Modelos de consistência • Estrutura de um sistema de OT • Funções em OT • Propriedades de Transformação • Algoritmos para OT • Exemplo com treeOPT • Conclusão
dOPT (distribtuted Operational Transformation) • Cada site mantém um historybuffer (HB) com todas operações que já foram executadas no site. • Quando uma operação remota é recebida e não é causally ready (interfere em outra), ela é enfileirada no HB. No caso de ser, ela é sequencialmente transformada em operações concorrentes no HB. • Entretanto este algoritmo, não funciona bem quando transformações têm de ser executadas entre duas operações que não são do mesmo contexto.
dOPT (cont.) • Preservação de causalidade é obtida pelo uso de vetores de estado. • Convergência não é conquistada. • Como na maioria das abordagem de OT, preservação de intenção não é explicitamente definida, mas é incluída nas funções de transformação.
GOT (Generic Operation Transformation) • Estende a abordagem dOPT. • A ordenação causal determina uma ordem somente entre as operações precedentes, a ordem da execução de operações concorrentes são arbitrárias. • A ordenação entre as operações é usada para assegurar a convergência de operações concorrentes.
GOT (cont.) • A ordem total entre as operações é definida como a soma dos elementos do vetor de estados (SV). • Por exemplo, a O1 precede em ordem total a operação O2 se a soma dos elementos do vetor de estados associado com O1 é menor que a soma do vetor de estados associados a O2, ou as somas serem iguais, mas o identificadores do site onde O1 foi gerado é menor que o identificador onde a operação O2 foi gerada.
GOT (cont.) • Baseado no ordenamento total entre as operações, esquemas de undo/-do/redo foram definidos. • Os dois tipos de transformação usados, IT e ET são reversíveis.
GOT (cont.) • Preservação de causalidade é obtida pelo uso de vetores de estado. • Convergência é alcançada a partir da ordenação causal. • Como na maioria das abordagem de OT, preservação de intenção não é explicitamente definida, mas é incluída nas funções de transformação.
GOT(O) • Versão otimizada do GOT. • Aplica o mesmo algoritmo usado em SOCT2. • Quando uma operação remota é recebida, e esta precisa ser integrada ao HB, este é reordenado de tal maneira que as operações que precedem a operação remota fiquem situadas no HB antes das operações que são concorrentes dessas operações remotas. • Depois disso, as operações remotas devem ser transformadas de encontro as operações concorrentes a ela.
GOT(O) (cont.) • Preservação de causalidade é obtida pelo uso de vetores de estado. • Convergência: Condition C1 e Condition C2 • Preservação de intenção Inclusion Transformation e Exclusion Transformation
SOCT2 • Faz parte da classe de algoritmos que seguem a linha do dOPT. • Seja s o estado do objeto e O uma operação, definimos como s.O o novo estado após a execução de O em s. • A intenção que é realizada pelo operação O em s, é denotada como: intention(O, s).
SOCT2 (cont.) • A função de transformação que modifica O2contrastando-a com outra operação é indicada como: O1 : O2O1, a qual é definida sobre o estado resultante da execução de O1e concretizando a intenção como em O2.
SOCT2 (cont.) • Condição C1 • Garante que o estado resultante após a transformação de duas operações concorrentes não dependem da ordem na qual as operações são executadas. • Tomando O1 e O2duas operações concorrentes definidas em um mesmo estado, a transposição “forward” (IT) verifica C1, sse:
SOCT2 (cont.) • Condição C2 • Visa tornar a transformação de uma operação com uma sequencia de operações independente da ordem das operações em sequencia. • Dado O1, O2e O3, a transposição “forward” verifica C2, sse:
SOCT2 (cont.) • Site1, O1 ->O2 • Site2, O3 é gerado concorrentemente. • No site2, quando O1 chega, é contrastada com O3, porque O1 e O3 tem o mesmo estado de geração, sendo o resultado • Mas, quando O2 chega no Site2, ela não pode ser contrastada usando transpose_fd com O3, como feito com O2 e O3 pois não possui o mesmo estado de geração. • O estado geração de O2 inclui a execução de operação O1, O3, enquanto a operação não sabe sobre a execução da operação O1.