80% din timpul de incarcare al paginilor web se petrece pe frontend. Vom studia interactiunea dintre browser si serverul web ca sa vedem cum il putem reduce.
Arhitecturi de cacheing server side - LVLE 2009Mihai Oaida
Ce inseamna "cache" si la ce foloseste? Cand datele pot deveni inconsistente?
La ce se poate face cache? String-uri, cod compilat, rezultate SQL? Ce este un accelerator PHP? Voi raspunde la toate aceste intrebari si multe altele. Exemple pentru PHP si MySQL.
Gabriel Voicu - De ce Ruby on Rails este o alegere buna in 2024 (2024.02.06, ...constantadevelopers
Un nou meetup Constanța Developers a avut loc pe 6 februarie 2024 la Club Doors (jos, la subsol).
Meetup: https://www.meetup.com/constanta-developers/
Slack: https://join.slack.com/t/constanta-developers/shared_invite/zt-1lwgww2fr-4zG3UPsyDd2fBseN5XcVfA
Facebook: https://www.facebook.com/groups/1630405593875560/
Youtube: https://www.youtube.com/channel/UCo4fsNpmfWouchKBYVMrodA
Instagram: https://www.instagram.com/ctadevs/
WordPress: https://constantadevelopers.wordpress.com/
Slideshare: https://www.slideshare.net/ConstantaDevelopers
Prezentare USO - Web Application Integrationmihneasim
prezentare despre integrarea puterii de procesare a aplicatiilor standalone server/client-side in web, in spiritul cursului de Utilizarea Sistemelor de Operare.
An overview over the most common bad practices in ASP.NET MVC 3. In this session we will discuss about some mistakes that are made in an ASP.NET MVC 3 applications and what we can do to avoid them.
80% din timpul de incarcare al paginilor web se petrece pe frontend. Vom studia interactiunea dintre browser si serverul web ca sa vedem cum il putem reduce.
Arhitecturi de cacheing server side - LVLE 2009Mihai Oaida
Ce inseamna "cache" si la ce foloseste? Cand datele pot deveni inconsistente?
La ce se poate face cache? String-uri, cod compilat, rezultate SQL? Ce este un accelerator PHP? Voi raspunde la toate aceste intrebari si multe altele. Exemple pentru PHP si MySQL.
Gabriel Voicu - De ce Ruby on Rails este o alegere buna in 2024 (2024.02.06, ...constantadevelopers
Un nou meetup Constanța Developers a avut loc pe 6 februarie 2024 la Club Doors (jos, la subsol).
Meetup: https://www.meetup.com/constanta-developers/
Slack: https://join.slack.com/t/constanta-developers/shared_invite/zt-1lwgww2fr-4zG3UPsyDd2fBseN5XcVfA
Facebook: https://www.facebook.com/groups/1630405593875560/
Youtube: https://www.youtube.com/channel/UCo4fsNpmfWouchKBYVMrodA
Instagram: https://www.instagram.com/ctadevs/
WordPress: https://constantadevelopers.wordpress.com/
Slideshare: https://www.slideshare.net/ConstantaDevelopers
Prezentare USO - Web Application Integrationmihneasim
prezentare despre integrarea puterii de procesare a aplicatiilor standalone server/client-side in web, in spiritul cursului de Utilizarea Sistemelor de Operare.
An overview over the most common bad practices in ASP.NET MVC 3. In this session we will discuss about some mistakes that are made in an ASP.NET MVC 3 applications and what we can do to avoid them.
19. Pipelining
• la comunicare prin TCP, round-trip time
mare comparat cu durata unei instructiuni
• ~1ms prin loopback
• ~100 ms prin Internet
• Solutie: sa folosim pipelining
• Pentru si mai multa viteza: comanda eval
pentru a rula Lua scripts (doar din v2.6)
23. Persistenta
• RDB point-in-time snapshots
• util pentru backup
• fork => fisier scris de procesul fiu
• copy-on-write
• poate bloca procesul pana la 1 secunda
• cele mai recente date se pot pierde
24. Persistenta
• AOF (Append Only File)
• foloseste write(2) si fsync(2)
• fsync: no / every second / every query
• fisier mai mare decat RDB
• scade putin performanta
• rescris automat cand creste prea mult
• tot folosind fork
25. • Ar trebui folosite amandoua metodele
pentru persistenta
• RDB mai bun decat AOF pentru disaster
recovery pentru ca este mai compact
27. Resque
• cozi de lucru
• inspirat de DelayedJob
• foloseste Redis
28. Structura Resque
• librarie Ruby
• creare, interogare si procesare de joburi
• Rake task pentru pornirea de workeri
• aplicatie Sinatra pentru monitorizare
• cozi, joburi, workeri, errori
29. Workeri
• pot rula pe masini diferite
• nu au probleme de memory bloat / "leaks"
• arhitectura parent - child (fork)
30. Cozi
• sunt persistente
• complexitate O(1)
• push si pop atomic
• pot fi inspectate
• stocheaza joburile ca si packete JSON
31. De tinut cont
• sa avem grija la ce trimitem ca parametri
• id in loc de obiect intreg
• avantaj: obiect up-to-date
• dezavantaj: poate inca nu se vad schimbarile
• schimbare symbol in string (JSON)
• [:a, :b] se transforma in ["a", "b"]
32. Interfata web
• informatii despre workeri
• cozile folosite
• continutul cozilor
• statistici (ex. numar de job-uri procesate)
• urmarirea erorilor
35. ZenCash
• Te ajuta sa fii platit mai repede
• Integrare cu 8 aplicatii de facturare
• import: Invoices, Payments, Customers
• Sincronizare:
• o data pe ora
• on-demand
36. • In ZenCash folosim Redis pentru
• cozi de lucru (Resque)
• stocare temporara
• sincronizare procese
37. Resque
• comunicare cu third-party API
• trimitere de email
• taxare clienti
• joburi pentru
• monitorizare aplicatie
• generare statistici
• lansare sincronizare periodic
• procesare rezultate sincronizare
40. DB-less SyncApp
• pentru un sync pot fi necesare mai multe
request-uri (ex. paginare)
• se faceau serializari / deserializari in plus
• am renuntat la MySQL
41. Temporary file store
• scenariu:
• un proces face download de PDF
• alt proces face upload pe S3
• procesele trebuie sa fie pe aceeasi masina
ca sa poata accesa fisierul de pe disc
• solutie: stocarea fisierului in Redis
42. Monitorizare aplicatie
• Salvarea periodica a unor parametri
• Bounded Queue:
• coada cu dimensiune limitata
implementata folosind Redis
43. Sincronizare procese
• Redis Lock
• poate fi folosit pentru a ne asigura ca un
singur proces executa o bucata de cod
pentru o anumita resursa
• ex: procesare rezultate sincronizare
- nu exista tabele sau relatii - server redis - totul e tinut in memorie -- spatiul bazei de date e limitat de RAM / swap
Rescriere AOF - fiul scrie din memorie un AOF - parintele functioneaza in continuare la fel + adauga intr-un buffer commenzile noi - fiul trimite parintelui un semnal cand a terminat - parintele scrie din buffer - redenumeste atomic fisierul