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

TDC Globo Sistemas Distribuídos

TDC Globo Sistemas Distribuídos

22cac40ebe7d9e1e7854ea9808debd7b?s=128

Breno Ferreira

August 24, 2021
Tweet

Transcript

  1. Breno Ferreira Escalabilidade de dados e seus desafios https://www.vempraglobo.com.br/

  2. None
  3. None
  4. 1K usuários simultâneos?

  5. 10K usuários simultâneos?

  6. 100K usuários simultâneos?

  7. 1 milhão de usuários simultâneos?

  8. Escalabilidade horizontal na nuvem não é infinita?

  9. None
  10. None
  11. None
  12. Caso de uso Registro de username único

  13. None
  14. https://jepsen.io/consistency https://brenocferreira.medium.com/transa%C3%A7%C3%B5es-em-banco-de- dados-aead0cf8b620

  15. Transações ACID

  16. Consenso distribuído

  17. Consenso distribuído é MUITO difícil

  18. • Timeouts • Retries • Circuit Breakers • Detecção de

    operações duplicadas • Idempotencia Detecção de falhas
  19. • Como saber qual evento ocorreu primeiro? • Relógios não

    con fi áveis • Servidor A: 24/08/21 17:15:0002 • Servidor B: 24/08/21 17:15:0001 • Servidor C: 24/08/21 17:15:0003 Dependências Temporais e Causalidade
  20. Imagine agora esses problemas em DCs distribuídos geograficamente

  21. Existem soluções

  22. Two-Phase Commit

  23. Paxos/Raft

  24. Google Spanner Cockroach DB (open-source)

  25. None
  26. Apache Kafka

  27. Mas será que preciso disso tudo???

  28. None
  29. MUITO provavelmente NÃO!

  30. Alternativas

  31. Replicação

  32. None
  33. Réplicas de leitura tiram a pressão do nó líder, deixando-o

    livre para operações de escritas mais custosas (com transações por ex.)
  34. Particionamento

  35. None
  36. 🔥🔥🔥

  37. None
  38. None
  39. None
  40. Consistent hashing

  41. None
  42. https://dzone.com/articles/consistent-hashing

  43. Cache

  44. None
  45. Defina Escalabilidade!

  46. • Usuários simultâneos • Tempo de resposta • Latência •

    Requests / segundo
  47. Testar Medir Observar

  48. None
  49. None
  50. None
  51. Por que isso é importante?

  52. None
  53. https://brenocferreira.medium.com/designing-data-intensive-apps-um-resumo-a97e47c29372

  54. None
  55. Perguntas?

  56. Obrigado @breno_ferreira https://www.vempraglobo.com.br/