Jak na zamek na databazi?

Jan Kubik jan.kubik na kb-soft.com
Středa Březen 26 18:15:39 CET 2003


"Miroslav Prymek" <prymek na tiscali.cz> wrote
> Dobry den,
> jeste jeden dotaz ohledne programovani serveru.
> V serveru jede pro kazdeho pripojeneho klienta jeden thread (a BLOKUJICI
> socket), pricemz klienti posilaji pozadavky na zapis/cteni databaze,
> kterou spravuje server. (Databaze je trosku silne slovo, jde o klasicky
> obousmerne zretezeny seznam objektu. Nepouzivam zadnou knihovnu -
> objekty a vsechno,
> co s nimi souvisi jsem implementoval sam).
>
> PROBLEM: Chtel bych, aby zaroven mohlo libovolne mnozstvi threadu cist
> z databaze. Jestlize chce nektery thread zapisovat, zakaze dalsi cteni,
> pocka az soucasne cteni dobehne a potom zacne psat.
> TEDY CELKEM KLASICKA SITUACE.
>

Muj navrh:

fcntl ... locking na soubor, ktery ma tolik Byte, jake je max. mozny
pocet procesu

read proces posadi lock na "svuj" byte, write proces posadi lock na
cely soubor
po cteni a psani procesy svuj lock odstrani
zemre-li nejaky proces - odstrani lock jadro

P.S.
Ja nepracuji s thready ale s procesy a proto mam otazku k tvemu
servru. Co se stane, kdyz nejaky thread zemre - konci i cely server?

s pozdravem
Jan






Další informace o konferenci Linux