You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spark.apache.org by ge...@apache.org on 2020/06/13 00:29:01 UTC

[spark] branch branch-3.0 updated: [SPARK-31967][UI] Downgrade to vis.js 4.21.0 to fix Jobs UI loading time regression

This is an automated email from the ASF dual-hosted git repository.

gengliang pushed a commit to branch branch-3.0
in repository https://gitbox.apache.org/repos/asf/spark.git


The following commit(s) were added to refs/heads/branch-3.0 by this push:
     new 2612bb8  [SPARK-31967][UI] Downgrade to vis.js 4.21.0 to fix Jobs UI loading time regression
2612bb8 is described below

commit 2612bb80336212a6fb03417db40c27077935fd83
Author: Gengliang Wang <ge...@databricks.com>
AuthorDate: Fri Jun 12 17:27:45 2020 -0700

    [SPARK-31967][UI] Downgrade to vis.js 4.21.0 to fix Jobs UI loading time regression
    
    ### What changes were proposed in this pull request?
    
    After #28192, the job list page becomes very slow.
    For example, after the following operation, the UI loading can take >40 sec.
    ```
    (1 to 1000).foreach(_ => sc.parallelize(1 to 10).collect)
    ```
    
    This is caused by a  [performance issue of `vis-timeline`](https://github.com/visjs/vis-timeline/issues/379). The serious issue affects both branch-3.0 and branch-2.4
    
    I tried a different version 4.21.0 from https://cdnjs.com/libraries/vis
    The infinite drawing issue seems also fixed if the zoom is disabled as default.
    
    ### Why are the changes needed?
    
    Fix the serious perf issue in web UI by falling back vis-timeline-graph2d to an ealier version.
    
    ### Does this PR introduce _any_ user-facing change?
    
    Yes, fix the UI perf regression
    
    ### How was this patch tested?
    
    Manual test
    
    Closes #28811 from gengliangwang/downgrade-3.0.
    
    Authored-by: Gengliang Wang <ge...@databricks.com>
    Signed-off-by: Gengliang Wang <ge...@databricks.com>
---
 .../spark/ui/static/vis-timeline-graph2d.min.css   |  3 +-
 .../ui/static/vis-timeline-graph2d.min.css.map     |  1 -
 .../spark/ui/static/vis-timeline-graph2d.min.js    | 70 +++++++---------------
 .../ui/static/vis-timeline-graph2d.min.js.map      |  1 -
 dev/.rat-excludes                                  |  2 -
 licenses-binary/LICENSE-vis-timeline.txt           | 29 +++++----
 licenses/LICENSE-vis-timeline.txt                  | 29 +++++----
 7 files changed, 49 insertions(+), 86 deletions(-)

diff --git a/core/src/main/resources/org/apache/spark/ui/static/vis-timeline-graph2d.min.css b/core/src/main/resources/org/apache/spark/ui/static/vis-timeline-graph2d.min.css
index d22a9ac..eeacbd8 100644
--- a/core/src/main/resources/org/apache/spark/ui/static/vis-timeline-graph2d.min.css
+++ b/core/src/main/resources/org/apache/spark/ui/static/vis-timeline-graph2d.min.css
@@ -1,2 +1 @@
-.vis [class*=span]{min-height:0;width:auto}.vis .overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:10}.vis-active{box-shadow:0 0 10px #86d5f8}div.vis-configuration{position:relative;display:block;float:left;font-size:12px}div.vis-configuration-wrapper{display:block;width:700px}div.vis-configuration-wrapper:after{clear:both;content:"";display:block}div.vis-configuration.vis-config-option-container{display:block;width:495px;background-color:#fff;border:2px solid #f7f8fa [...]
-/*# sourceMappingURL=vis-timeline-graph2d.min.css.map */
\ No newline at end of file
+.vis .overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:10}.vis-active{box-shadow:0 0 10px #86d5f8}.vis [class*=span]{min-height:0;width:auto}div.vis-configuration{position:relative;display:block;float:left;font-size:12px}div.vis-configuration-wrapper{display:block;width:700px}div.vis-configuration-wrapper::after{clear:both;content:"";display:block}div.vis-configuration.vis-config-option-container{display:block;width:495px;background-color:#fff;border:2px solid #f7f8f [...]
\ No newline at end of file
diff --git a/core/src/main/resources/org/apache/spark/ui/static/vis-timeline-graph2d.min.css.map b/core/src/main/resources/org/apache/spark/ui/static/vis-timeline-graph2d.min.css.map
deleted file mode 100644
index 3c165a7..0000000
--- a/core/src/main/resources/org/apache/spark/ui/static/vis-timeline-graph2d.min.css.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["bootstrap.css","activator.css","configuration.css","tooltip.css","panel.css","currenttime.css","customtime.css","timeline.css","pathStyles.css","dataaxis.css","itemset.css","labelset.css","timeaxis.css","item.css"],"names":[],"mappings":"AAEA,mBACE,YAAa,CACb,UACF,CCLA,cACE,iBAAkB,CAClB,KAAM,CACN,MAAO,CACP,UAAW,CACX,WAAY,CAGZ,UACF,CAEA,YACE,2BACF,CCbA,sBACI,iBAAiB,CACjB,aAAa,CACb,UAAU,CACV,cACJ,CAEA,8BACI,aAAa,CACb,WACJ,CAEA,oCACE,UAAW,CACX,UAAW,CACX,aACF,CAEA,kDA [...]
\ No newline at end of file
diff --git a/core/src/main/resources/org/apache/spark/ui/static/vis-timeline-graph2d.min.js b/core/src/main/resources/org/apache/spark/ui/static/vis-timeline-graph2d.min.js
index df73040..5cfa0da 100644
--- a/core/src/main/resources/org/apache/spark/ui/static/vis-timeline-graph2d.min.js
+++ b/core/src/main/resources/org/apache/spark/ui/static/vis-timeline-graph2d.min.js
@@ -1,60 +1,30 @@
 /**
- * vis-timeline and vis-graph2d
- * https://visjs.github.io/vis-timeline/
+ * vis.js
+ * https://github.com/almende/vis
  *
- * Create a fully customizable, interactive timeline with items and ranges.
+ * A dynamic, browser-based visualization library.
  *
- * @version 7.3.4
- * @date    2020-03-18T17:03:58.105Z
- *
- * @copyright (c) 2011-2017 Almende B.V, http://almende.com
- * @copyright (c) 2017-2019 visjs contributors, https://github.com/visjs
+ * @version 4.21.0
+ * @date    2017-10-12
  *
  * @license
- * vis.js is dual licensed under both
+ * Copyright (C) 2011-2017 Almende B.V, http://almende.com
+ *
+ * Vis.js is dual licensed under both
  *
- *   1. The Apache 2.0 License
- *      http://www.apache.org/licenses/LICENSE-2.0
+ * * The Apache 2.0 License
+ *   http://www.apache.org/licenses/LICENSE-2.0
  *
- *   and
+ * and
  *
- *   2. The MIT License
- *      http://opensource.org/licenses/MIT
+ * * The MIT License
+ *   http://opensource.org/licenses/MIT
  *
- * vis.js may be distributed under either license.
+ * Vis.js may be distributed under either license.
  */
-!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t=t||self).vis=t.vis||{})}(this,(function(t){"use strict";var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function i(){throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs")}function n(t,e){return t(e={exports:{}} [...]
-/**
-	 * vis-util
-	 * https://github.com/visjs/vis-util
-	 *
-	 * utilitie collection for visjs
-	 *
-	 * @version 4.0.0
-	 * @date    2020-02-29T15:35:13.178Z
-	 *
-	 * @copyright (c) 2011-2017 Almende B.V, http://almende.com
-	 * @copyright (c) 2017-2019 visjs contributors, https://github.com/visjs
-	 *
-	 * @license
-	 * vis.js is dual licensed under both
-	 *
-	 *   1. The Apache 2.0 License
-	 *      http://www.apache.org/licenses/LICENSE-2.0
-	 *
-	 *   and
-	 *
-	 *   2. The MIT License
-	 *      http://opensource.org/licenses/MIT
-	 *
-	 * vis.js may be distributed under either license.
-	 */
-function(){for(var t=arguments.length,e=new Array(t),i=0;i<t;i++)e[i]=arguments[i];return qo(e.length?e:[Jo()])},HSVToHex:xs,HSVToRGB:ys,RGBToHSV:gs,RGBToHex:fs,addClassName:function(t,e){var i=t.className.split(" "),n=e.split(" ");i=Pn(i).call(i,En(n).call(n,(function(t){return Fo(i).call(i,t)<0}))),t.className=i.join(" ")},addCssText:function(t,e){var i=function(t){for(var e=1;e<arguments.length;e++){var i,n=null!=arguments[e]?arguments[e]:{};if(e%2)mn(i=Ko(Object(n),!0)).call(i,(funct [...]
-/*! Hammer.JS - v2.0.17-rc - 2019-12-16
-	 * http://naver.github.io/egjs
-	 *
-	 * Forked By Naver egjs
-	 * Copyright (c) hammerjs
-	 * Licensed under the MIT license */
-function yl(){return(yl=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var i=arguments[e];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(t[n]=i[n])}return t}).apply(this,arguments)}function xl(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,t.__proto__=e}function wl(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}var _l,kl="function"!=typeof Object.assign?function(t){if(null= [...]
-//# sourceMappingURL=vis-timeline-graph2d.min.js.map
+"use strict";!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.vis=e():t.vis=e()}(this,function(){return function(t){function e(o){if(i[o])return i[o].exports;var n=i[o]={i:o,l:!1,exports:{}};return t[o].call(n.exports,n,n.exports,e),n.l=!0,n.exports}var i={};return e.m=t,e.c=i,e.d=function(t,i,o){e.o(t,i)||Object.defineProperty(t,i,{configurable:!1,enumerable:!0,get:o})} [...]
+ * http://hammerjs.github.io/
+ *
+ * Copyright (c) 2016 Jorik Tangelder;
+ * Licensed under the MIT license */
+!function(n,s,r,a){function h(t,e,i){return setTimeout(c(t,i),e)}function d(t,e,i){return!!Array.isArray(t)&&(l(t,i[e],i),!0)}function l(t,e,i){var o;if(t)if(t.forEach)t.forEach(e,i);else if(t.length!==a)for(o=0;o<t.length;)e.call(i,t[o],o,t),o++;else for(o in t)t.hasOwnProperty(o)&&e.call(i,t[o],o,t)}function u(t,e,i){var o="DEPRECATED METHOD: "+e+"\n"+i+" AT \n";return function(){var e=new Error("get-stack-trace"),i=e&&e.stack?e.stack.replace(/^[^\(]+?[\n$]/gm,"").replace(/^\s+at\s+/gm [...]
\ No newline at end of file
diff --git a/core/src/main/resources/org/apache/spark/ui/static/vis-timeline-graph2d.min.js.map b/core/src/main/resources/org/apache/spark/ui/static/vis-timeline-graph2d.min.js.map
deleted file mode 100644
index 779880d..0000000
--- a/core/src/main/resources/org/apache/spark/ui/static/vis-timeline-graph2d.min.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"vis-timeline-graph2d.min.js","sources":["../../node_modules/moment/moment.js","../../node_modules/core-js-pure/internals/global.js","../../node_modules/moment/locale/de.js","../../node_modules/moment/locale/es.js","../../node_modules/moment/locale/fr.js","../../node_modules/moment/locale/it.js","../../node_modules/moment/locale/ja.js","../../node_modules/moment/locale/nl.js","../../node_modules/moment/locale/pl.js","../../node_modules/moment/locale/ru.js","../../node [...]
\ No newline at end of file
diff --git a/dev/.rat-excludes b/dev/.rat-excludes
index 7693421..7ce00b7 100644
--- a/dev/.rat-excludes
+++ b/dev/.rat-excludes
@@ -28,9 +28,7 @@ dagre-d3.min.js
 graphlib-dot.min.js
 sorttable.js
 vis-timeline-graph2d.min.js
-vis-timeline-graph2d.min.js.map
 vis-timeline-graph2d.min.css
-vis-timeline-graph2d.min.css.map
 dataTables.bootstrap.css
 dataTables.bootstrap.min.js
 dataTables.rowsGroup.js
diff --git a/licenses-binary/LICENSE-vis-timeline.txt b/licenses-binary/LICENSE-vis-timeline.txt
index d343783..324402d 100644
--- a/licenses-binary/LICENSE-vis-timeline.txt
+++ b/licenses-binary/LICENSE-vis-timeline.txt
@@ -1,23 +1,22 @@
-vis-timeline and vis-graph2d
-https://visjs.github.io/vis-timeline/
+vis.js
+https://github.com/almende/vis
 
-Create a fully customizable, interactive timeline with items and ranges.
+A dynamic, browser-based visualization library.
 
-@version 7.3.4
-@date    2020-03-18T17:03:58.105Z
-
-@copyright (c) 2011-2017 Almende B.V, http://almende.com
-@copyright (c) 2017-2019 visjs contributors, https://github.com/visjs
+@version 4.20.1-SNAPSHOT
+@date    2017-10-12
 
 @license
-vis.js is dual licensed under both
+Copyright (C) 2011-2017 Almende B.V, http://almende.com
+
+Vis.js is dual licensed under both
 
-  1. The Apache 2.0 License
-     http://www.apache.org/licenses/LICENSE-2.0
+* The Apache 2.0 License
+  http://www.apache.org/licenses/LICENSE-2.0
 
-  and
+and
 
-  2. The MIT License
-     http://opensource.org/licenses/MIT
+* The MIT License
+  http://opensource.org/licenses/MIT
 
-vis.js may be distributed under either license.
+Vis.js may be distributed under either license.
diff --git a/licenses/LICENSE-vis-timeline.txt b/licenses/LICENSE-vis-timeline.txt
index d343783..324402d 100644
--- a/licenses/LICENSE-vis-timeline.txt
+++ b/licenses/LICENSE-vis-timeline.txt
@@ -1,23 +1,22 @@
-vis-timeline and vis-graph2d
-https://visjs.github.io/vis-timeline/
+vis.js
+https://github.com/almende/vis
 
-Create a fully customizable, interactive timeline with items and ranges.
+A dynamic, browser-based visualization library.
 
-@version 7.3.4
-@date    2020-03-18T17:03:58.105Z
-
-@copyright (c) 2011-2017 Almende B.V, http://almende.com
-@copyright (c) 2017-2019 visjs contributors, https://github.com/visjs
+@version 4.20.1-SNAPSHOT
+@date    2017-10-12
 
 @license
-vis.js is dual licensed under both
+Copyright (C) 2011-2017 Almende B.V, http://almende.com
+
+Vis.js is dual licensed under both
 
-  1. The Apache 2.0 License
-     http://www.apache.org/licenses/LICENSE-2.0
+* The Apache 2.0 License
+  http://www.apache.org/licenses/LICENSE-2.0
 
-  and
+and
 
-  2. The MIT License
-     http://opensource.org/licenses/MIT
+* The MIT License
+  http://opensource.org/licenses/MIT
 
-vis.js may be distributed under either license.
+Vis.js may be distributed under either license.


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@spark.apache.org
For additional commands, e-mail: commits-help@spark.apache.org