locking v databazi - vlasni reseni

Jan Kubik jan.kubik na kb-soft.com
Pátek Září 13 19:08:54 CEST 2002


hi,

"Radek Kanovsky" <rk na dat.cz> wrote im Newsbeitrag
news:20020913131540.GB5545 na dat.cz...

> Ja jenom doplnim, ze lock, cache a transaction manager jdou pouzit i
> samostatne, takze pokud je jiz hotove nejake databazove reseni, kteremu
> chybi zamykani, lze vyuzit ze sleepycat jenom to zamykani a napasovat ho
> na jinou databazi. Zamykani by melo fungovat pres vic procesu/threadu
> na jednom stroji a jako datovy typ, nad kterym to funguje je u_int32_t
> locker, takze byste potreboval nejake jenoznacne mapovani z vasich klicu
> na unsigned integer.

S berkeley pracuji jiz nejakou dobu, nepouzival jsem doposud ani locking a
ani
transakce - neb system slouzi jako demo pro jednoho uzivatele. Pri mem
hledani jsem na Vami uvedenou moznost narazil a napsal sadu testovacich
programu (na zaklade berkeley prikladu).

1.
Ze by bylo potreba to mapovani , jsem nevyrozumnel.
Priklad takoveho code-segmentu:

strcpy(objbuf,"LK"); strcat(objbuf,pkey);
lock_type = DB_LOCK_READ;
memset(&lock_dbt, 0, sizeof(lock_dbt));
lock_dbt.data = objbuf;
lock_dbt.size = strlen(objbuf);
ret = dbenv->lock_get(dbenv, locker,0, &lock_dbt, lock_type, &lock);

ja jsem to pochopil tak, ze system zustane stat pri volani dbenv->lock_get,
jestlize pro kombinaci locker/lock_dbt - object nekdo jiny jiz lock vyzadal
??
ALE vzhledem k tomu, ze locking zavini blockadu cele tabulky jsem eventuelne
uplne mimo -- mate Vy s tim zkusenosti ??

2.
na druhou stranu, dovedete si predstavit jak je mozno JEDNOZNACNE prevest
20 Byte string na unsigned int ... ja vidim jen nejakou hash tabulku, ktera
musi byt
ale pro vsechny procesy jednoznacna ???

diky za odpoved
Jan




Další informace o konferenci Test