Da li MySQL odlazi u istoriju ? [en]

Da li je došlo vreme da MySQL okači patike o klin i tiho se povuče u zasluženu penziju?

Mnogim web programerima ova baza podataka predstavlja nezaobilazni alat za razvoj web aplikacija i upravo je ova baza podataka zadužena za čuvenje podataka na najvećem broju sajtova. Uprkos ovim činjenicama, ova baza podataka nema svetlu budućnost.

Razvoj Interneta i socijalnih mreža koje okupljaju ogroman broj korisnika, među kojima prednjači Facebook sa preko 500 miliona korisnika, uticao je da se uzdrma MySQL i potraže alternativna i inovativna rešenja. Sam Facebook je doprineo razvoju i unapređenju InnoDB endžina, ali kako bi postigli skalabilnost morali su da pokrenu razvoj sopstvenih rešenja (Cassandra).

Skalabilnost

Skalabilnost je mogućnost aplikacije da ponese povećanje zahteva i broja korisnika a da sama aplikacija ne mora da se menja. Što je aplikacija skalabilnija ona će lakše podneti povećan protok podataka. Cilj kojim teže svi projektanti sistema jeste da se postigne linearnost u brzini odgovora na zahtev i količine podataka sa kojima se manipuliše.

Postoji horizontalna skalabilnost i vertikalna skalabilnost kada govorimo o samom hardveru.

Vertikalna skalabilnost je kada se je aplikacija smeštena na jedom serveru, a na povećan protok reagujemo tako što serveru dodajemo memoriju, jači procesor, nova jezgra ili dodatni hard disk.

Horizontalna skalabilnost je idealnije rešenje, posebno za velike sisteme. Dodavanjem novih nodova sistem nastavlja da radi kao do sada samo sa novim igračem(nodom) u timu. Nod predstavlja jedan server.

Kada web aplikacija dođe do stadijuma da povećan broj podataka sa kojima se manipuliše utiče na brzinu odgovora na zahtev, tj na učitavanje stranica, možemo reagovati na više načina:

  • Uložiti gomilu novca u kupovinu hardvera koji će moći da se nosi sa novonastalom situacijom.
  • Misliti na vreme i dizajnirati samu aplikaciju tako da bude skalabilna, a to ćemo postići tako što ćemo na probleme odgvarati rešenjima koja podižu performanse. Ne postoji univerzalan odgovor već svaki scenario i svaka situacija zahtevaju posebno rešenje. Ukoliko sama aplikacija nije skalabila, treba pronaći usko grlo i na za njega odgovarajuće rešenje. U relacionim bazama podataka čest odgovor na probleme jeste denormalizacija. U školama ste učili da treba koristiti normalizaciju, ali sada ne pravimo anketu koju će popuniti vaše kolege sa klase, ovo je realnan svet sa 500 miliona korisnika i nekoliko milijardi otvorenih stranica dnevno.

Continue reading