Postoje 2 nacina da izbegnes da ti 2 procesa otvore isti cache fajl i krenu da brljaju po njemu istovremeno. Za primer uzmimo da zelis da kreiras fajl neka_strana.htm koji ce da sluzi za keshiranje, mozes da:
- koristis flock() da lockujes fajl neka_strana.htm, pa da onda upisujes u njega.
- upisujes u privremeni fajl sa nekim random imenom (mozes da koristis tmpfile() za to) i onda kad si zavrsio sa upisom, uradis rename na tom tmp fajlu u neka_strana.htm. Ovo ima prednost jer ne zahteva lockovanje (zbog nacina na koji rename funkcionise na unixu da ne ulazim sad u detalje oko inodova). Zbog toga je brze jer dok ti pises podatke u taj tmp fajl, ostali procesi mogu i dalje da citaju cache-irane podatke iz neka_strana.htm fajla (nema potrebe da cekaju da se upis zavrsi kao kod lockovanja)
__________________
Leadership is the art of getting people to want to do what you know must be done.
|