You are viewing a plain text version of this content. The canonical link for it is here.
Posted to docs@httpd.apache.org by Mi...@telekurs.de on 2004/01/13 17:12:57 UTC

Re: German Translation mod_unique_id




für unterschiedliche Rechner eines korrkt konfiguierten

Two typos: "korrkt konfiguierten" => "korrekt konfigurierten".

(But "properly" is not "correctly"; so maybe
     "korrekt" => "entsprechend"
would be better.)

> Rechnerblocks

I am reluctant about translating the technical term "cluster"
here; and "Rechnerblock" isn't a well-known term either (only
5 hits from Google). Some paragraphs below the term "cluster"
has not been translated, which I prefer.

> Eindeutige Bezeichnungen werden für verschiedene Zwecke
> benötigt,

This sounds too strict.

The original only said "Eindeutige Bezeichnungen sind für
verschiedene Zwecke nützlich, die..."

> die &uuml;ber den Rahmen des eigentlichen Dokuments hinausgehen.</p>

Suggestion:
"deren Beschreibung den Rahmen dieses Dokuments sprengen würde."

> <p>Es folgt eine kurze

Literally: "Beginnen wir mit einer kurzen...".

> der Funktionsweise des Apache-Servers unter Unix funktioniert.

Remove the last word of this sentence.

> (Unter Windows NT wird dieses Modul nicht unterst&uuml;tzt.)

Nope - not "module" but "feature".
(We are in "theory mode" and talking about features of the
operating system, not (yet) about this module.)

> Auf Unix-Rechnern erzeugt der Apache mehrere Kindprozesse f&uuml;r
> jeweils eine Anfrage.

Nope. Each process can handle much more than just one request
(otherwise Apache would have to permanenty create and destroy
processes). But each of these processes handles one request
_at_a_time_, i. e. not two requests simultaneously:

"Auf Unix-Rechnern erzeugt der Apache mehrere Kindprozesse,
von denen jeder (die ihm zugeteilten) Anforderungen nachein-
ander abarbeitet."

And this will be an important requirement later.



By the way, I just wonder whether mod_unique_id still works
with MPMs other than forking processes? (What about threads?)



> Jeder Kindprozess kann w&auml;hrend seiner Lebensdauer mehrere
> Anfragen bedienen.

Eben. ;-)

> Im Zusammenhang dieser Erl&auml;uterung wird davon ausgegangen,

I would write
"Für die nachfolgenden Betrachtungen wird..."

> <p>Die Website operiert mit einem oder mehreren Rechnern, die in
> ihrer Gesamtheit als Cluster bezeichnet werden.

Yep, I appreciate to not translate "Cluster" here - see above.

> Unter bestimmten Voraussetzungen kann dieses Universum eindeutige
> Bezeichnungen f&uuml;r jede Anfrage erzeugen, ohne dass daf&uuml;r
> eine ausf&uuml;hrlichere Kommunikation zwischen den Rechnern des
> Clusters erforderlich ist.</p>

Literally: "Wir werden nachweisen, daß es unter bestimmten
Voraussetzungen in diesem Universum möglich ist, eindeutige
Bezeichnungen für jede Anfrage zu erzeugen, ohne..."
(This smells like a university script. :-)

> sollte des Uhr mit

Typo: "des" => "dessen".

> <li>Die Uhrzeit des Rechners wird

Plural: "Die Uhrzeiten der Rechner werden..."
(synchronization does not absolutely make them identical,
because the comparison is only of periodic nature, and in
between two comparisons minor deviations may occur.)

> <li>Die Host-Namen der Rechner

Literally: "aller beteiligten Rechner (dieses Clusters)".

> <p>Hinsichtlich des Betriebssystems wird davon ausgegangen,
> dass die Pids (Prozess-IDs) 32 Bit gro&szlig; sind.

"fit into 32 bit" would imply "maximal 32 Bit lang".
(It might be less, without major problems.)

> <p>Ausgehend von diesen Voraussetzungen,

More fluently: "Unter diesen Voraussetzungen..."

> Der Zeitstempel hat nur eine Genauigkeit von einer Sekunde,
> weshalb mit dem Z&auml;hler 65.536 Werte innerhalb einer
> Sekunde erzeugt werden.

Literally:
"weshalb der Zähler dafür verwendet wird, bis zu 65.536
(verschiedene) Werte pro Sekunde darstellen zu können."

> Dieses Quartett

The literal translation "Quadrupel" is fine in German.

> Die Tatsache, dass die Prozess-IDs im Laufe der Zeit
> wiederverwendet werden, wird durch den Z&auml;hler abgefangen.</p>

I would prefer "berücksichtigt" (literally: "gemildert")
to "abgefangen".
("abgefangen" sounds as if this would unconditionally
solve the problem; actually, it solves the problem only
if no more than 65536 requests are handled within the
same second by the same child, which may be the case as
of today but faster machines in the future might change
that, and other issues might occur - see below.)

> <p>Wird ein HTTPD-Kindprozess erzeugt, wird der Z&auml;hler mit

Please insert a "dann" after the comma.

> dem Restwert der Division der Anzahl der vergangenen Mikrosekunden
> durch 10 dividiert durch 65.536 initialisiert,

I think you lost the priority of the operators.
I suggest you write the formula using round brackets,
exactly like in the English original.

> <p>Der Serverkern erzeugt beim Aufspalten jedes Prozesses
> eine Pid (bei vielen Unix-Systemen ist sie 16 Bit und bei
> neueren 32 Bit gro&szlig;), bei der es irgendwann zum
> &Uuml;berlauf und damit zur Wiederverwendung der Pids kommt.

You moved the insertion in brackets to a different position
where it is no longer related to the probability of the
"roll over effect", which it should.
I suggest to move the bracket to the end of this sentence
as it then explains how likely this effect will occur.

> <p>Wiederholt sich die Zeit aus irgendwelchen Gr&uuml;nden
> (wenn beispielsweise die Systemuhr zur&uuml;ckgegestellt
> wird),

This leaves out all the reasons why the clock might be
"screwed up".

Literally:
"Angenommen, daß aus irgend einem Grund dieselbe Uhrzeit
ein zweites Mal auftritt. Das heißt also, daß der Stand
der Systemuhr ruiniert wurde und sie einen vergangenen
Zeitpunkt noch einmal durchläuft (oder daß sie zu weit
in der Zukunft steht, anschließend auf den korrekten Wert
zurück gesetzt wird und danach den Zeitpunkt in der Zu-
kunft ein zweites Mal erlebt)."

> kann es zu einer Wiederverwendung der Pid und des Zeitstempels
> kommen,

Literally: "Für diesen Fall läßt sich leicht nachweisen,
daß es zu einer Wiederverwendung der Kombination aus Pid
und Uhrzeit kommen kann."

> was durch die Initialisierung des Z&auml;hler aufgefangen
> werden soll.

Again, "aufgefangen" sounds as if this were a cure of the
disease, while it actually is only treating the symptoms,
i. e. the likelihood of the problem to occur.

Literally: "Die Wahl des Startwertes für den Zähler soll
dabei helfen, mit dieser Situation (besser) fertig zu werden."

> Er soll mit einer echten Zufallszahl initialisiert werden,

Literally: "Beachten Sie, daß wir eigentlich dringend
eine echte Zufallszahl verwenden sollten, um diesen Zähler
zu initalisieren."
(But this is just what we aren't able to do, because - see
next line.)

> (die Funktion <code>rand()</code> kann nicht verwendet werden,
> weil  der Generator bei einer Zeitaufl&ouml;sung von einer
> Sekunde mit der gleichen Zeit operieren w&uuml;rde).

Literally: "insbesondere kann die Funktion <code>rand()</code>
nicht verwendet werden, weil zunächst einmal deren Generator
initialisiert werden müßte - und genau dafür dürfen wir die
Uhrzeit (nun) nicht verwenden, weil diese sich ja bereits
wiederholt hat".

> weil die Systeme in der Regel mehr leisten, als nur statische
> Dateien zu verschieben).

First, I'll try to translate this literally:
"weil Systeme im Allgemeinen mehr zu tun haben, als einfach
nur (den Inhalt) statische(r) Dateien (auf die Leitung) zu
schaufeln/kippen".
(Meaning that a lot of content will be computed dynamically
which costs CPU time and limits the number of responses per
second.)

But you might to want to have a less "sloppy" translation.

> Bei einer pssimistischen

Typo: "pssimistischen" => "pessimistischen".

> Einsch&auml;tzung kann ein einzelner Kindprozess bis zu 500 Anfragen
> pro Sekunde bedienen.

Literally: "Aber wir sind mal pessimistisch und gehen davon aus,
daß bereits ein einzelner Prozeß in der Lage wäre, bis zu 500
Anfragen pro Sekunde zu bedienen."

> so dass sich zwei Sequenzen von 500 Anfragen &uuml;berlappen.

Nope, but "bei denen zwei Sequenzen von je 500 Anfragen einander
überlappen würden." (i. e. if the difference between these two
start values is within [-499, +499] - actually 999, not 1000. ;-)

> Dies ist eine sehr pessimistische Ausgangssituation, die in der Praxis
> wahrscheinlich nicht eintreten wird.

Nope, but:

"Dieses Beispiel ging von sehr pessimistischen Voraussetzungen aus,
so daß dieser Fall (nämlich der Verlust der Eindeutigkeit) in der
Praxis mit noch geringerer Wahrscheinlichkeit eintreten dürfte."
(i. e. the 1.7% might be an upper bound of the likelihood.)

> Ist ein Rechner so beschaffen, dass dennoch eine Chance besteht, dass
> diese Situation eintritt, dann sollte ein 32-Bit-Z&auml;hler benutzt
> werden (hierf&uuml;r muss der Code ge&auml;ndert werden).</p>

Literally:
"Falls Ihr System derartig beschaffen ist, daß diese Wahrscheinlich-
keit (Ihnen) immer noch (zu) hoch ist, dann sollten Sie möglicher-
weise den Zähler auf 32 Bit verlängern, indem Sie den (Modul-)Quell-
text (entsprechend) ändern/anpassen".
("still likely" depends on the importance of the feature for any
application - the higher the potential damage, the less likelihood
one might be willing to accept. Think about nuclear power plants...)

> <p>Das Zur&uuml;ckstellen der Zeit bei der Umstellung von Winter- und
> Sommerzeit kann au&szlig;er Acht gelassen werden, weil die hier verwendte
> UTC-Zeit immer vorgestellt wird.

Nope, but literally:
"Vielleicht sind Sie jetzt besorgt wegen der 'Zurückstellung' Ihrer
Systemuhr bei der Umschaltung auf Sommerzeit. Dies ist jedoch kein
Problem, weil die hier verwendete Zeit die UTC ist, welche immer
vorwärts läuft."
(daylight saving time actually doesn't change the value of the UTC
clock, it only changes the interpretation of the value by those who
use it as "time" - which we actually don't do here, we use it as
tie-breaker.)

> Bei x86-Unixrechnern kann eine korrekte Konfiguration erforderlich sein.
> Die Uhr der Hauptplatine muss f&uuml;r die Kompensation auf UTC-Zeit
> eingestellt werden.

Nope, but literally:
"Beachten Sie, daß ein auf x86 basierendes Unix eine entsprechende
Konfiguration benötigen kann, um diese Eigenschaften zu garantieren:
Es sollte so konfiguriert sein, daß es die Uhrzeit seines Motherboards
als UTC interpretiert und entsprechende Umrechnungen (dynamisch) vor-
nimmt." (Und eben _nicht_ bei der Sommerzeitumschaltung wirklich den
Wert der Uhr ändert!)

> Bei Verwendung des NTP-Protokolls ist die UTC-Zeit aber unmittelbar nach
> dem Rechnerstart korrekt.</p>

The exact opposite is true:

"Aber selbst in diesem Fall wird die UTC-Zeit ziemlich bald nach dem
Reboot (wieder) korrekt sein, falls Sie NTP verwenden."
(The time _will_ be wrong immediately after reboot, but NTP will take
care of this as soon as it becomes aware of the difference.)

> Verschl&uuml;sselung

Make that "Kodierung".

> des 112 Bit gro&szlig;en Quartetts

"Quadrupel" would be the exact term in German as well.

> und sollte von Verschl&uuml;sselungsprogrammen nicht durcheinander
gebracht werden.

Nope, but:
"aber es sollte an dieser Stelle ausdrücklich betont werden,
 daß Applikationen nicht versuchen sollten, diese Kodierung
 wieder zu analysieren." (Literally: "zerlegen".)

The actual encoding is considered "internal knowledge, may
change without notice", thus making use of such knowledge
might easily make your application break on future versions
of Apache.

> Programme sollten die komplette kodierte <code>UNIQUE_ID</code>
> als in sich geschlossene Einheit betrachten, die nur mit anderen
> <code>UNIQUE_ID</code>-Variablen auf Gleichheit verglichen werden
> kann.</p>

You need to move the "nur" down to the position before "auf",
thus:
"die mit anderen <code>UNIQUE_ID</code>-Variablen nur auf Gleichheit
 verglichen werden kann.</p>"

One should not even make a comparison of  two UNIQUE_IQ values
as which one is "larger", because understanding what "larger"
implies would be exactly the "disassembly" of the encoding
that we were advised to keep our fingers away from.

> <p>Die Reihenfolge wurde gew&auml;hlt, damit die Verschl&uuml;sselung
> ge&auml;ndert werden kann, ohne dass es Probleme mit vorhandenen
> <code>UNIQUE_ID</code>-Datenbank gibt.

Literally: "..., ohne daß Sie sich Sorgen über Kollisionen mit
(dem Inhalt) einer bestehenden UNIQUE_ID-Datenbank machen müssen."

> Bei den neuen Verschl&uuml;sselungen sollte der Zeitstempel ebenfalls
> an erster Stelle stehen und das gleiche Alphabet und die Bitl&auml;nge
> in anderer Weise verwendet werden.

Literally: "Die neue Kodierung sollte ebenfalls den Zeitstempel
als erstes Element verwenden, _darf_ jedoch ansonsten dasselbe
Alphabet und dieselbe Bitlänge verwenden."
(Without the possibility of collisions with already existing
values! We will see right away why this works.)

> Da die Zeitstempel im Wesentlichen eine ansteigende Sequenz sind,
> reicht ein Sekunden-Flag f&uuml;r die Sekunde aus,

Nope: a "flag second" is not a "second flag".
I would translate it to "Pausen-Sekunde" or something like that.
(The calendar logic has a related concept named "Schaltsekunde".)

> zu der alle Rechner des Clusters die Verarbeitung von Anfragen
> unterbrechen, das Verschl&uuml;sselungsformat wechseln

Once again: "encoding" is not "encrypting". Make that "Kodierung".

> <p>Diese tragbare L&ouml;sung

Literally:
"Dies halten wir für eine relativ portable Lösung dieses Problems."
("portable" is a technical term here, meaning "across platform
boundaries within our cluster".)

> Die erzeugten Bezeichnungen sind im Prinzip ewig g&uuml;ltig, weil
> zuk&uuml;nftige Bezeichnungen l&auml;nger sein k&ouml;nnen.

Literally: "weil zukünftige Bezeichnungen bei Bedarf mit einer
größeren Länge erzeugt werden können."

> Eine Kommunikation zwischen den HTTPD-Prozessen ist ebenfalls nicht
> notwendig (sie findet implizit &uuml;ber die vom Serverkern zugewie-
> sene Pid statt).

Replace "Serverkern" by "Betriebssystemkernel".
("server" might be Apache, which would be wrong in this context,
and "kernel" is a technical term which might remain untranslated).

> In ganz speziellen Situationen kann die Bezeichnung verk&uuml;rzt
> werden (die 32 Bit gro&szlig;e IP-Adresse ist beispielsweise
> &uuml;bertrieben, es gibt jedoch keine geeignete k&uuml;rzere
> Ersetzung). </p>

Literally:
"In ganz speziellen Situationen kann die Bezeichnung verkürzt,
werden, wobei dann jedoch zusätzliche Annahmen erforderlich sind
(die 32 Bit lange IP-Addresse ist beispielsweise übertrieben für
jede einzelne Site, aber es gibt keinen kürzeren und dennoch
portablen Ersatz dafür)".

Which means that if you're fine with breaking the portability of
the mechanism (by implementing your own proprietary identification
scheme for machines - maybe they are all within the same net seg-
ment?) you might be able to use shorter UNIQUE_IDs and save space
within your database.




Regards, Michael



P.S.: One of the most scientific articles of the whole Apache

      manual - full of content, thus very difficult to translate.


---------------------------------------------------------------------
To unsubscribe, e-mail: docs-unsubscribe@httpd.apache.org
For additional commands, e-mail: docs-help@httpd.apache.org