[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