locking v databazi - vlasni reseni

Radek Kanovsky rk na dat.cz
Pátek Září 13 18:40:47 CEST 2002


On Fri, Sep 13, 2002 at 04:36:11PM +0200, Karel Zak wrote:

> > 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.
> 
>  To zni jako, ze mate vlastni zkusenesti. Jaky tedy sleepycat je?
>  (jsem zvedavy, protoze zase tak moc lidi co to pouziva bezne
>  nepotkavam:-)

Pouzival jsem Sleepycat databazi napriklad na ukladani sessions ve webovych
aplikacich, kdyz jeste postgres neumel ukladat rozumne velke zaznamy,
bloby byly pomale a stroje nevykonne, ale to uz si malokdo pamatuje...

Dalsim vytvorem, kde jsem ji pouzil, je NSS plugin do linuxu, ktery
umoznuje mit na linuxu vic databazi uzivatelu a pres konfiguracni
soubor priradovat ruznym programum ruzne databaze uzivatelu. Mam treba
databazi "mailistu", do ktere vidi jenom SMTP server a POP server.
O techto lidech pak nevi SSH, FTP apod. Sleepycat se pouziva kvuli
rychlosti vyhledavani v rozsahlych databazich uzivatelu. Funguje na
systemove urovni, takze aplikace neni potreba rekompilovat. Momentalne
to bez problemu bezi na nekolika serverech a je to volne k dispozici na
ftp://ftp.dat.cz/proj/nss_apppwd/

Cili zatim takove blbiny bez nejakych databazovych machrovin, ale urcite
by byla vhodna i na neco vetsiho. Sleepycat ma dobre reference a na
unixu je vlastne prilinkovana temer ke kazdemu programu. Co se tyce
nedostatku, tak me napada, ze zatim neni transakcne osetreno vytvoreni,
prejmenovani a zruseni databaze. To ma byt osetreno v dalsi verzi. Jinak
ma asi vse, co se od databaze ceka vcetne dvoufazoveho commitu.
Dokonce umi pracovat i v ramci jineho transakcniho manageru (XA) a ma to
jakousi podporu pro replikaci. Sleepycat ale nema zadny dotazovaci ani
definicni jazyk a databaze nema vubec poneti o datech v ni ulozenych,
coz nekdy nemusi vadit. Mam v planu ji pouzit jako perzistentni uloziste
pro Pythonovske objekty. Chtel bych vlastne databazove-aplikacni server,
kde by byl Python jako definicni a dotazovaci jazyk. Mozna to nekdy
dokoncim a pak dam vedet, nebo zjistim, ze to nema smysl, a pak dam mozna
taky vedet.

Zdravi

Radek Kaňovský


Další informace o konferenci Test