Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Cache, Concorrência e Sincronização.

1,076 views

Published on

  • Be the first to comment

  • Be the first to like this

Cache, Concorrência e Sincronização.

  1. 1. Cache, Concorrência e Sincronização na Web. twitter: @thiagorondon - email: thiago@aware.com.br
  2. 2. Cache, Concorrência e Sincronização na Web. twitter: @thiagorondon - email: thiago@aware.com.br
  3. 3. Agenda - Programação assíncrona
  4. 4. O Jantar dos filósofos.
  5. 5. Semaphoros e Mutex
  6. 6. Supervisor.
  7. 7. Hierarquia
  8. 8. Deadlock e Livelock Impasse
  9. 9. Starvation já era...
  10. 10. Fumantes de cigarro.
  11. 11. Conjunto de semaphoros.
  12. 12. O documento ‘It’s the latency, stupid’.
  13. 13. Criar mais bandwidth é trivial.
  14. 14. Com uma latência ruim, você esta perdido.
  15. 15. Dispositivos para consumidores são péssimos.
  16. 16. Qual a diferença entre o boing 737 e o 747 ?
  17. 17. 1965, 1971 e 1996.
  18. 18. trade-off.
  19. 19. armas ou manteiga.
  20. 20. Limitações
  21. 21. Disponibilidade, Escalabilidade e Estabilidade.
  22. 22. escalabilidade.
  23. 23. horizontal vs vertical ?
  24. 24. perfomance vs escalabilidade.
  25. 25. Latencia vs Throughput.
  26. 26. disponibilidade
  27. 27. particionamento
  28. 28. fail-over
  29. 29. replicação
  30. 30. estabilidade.
  31. 31. use timeouts.
  32. 32. Use um disjuntor e não um fusível.
  33. 33. Qual o problema de um crash ?
  34. 34. Estratégia para o restart.
  35. 35. Supervisor Hierachies
  36. 36. Falhe rápido.
  37. 37. transações.
  38. 38. Atomicidade.
  39. 39. Consistência.
  40. 40. Isolamento.
  41. 41. Durabilidade.
  42. 42. ACID.
  43. 43. Disponibilidade vs. Consistência.
  44. 44. Expectativa : “Most of the data, most of the time”.
  45. 45. Teorema de CAP.
  46. 46. Consistência, Disponibilidade ou tolerante a falhas de particionamento ?
  47. 47. Primeira opção: Consistência
  48. 48. Segunda opção: Disponibilidade
  49. 49. Não há terceira opção na web.
  50. 50. Ok, existe. Mas, não é trivial, pois ...
  51. 51. O que sacrificar ? Consistência ou Disponibilidade ?
  52. 52. ACID vs/e BASE.
  53. 53. Lei de Moore Uma profecia que virou uma meta da industria de processadores.
  54. 54. Nós desenvolvemos software.
  55. 55. Lei de Amdahl Fração de melhoria ; Ganho de execução. SpeedUp = T(1) / T(N)
  56. 56. Um projeto novo.
  57. 57. Estabilidade e features.
  58. 58. gerenciamento.
  59. 59. Eventualmente consistente ou disponível ?
  60. 60. Tomando decisões.
  61. 61. Servidores respondem.
  62. 62. Aplicativos geram resposta.
  63. 63. Estes dois objetivos são ortogonais !
  64. 64. Antes, as recomendações.
  65. 65. Valores Imutáveis.
  66. 66. Fluxo mental e o fluxo implementado.
  67. 67. blocking!
  68. 68. Quando eu tenho um estado ?
  69. 69. Estados mutáveis !
  70. 70. Sincronização
  71. 71. Compartilhar estados ?
  72. 72. Concorrência
  73. 73. Você esta perto de um deadlock ou problemas de escalabilidade.
  74. 74. Precisamos de uma abstração melhor.
  75. 75. Assíncrona e não-blocking.
  76. 76. Mensagens
  77. 77. Baseado em eventos
  78. 78. Modelo Actor
  79. 79. MapReduce
  80. 80. STM
  81. 81. AMQP
  82. 82. Mas você ainda precisa de objetos mutáveis.
  83. 83. “Eureka, Eureka” por Arquimedes.
  84. 84. Sua informação velha, pode ser a nova.
  85. 85. Cache
  86. 86. Local temporário.
  87. 87. Diferencie as respostas e os dados.
  88. 88. Normalização
  89. 89. /Minifier/
  90. 90. O fluxo das requisições.
  91. 91. Cache, Concorrência e Sincronização na Web.
  92. 92. Protocolo HTTP
  93. 93. Métodos
  94. 94. Stateless
  95. 95. Requisição e Reposta [ ]
  96. 96. Requisição e Reposta ( Intermediadores ) Proxy Tunnel [ ] Gateway
  97. 97. Recursos Construção Aplicações Dados
  98. 98. Requisição e Reposta GET /workshop GET /workshop Host: sao-paulo.pm.org Host: sao-paulo.pm.org 200 OK 200 OK Cache-Control: max-age=60 Cache-Control: max-age=60
  99. 99. Requisição e Reposta (30 segundos depois) GET /workshop Host: sao-paulo.pm.org 200 OK Cache-Control: max-age=30
  100. 100. Requisição e Reposta (1 minuto) GET /workshop GET /workshop Host: sao-paulo.pm.org Host: sao-paulo.pm.org 200 OK 200 OK Cache-Control: max-age=60 Cache-Control: max-age=60
  101. 101. Arquitetura REST.
  102. 102. Estudo de caso. Editores Servidor Recursos Usuários construção cache dados
  103. 103. Meus projetos
  104. 104. Referencias
  105. 105. Edsger Dijkstra
  106. 106. Andrew Stuart Tanenbaum
  107. 107. Donald Knuth
  108. 108. Roy Fielding
  109. 109. Perl Mongers • Grupos para discutir sobre tudo o que você quiser... Filosofia, Política, Astronomia e etc. • Eventos anuais.YAPC::Brasil, Equinócio, workshops, encontros técnicos, ... . • http://sao-paulo.pm.org/
  110. 110. FIM • http://twitter.com/thiagorondon • http://slideshare.net/thiagorondon • http://github.com/maluco • http://www.maluco.com.br/

×