[python] Databázový engine ?

Lukáš Linhart almad na include.cz
Neděle Listopad 25 17:35:52 CET 2007


E-mail Filip Štědrosnký ze dne Sunday 25 of November 2007:
> V případě inprocess řešení bych potřeboval, aby bylo
> thread-safe a aby bylo možné používat db z více threadů současně, ideálně
> včetně více rozpracovaných transakcí v různých vláknech. Uvažoval jsem o
> sqlite3, ale tam byl nějaký problém s přístupem z více threadů. 

Přístupovat z více threadů normálně jde, ale sqlite má database-wide write 
lock, tj. jen jedna konexe/transakce může najednou zapisovat a binding se o 
to nestará, tj. je nutné manuálně udržovat nějaký mutex (threading.Lock), 
který si před zápisem vlákno vždycky musí získat a pak ho nezapomene 
releasnout.


> Dá se to 
> vůbec nějak vyřešit ?

V rámci sqlite jen tím hackem, pokud vim tak změna se neplánuje. Jinak 
samozřejmě nějakou jinou databázi, takže zahajme ohnivé války ,)

Osobně doporučuju Firebird. Bindingy jsou velmi solidní (kinterbasdb.sf.net), 
engine je velmi malý, umí to prakticky vše co se od db dá očekávat (vč. SP, 
views atd), dá se to dobře rozšiřovat přes UDF, je to postaveno na osvědčeném 
komerčním řešení (InterBase), má to i embedded verzi (která je asi nejlepší 
embedded databází teď) a prý to má víc instalací než oracle.

Nevýhoda je, že pro UTF-8 je český collate až ve verzi 2.1, která ještě není 
stable.

Jinak podle dotazu by možná stačilo i mysql, ne? ,)

> Předem děkuji za všechny odpovědi,
> regnarg

Za málo,

-- 
Lukáš Linhart
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part.
Url : http://www.py.cz/pipermail/python/attachments/20071125/61741bd7/attachment.pgp 


Další informace o konferenci Python