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

Consolidate storage and execution memory management

    Details

    • Type: Story
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 1.6.0
    • Component/s: Block Manager, Spark Core
    • Labels:
      None
    • Target Version/s:

      Description

      Memory management in Spark is currently broken down into two disjoint regions: one for execution and one for storage. The sizes of these regions are statically configured and fixed for the duration of the application.

      There are several limitations to this approach. It requires user expertise to avoid unnecessary spilling, and there are no sensible defaults that will work for all workloads. As a Spark user, I want Spark to manage the memory more intelligently so I do not need to worry about how to statically partition the execution (shuffle) memory fraction and cache memory fraction. More importantly, applications that do not use caching use only a small fraction of the heap space, resulting in suboptimal performance.

      Instead, we should unify these two regions and let one borrow from another if possible.

        Attachments

        There are no Sub-Tasks for this issue.

          Activity

            People

            • Assignee:
              andrewor14 Andrew Or
              Reporter:
              rxin Reynold Xin
            • Votes:
              2 Vote for this issue
              Watchers:
              31 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: