You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by rz...@apache.org on 2015/08/18 20:38:31 UTC

ambari git commit: AMBARI-12794. Hosts Page Performance: Hosts mapper running time degrade over time (rzang)

Repository: ambari
Updated Branches:
  refs/heads/trunk 9492207a1 -> 8d39c2a5f


AMBARI-12794. Hosts Page Performance: Hosts mapper running time degrade over time (rzang)


Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/8d39c2a5
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/8d39c2a5
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/8d39c2a5

Branch: refs/heads/trunk
Commit: 8d39c2a5f32bf6a5dcf39a23b3393cf8df669d01
Parents: 9492207
Author: Richard Zang <rz...@apache.org>
Authored: Tue Aug 18 11:37:00 2015 -0700
Committer: Richard Zang <rz...@apache.org>
Committed: Tue Aug 18 11:37:00 2015 -0700

----------------------------------------------------------------------
 ambari-web/app/mappers/hosts_mapper.js | 27 +++++++++++++++++----------
 1 file changed, 17 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/8d39c2a5/ambari-web/app/mappers/hosts_mapper.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/mappers/hosts_mapper.js b/ambari-web/app/mappers/hosts_mapper.js
index 69f0139..733160e 100644
--- a/ambari-web/app/mappers/hosts_mapper.js
+++ b/ambari-web/app/mappers/hosts_mapper.js
@@ -94,13 +94,16 @@ App.hostsMapper = App.QuickDataMapper.create({
       var clusterName = App.get('clusterName');
       var advancedHostComponents = [];
 
-      json.items.forEach(function (item, index) {
+      // Use normal for loop instead of foreach to enhance performance
+      for (var index = 0; index < json.items.length; index++) {
+        var item = json.items[index];
         var notStartedComponents = [];
         var componentsInPassiveState = [];
         var componentsWithStaleConfigs = [];
 
         item.host_components = item.host_components || [];
-        item.host_components.forEach(function (host_component) {
+        for (var i = 0; i < item.host_components.length; i++){
+          var host_component = item.host_components[i];
           var id = host_component.HostRoles.component_name + "_" + item.Hosts.host_name;
           var component = this.parseIt(host_component, this.hostComponentConfig);
           var serviceName = host_component.HostRoles.service_name;
@@ -132,18 +135,19 @@ App.hostsMapper = App.QuickDataMapper.create({
           if (component.passive_state !== 'OFF') {
             componentsInPassiveState.push(id);
           }
-        }, this);
+        }
 
         if (stackUpgradeSupport) {
           var currentVersion = item.stack_versions.findProperty('HostStackVersions.state', 'CURRENT');
           var currentVersionNumber = currentVersion && currentVersion.repository_versions
             ? Em.get(currentVersion.repository_versions[0], 'RepositoryVersions.repository_version') : '';
-          item.stack_versions.forEach(function (stackVersion) {
+          for (var j = 0; j < item.stack_versions.length; j++) {
+            var stackVersion = item.stack_versions[j];
             stackVersion.host_name = item.Hosts.host_name;
             stackVersion.is_visible = stringUtils.compareVersions(Em.get(stackVersion.repository_versions[0], 'RepositoryVersions.repository_version'), currentVersionNumber) >= 0
               || App.get('supports.displayOlderVersions') || !currentVersionNumber;
             stackVersions.push(this.parseIt(stackVersion, this.stackVersionConfig));
-          }, this);
+          }
         }
 
         var alertsSummary = item.alerts_summary;
@@ -170,16 +174,17 @@ App.hostsMapper = App.QuickDataMapper.create({
         hostIds[item.Hosts.host_name] = parsedItem;
 
         hostsWithFullInfo.push(parsedItem);
-      }, this);
+      }
 
       if(returnMapped){
         return hostsWithFullInfo;
       }
 
 
-      advancedHostComponents.forEach(function(id) {
+      for (var k = 0; k < advancedHostComponents.length; k++) {
+        var id = advancedHostComponents[k];
         if (componentsIdMap[id]) componentsIdMap[id].display_name_advanced = App.HostComponent.find(id).get('displayNameAdvanced');
-      });
+      };
       App.store.commit();
       if (stackUpgradeSupport) {
         App.store.loadMany(App.HostStackVersion, stackVersions);
@@ -204,7 +209,9 @@ App.hostsMapper = App.QuickDataMapper.create({
    * @param {object} data
    */
   setMetrics: function (data) {
-    this.get('model').find().forEach(function (host) {
+    var hosts = this.get('model').find();
+    for (var i = 0; i < hosts.length; i++) {
+      var host = hosts[i];
       if (host.get('isRequested')) {
         var hostMetrics = data.items.findProperty('Hosts.host_name', host.get('hostName'));
         host.setProperties({
@@ -213,6 +220,6 @@ App.hostsMapper = App.QuickDataMapper.create({
           loadOne: Em.get(hostMetrics, 'metrics.load.load_one')
         });
       }
-    }, this);
+    }
   }
 });