components/php-5_2/APC/patches/03-apc_main.c.patch
author Nobutomo Nakano <nobutomo.nakano@oracle.com>
Mon, 08 Oct 2012 19:44:45 -0700
branchs11u1-sru
changeset 2370 c539542fe61d
parent 461 edabdd6aff23
permissions -rw-r--r--
7198440 update zoneinfo timezones to 2012f (Fiji)
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
461
edabdd6aff23 7072982 move php from sfw to userland consolidation
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
     1
--- APC-3.0.19/apc_main.c.ORIG	Fri Feb 13 17:16:08 2009
edabdd6aff23 7072982 move php from sfw to userland consolidation
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
     2
+++ APC-3.0.19/apc_main.c	Fri Feb 13 17:16:18 2009
edabdd6aff23 7072982 move php from sfw to userland consolidation
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
     3
@@ -378,21 +378,12 @@
edabdd6aff23 7072982 move php from sfw to userland consolidation
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
     4
     if (op_array == NULL) {
edabdd6aff23 7072982 move php from sfw to userland consolidation
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
     5
         return NULL;
edabdd6aff23 7072982 move php from sfw to userland consolidation
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
     6
     }
edabdd6aff23 7072982 move php from sfw to userland consolidation
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
     7
-    /*
edabdd6aff23 7072982 move php from sfw to userland consolidation
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
     8
-     * Basically this will cause a file only to be cached on a percentage 
edabdd6aff23 7072982 move php from sfw to userland consolidation
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
     9
-     * of the attempts.  This is to avoid cache slams when starting up a
edabdd6aff23 7072982 move php from sfw to userland consolidation
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    10
-     * very busy server or when modifying files on a very busy live server.
edabdd6aff23 7072982 move php from sfw to userland consolidation
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    11
-     * There is no point having many processes all trying to cache the same
edabdd6aff23 7072982 move php from sfw to userland consolidation
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    12
-     * file at the same time.  By introducing a chance of being cached
edabdd6aff23 7072982 move php from sfw to userland consolidation
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    13
-     * we theoretically cut the cache slam problem by the given percentage.
edabdd6aff23 7072982 move php from sfw to userland consolidation
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    14
-     * For example if apc.slam_defense is set to 66 then 2/3 of the attempts
edabdd6aff23 7072982 move php from sfw to userland consolidation
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    15
-     * to cache an uncached file will be ignored.
edabdd6aff23 7072982 move php from sfw to userland consolidation
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    16
-     */
edabdd6aff23 7072982 move php from sfw to userland consolidation
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    17
-    if(APCG(slam_defense)) {
edabdd6aff23 7072982 move php from sfw to userland consolidation
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    18
-        if(APCG(slam_rand)==-1) {
edabdd6aff23 7072982 move php from sfw to userland consolidation
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    19
-            APCG(slam_rand) = (int)(100.0*rand()/(RAND_MAX+1.0));
edabdd6aff23 7072982 move php from sfw to userland consolidation
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    20
-        }
edabdd6aff23 7072982 move php from sfw to userland consolidation
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    21
-        if(APCG(slam_rand) < APCG(slam_defense)) {
edabdd6aff23 7072982 move php from sfw to userland consolidation
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    22
+
edabdd6aff23 7072982 move php from sfw to userland consolidation
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    23
+    /* check our regular expression filters */
edabdd6aff23 7072982 move php from sfw to userland consolidation
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    24
+    if (APCG(filters) && apc_compiled_filters && h->opened_path) {
edabdd6aff23 7072982 move php from sfw to userland consolidation
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    25
+        int ret = apc_regex_match_array(apc_compiled_filters, h->opened_path);
edabdd6aff23 7072982 move php from sfw to userland consolidation
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    26
+        if(ret == APC_NEGATIVE_MATCH || (ret != APC_POSITIVE_MATCH && !APCG(cache_by_default))) {
edabdd6aff23 7072982 move php from sfw to userland consolidation
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    27
+            /* never cache, never find */
edabdd6aff23 7072982 move php from sfw to userland consolidation
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    28
             return op_array;
edabdd6aff23 7072982 move php from sfw to userland consolidation
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    29
         }
edabdd6aff23 7072982 move php from sfw to userland consolidation
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    30
     }