[
https://issues.apache.org/jira/browse/SPARK-2017?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14082909#comment-14082909
]
Carlos Fuertes commented on SPARK-2017:
---------------------------------------
I have been digging in on why the bad performance on rendering the tables. As
it happens the bottleneck is in the css that is currently used for rendering
the tables. In particular bootstrap.css and this type of definition:
.table-striped tbody>tr:nth-child(odd)>td,.table-striped
tbody>tr:nth-child(odd)>th{background-color:#f9f9f9;}
The call to nth-child(odd) with large tables slows everything to the point that
for big table the whole rendering stalls.
I have made a change in the pull request [1682] where I use a custom very
simple css table styling (respecting the same overall look and and feel but
with no nth-child call). I have not changed the sortable option of the tables.
Now if you run for example
sc.parallelize(1 to 1000000, 50000).count()
loading the whole page /stages/stage/?id=0 takes ~ 11 secs. Of those sec, 2.10
s are spend loading the JSON from the driver (a total of 16.7MB) and the rest
in the rendering of the table. Since the JSON request is async, you can see
immediately the rest of the page nonetheless.
I think this would solve the responsiveness problem for reasonably large number
of tasks as a first pass. I have also apply the same solution to all tables
under Storage where the same thing was happening [SPARK-2016].
> web ui stage page becomes unresponsive when the number of tasks is large
> ------------------------------------------------------------------------
>
> Key: SPARK-2017
> URL: https://issues.apache.org/jira/browse/SPARK-2017
> Project: Spark
> Issue Type: Sub-task
> Components: Web UI
> Reporter: Reynold Xin
> Labels: starter
>
> {code}
> sc.parallelize(1 to 1000000, 1000000).count()
> {code}
> The above code creates one million tasks to be executed. The stage detail web
> ui page takes forever to load (if it ever completes).
> There are again a few different alternatives:
> 0. Limit the number of tasks we show.
> 1. Pagination
> 2. By default only show the aggregate metrics and failed tasks, and hide the
> successful ones.
--
This message was sent by Atlassian JIRA
(v6.2#6252)