diff --git a/html/ajax_rulesuggest.php b/html/ajax_rulesuggest.php
index bb49ecab2..cee773a2f 100644
--- a/html/ajax_rulesuggest.php
+++ b/html/ajax_rulesuggest.php
@@ -72,22 +72,16 @@ if (isset($_GET['term'],$_GET['device_id'])) {
$_GET['device_id'] = mres($_GET['device_id']);
if (strstr($_GET['term'], '.')) {
$term = explode('.', $_GET['term']);
- if ($config['memcached']['enable']) {
- $chk = $memcache->get('rule-suggest_'.$term[0]);
- }
-
- if (!(sizeof($chk) > 0) || $chk === false) {
- if ($term[0] == 'macros') {
- foreach ($config['alert']['macros']['rule'] as $macro => $v) {
- $chk[] = 'macros.'.$macro;
- }
+ if ($term[0] == 'macros') {
+ foreach ($config['alert']['macros']['rule'] as $macro => $v) {
+ $chk[] = 'macros.'.$macro;
}
- else {
- $tmp = dbFetchRows('SHOW COLUMNS FROM '.$term[0]);
- foreach ($tmp as $tst) {
- if (isset($tst['Field'])) {
- $chk[] = $term[0].'.'.$tst['Field'];
- }
+ }
+ else {
+ $tmp = dbFetchRows('SHOW COLUMNS FROM '.$term[0]);
+ foreach ($tmp as $tst) {
+ if (isset($tst['Field'])) {
+ $chk[] = $term[0].'.'.$tst['Field'];
}
}
}
@@ -95,29 +89,18 @@ if (isset($_GET['term'],$_GET['device_id'])) {
$current = true;
}
else {
- if ($config['memcached']['enable']) {
- $chk = $memcache->get('rule-suggest-toplvl');
+ $tmp = dbFetchRows("SELECT TABLE_NAME FROM information_schema.COLUMNS WHERE COLUMN_NAME = 'device_id'");
+ foreach ($tmp as $tst) {
+ $chk[] = $tst['TABLE_NAME'].'.';
}
- if (!(sizeof($chk) > 0) || $chk === false) {
- $tmp = dbFetchRows("SELECT TABLE_NAME FROM information_schema.COLUMNS WHERE COLUMN_NAME = 'device_id'");
- foreach ($tmp as $tst) {
- $chk[] = $tst['TABLE_NAME'].'.';
- }
-
- $chk[] = 'macros.';
- $chk[] = 'bills.';
- }
+ $chk[] = 'macros.';
+ $chk[] = 'bills.';
}
if (sizeof($chk) > 0) {
- if ($config['memcached']['enable']) {
- $memcache->set('rule-suggest-'.$oterm, $chk, 86400);
- // Cache for 24h
- }
-
- $obj = levsort($_GET['term'], $chk);
- $obj = array_chunk($obj, 20, true);
- $obj = $obj[0];
+ $obj = levsort($_GET['term'], $chk);
+ $obj = array_chunk($obj, 20, true);
+ $obj = $obj[0];
$flds = array();
if ($current === true) {
foreach ($obj as $fld) {
diff --git a/html/pages/device/health/mempool.inc.php b/html/pages/device/health/mempool.inc.php
index 2cfbcd207..c53189caf 100644
--- a/html/pages/device/health/mempool.inc.php
+++ b/html/pages/device/health/mempool.inc.php
@@ -13,17 +13,6 @@ foreach (dbFetchRows('SELECT * FROM `mempools` WHERE device_id = ?', array($devi
$row_colour = $list_colour_b;
}
- if ($config['memcached']['enable'] === true) {
- $state = $memcache->get('mempool-'.$mempool['mempool_id'].'-state');
- d_echo($state);
-
- if (is_array($state)) {
- $mempool = array_merge($mempool, $state);
- }
-
- unset($state);
- }
-
$text_descr = rewrite_entity_descr($mempool['mempool_descr']);
$mempool_url = 'graphs/id='.$mempool['mempool_id'].'/type=mempool_usage/';
@@ -55,4 +44,4 @@ foreach (dbFetchRows('SELECT * FROM `mempools` WHERE device_id = ?', array($devi
echo "";
$i++;
-}//end foreach
\ No newline at end of file
+}//end foreach
diff --git a/html/pages/device/overview/generic/sensor.inc.php b/html/pages/device/overview/generic/sensor.inc.php
index 39a841466..8b50d1de3 100644
--- a/html/pages/device/overview/generic/sensor.inc.php
+++ b/html/pages/device/overview/generic/sensor.inc.php
@@ -12,10 +12,6 @@ if (count($sensors)) {
echo '
';
foreach ($sensors as $sensor) {
- if ($config['memcached']['enable'] === true) {
- $sensor['sensor_current'] = $memcache->get('sensor-'.$sensor['sensor_id'].'-value');
- }
-
if (empty($sensor['sensor_current'])) {
$sensor['sensor_current'] = 'NaN';
}
diff --git a/html/pages/device/overview/mempools.inc.php b/html/pages/device/overview/mempools.inc.php
index 01895ee7d..639b33dd2 100644
--- a/html/pages/device/overview/mempools.inc.php
+++ b/html/pages/device/overview/mempools.inc.php
@@ -19,17 +19,6 @@ if (count($mempools)) {
';
foreach ($mempools as $mempool) {
- if ($config['memcached']['enable'] === true) {
- $state = $memcache->get('mempool-'.$mempool['mempool_id'].'-state');
- d_echo($state);
-
- if (is_array($state)) {
- $mempool = array_merge($mempool, $state);
- }
-
- unset($state);
- }
-
$percent = round($mempool['mempool_perc'], 0);
$text_descr = rewrite_entity_descr($mempool['mempool_descr']);
$total = formatStorage($mempool['mempool_total']);
diff --git a/html/pages/device/port.inc.php b/html/pages/device/port.inc.php
index bd9c38acd..bdaacd127 100644
--- a/html/pages/device/port.inc.php
+++ b/html/pages/device/port.inc.php
@@ -6,17 +6,6 @@ if (!isset($vars['view'])) {
$port = dbFetchRow('SELECT * FROM `ports` WHERE `port_id` = ?', array($vars['port']));
-if ($config['memcached']['enable'] === true) {
- $state = $memcache->get('port-'.$port['port_id'].'-state');
- d_echo($state);
-
- if (is_array($state)) {
- $port = array_merge($port, $state);
- }
-
- unset($state);
-}
-
$port_details = 1;
$hostname = $device['hostname'];
diff --git a/html/pages/device/ports.inc.php b/html/pages/device/ports.inc.php
index d4cac0dbf..56d3ee542 100644
--- a/html/pages/device/ports.inc.php
+++ b/html/pages/device/ports.inc.php
@@ -136,19 +136,7 @@ else {
}
foreach ($ports as $port) {
- if ($config['memcached']['enable'] === true) {
- $state = $memcache->get('port-'.$port['port_id'].'-state');
- d_echo($state);
-
- if (is_array($state)) {
- $port = array_merge($port, $state);
- }
-
- unset($state);
- }
-
include 'includes/print-interface.inc.php';
-
$i++;
}
diff --git a/html/pages/health/sensors.inc.php b/html/pages/health/sensors.inc.php
index 7ed65f926..b882ab4d9 100644
--- a/html/pages/health/sensors.inc.php
+++ b/html/pages/health/sensors.inc.php
@@ -22,11 +22,6 @@ echo '
';
foreach (dbFetchRows($sql, $param) as $sensor) {
- if ($config['memcached']['enable'] === true) {
- $sensor['sensor_current'] = $memcache->get('sensor-'.$sensor['sensor_id'].'-value');
- d_echo('Memcached['.'sensor-'.$sensor['sensor_id'].'-value'.'='.$sensor['sensor_current'].']');
- }
-
if (empty($sensor['sensor_current'])) {
$sensor['sensor_current'] = 'NaN';
}
diff --git a/includes/dbFacile.mysql.php b/includes/dbFacile.mysql.php
index 0d1d7150c..e5f3a5738 100644
--- a/includes/dbFacile.mysql.php
+++ b/includes/dbFacile.mysql.php
@@ -24,7 +24,7 @@
function dbQuery($sql, $parameters=array()) {
- global $fullSql, $debug, $sql_debug, $console_color;
+ global $fullSql, $debug, $sql_debug;
$fullSql = dbMakeQuery($sql, $parameters);
if ($debug) {
if (php_sapi_name() == 'cli' && empty($_SERVER['REMOTE_ADDR'])) {
@@ -239,7 +239,14 @@ function dbDelete($table, $where=null, $parameters=array()) {
function dbFetchRows($sql, $parameters=array()) {
- global $db_stats;
+ global $db_stats, $config;
+
+ if ($config['memcached']['enable']) {
+ $result = $config['memcached']['resource']->get(hash('sha512',$sql.'|'.serialize($parameters)));
+ if (!empty($result)) {
+ return $result;
+ }
+ }
$time_start = microtime(true);
$result = dbQuery($sql, $parameters);
@@ -251,6 +258,9 @@ function dbFetchRows($sql, $parameters=array()) {
}
mysql_free_result($result);
+ if ($config['memcached']['enable']) {
+ $config['memcached']['resource']->set(hash('sha512',$sql.'|'.serialize($parameters)),$rows,$config['memcached']['ttl']);
+ }
return $rows;
}
@@ -296,7 +306,14 @@ function dbFetch($sql, $parameters=array()) {
function dbFetchRow($sql=null, $parameters=array()) {
- global $db_stats;
+ global $db_stats, $config;
+
+ if ($config['memcached']['enable']) {
+ $result = $config['memcached']['resource']->get(hash('sha512',$sql.'|'.serialize($parameters)));
+ if (!empty($result)) {
+ return $result;
+ }
+ }
$time_start = microtime(true);
$result = dbQuery($sql, $parameters);
@@ -308,6 +325,9 @@ function dbFetchRow($sql=null, $parameters=array()) {
$db_stats['fetchrow_sec'] += number_format(($time_end - $time_start), 8);
$db_stats['fetchrow']++;
+ if ($config['memcached']['enable']) {
+ $config['memcached']['resource']->set(hash('sha512',$sql.'|'.serialize($parameters)),$row,$config['memcached']['ttl']);
+ }
return $row;
}
else {
diff --git a/includes/dbFacile.mysqli.php b/includes/dbFacile.mysqli.php
index 2408ca990..e81ad047b 100644
--- a/includes/dbFacile.mysqli.php
+++ b/includes/dbFacile.mysqli.php
@@ -22,7 +22,6 @@
* Used by the other _query functions.
* */
-
function dbQuery($sql, $parameters=array()) {
global $fullSql, $debug, $sql_debug, $console_color, $database_link;
$fullSql = dbMakeQuery($sql, $parameters);
@@ -240,7 +239,14 @@ function dbDelete($table, $where=null, $parameters=array()) {
function dbFetchRows($sql, $parameters=array()) {
- global $db_stats;
+ global $db_stats, $config;
+
+ if ($config['memcached']['enable']) {
+ $result = $config['memcached']['resource']->get(hash('sha512',$sql.'|'.serialize($parameters)));
+ if (!empty($result)) {
+ return $result;
+ }
+ }
$time_start = microtime(true);
$result = dbQuery($sql, $parameters);
@@ -252,6 +258,9 @@ function dbFetchRows($sql, $parameters=array()) {
}
mysqli_free_result($result);
+ if ($config['memcached']['enable']) {
+ $config['memcached']['resource']->set(hash('sha512',$sql.'|'.serialize($parameters)),$rows,$config['memcached']['ttl']);
+ }
return $rows;
}
@@ -297,7 +306,14 @@ function dbFetch($sql, $parameters=array()) {
function dbFetchRow($sql=null, $parameters=array()) {
- global $db_stats;
+ global $db_stats, $config;
+
+ if ($config['memcached']['enable']) {
+ $result = $config['memcached']['resource']->get(hash('sha512',$sql.'|'.serialize($parameters)));
+ if (!empty($result)) {
+ return $result;
+ }
+ }
$time_start = microtime(true);
$result = dbQuery($sql, $parameters);
@@ -309,6 +325,9 @@ function dbFetchRow($sql=null, $parameters=array()) {
$db_stats['fetchrow_sec'] += number_format(($time_end - $time_start), 8);
$db_stats['fetchrow']++;
+ if ($config['memcached']['enable']) {
+ $config['memcached']['resource']->set(hash('sha512',$sql.'|'.serialize($parameters)),$rows,$config['memcached']['ttl']);
+ }
return $row;
}
else {
@@ -326,7 +345,8 @@ function dbFetchRow($sql=null, $parameters=array()) {
function dbFetchCell($sql, $parameters=array()) {
- global $db_stats;
+ global $db_stats, $config;
+
$time_start = microtime(true);
$row = dbFetchRow($sql, $parameters);
if ($row) {
diff --git a/includes/defaults.inc.php b/includes/defaults.inc.php
index c1a86e0c1..e42195015 100644
--- a/includes/defaults.inc.php
+++ b/includes/defaults.inc.php
@@ -75,6 +75,7 @@ $config['sfdp'] = '/usr/bin/sfdp';
$config['memcached']['enable'] = false;
$config['memcached']['host'] = 'localhost';
$config['memcached']['port'] = 11211;
+$config['memcached']['ttl'] = 240;
$config['slow_statistics'] = true;
// THIS WILL CHANGE TO FALSE IN FUTURE
diff --git a/includes/definitions.inc.php b/includes/definitions.inc.php
index 40162649c..23f6dd97b 100644
--- a/includes/definitions.inc.php
+++ b/includes/definitions.inc.php
@@ -30,6 +30,22 @@ else {
$database_db = mysql_select_db($config['db_name'], $database_link);
}
+$config['time']['now'] = time();
+$config['time']['now'] -= ($config['time']['now'] % 300);
+
+if ($config['memcached']['enable'] === true) {
+ if (class_exists('Memcached')) {
+ $config['memcached']['ttl'] += $config['time']['now'];
+ $config['memcached']['resource'] = new Memcached();
+ $config['memcached']['resource']->addServer($config['memcached']['host'], $config['memcached']['port']);
+ }
+ else {
+ echo "WARNING: You have enabled memcached but have not installed the PHP bindings. Disabling memcached support.\n";
+ echo "Try 'apt-get install php5-memcached' or 'pecl install memcached'. You will need the php5-dev and libmemcached-dev packages to use pecl.\n\n";
+ $config['memcached']['enable'] = 0;
+ }
+}
+
$clone = $config;
foreach (dbFetchRows('select config_name,config_value from config') as $obj) {
$clone = array_replace_recursive($clone, mergecnf($obj));
@@ -1703,22 +1719,7 @@ if (isset($_SERVER['HTTPS'])) {
$config['base_url'] = preg_replace('/^http:/', 'https:', $config['base_url']);
}
-if ($config['memcached']['enable'] === true) {
- if (class_exists('Memcached')) {
- $memcache = new Memcached();
- $memcache->addServer($config['memcached']['host'], $config['memcached']['port']);
- $memcache->getStats();
- }
- else {
- echo "WARNING: You have enabled memcached but have not installed the PHP bindings. Disabling memcached support.\n";
- echo "Try 'apt-get install php5-memcached' or 'pecl install memcached'. You will need the php5-dev and libmemcached-dev packages to use pecl.\n\n";
- $config['memcached']['enable'] = 0;
- }
-}
-
// Set some times needed by loads of scripts (it's dynamic, so we do it here!)
-$config['time']['now'] = time();
-$config['time']['now'] -= ($config['time']['now'] % 300);
$config['time']['fourhour'] = ($config['time']['now'] - 14400);
// time() - (4 * 60 * 60);
$config['time']['sixhour'] = ($config['time']['now'] - 21600);
diff --git a/includes/polling/functions.inc.php b/includes/polling/functions.inc.php
index ffe79340e..86acb711c 100644
--- a/includes/polling/functions.inc.php
+++ b/includes/polling/functions.inc.php
@@ -119,12 +119,7 @@ function poll_sensor($device, $class, $unit) {
log_event(ucfirst($class).' '.$sensor['sensor_descr'].' above threshold: '.$sensor_value." $unit (> ".$sensor['sensor_limit']." $unit)", $device, $class, $sensor['sensor_id']);
}
- if ($config['memcached']['enable'] === true) {
- $memcache->set('sensor-'.$sensor['sensor_id'].'-value', $sensor_value);
- }
- else {
- dbUpdate(array('sensor_current' => $sensor_value), 'sensors', '`sensor_class` = ? AND `sensor_id` = ?', array($class, $sensor['sensor_id']));
- }
+ dbUpdate(array('sensor_current' => $sensor_value), 'sensors', '`sensor_class` = ? AND `sensor_id` = ?', array($class, $sensor['sensor_id']));
}//end foreach
}//end poll_sensor()
diff --git a/includes/polling/mempools.inc.php b/includes/polling/mempools.inc.php
index 01188b8a6..a36196c1d 100644
--- a/includes/polling/mempools.inc.php
+++ b/includes/polling/mempools.inc.php
@@ -47,14 +47,7 @@ foreach (dbFetchRows('SELECT * FROM mempools WHERE device_id = ?', array($device
$mempool['state']['mempool_lowestfree'] = $mempool['lowestfree'];
}
- if ($config['memcached']['enable'] === true) {
- d_echo($mempool['state']);
-
- $memcache->set('mempool-'.$mempool['mempool_id'].'-value', $mempool['state']);
- }
- else {
- dbUpdate($mempool['state'], 'mempools', '`mempool_id` = ?', array($mempool['mempool_id']));
- }
+ dbUpdate($mempool['state'], 'mempools', '`mempool_id` = ?', array($mempool['mempool_id']));
echo "\n";
}//end foreach
diff --git a/includes/polling/ports.inc.php b/includes/polling/ports.inc.php
index b0d61a564..bd4af141a 100644
--- a/includes/polling/ports.inc.php
+++ b/includes/polling/ports.inc.php
@@ -244,17 +244,6 @@ foreach ($ports as $port) {
$this_port['ifDescr'] = $matches[1];
}
- if ($config['memcached']['enable'] === true) {
- $state = $memcache->get('port-'.$port['port_id'].'-state');
- d_echo($state);
-
- if (is_array($state)) {
- $port = array_merge($port, $state);
- }
-
- unset($state);
- }
-
$polled_period = ($polled - $port['poll_time']);
$port['update'] = array();
@@ -266,12 +255,6 @@ foreach ($ports as $port) {
$port['update']['poll_period'] = $polled_period;
}
- if ($config['memcached']['enable'] === true) {
- $port['state']['poll_time'] = $polled;
- $port['state']['poll_prev'] = $port['poll_time'];
- $port['state']['poll_period'] = $polled_period;
- }
-
// Copy ifHC[In|Out]Octets values to non-HC if they exist
if ($this_port['ifHCInOctets'] > 0 && is_numeric($this_port['ifHCInOctets']) && $this_port['ifHCOutOctets'] > 0 && is_numeric($this_port['ifHCOutOctets'])) {
echo 'HC ';
@@ -400,11 +383,6 @@ foreach ($ports as $port) {
$port['update'][$oid.'_prev'] = $port[$oid];
}
- if ($config['memcached']['enable'] === true) {
- $port['state'][$oid] = $this_port[$oid];
- $port['state'][$oid.'_prev'] = $port[$oid];
- }
-
$oid_prev = $oid.'_prev';
if (isset($port[$oid])) {
$oid_diff = ($this_port[$oid] - $port[$oid]);
@@ -422,11 +400,6 @@ foreach ($ports as $port) {
$port['update'][$oid.'_delta'] = $oid_diff;
}
- if ($config['memcached']['enable'] === true) {
- $port['state'][$oid.'_rate'] = $oid_rate;
- $port['state'][$oid.'_delta'] = $oid_diff;
- }
-
d_echo("\n $oid ($oid_diff B) $oid_rate Bps $polled_period secs\n");
}//end if
}//end foreach
@@ -451,13 +424,6 @@ foreach ($ports as $port) {
echo 'bytes('.formatStorage($port['stats']['ifInOctets_diff']).'/'.formatStorage($port['stats']['ifOutOctets_diff']).')';
echo 'pkts('.format_si($port['stats']['ifInUcastPkts_rate']).'pps/'.format_si($port['stats']['ifOutUcastPkts_rate']).'pps)';
- // Store aggregate in/out state
- if ($config['memcached']['enable'] === true) {
- $port['state']['ifOctets_rate'] = ($port['stats']['ifOutOctets_rate'] + $port['stats']['ifInOctets_rate']);
- $port['state']['ifUcastPkts_rate'] = ($port['stats']['ifOutUcastPkts_rate'] + $port['stats']['ifInUcastPkts_rate']);
- $port['state']['ifErrors_rate'] = ($port['stats']['ifOutErrors_rate'] + $port['stats']['ifInErrors_rate']);
- }
-
// Port utilisation % threshold alerting. // FIXME allow setting threshold per-port. probably 90% of ports we don't care about.
if ($config['alerts']['port_util_alert'] && $port['ignore'] == '0') {
// Check for port saturation of $config['alerts']['port_util_perc'] or higher. Alert if we see this.
@@ -547,13 +513,6 @@ foreach ($ports as $port) {
include 'port-alcatel.inc.php';
}
- // Update Memcached
- if ($config['memcached']['enable'] === true) {
- d_echo($port['state']);
-
- $memcache->set('port-'.$port['port_id'].'-state', $port['state']);
- }
-
foreach ($port['update'] as $key => $val_check) {
if (!isset($val_check)) {
unset($port['update'][$key]);
diff --git a/includes/polling/storage.inc.php b/includes/polling/storage.inc.php
index 6b2e662f6..23cff2e47 100644
--- a/includes/polling/storage.inc.php
+++ b/includes/polling/storage.inc.php
@@ -37,16 +37,7 @@ foreach (dbFetchRows('SELECT * FROM storage WHERE device_id = ?', array($device[
rrdtool_update($storage_rrd, $fields);
- if ($config['memcached']['enable'] === true) {
- $memcache->set('storage-'.$storage['storage_id'].'-used', $storage['used']);
- $memcache->set('storage-'.$storage['storage_id'].'-free', $storage['free']);
- $memcache->set('storage-'.$storage['storage_id'].'-size', $storage['size']);
- $memcache->set('storage-'.$storage['storage_id'].'-units', $storage['units']);
- $memcache->set('storage-'.$storage['storage_id'].'-perc', $percent);
- }
- else {
- $update = dbUpdate(array('storage_used' => $storage['used'], 'storage_free' => $storage['free'], 'storage_size' => $storage['size'], 'storage_units' => $storage['units'], 'storage_perc' => $percent), 'storage', '`storage_id` = ?', array($storage['storage_id']));
- }
+ $update = dbUpdate(array('storage_used' => $storage['used'], 'storage_free' => $storage['free'], 'storage_size' => $storage['size'], 'storage_units' => $storage['units'], 'storage_perc' => $percent), 'storage', '`storage_id` = ?', array($storage['storage_id']));
echo "\n";
}//end foreach