Skip to content

Conversation

@CodingCat
Copy link
Contributor

show the broadcast variables resource usage in UI

image

@SparkQA
Copy link

SparkQA commented Oct 20, 2014

QA tests have started for PR 2851 at commit 8f75476.

  • This patch merges cleanly.

@SparkQA
Copy link

SparkQA commented Oct 20, 2014

QA tests have finished for PR 2851 at commit 8f75476.

  • This patch fails Scala style tests.
  • This patch merges cleanly.
  • This patch adds the following public classes (experimental):
    • sealed abstract class BlockId extends Serializable

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would this send a BlockStatus for each broadcast variable on a heartbeat ? If we have hundreds or thousands of broadcast variables I wonder if the message size will become huge. Could we send deltas somehow ?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

good point, I will make this PR this evening

@CodingCat
Copy link
Contributor Author

image

image

@CodingCat CodingCat changed the title [WIP]SPARK-3957: show broadcast variable resource usage info in UI [SPARK-3957]: show broadcast variable resource usage info in UI Oct 22, 2014
@SparkQA
Copy link

SparkQA commented Oct 22, 2014

QA tests have started for PR 2851 at commit c07c306.

  • This patch merges cleanly.

@SparkQA
Copy link

SparkQA commented Oct 22, 2014

QA tests have started for PR 2851 at commit 1eff69e.

  • This patch merges cleanly.

@SparkQA
Copy link

SparkQA commented Oct 22, 2014

QA tests have finished for PR 2851 at commit c07c306.

  • This patch fails Spark unit tests.
  • This patch merges cleanly.
  • This patch adds the following public classes (experimental):
    • sealed abstract class BlockId extends Serializable

@SparkQA
Copy link

SparkQA commented Oct 22, 2014

QA tests have finished for PR 2851 at commit 1eff69e.

  • This patch fails Spark unit tests.
  • This patch merges cleanly.
  • This patch adds the following public classes (experimental):
    • throw new SparkException("Failed to load class to register with Kryo", e)
    • sealed abstract class BlockId extends Serializable

@rxin
Copy link
Contributor

rxin commented Oct 22, 2014

Can't we just have a general block reporting mechanism rather than special casing for broadcast?

@SparkQA
Copy link

SparkQA commented Oct 22, 2014

QA tests have started for PR 2851 at commit 473519a.

  • This patch merges cleanly.

@CodingCat
Copy link
Contributor Author

@rxin I'm not sure, maybe we don't need that, because currently all RDD blocks are not reported via network, but by calling post(...) from the driver

@SparkQA
Copy link

SparkQA commented Oct 22, 2014

QA tests have finished for PR 2851 at commit 473519a.

  • This patch fails Spark unit tests.
  • This patch merges cleanly.
  • This patch adds the following public classes (experimental):
    • sealed abstract class BlockId extends Serializable

@SparkQA
Copy link

SparkQA commented Oct 22, 2014

QA tests have started for PR 2851 at commit 23b1819.

  • This patch merges cleanly.

@SparkQA
Copy link

SparkQA commented Oct 22, 2014

QA tests have finished for PR 2851 at commit 23b1819.

  • This patch fails Spark unit tests.
  • This patch merges cleanly.
  • This patch adds the following public classes (experimental):
    • sealed abstract class BlockId extends Serializable

@SparkQA
Copy link

SparkQA commented Oct 22, 2014

QA tests have started for PR 2851 at commit 2db9dd9.

  • This patch merges cleanly.

@SparkQA
Copy link

SparkQA commented Oct 22, 2014

QA tests have finished for PR 2851 at commit 2db9dd9.

  • This patch passes all tests.
  • This patch merges cleanly.
  • This patch adds the following public classes (experimental):
    • sealed abstract class BlockId extends Serializable

@CodingCat
Copy link
Contributor Author

@andrewor14 do you want to take a look at this patch?

@rxin
Copy link
Contributor

rxin commented Oct 23, 2014

Hi @CodingCat - This is a great & handy feature, but what I meant was that we should NOT have custom code that tracks broadcast blocks. We can have special UIs for reporting broadcast blocks for convenience, but the underlying reporting mechanism should be the same across all block types. BlockManager and the associated code are complicated enough (pretty terribly designed by us already), and we should not further complicate it by adding custom code for x, y, and z. We should make this reporting general enough (or use existing general reporting code path) so we can easily report other blocks in the future.

@CodingCat
Copy link
Contributor Author

@rxin, I see

then I will try to refactor the reporting mechanism (currently piggyback in heartbeat) to make it more general....

@shivaram
Copy link
Contributor

@rxin - Here is a simpler design -- What if we report all broadcast blocks to the master when they are added to a block manager as well (tellMaster = true instead of false in https://github.com/apache/spark/blob/master/core/src/main/scala/org/apache/spark/broadcast/TorrentBroadcast.scala#L95 )

It might be the same network traffic as any reporting mechanism we come up with -- The only concern then is to make sure that we don't wait for the master RPC, and we could do that if tellMaster is asynchronous ?

@shivaram
Copy link
Contributor

@CodingCat
Copy link
Contributor Author

Hi, @shivaram, do you mean we send the report with tell instead of askDriverWithReply....hmmm...

what's the original motivation to send BlockInfo "synchronously"?

@CodingCat
Copy link
Contributor Author

I mean Akka's tell, not

 private def tell(message: Any) {
    if (!askDriverWithReply[Boolean](message)) {
      throw new SparkException("BlockManagerMasterActor returned false, expected true.")
    }
  }

(.....why we have such a method....)

@CodingCat
Copy link
Contributor Author

haven't forgotten this, I will make it done tomorrow

@SparkQA
Copy link

SparkQA commented Nov 2, 2014

Test build #22766 has finished for PR 2851 at commit 6e4915d.

  • This patch fails Scala style tests.
  • This patch does not merge cleanly.
  • This patch adds the following public classes (experimental):
    • case class SparkListenerBlockUpdate(blockManagerId: BlockManagerId, blockId: BlockId,
    • class DefaultSparkListenerEventFilter
    • sealed abstract class BlockId extends Serializable
    • class BroadcastInfo(

@CodingCat
Copy link
Contributor Author

Hi, @squito , would you mind taking further review when you have time?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

did you mean to remove the update of executorLastSeen? seems like maybe a mistake in the merge?

@squito
Copy link
Contributor

squito commented Mar 13, 2015

Hi @CodingCat , I took another look through everything. My comments are all very minor. But I think I'd still like to get some more thoughts from others on how the broadcast block info is passed along. As I mentioned earlier, it is also possible to get it into TaskEnd events, like the RDD blocks. I'm torn, so I'd like to hear what others think. Sorry it is taking so long to get feedback ...

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

by worker, not by block

@SparkQA
Copy link

SparkQA commented Mar 13, 2015

Test build #28577 has finished for PR 2851 at commit 26977c9.

  • This patch fails Spark unit tests.
  • This patch merges cleanly.
  • This patch adds no public classes.

@SparkQA
Copy link

SparkQA commented Mar 13, 2015

Test build #28585 has finished for PR 2851 at commit 49ee118.

  • This patch passes all tests.
  • This patch merges cleanly.
  • This patch adds no public classes.

@SparkQA
Copy link

SparkQA commented Mar 14, 2015

Test build #28601 has finished for PR 2851 at commit 9b1bccf.

  • This patch passes all tests.
  • This patch merges cleanly.
  • This patch adds no public classes.

@CodingCat
Copy link
Contributor Author

Hi, @squito , thanks for the comments, I made some revision on the patch

@squito
Copy link
Contributor

squito commented Mar 14, 2015

thanks for the updates! just one small style comment.
FWIW, after thinking about it more, I am in favor of your approach of sending the block updates, just want to get some confirmation.

lgtm (with the minor style update)

@SparkQA
Copy link

SparkQA commented Mar 15, 2015

Test build #28626 has finished for PR 2851 at commit 1aec3a8.

  • This patch passes all tests.
  • This patch merges cleanly.
  • This patch adds no public classes.

@CodingCat
Copy link
Contributor Author

thanks @squito

I updated that again

@JoshRosen
Copy link
Contributor

Hey @CodingCat, it looks like this PR is significantly out of date. Do you mind closing it for now? You can always re-open / re-submit once we're ready to work on this feature again. Thanks!

@CodingCat
Copy link
Contributor Author

sure, I will close this temporarily

@CodingCat CodingCat closed this Oct 16, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants