]> git.ipfire.org Git - thirdparty/apache/httpd.git/commitdiff
Merge r981084 from trunk.
authorYann Ylavic <ylavic@apache.org>
Mon, 11 May 2015 09:49:15 +0000 (09:49 +0000)
committerYann Ylavic <ylavic@apache.org>
Mon, 11 May 2015 09:49:15 +0000 (09:49 +0000)
Update docs and comment: the unique id is now 24 characters, not 19

Submitted by: Takashi Sato <takashi lans-tv com>, Stefan Fritsch
PR: 36269

Committed by: sf
Reviewed by: jailletc36, ylavic, rjung
Backported by: ylavic

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.2.x@1678709 13f79535-47bb-0310-9956-ffa450edef68

STATUS
docs/manual/mod/mod_unique_id.xml
modules/metadata/mod_unique_id.c

diff --git a/STATUS b/STATUS
index 3330aacec20e0d92b2d2cb4414e5b31e471ef3d6..208c4152020a0ddbe89b7ec25acef8bb9e76bdd2 100644 (file)
--- a/STATUS
+++ b/STATUS
@@ -101,13 +101,6 @@ RELEASE SHOWSTOPPERS:
 PATCHES ACCEPTED TO BACKPORT FROM TRUNK:
   [ start all new proposals below, under PATCHES PROPOSED. ]
 
-   * mod_unique_id: Update docs and comment: the unique id is now 24 characters, not 19
-     See explanation in:
-        http://httpd.apache.org/docs/2.2/mod/mod_unique_id.html#comment_3564
-     trunk patch: http://svn.apache.org/r981084
-     2.2.x patch: trunks works
-     +1 jailletc36, ylavic, rjung
-
    * mod_dav: Avoid some work that is unnecessary and often very time consuming.
      This helps mitigate Subversion issue #4531:
      http://subversion.tigris.org/issues/show_bug.cgi?id=4531
index 39d6dbcb55a17098ce52d9c0424be7318a204f8c..df76ae7b8fee186cb9f4e766dfa33dc08709a8bc 100644 (file)
@@ -82,7 +82,10 @@ identifier for each request</description>
     <p>Given those assumptions, at a single point in time we can
     identify any httpd process on any machine in the cluster from
     all other httpd processes. The machine's IP address and the pid
-    of the httpd process are sufficient to do this. So in order to
+    of the httpd process are sufficient to do this. A httpd process
+    can handle multiple requests simultaneously if you use a
+    multi-threaded MPM. In order to identify threads, we use a thread
+    index Apache httpd uses internally. So in order to
     generate unique identifiers for requests we need only
     distinguish between different points in time.</p>
 
@@ -152,11 +155,13 @@ identifier for each request</description>
     even still, if you're running NTP then your UTC time will be
     correct very shortly after reboot.</p>
 
+    <!-- FIXME: thread_index is unsigned int, so not always 32bit.-->
     <p>The <code>UNIQUE_ID</code> environment variable is
-    constructed by encoding the 112-bit (32-bit IP address, 32 bit
-    pid, 32 bit time stamp, 16 bit counter) quadruple using the
+    constructed by encoding the 144-bit (32-bit IP address, 32 bit
+    pid, 32 bit time stamp, 16 bit counter, 32 bit thread index)
+    quadruple using the
     alphabet <code>[A-Za-z0-9@-]</code> in a manner similar to MIME
-    base64 encoding, producing 19 characters. The MIME base64
+    base64 encoding, producing 24 characters. The MIME base64
     alphabet is actually <code>[A-Za-z0-9+/]</code> however
     <code>+</code> and <code>/</code> need to be specially encoded
     in URLs, which makes them less desirable. All values are
@@ -182,8 +187,7 @@ identifier for each request</description>
     issuing the new encodings.</p>
 
     <p>This we believe is a relatively portable solution to this
-    problem. It can be extended to multithreaded systems like
-    Windows NT, and can grow with future needs. The identifiers
+    problem. The identifiers
     generated have essentially an infinite life-time because future
     identifiers can be made longer as required. Essentially no
     communication is required between machines in the cluster (only
index a78e02068035939bb3ee35b6e4a127ef1e1fabc8..4227dc9ddc82e0a17ae9a29bb0f2ba6ec90e864d 100644 (file)
@@ -79,8 +79,8 @@ typedef struct {
  * saving cpu cycles.  The counter is never reset, and is used to permit up to
  * 64k requests in a single second by a single child.
  *
- * The 112-bits of unique_id_rec are encoded using the alphabet
- * [A-Za-z0-9@-], resulting in 19 bytes of printable characters.  That is then
+ * The 144-bits of unique_id_rec are encoded using the alphabet
+ * [A-Za-z0-9@-], resulting in 24 bytes of printable characters.  That is then
  * stuffed into the environment variable UNIQUE_ID so that it is available to
  * other modules.  The alphabet choice differs from normal base64 encoding
  * [A-Za-z0-9+/] because + and / are special characters in URLs and we want to