Uploaded image for project: 'Spark'
  1. Spark
  2. SPARK-30441

Improve the memory usage in StronglyConnectedComponents

    XMLWordPrintableJSON

    Details

    • Type: Improvement
    • Status: In Progress
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: 3.1.0
    • Fix Version/s: None
    • Component/s: GraphX
    • Labels:
      None

      Description

      This is very consume memory when It use StronglyConnectedComponents(see figure1.png). Because there is no mark the Graph/RDD as non-persistent in the iterative process timely. And it is maybe lead to fail in the big graph.

      In order to improve the memory usage, it is verty important to mark the Graph/RDD as non-persistent timely. In the current code, only make the Graph/RDD as non-persistent for 'sccGraph' but not for 'sccWorkGraph' in degree's step and pregel's step.

      I have done a optimized code proposal(see my fork:https://github.com/jmzhoulab/spark/blob/master/graphx/src/main/scala/org/apache/spark/graphx/lib/StronglyConnectedComponents.scala)

      The storage after optimization see figure2.png

        Attachments

        1. figure1.png
          1013 kB
          jiamuzhou
        2. figure2.png
          139 kB
          jiamuzhou

          Issue Links

            Activity

              People

              • Assignee:
                Unassigned
                Reporter:
                jmzhou jiamuzhou
              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated: