Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Replicação Não Uniforme com Consistência Eventual

Replicação Não Uniforme com Consistência Eventual

9º Simpósio de Informática. Aveiro, Portugal, 2017

Gonçalo Cabrita

October 13, 2017
Tweet

More Decks by Gonçalo Cabrita

Other Decks in Research

Transcript

  1. Replica¸ c˜ ao N˜ ao Uniforme com Consistˆ encia Eventual

    Gon¸ calo Cabrita e Nuno Pregui¸ ca NOVA LINCS 9o INForum, Aveiro, Portugal, 13 de Outubro de 2017
  2. Contexto • O aumento de utilizadores tem for¸ cado servi¸

    cos a encontrarem novas formas de escalar • Muitos servi¸ cos guardam os seus dados em key-value stores geo-replicadas • Estas base de dados sacrificam a consistˆ encia dos dados em troca de alta-disponibilidade 1
  3. Contexto • O aumento de utilizadores tem for¸ cado servi¸

    cos a encontrarem novas formas de escalar • Muitos servi¸ cos guardam os seus dados em key-value stores geo-replicadas • Estas base de dados sacrificam a consistˆ encia dos dados em troca de alta-disponibilidade 1
  4. Contexto • O aumento de utilizadores tem for¸ cado servi¸

    cos a encontrarem novas formas de escalar • Muitos servi¸ cos guardam os seus dados em key-value stores geo-replicadas • Estas base de dados sacrificam a consistˆ encia dos dados em troca de alta-disponibilidade 1
  5. Problema • A informa¸ c˜ ao guardada nestas base de

    dados aumenta rapidamente • ´ E tipicamente imposs´ ıvel manter todos os dados em todas as r´ eplicas • Alguns sistemas adoptam um modelo de replica¸ c˜ ao parcial • Pode ser necess´ ario contactar v´ arias r´ eplicas para responder a uma query 2
  6. Problema • A informa¸ c˜ ao guardada nestas base de

    dados aumenta rapidamente • ´ E tipicamente imposs´ ıvel manter todos os dados em todas as r´ eplicas • Alguns sistemas adoptam um modelo de replica¸ c˜ ao parcial • Pode ser necess´ ario contactar v´ arias r´ eplicas para responder a uma query 2
  7. Problema • A informa¸ c˜ ao guardada nestas base de

    dados aumenta rapidamente • ´ E tipicamente imposs´ ıvel manter todos os dados em todas as r´ eplicas • Alguns sistemas adoptam um modelo de replica¸ c˜ ao parcial • Pode ser necess´ ario contactar v´ arias r´ eplicas para responder a uma query 2
  8. Problema • A informa¸ c˜ ao guardada nestas base de

    dados aumenta rapidamente • ´ E tipicamente imposs´ ıvel manter todos os dados em todas as r´ eplicas • Alguns sistemas adoptam um modelo de replica¸ c˜ ao parcial • Pode ser necess´ ario contactar v´ arias r´ eplicas para responder a uma query 2
  9. Conseguimos criar um modelo de replica¸ c˜ ao onde qualquer

    r´ eplica consiga responder a todas as opera¸ c˜ oes de leitura sem guardar todos os dados? 2
  10. Exemplo: m´ aximo       

      9                   3                   2          3
  11. Exemplo: m´ aximo       

      9 3 2                   9 3 2                   9 3 2          4
  12. Exemplo: m´ aximo       

      9 5 3 2                   9 3 2 1                   9 3 2          5
  13. Exemplo: m´ aximo       

       9 5 3 2                   9 3 2 1                   9 3 2          6
  14. Exemplo: m´ aximo       

       9 5 3 2                    9 3 2 1                    9 3 2          7
  15. Exemplo: m´ aximo       

      5 3 2                   5 3 2 1                   5 3 2          8
  16. Agenda • Replica¸ c˜ ao N˜ ao Uniforme • CRDTs

    N˜ ao Uniformes • Avalia¸ c˜ ao • Conclus˜ ao e trabalho futuro 9
  17. Replica¸ c˜ ao N˜ ao Uniforme • Um modelo de

    replica¸ c˜ ao onde todas as r´ eplicas podem responder a todas as queries, mantendo apenas um subconjunto dos dados • R´ eplicas do mesmo objeto n˜ ao precisam de ter estados equivalentes, apenas necessitam de ter estados observavelmente equivalentes • Para dois estados serem observavelmente equivalentes uma opera¸ c˜ ao de leitura tem de devolver o mesmo resultado para ambos os estados 10
  18. Replica¸ c˜ ao N˜ ao Uniforme • Um modelo de

    replica¸ c˜ ao onde todas as r´ eplicas podem responder a todas as queries, mantendo apenas um subconjunto dos dados • R´ eplicas do mesmo objeto n˜ ao precisam de ter estados equivalentes, apenas necessitam de ter estados observavelmente equivalentes • Para dois estados serem observavelmente equivalentes uma opera¸ c˜ ao de leitura tem de devolver o mesmo resultado para ambos os estados 10
  19. Replica¸ c˜ ao N˜ ao Uniforme • Um modelo de

    replica¸ c˜ ao onde todas as r´ eplicas podem responder a todas as queries, mantendo apenas um subconjunto dos dados • R´ eplicas do mesmo objeto n˜ ao precisam de ter estados equivalentes, apenas necessitam de ter estados observavelmente equivalentes • Para dois estados serem observavelmente equivalentes uma opera¸ c˜ ao de leitura tem de devolver o mesmo resultado para ambos os estados 10
  20. Replica¸ c˜ ao N˜ ao Uniforme    

         9 5 3 2                   9 3 2 1                   9 3 2          11
  21. Consistˆ encia Eventual Um sistema replicado fornece consistˆ encia eventual

    num estado quiescente sse: 1. Cada r´ eplica tiver executado todas as opera¸ c˜ oes 2. O estado de quaisquer duas r´ eplicas seja equivalente 12
  22. Consistˆ encia Eventual Um sistema replicado fornece consistˆ encia eventual

    num estado quiescente sse: 1. Cada r´ eplica tiver executado todas as opera¸ c˜ oes 2. O estado de quaisquer duas r´ eplicas seja equivalente 12
  23. Consistˆ encia Eventual Um sistema replicado fornece consistˆ encia eventual

    num estado quiescente sse: 1. Cada r´ eplica tiver executado todas as opera¸ c˜ oes 2. O estado de quaisquer duas r´ eplicas seja equivalente 12
  24. Consistˆ encia Eventual N˜ ao Uniforme (NuEC) Um sistema replicado

    fornece consistˆ encia eventual n˜ ao uniforme num estado quiescente sse: 1. Cada r´ eplica tiver executado um conjunto de opera¸ c˜ oes que tenham impacto no estado observ´ avel final 2. O estado de quaisquer duas r´ eplicas seja observavelmente equivalente 13
  25. Consistˆ encia Eventual N˜ ao Uniforme (NuEC) Um sistema replicado

    fornece consistˆ encia eventual n˜ ao uniforme num estado quiescente sse: 1. Cada r´ eplica tiver executado um conjunto de opera¸ c˜ oes que tenham impacto no estado observ´ avel final 2. O estado de quaisquer duas r´ eplicas seja observavelmente equivalente 13
  26. Consistˆ encia Eventual N˜ ao Uniforme (NuEC) Um sistema replicado

    fornece consistˆ encia eventual n˜ ao uniforme num estado quiescente sse: 1. Cada r´ eplica tiver executado um conjunto de opera¸ c˜ oes que tenham impacto no estado observ´ avel final 2. O estado de quaisquer duas r´ eplicas seja observavelmente equivalente 13
  27. Algoritmo para NuEC O objetivo principal ´ e dividir as

    opera¸ c˜ oes em quatro grupos: 1. Opera¸ c˜ oes que s˜ ao core 2. Opera¸ c˜ oes que s˜ ao forever masked 3. Opera¸ c˜ oes que s˜ ao masked mas podem tornar-se core 4. Opera¸ c˜ oes que s˜ ao masked mas tendo em conta todas as opera¸ c˜ oes do sistema seriam consideradas core 14
  28. Algoritmo para NuEC O objetivo principal ´ e dividir as

    opera¸ c˜ oes em quatro grupos: 1. Opera¸ c˜ oes que s˜ ao core 2. Opera¸ c˜ oes que s˜ ao forever masked 3. Opera¸ c˜ oes que s˜ ao masked mas podem tornar-se core 4. Opera¸ c˜ oes que s˜ ao masked mas tendo em conta todas as opera¸ c˜ oes do sistema seriam consideradas core 14
  29. Algoritmo para NuEC O objetivo principal ´ e dividir as

    opera¸ c˜ oes em quatro grupos: 1. Opera¸ c˜ oes que s˜ ao core 2. Opera¸ c˜ oes que s˜ ao forever masked 3. Opera¸ c˜ oes que s˜ ao masked mas podem tornar-se core 4. Opera¸ c˜ oes que s˜ ao masked mas tendo em conta todas as opera¸ c˜ oes do sistema seriam consideradas core 14
  30. Algoritmo para NuEC O objetivo principal ´ e dividir as

    opera¸ c˜ oes em quatro grupos: 1. Opera¸ c˜ oes que s˜ ao core 2. Opera¸ c˜ oes que s˜ ao forever masked 3. Opera¸ c˜ oes que s˜ ao masked mas podem tornar-se core 4. Opera¸ c˜ oes que s˜ ao masked mas tendo em conta todas as opera¸ c˜ oes do sistema seriam consideradas core 14
  31. Algoritmo para NuEC O objetivo principal ´ e dividir as

    opera¸ c˜ oes em quatro grupos: 1. Opera¸ c˜ oes que s˜ ao core 2. Opera¸ c˜ oes que s˜ ao forever masked 3. Opera¸ c˜ oes que s˜ ao masked mas podem tornar-se core 4. Opera¸ c˜ oes que s˜ ao masked mas tendo em conta todas as opera¸ c˜ oes do sistema seriam consideradas core 14
  32. Agenda • Replica¸ c˜ ao N˜ ao Uniforme • CRDTs

    N˜ ao Uniformes • Avalia¸ c˜ ao • Conclus˜ ao e trabalho futuro 15
  33. Top-K com remo¸ c˜ oes • Conjunto de tuplos (identificador,

    pontua¸ c˜ ao) • Duas opera¸ c˜ oes de escrita • ADD(id, pontua¸ c~ ao): associa uma nova pontua¸ c˜ ao com id • RMV(id): remove todas as pontua¸ c˜ oes associadas com id 16
  34. Top-K com remo¸ c˜ oes • Conjunto de tuplos (identificador,

    pontua¸ c˜ ao) • Duas opera¸ c˜ oes de escrita • ADD(id, pontua¸ c~ ao): associa uma nova pontua¸ c˜ ao com id • RMV(id): remove todas as pontua¸ c˜ oes associadas com id 16
  35. Top-K com remo¸ c˜ oes • Conjunto de tuplos (identificador,

    pontua¸ c˜ ao) • Duas opera¸ c˜ oes de escrita • ADD(id, pontua¸ c~ ao): associa uma nova pontua¸ c˜ ao com id • RMV(id): remove todas as pontua¸ c˜ oes associadas com id 16
  36. Top-K com remo¸ c˜ oes • Conjunto de tuplos (identificador,

    pontua¸ c˜ ao) • Duas opera¸ c˜ oes de escrita • ADD(id, pontua¸ c~ ao): associa uma nova pontua¸ c˜ ao com id • RMV(id): remove todas as pontua¸ c˜ oes associadas com id 16
  37. Top-1 com remo¸ c˜ oes     

                                   17
  38. Top-1 com remo¸ c˜ oes     

        Maria, 90                            18
  39. Top-1 com remo¸ c˜ oes     

        Maria, 90                   Maria, 90          19
  40. Top-1 com remo¸ c˜ oes     

        Maria, 90 Jo˜ ao, 80                   Maria, 90          20
  41. Top-1 com remo¸ c˜ oes     

        Maria, 90 Jo˜ ao, 80                   Maria, 90          21
  42. Top-1 com remo¸ c˜ oes     

        Maria, 90 Jo˜ ao, 85 Jo˜ ao, 80                   Maria, 90          22
  43. Top-1 com remo¸ c˜ oes     

        Maria, 90 Jo˜ ao, 85   Jo˜ ao, 80                   Maria, 90          23
  44. Top-1 com remo¸ c˜ oes     

        Maria, 90 Jo˜ ao, 85                   Maria, 90          24
  45. Top-1 com remo¸ c˜ oes     

        ((((( ( Maria, 90 Jo˜ ao, 85                   Maria, 90          25
  46. Top-1 com remo¸ c˜ oes     

        ((((( ( Maria, 90 Jo˜ ao, 85                   ((((( ( Maria, 90          26
  47. Top-1 com remo¸ c˜ oes     

        Jo˜ ao, 85                   Jo˜ ao, 85          27
  48. Agenda • Replica¸ c˜ ao N˜ ao Uniforme • CRDTs

    N˜ ao Uniformes • Avalia¸ c˜ ao • Conclus˜ ao e trabalho futuro 28
  49. Top-K com remo¸ c˜ oes: custo de dissemina¸ c˜ ao

    0 10 20 30 40 50 60 70 80 90 100 Tamanho total das mensagens (MBs) 5k 10k 15k 20k 25k 30k 35k 40k 45k 50k Número de operações NuCRDT, f=0 NuCRDT, f=1 NuCRDT, f=2 CRDT Figura 1: Tamanho total de mensagens 30
  50. Top-K com remo¸ c˜ oes: tamanho m´ edio das r´

    eplicas 0 0,2 0,4 0,6 0,8 1 1,2 1,4 1,6 1,8 Tamanho médio das réplicas (MBs) 5k 10k 15k 20k 25k 30k 35k 40k 45k 50k Número de operações NuCRDT, f=0 NuCRDT, f=1 NuCRDT, f=2 CRDT Figura 2: Tamanho m´ edio das r´ eplicas 31
  51. Top-K com remo¸ c˜ oes: escalabilidade Carga: 95% adi¸ c˜

    oes, 5% remo¸ c˜ oes 0 50 100 150 200 250 300 500 1000 1500 2000 2500 3000 3500 4000 4500 5000 Laténcia média (ms) Taxa de transferência média (ops/segundo) NuCRDT, f=0 NuCRDT, f=1 NuCRDT, f=2 CRDT Figura 3: Escalabilidade 32
  52. Agenda • Replica¸ c˜ ao N˜ ao Uniforme • CRDTs

    N˜ ao Uniformes • Avalia¸ c˜ ao • Conclus˜ ao e trabalho futuro 33
  53. Conclus˜ ao • Introduzimos o modelo de replica¸ c˜ ao

    n˜ ao uniforme e formalizamos a sua semˆ antica para um sistema de consistˆ encia eventual • Mostr´ amos como o modelo pode ser aplicado a CRDTs • Implement´ amos um CRDT n˜ ao uniforme numa base de dados geo-replicada, e avali´ amos o seu desempenho 34
  54. Conclus˜ ao • Introduzimos o modelo de replica¸ c˜ ao

    n˜ ao uniforme e formalizamos a sua semˆ antica para um sistema de consistˆ encia eventual • Mostr´ amos como o modelo pode ser aplicado a CRDTs • Implement´ amos um CRDT n˜ ao uniforme numa base de dados geo-replicada, e avali´ amos o seu desempenho 34
  55. Conclus˜ ao • Introduzimos o modelo de replica¸ c˜ ao

    n˜ ao uniforme e formalizamos a sua semˆ antica para um sistema de consistˆ encia eventual • Mostr´ amos como o modelo pode ser aplicado a CRDTs • Implement´ amos um CRDT n˜ ao uniforme numa base de dados geo-replicada, e avali´ amos o seu desempenho 34
  56. Trabalho futuro • Investigar a aplicabilidade deste modelo de replica¸

    c˜ ao a outros modelos de consistˆ encia mais fortes • Criar tipos de dados uteis para ambientes de Big Data e Machine Learning 35
  57. Trabalho futuro • Investigar a aplicabilidade deste modelo de replica¸

    c˜ ao a outros modelos de consistˆ encia mais fortes • Criar tipos de dados uteis para ambientes de Big Data e Machine Learning 35