Uploaded image for project: 'Crunch (Retired)'
  1. Crunch (Retired)
  2. CRUNCH-294

Cost-based job planning

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 0.9.0, 0.8.2
    • Core
    • None

    Description

      A bug report on the user list drove me to revisit some of the core planning logic, particularly around how we decide where to split up DoFns between two dependent MapReduce jobs.

      I found an old TODO about using the scale factor from a DoFn to decide where to split up the nodes between dependent GBKs, so I implemented a new version of the split algorithm that takes advantage of how we've propagated support for multiple outputs on both the map and reduce sides of a job to do finer-grained splits that use information from the scaleFactor calculations to make smarter split decisions.

      One high-level change along with this: I changed the default scaleFactor() value in DoFn to 0.99f to slightly prefer writes that occur later in a pipeline flow by default.

      Attachments

        1. CRUNCH-294.patch
          6 kB
          Josh Wills
        2. CRUNCH-294b.patch
          22 kB
          Josh Wills
        3. CRUNCH-294c.patch
          20 kB
          Josh Wills
        4. CRUNCH-294d.patch
          18 kB
          Josh Wills
        5. CRUNCH-294e.patch
          18 kB
          Josh Wills
        6. jobplan-default-new.png
          86 kB
          Gabriel Reid
        7. jobplan-default-old.png
          87 kB
          Gabriel Reid
        8. jobplan-large_s2_s3.png
          87 kB
          Gabriel Reid
        9. jobplan-lopsided.png
          91 kB
          Gabriel Reid

        Activity

          People

            jwills Josh Wills
            jwills Josh Wills
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: