cache schema call in js model to reduce round trips

Signed-off-by: Chris Rohr <[email protected]>


Project: http://git-wip-us.apache.org/repos/asf/incubator-blur/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-blur/commit/c964d85d
Tree: http://git-wip-us.apache.org/repos/asf/incubator-blur/tree/c964d85d
Diff: http://git-wip-us.apache.org/repos/asf/incubator-blur/diff/c964d85d

Branch: refs/heads/apache-blur-0.2
Commit: c964d85dd00081894eafb0b83040814234731122
Parents: 1eaf2be
Author: Andrew Avenoso <[email protected]>
Authored: Mon Jun 9 14:13:19 2014 -0400
Committer: Chris Rohr <[email protected]>
Committed: Mon Jun 9 14:51:10 2014 -0400

----------------------------------------------------------------------
 .../src/main/webapp/js/blurconsole.fake.js          |  2 +-
 .../src/main/webapp/js/blurconsole.model.js         | 16 ++++++++++++++--
 2 files changed, 15 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/c964d85d/contrib/blur-console/src/main/webapp/js/blurconsole.fake.js
----------------------------------------------------------------------
diff --git a/contrib/blur-console/src/main/webapp/js/blurconsole.fake.js 
b/contrib/blur-console/src/main/webapp/js/blurconsole.fake.js
index 91b3be5..14abc17 100644
--- a/contrib/blur-console/src/main/webapp/js/blurconsole.fake.js
+++ b/contrib/blur-console/src/main/webapp/js/blurconsole.fake.js
@@ -186,7 +186,7 @@ blurconsole.fake = (function() {
        }
 
        function getSchema(table, callback) {
-               //console.log('getting fake schema for table [' + table + ']');
+               console.log('getting fake schema for table [' + table + ']');
                if(!frozen || !schema){
                        schema = _buildSchema();
                }

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/c964d85d/contrib/blur-console/src/main/webapp/js/blurconsole.model.js
----------------------------------------------------------------------
diff --git a/contrib/blur-console/src/main/webapp/js/blurconsole.model.js 
b/contrib/blur-console/src/main/webapp/js/blurconsole.model.js
index a2cddc8..61a15c2 100644
--- a/contrib/blur-console/src/main/webapp/js/blurconsole.model.js
+++ b/contrib/blur-console/src/main/webapp/js/blurconsole.model.js
@@ -32,7 +32,8 @@ blurconsole.model = (function() {
                        nodeMap : null,
                        queryPerformance : [],
                        queries : {},
-                       errors: []
+                       errors: [],
+                       schema: {}
                };
 
        //----------------------- Models ----------------------------------
@@ -97,7 +98,18 @@ blurconsole.model = (function() {
                }
 
                function getSchema(tableName, callback) {
-                       configMap.poller.getSchema(tableName, callback);
+                       if(stateMap.schema && stateMap.schema.tableName === 
tableName && new Date() - stateMap.schema.date < 60000) {
+                               setTimeout(function(){
+                                       callback(stateMap.schema.data);
+                               }, 0);
+                       } else {
+                               configMap.poller.getSchema(tableName, 
function(schema) {
+                                       stateMap.schema.tableName = tableName;
+                                       stateMap.schema.data = schema;
+                                       stateMap.schema.date = new Date();
+                                       callback(schema);
+                               });
+                       }
                }
 
                function getFamilies(tableName) {

Reply via email to