Job-Puffergroesse v. Avanti-W?

Anando Eger anando at aneg-dv.de
Do Dez 5 12:21:30 CET 2002


Lieber Herr Berger, 

Sie schrieben u.a. auf meine Vermutung 

> > avntserv.exe könnte doch den Job erstmal in einen Puffer
> > schieben, bis "\nAVANTI:EOJ\n" eingetroffen ist und dann
> > an procav übergeben (wenn ich mir die Aufgabenverteilung
> 
> Das war genau der Grund, warum "AVANTI:EOJ" einige
> Zeit nach dessen "Geburt" in das avanti-Protokoll
> eingebaut worden war: Vorher hatte er ganz bewusst
> die Strategie verfolgt, inmmer loszuarbeiten, sobald
> es "nichts mehr zu lesen" gab.

Nun gut, dann dürfte es ja eigentlich keine Probleme geben.

> Client und Server haben keinen Einfluss auf die maximale
> Paketgroesse ihrer Verbindung und es gibt keine Methode,
> die garantieren wuerde, dass der Server unmittelbar nach
> Auslesen des ersten Pakets das zweite Paket bereits
> empfangen hat. Eine errechnete Laengenangabe am Anfang
> des Jobs oder eben - wie eingebaut - ein explizites
> Ende-Element auf Protokollebene sind die einzigen
> Moeglichkeiten, vollstaendige Kommunikation zu
> gewaehrleisten.

Logisch, also MUSS avanti erst einen Job KOMPLETT EMPFANGEN
und DANACH erst mit der Bearbeitung BEGINNEN.

Avanti stellt mit AVANTI:EOJ/AVANTI:EOR einen zwar spartanischen, 
jedoch ausreichenden Mechanismus bereit. Nur scheint Avantis sich,
wie Sie wohl vermuten, selbst nicht daran zu halten.

> Das procav den Job erst am Ende uebergeben bekommt,

Was ist das "Ende"? 

> muss vermutlich so sein, aufgrund der Designprobleme
> in avanti. 
> ...
> "Normalerweise" wuerde der Server einen
> Kommunikationsversuch bemerken, und die "Leitung"
> an procav uebergeben. Dieses waere dann fuer den
> Empfang des Jobs zustaendig, dessen Abarbeitung
> und die Uebertragung des Resultats. Realisiert
> hingegen ist, dass die Server-Komponente den
> Job einsammelt, per shared Memory an procav
> uebergibt, das Resultat von procav per shared
> Memory entgegennimmt (seit einigen Versionen
> immerhin portionsweise) und uebermittelt.

Bedingung bleibt aber offensichtlich, dass empfangene
Jobs erst dann begonnen werden können, nachdem sie voll-
ständig empfangen wurden. Wenn das nicht so sein 
sollte, halte ich die Korrektur dessen für 

        ÄUSSERST DRINGEND

  - selbst wenn ich von Paketgrößen von nur
1024 Bytes ausgehe und alle Jobs in solche SCHNIPSEL
aufteile - dann gibts sicher irgendwo eine Netzwerk-
komponente, die daraus zwei 512-Byte-Pakete macht - und
zwischendurch natürlich eine Übertragungspause einbaut ...

Viele Grüße
Anando Eger




Mehr Informationen über die Mailingliste Allegro