[Vienna-pm] hash in shared memory?
LAUN Wolfgang
wolfgang.laun at alcatel.at
Mon May 24 00:45:48 CDT 2004
> -----Original Message-----
> From: peter pilsl [mailto:pilsl at goldfisch.at]
> Sent: Friday, May 21, 2004 4:18 PM
> To: vienna-pm at mail.pm.org
> Subject: Re: [Vienna-pm] hash in shared memory?
>
>
>
> Warum shared memory?
>
> Ich verwende shm in folgendem szenario:
>
> beliebig viele prozesse (zB eine threaded serverapplikation wie
> apache/mod_perl) wollen gemeinsame daten sehr effizient sharen (zB
> caching aufwändiger Datenbankabfragen etc.)
Das ist doch ein anderes Szenario als das ursprünglich mit einem
Produzenten und einem Konsumenten beschriebene.
> Ich komme bei kaum einer mod_perl-applikation ohne aus. Irgendwo ist
> immer die Situation, dass ein Prozess Daten zeitaufwändig
> gewinnen muss
> und dann über shm bequem den anderen zur Verfügung stellen muss.
>
> Wenn man es einmal gemacht hat, ist es so komplex auch wieder nicht.
> semaphoren sind für ein simplex locking bestens geeignet und es muss
> einen Allocation-Table geben, damit alle Prozesse den Überblick
> behalten, was eigentlich gespeichert ist.
> Wichtig natürlich immer ein monitor, der die shm-segmente
> wieder löscht,
> wenns nötig ist.
Eben doch ein wenig viel Aufwand, wenn's eine Pipe (oder eine
entsprechende Einbahn-Verbindung) von A nach B auch tut.
>
> Sockets sind für diese Art der Anwendung nach meinem Wissen
> nicht geeignet.
Klar, denn (wie oben gesagt) das ist ja eine andere Situation.
-W
>
> peter
>
>
> LAUN Wolfgang wrote:
> > Zu den Hinweisen auf die CPAN-Module, die zum Thema SM gekommen
> > sind, möchte ich eine grundlegende Frage stellen: Warum soll
> > überhaupt Shared Memory verwendet werden? Damit handelt man
> > sich eine ganze Reihe von Problemen ein.
> >
> > (1) Shared memory segmente müssen angelegt und initialisiert
> > werden. Damit muss man zwischen einem Cold start (SM
> > anlegen und initialisieren) und einem Restart (z.B. nach
> > Ausfall eines oder beider Programme) unterscheiden.
> >
> > (2) Weiters wird Synchronisation zwischen dem Produzenten
> > (dem Sammler-Prozess) und dem Konsumenten (der DB-Client)
> > notwendig.
> >
> > (3) Ein Hash wächst i.a. dynamisch; SM-Segmente sind dafür
> > nicht unbedingt gut geeignet.
> >
> > Ich habe in einer Reihe ähnlicher Fälle immer Sockets für
> > die Weitergabe von Daten verwendet und bin damit recht gut
> > gefahren. Neben dem Wegfallen aller Nebenbedingungen für SM
> > gewinnt man gratis dazu, dass Produzent und Konsument auch
> > auf verschiedenen Systemen laufen können. Speichern der
> > Daten ist natürlich nur mehr im Kosument notwendig.
> >
> > Ich habe für das Socket-Handling das Package Msg.pm
> > aus dem Buch "Advanced Perl Programming" von Sriram
> > Srinivasan verwendet. Der Code ist auf
> > http://examples.oreilly.com/advperl/
> > zu finden.
> >
> > (Zusatzfrage: Warum müssen es überhaupt 2 Prozesse sein?)
> >
> > Für weitere Auskünfte stehe ich gerne zur Verfügung!
> >
> > Wolfgang Laun
> > Transport Solutions Division
> > Alcatel Austria AG
> > Phone +43 1 27722 5662
> > Fax +43 1 27722 1173
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >>-----Original Message-----
> >>From: Josef Bergmann [mailto:joe at bec.at]
> >>Sent: Wednesday, May 19, 2004 5:54 PM
> >>To: vienna-pm at mail.pm.org
> >>Subject: [Vienna-pm] hash in shared memory?
> >>
> >>
> >>Hi!
> >>
> >>Ich möchte das zwei Linux-Programme auf gemeinsame Daten
> >>zugreifen. Konkret,
> >>ein Programm sammelt Informationen aus Netzwerkverbindungen
> >>und legt diese
> >>(z.Z.) in Hashes ab. Nun soll ein anderer Prozess diese Daten
> >>periodisch
> >>auslesen und in einer Datenbank ablegt.
> >>
> >>Die beiden Teilproblem habe ich ja gelöst, nur wie/wo lege ich die
> >>Daten/Hashes ab damit der zweite Prozess darauf zugreifen
> >>kann. Gibt es so
> >>eine Art Shared-Memory-Modul?
> >>
> >>bye Josef
> >>--
> >>BERGMANN engineering & consulting http://bec.at
> >>_______________________________________________
> >>Vienna-pm mailing list
> >>Vienna-pm at mail.pm.org
> >>http://mail.pm.org/mailman/listinfo/vienna-pm
> >>
> >
> > _______________________________________________
> > Vienna-pm mailing list
> > Vienna-pm at mail.pm.org
> > http://mail.pm.org/mailman/listinfo/vienna-pm
> >
>
> _______________________________________________
> Vienna-pm mailing list
> Vienna-pm at mail.pm.org
> http://mail.pm.org/mailman/listinfo/vienna-pm
>
More information about the Vienna-pm
mailing list