[Vienna-pm] non-blocking DBI / Postgres
Thomas Klausner
domm at zsi.at
Mon Nov 3 01:50:39 CST 2003
Hi!
On Mon, Nov 03, 2003 at 03:58:42 +0100, Marinos J. Yannikos | Geizhals.at wrote:
> hat sich eigentlich schon jemand Gedanken darüber gemacht, wie man mit DBI
> mehrere (SELECT-)Queries absetzen und parallel ausführen lassen könnte? Wenn
> man Sequenzen wie
>
> execute()...execute()...execute()...fetchall()...fetchall()...fetchall()
>
> verwendet, werden die Queries ja trotzdem sequentiell abgearbeitet, d.h. das
> erste execute() blockt schon. Wünschenswert wäre ein Trick, mit dem erst das
> erste fetchall() blocken würde (die Latenzzeit für alle Queries sollte so
> reduziert werden, wenn man davon ausgehen kann, daß der DB-Server diese auch
> effizient parallel abarbeiten kann).
> ..
> Hat irgendjemand dafür eine elegante Lösung? Mein schneller Hack dafür
> brachte leider eine Performance-Verschlechterung ;-) (fork() mit mehreren
> Child-Prozessen, die Queries im plaintext erhalten und das Ergebnis im
> Storable-Format an den parent schicken - ugh).
Ist nicht wirklich mein Spezialgebiet, aber kann man dafuer nicht Threading
verwenden?
Oder vielleicht hilft dir POE
http://search.cpan.org/~rcaputo/POE-0.27/POE.pm
POE - multitasking and networking framework for Perl
Soll ganz gut sein, hab damit aber noch nix gemacht.
--
#!/usr/bin/perl http://domm.zsi.at
for(ref bless{},just'another'perl'hacker){s-:+-$"-g&&print$_.$/}
More information about the Vienna-pm
mailing list