Weitere ähnliche Inhalte Ähnlich wie Persistência Poliglota na Prática (20) Mehr von Ivayr Farah Netto (6) Persistência Poliglota na Prática1. persistência poliglota
na prática
@nettofarah
http://hdwallpapersx.com/wp-content/uploads/2013/09/Green-Parakeet-Wallpaper.jpg
2. - - Essas crianças de hoje são verdadeiros poliglotas.
!
- - Verdadeiros o que?
!
- - Poliglotas. Esses das cavernas.
6. stats
• users: 13.3mi!
• public playlists: 1.8mi (4,2 mi total)!
• uploaded tracks: 31mi!
• requests/minute: ~100k
12. modelo relacional
• funciona bem! (até certo ponto)
• confiável
• no mercado há muito tempo
• já foi bem testado
• bem documentado
18. Porque NoSQL
• pode escalar muito bem
• pode resolver de forma mais elegante
• é empolgante para os devs
• data-first*
25. como decidir?
• documentação
• comunidades (stack overflow, github, forums, irc,
listas de email)
• suporte
• quão adequado pra sua infra?
35. • super fácil de deployar
• não usamos para o tráfego comum
• joga qualquer coisa lá dentro
36. • 16k rpm
• full text search
• autocomplete
• busca personalizada
• cluster de 4 máquinas
37. • tsv
• optimizado para IO
• queries pesadas/bigdata com SQL
• paralelo/distribuído
41. em-proxy
1 $> em-proxy -l 8080 !
2 -r localhost:8081 !
3 -d mysql.8tracks.com:8082, !
4 postgres.8tracks.com:8082 -v!
42. 1 Proxy.start(host: "0.0.0.0", p: 80) do |conn|!
2 conn.server :srv, host: "127.0.0.1", p: 81!
3 !
4 # modificar pra outro protocolo!
5 conn.on_data do |data|!
6 transform(data)!
transformar para outro
7 !
protocolo
end8 !
9 conn.on_finish do |backend, name|!
10 # ignora a resposta!
11 unbind if backend == :srv!
12 end!
13 end!
ignorar a resposta
43. servir aos poucos
1 elasticsearch_rate = 0.2!
2 if rand() =< elasticsearch_rate!
3 ElasticSearch.query('justin bieber')!
4 else!
5 SolrSearch.query('justin bieber')!
6 end!
44. feature toggles
1 tags = []!
2 if FEATURES.explore_beta(current_user)!
3 tags = RedisExplore.get_tags!
4 else!
5 tags = DatabaseExplore.global_tags!
6 end!
49. lições
• testar coisa nova é divertido!
• dá pra testar em produção seguramente
• entenda os tradeoffs
• documentação e suporte são essenciais!