undo getIndex experiment, a=chris
undo getIndex experiment, a=chris
diff --git a/src/library/IndexManager.php b/src/library/IndexManager.php
index 5f357cf34..8eb4f1c4f 100644
--- a/src/library/IndexManager.php
+++ b/src/library/IndexManager.php
@@ -70,12 +70,6 @@ class IndexManager implements CrawlConstants
public static function getIndex($index_name)
{
$index_name = trim($index_name); //trim to fix postgres quirkiness
- if (!empty(self::$index_times[$index_name]) &&
- ($index_name != 'feed' || php_sapi_name() != 'cli' ||
- (time() - self::$index_times[$index_name])
- < C\MIN_QUERY_CACHE_TIME) ) {
- return self::$indexes[$index_name];
- }
$cache_dir = C\CRAWL_DIR . '/cache/';
$index_archive_full_path = $cache_dir . self::index_data_base_name .
$index_name;
@@ -115,68 +109,74 @@ class IndexManager implements CrawlConstants
} else if (!$handled) {
return false;
}
- if (!isset($tmp)) {
- $index_filename = $cache_dir . $index_archive_name;
- if (file_exists($index_filename)) {
- $is_old = (file_exists($index_filename . "/summaries"));
- $bundle_class_name = ($is_old) ? C\NS_LIB .
- "IndexArchiveBundle" : C\NS_LIB . "IndexDocumentBundle";
- $tmp = new $bundle_class_name($cache_dir .
- $index_archive_name);
- if (!$tmp) {
- return false;
- }
- } else {
- $tmp = false;
- $use_name = $index_name;
- $serve_archive = -1;
- if (preg_match("/\-\d$/", $index_name)) {
- $serve_archive = substr($index_name, -1);
- $use_name = substr($index_name, 0, -2);
- }
- $index_archive_name = self::double_index_base_name .
- $use_name;
- $status_file = $cache_dir . $index_archive_name .
- "/status.txt";
- if ($serve_archive < 0 && file_exists($status_file)) {
- $status = unserialize(file_get_contents($status_file));
- $active_archive = (empty($status["swap_count"])) ? 1 :
- $status["swap_count"] % 2;
- $serve_archive = 1 - $active_archive;
- }
- $is_old = (file_exists($index_filename .
- "/bundle0/summaries") ||
- file_exists($index_filename . "/bundle1/summaries"));
- $bundle_class_name = ($is_old) ?
- C\NS_LIB . "IndexArchiveBundle"
- : C\NS_LIB . "IndexDocumentBundle";
- $tmp = new $bundle_class_name($cache_dir .
- $index_archive_name . "/bundle$serve_archive");
- if (!$tmp) {
- $serve_archive = ($serve_archive == 0) ? 1 : 0;
+ if (empty(self::$indexes[$index_name]) ||
+ (!empty(self::$index_times[$index_name]) &&
+ ($index_name == 'feed' && php_sapi_name() == 'cli') &&
+ (time() - self::$index_times[$index_name])
+ > C\MIN_QUERY_CACHE_TIME) ) {
+ if (!isset($tmp)) {
+ $index_filename = $cache_dir . $index_archive_name;
+ if (file_exists($index_filename)) {
+ $is_old = (file_exists($index_filename . "/summaries"));
+ $bundle_class_name = ($is_old) ? C\NS_LIB .
+ "IndexArchiveBundle" : C\NS_LIB . "IndexDocumentBundle";
+ $tmp = new $bundle_class_name($cache_dir .
+ $index_archive_name);
+ if (!$tmp) {
+ return false;
+ }
+ } else {
+ $tmp = false;
+ $use_name = $index_name;
+ $serve_archive = -1;
+ if (preg_match("/\-\d$/", $index_name)) {
+ $serve_archive = substr($index_name, -1);
+ $use_name = substr($index_name, 0, -2);
+ }
+ $index_archive_name = self::double_index_base_name .
+ $use_name;
+ $status_file = $cache_dir . $index_archive_name .
+ "/status.txt";
+ if ($serve_archive < 0 && file_exists($status_file)) {
+ $status = unserialize(file_get_contents($status_file));
+ $active_archive = (empty($status["swap_count"])) ? 1 :
+ $status["swap_count"] % 2;
+ $serve_archive = 1 - $active_archive;
+ }
+ $is_old = (file_exists($index_filename .
+ "/bundle0/summaries") ||
+ file_exists($index_filename . "/bundle1/summaries"));
+ $bundle_class_name = ($is_old) ?
+ C\NS_LIB . "IndexArchiveBundle"
+ : C\NS_LIB . "IndexDocumentBundle";
$tmp = new $bundle_class_name($cache_dir .
$index_archive_name . "/bundle$serve_archive");
- }
- if (!$tmp) {
- return false;
+ if (!$tmp) {
+ $serve_archive = ($serve_archive == 0) ? 1 : 0;
+ $tmp = new $bundle_class_name($cache_dir .
+ $index_archive_name . "/bundle$serve_archive");
+ }
+ if (!$tmp) {
+ return false;
+ }
}
}
- }
- self::$indexes[$index_name] = $tmp;
- if ($is_old) {
- self::$indexes[$index_name]->setCurrentShard(0, true);
- }
- self::$index_times[$index_name] = time();
- /*
- If too many cached discard oldest 1/3 of cached indices
- */
- if (count(self::$indexes) > self::INDEX_CACHE_SIZE) {
- $times = array_values(self::$index_times);
- sort($times);
- $oldest_third = $times[floor(count($times)/3)];
- foreach (self::$index_times as $name => $time) {
- if ($time <= $oldest_third) {
- unset(self::$index_times[$name], self::$indexes[$name]);
+ self::$indexes[$index_name] = $tmp;
+ if ($is_old) {
+ self::$indexes[$index_name]->setCurrentShard(0, true);
+ }
+ self::$index_times[$index_name] = time();
+ /*
+ If too many cached discard oldest 1/3 of cached indices
+ */
+ if (count(self::$indexes) > self::INDEX_CACHE_SIZE) {
+ $times = array_values(self::$index_times);
+ sort($times);
+ $oldest_third = $times[floor(count($times)/3)];
+ foreach (self::$index_times as $name => $time) {
+ if ($time <= $oldest_third) {
+ unset(self::$index_times[$name], self::$indexes[$name]);
+ }
}
}
}