1 / 70

Controle de Concorrência e Consistência Otimista – Operational Transformation

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

temple
Download Presentation

Controle de Concorrência e Consistência Otimista – Operational Transformation

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Controle de Concorrência e Consistência Otimista – Operational Transformation Lucas Augusto Scotta Merlo scotta@inf.ufes.br

  2. 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

  3. 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.

  4. 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.

  5. 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:

  6. 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.

  7. Introdução (cont.) • Problemas genéricos de inconsistência: divergência, violação de causalidade e, violação de intenção.

  8. 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

  9. 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.

  10. 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.

  11. 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.

  12. 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,... .

  13. 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.

  14. 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

  15. 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.

  16. 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.

  17. 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.

  18. Operational transformation (cont.)

  19. Operational transformation (cont.)

  20. 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).

  21. 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

  22. 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.

  23. 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.

  24. 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 .

  25. 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.

  26. 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.

  27. 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

  28. Estrutura de um sistema de OT

  29. 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

  30. 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.

  31. 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

  32. 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.

  33. 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.

  34. 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:

  35. 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).

  36. 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.

  37. 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

  38. 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.

  39. 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.

  40. 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.

  41. 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.

  42. 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.

  43. 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.

  44. 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.

  45. 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

  46. 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).

  47. 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.

  48. 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:

  49. 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:

  50. 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.

More Related