Your SlideShare is downloading. ×
Cache, Concorrência e Sincronização.
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Cache, Concorrência e Sincronização.

767
views

Published on


0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
767
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
6
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

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