NetMag
NetMag Daily


Anketa
Bazar
Consulting
FAQ
Help!
NetMag Postou
O nas a NetMagu
Obsah cisel
Registrace
Reklama u nas


NetTip
Lamers List
LiterNet
CzechCraft
NC InfoCentrum
Unix InfoCentrum
Peering v Cechach
Postavte si PC


TechNet
AdBanner
Digit Server
FSG
ISDN
Megaprint
Mobil Server
Notebooky
Vztlak

 

Smart Cache
by Radim Kolar


je mnou vyrobena proxy cache v Jave. Vyrobil jsem ji pochopitelne pro primarne pro sebe, protoze mne zadna proxy cache moc (rekneme spis vubec) nevyhovovala. Vyzkousel jsem Squida (zere moc pameti a strasne spatne se vyndavaji nejake objekty z cache), Apache (dobra parodie na cache), a IBM ICSS (verze 4.2 je naprosto nepouzitelna jako cache, 4.1 mela problemy s updatem ridicich souboru pri vice uzivatelich soucasne).

Konkurence:

Netscape

  • Uklada (vetsinou) cache do jednoho adresare, coz zpusobuje jeho velmi pomale prohledavani/updatovani kdyz tam mate vice (tak 5000) souboru.
  • ztraci obcas reference na soubory v cache ulozene, takze i kdyz tam ty soubory fyzicky na disku jsou, mysli si ze je tam nema.
  • Neumoznuje vynutit garbage collection a tyto soubory z disku odstranit
  • Necachuje dokumenty bez Last-Modified
  • Nacachuje dokumenty s Cookies
  • Velmi casto si mysli, viz about:cache, ze ma v cache daleko vic souboru, coz zpusobuje jeho castou manii s garbage collection, kterou dela pri exitu
  • Garbage Collection dela opravdu zajimave. Mel jsem cache 22MB o kterych si myslel, ze je to 30M a po GC ji smrsknul na 0.9MB. Dost mne to otravilo, protoze jsem tam mel nacachovane ruzne obrazky ze sites kam casto lezu.

MSIE

  • jeste horsi nez Netchcipak.
  • Nacachuje vam i dokument u ktereho se neshoduje content-size s delkou, kterou obdrzel od serveru. Vzhledem k tomu, ze to byl .zip tak se mne na nej nepovedlo udelat reload, tak jsem musel udelat clear cache.

Squid

  • Abnormalne velka spotreba pameti
  • Vzhledem k tomu, ze cachuje i negativni odpovedi, tak prepise dobry objekt v cache nejakou chybou - nejlepe request timeout ci tak nejak.
  • Necachuje dokumenty s C00kies, kterych je bohuzel vetsina.

Moje cache byla vytvorena tak, aby to byla naprosto idealni vec pro dialup uzivatele. Dial-up uzivatel ma sve specifika - nechce byt moc dlouho on-line, chce mit moznost si offline prohlizet cachovane stranky a nechce tahat ruzne nezajimave veci - napr. reklamu. Pochopitelne si rad prohledava cache a diva se co v ni je. Dalsi vec, kterou urcite nemate radi jsou ruzne SSI generovane stranky (napr. na Seznamu), takze po stisku go-back (v Seznamu se to docela dost pouziva) se vam zacne minula stranka tahat znovu ze serveru + reklama, na coz ja osobne vubec nejsem zvedavej.

Cache lze nastavit do rezimu cachuj uplne vsechno, co prez ni proleze (idealni pro dialupy), takze kdyz jste pak offline, tak si muzete prohlizet stranky kompletni vcetne napr. stavu pocitadla. I v tomto rezimu nemusite mit strach, ze pokud jste online, tak ze budete dostavat stare objekty. Tento pracovni rezim ma jeste jednu vyhodu. Vzhledem k tomu, ze cachuje i objekty, ktere by se normalne necachovali, tak pokud nejaky server obsahuje reklamy, tak v naproste vetsine (zalezi jak ma server ty reklamy zarizene) natahnete z vice stridajicich se reklam jen jednu za on-line session, coz rozhodne potesi. Jeste vice potesi moznost si reklamy zablokovat uplne.

Jeste k tem reklamam, protoze cache umi pousilat i redirekty, tak muzete presmerovavat reklamu i na vase lokalni soubory. Je velmi dobrej ftip mit u reklamy na Altaviste ci Yahoo nastaven redirekt na lokalni soubor obsahujici reklamu na NetMag. Uvidite, kolik lidi to uzemni! Mne se tohle osobne _VELMI_ libi.

Dalsi z featur je, ze nechcete cekat online, az se natahne cela stranka, ale offline by jste si ji radi prohledli. V tom pripade, po vhodnem nastaveni cache, se vam dotahuji objekty i kdyz v browseru date STOP. Napriklad jsem si chtel procist Mobil server, tak jsem nabehl na jeho homepage, jednu ruku na ESC a druhou na mys a provedl jsem velmi rychly sled click-esc. Po odklikani vsech linku co na homepage meli, jsem vypadl jinam a cache zatim dotahavala prislusne dokumenty stylem packety behaji kolem sveta.

S tim souvisi dalsi vec a tou je vyndavani objektu z cache. Objekty v cache neobsahuji navic zadne informace (napr. http hlavicky ktere se z Gifacu nevyndavaji moc snadno) a tak je muzete bez problemu ihned pouzit. Soubory se ukladaji do tzv. CERN - style adresarove struktury a tak je v ni snadno a rychle najdete. Pozadovane soubory pochopitelne muzete presunout primo tam, kde je potrebujete. Nemusite se bat, ze by to cache nejak uskodilo. Jedina potencionalne mirne nebezpecna akce je, pokud cachi smazete adresar do ktereho se pokousi nahrat nejake objekty. V tom pripade, se prislusne objekty pochopitelne na disk uz neulozi. Adresar se vytvori znovu, az se ukonci vsechny transakce, ktere jej pouzivaji a zacne transakce nova.

Garbage collection

Je jedina vec, kterou zatim (mozna ze az budete cist tento clanek, tak to uz nebude pravda) cache neumi. Existuji totiz ruzne zpusoby jak tuto operaci provadet (ciste podle LRU, LRU + podle delky, LRU + delky + typu + URL) a zatim jsem se nerozhodl, ktery pouziji (asi nejakou jejich kombinaci) a hlavne jak vice techto algoritmu zkombinovat do jednoho. Zde bych uvital nejake vase rady.

Pokud ovsem chcete klasickou LRU GC, tak to neni zadny problem. Pomoci prikazu find a rm odstranite z cache vsechny soubory, ktere maji last access date (podporuji to filesystemu UNIXu, windows a OS/2) vetsi nez vami preferovany pocet dnu. napr. find /var/cache -atime +XX -print | xargs rm -f

Pote zavolate jedinou uklizeci proceduru, kterou cache zatim podporuje a tou je kill unreferenced files and empty directories, coz domaze pripadne nekonzistence, ktere po vasem uklidu vznikly. (java scache -killunref). Zda gnu find existuje i pod Windows to netusim, ale Xtree ci jiny inteligentni file manager to zvladne take.

Prakticke zkusenosti

Jeden uzivatel, ktery to aplikoval na firemni LANku tvrdil, ze to podstatne zredukovalo zatizeni linky, zvlaste kdyz tam nastavil cache_all. To, ze se BFU divaji na X hodin Stary Seznam, pocitadla atd. a to je nezabije a lince to vyrazne pomuze. Lezlo mu pry znacne na nervy, kdyz se homepage Seznamu atd. tahala 60x za den. GC provadi findem v cronu, cache kvuli tomu nestopuje. Jednou za tyden provede -killunref.

Dalsi pozitivni feedback: Cache se nasadi na notebook a pouziva jako nadrazeny proxy server vasi firemni cache. Pokud nekam odcestujete, tak urcite budete potrebovat vase firemni a mozna i nejake cizi stranky, na ktere se casto divate. Vzhledem k tomu, ze je mate v cache, muzete si je bez problemu prohlizet.

LICENCE

Tento produkt je zdarma povoleno pouzivat pouze dial-up uzivatelum a to navic jen pro nekomercni ucely. Produkt neni mozno dale kopirovat, modifikovat, prodavat a tak podobne. Pokud ho chcete pouzivat pro pripojeni LAN site nebo pro komercni prostredi, tak si to kupte. Cena nebyla jeste stanovena a pevne doufam, ze se nenajde nikdo kdo to bude chtit koupit. Pocitejte tak s tisicovkou, coz se vzhledem k tomu, ze je opravdu o tridu lepsi nez interni cache Netscape, rozhodne vyplati.

Homepage produktu je zde.

Poznamka pro pripadne stouraly: O tomto produktu pisi tolik ne proto, ze je muj, ale proto, ze ho povazuji za velmi uzitecny pro dial-up uzivatele. Garbage collection pochopitelne casem (14 dni?) bude umet a to dokonce velmi dobrou (zavisejici na mnoha faktorech). Pouzitim tohoto produktu dosahnete toho, ze pan budete vy a ne vas browser. Netchipak ma opravdu cache mizernou.


Hodnoceni clanku
(hodnoceni je jako ve skole, 1 je nejlepsi, 5 je nejhorsi)

12345

Email:
Komentar:
Nepouzivejte prosim diakritiku.
Souhlasim se zverejnenim komentare v NetMagu