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

BlockFetch does not scale well on large block

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Critical
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 1.6.2, 2.0.0
    • Component/s: Block Manager, Spark Core
    • Labels:
      None

      Description

      BlockManager.getRemoteBytes() perform poorly on large block

        test("block manager") {
          val N = 500 << 20
          val bm = sc.env.blockManager
          val blockId = TaskResultBlockId(0)
          val buffer = ByteBuffer.allocate(N)
          buffer.limit(N)
          bm.putBytes(blockId, buffer, StorageLevel.MEMORY_AND_DISK_SER)
          val result = bm.getRemoteBytes(blockId)
          assert(result.isDefined)
          assert(result.get.limit() === (N))
        }
      

      Here are runtime for different block sizes:

      50M            3 seconds
      100M          7 seconds
      250M          33 seconds
      500M         2 min
      

        Attachments

          Activity

            People

            • Assignee:
              liyezhang556520 Zhang, Liye
              Reporter:
              davies Davies Liu
            • Votes:
              0 Vote for this issue
              Watchers:
              7 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: