DevProTalk

DevProTalk (http://www.devprotalk.com/index.php)
-   Planiranje i usability (http://www.devprotalk.com/forumdisplay.php?f=35)
-   -   O cemu treba voditi racuna, visejezicni sajt sa bazom itd. (http://www.devprotalk.com/showthread.php?t=439)

noviKorisnik 23. 12. 2005. 08:28

Moram da priznam da mi nije jasna ova poslednja primedba o keširanju - "veliki cache nužno znači i sporiji cache". Nije li cache u ovom smislu samo fajl koji se snima u fajl sistem, nešto što može da uštedi neki deo komunikacije s bazom? Ako je to samo fajl iz fajl sistema, kakva je razlika u perfomansama ako u istom direktorijumu stoji još 9 ili 99999 cache fajlova?

ivanhoe 23. 12. 2005. 17:56

pa cak i ako ces svaki podatak da drzis kao zaseban fajl opet imas problem jer na linuxu na ext2 i ext 3 veliki broj fajlova u istom dir-u smanjuje (prilicno) perfomanse..

a najcesce se kes ne pravi tako, nego se koristi neka vrsta indexirane strukture tipa DBM baze ili se koristi deljena memorija ili se cak koristi optimizovana tabela u obicnoj bazi (ima smisla za keshiranje podataka nastalih komplikovanim upitima)

Kako god da bilo, sto imas vise podataka teze ces pronaci onaj koji ti treba, i jos znacajnije sporije ce ti biti sve operacije odrzavanja tog kesa (ubacivanje novih, brisanje expired podataka i sl..)....to je naprosto neminovno...

DejanVesic 28. 12. 2005. 19:16

Citat:

Originalno napisao ivanhoe
pa cak i ako ces svaki podatak da drzis kao zaseban fajl opet imas problem jer na linuxu na ext2 i ext 3 veliki broj fajlova u istom dir-u smanjuje (prilicno) perfomanse..

a najcesce se kes ne pravi tako, nego se koristi neka vrsta indexirane strukture tipa DBM baze ili se koristi deljena memorija ili se cak koristi optimizovana tabela u obicnoj bazi (ima smisla za keshiranje podataka nastalih komplikovanim upitima)

Kako god da bilo, sto imas vise podataka teze ces pronaci onaj koji ti treba, i jos znacajnije sporije ce ti biti sve operacije odrzavanja tog kesa (ubacivanje novih, brisanje expired podataka i sl..)....to je naprosto neminovno...

Žao mi je, ali ništa od ovoga nije tačno.

- broj fajlova nema veze sa performansama ako gađaš fajl tačno po imenu; kod svih normalnih sistema, u pitanju je binarno stablo ili slična struktura, tako da se do fajla vrlo brzo dolazi

- indeksiranje keš strukture se uvek bira tako da nije linearno (sekvencijalno) jer onda naprosto ne bi imalo smisla

- sve operacije rada sa kešom se prave tako da otprilike imaju isto koštanje, odnosno da ne zavise (malo zavise) od veličine keša.

Primer: Binary Tree: pretraga je reda O(log n) što znači:

-za 100 itema: 5
- za 1000 itema: 7
- za 1,000,000 itema: 14

Tačno je da može i da ode na n ali se algoritmi tako prave da se stablo prilikom add/delete uvek balansira i održava u što boljem stanju.

ivanhoe 28. 12. 2005. 23:00

Citat:

Originalno napisao DejanVesic
Žao mi je, ali ništa od ovoga nije tačno. - broj fajlova nema veze sa performansama ako gađaš fajl tačno po imenu; kod svih normalnih sistema, u pitanju je binarno stablo ili slična struktura, tako da se do fajla vrlo brzo dolazi

Evo Advanced PHP Programming od George Schlossnagle (covek koji je ucestvovao u pravljenju APC extenzije za php) imam u elektronskoj formi i bas sad je citam, pa cu da iskopiram relevantne delove, da ne bude kako ja nemam pojma o cemu pricam (posto realno nemam, ali verujem da G. Schlossnagle ima):

"With a single file per cache item, you risk not only consuming a large amount of disk space but creating a large number of files. Many filesystems (including ext2 and ext3 in Linux) perform very poorly when a large number of files accumulate in a directory"

"Don’t let preconceptions that a cache must be small constrain your design choices. Although small caches in general are faster to access than large caches, as long as the cached version (including maintenance overhead) is faster than the uncached version; it is worth consideration."

Citat:

Originalno napisao DejanVesic
- indeksiranje keš strukture se uvek bira tako da nije linearno (sekvencijalno) jer onda naprosto ne bi imalo smisla

- sve operacije rada sa kešom se prave tako da otprilike imaju isto koštanje, odnosno da ne zavise (malo zavise) od veličine keša.

tako je to u idealnom svetu...ali da li si nekad radio upit nad bazom od par miliona rekorda...bez obzira na indexiranje to je primetno sporije, nego kad ta ista baza ima desetak rekorda zar ne?

mada ok, radi se o nijansama koje su bitne samo za hiper opterecenje, na vecini sajtova je to skroz nebitno, da ne ispadne da sam neki fanatik perfomanski po svaku cenu... cela polemika je krenula oko toga sto sam rekao da sto veca struktura to sporiji rad... i to jeste cinjenica, pitanje je samo koliko ta razlika bitno utice na ono sto nekome treba...za neke situacije je tih 14 koraka za milion rekorda, nepotrebno sporije od 7 za 1000 rekorda, jer ti 1000 dobro azuriranih rekorda odlicno rade posao, a duplo su brzi...

Petar Marić 29. 12. 2005. 01:58

Savet: kada se radi o zaista velikom cache-u - koristite memcached.

dee 04. 08. 2006. 13:55

jos nesto interesantno na cache temu -> http://talks.php.net/show/zagreb2/0

u gornjem desnom kutu je slide-show navigacija, a klik na broj strane otvara cijeli menu. od 10-te strane na dalje pocinje zanimljivi dio.

dee 08. 08. 2006. 12:46

jos jedno pitanje, kako je u bazi najbolje slozit multilanguage sajt? da li da za svaki jezik postoje posebne tabele za prevodive stvari (npr. en_kategorije, sr_kategorije, en_clanci, sr_clanci, itd itd) ili ima jos neki nacini?

Ilija Studen 08. 08. 2006. 12:58

Ja sam koristio dve tabele. Npr:

* pages

- id
- parent
- created_on ...

* pages_text

- page_id
- language_id
- title
- content
- description ...

Prva sadrži kostur, druga "meso".

Kada izvlačiš ideš sa:

PHP kôd:

$page Pages::findById(12);
print 
$page->getTitle($current_language); 



Vreme je GMT +2. Trenutno vreme je 20:59.

Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.

Mišljenja, saveti, izjave, ponude ili druge informacije ili sadržaji nastali na Sajtu su vlasništvo onoga ko ih je kreirao, a ne DevProTalk.com, tako da ne morate da se oslanjate na njih.
Autori poruka su jedini odgovorni za ovakve sadržaje. DevProTalk.com ne garantuje tačnost, kompletnost ili upotrebnu vrednost informacija, stavova, saveta ili datih izjava. Ne postoje uslovi pod kojima bi mi bili odgovorni za štetu ili gubitak koji je posledica bilo čijeg oslanjanja na nepouzdane informacije, ili bilo kakve informacije nastale kroz komunikaciju između registrovanih članova.
Web sajt može sadržavati linkove na druge web sajtove na Internetu ili neke druge sadržaje. Ne kontrolišemo niti podržavamo te druge web sajtove, niti smo pregledali bilo kakve sadržaje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadržaja, oglasa, proizvoda, usluga ili informacije lociranim na ili distribuiranih kroz druge web sajtove, niti za bilo kakvu štetu nastalu kao posledica takvih informacija. DevProTalk.com drži i čuva druga prava vlasništva na web sajtu. Web sajt sadrže materijale zaštićene copyright-om, zaštitne znakove i druge informacije o pravu vlasništva ili softver. Članovi mogu poslatu informacije zaštićene pravima vlasništva njihovih nosilaca i ona ostaju zaštićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasništvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvršavate, prikazujete ili prodajte bilo koju informaciju zaštićenu pravima vlasništva. Slanjem informacija ili sadržaja na bilo koji deo DevProTalk.com, Vi automatski dozvoljavate i predstavljate garanciju da imate pravo da dozvolite DevProTalk.com ili članovima DevProTalk.com bespovratnu, kontinualnu, neograničenu, globalnu dozvolu da koriste, kopiraju, izvršavaju, prikazuju i distribuiraju takve informacije i sadržaje i da iz takvih sadžaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadržaje. Svi zaštitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasništvo kojim raspolažu njihovi vlasnici.