Github user aarondav commented on a diff in the pull request:

    https://github.com/apache/spark/pull/3032#discussion_r19710069
  
    --- Diff: 
core/src/main/scala/org/apache/spark/storage/ShuffleBlockFetcherIterator.scala 
---
    @@ -313,14 +319,30 @@ object ShuffleBlockFetcherIterator {
       }
     
       /**
    -   * Result of a fetch from a remote block. A failure is represented as 
size == -1.
    +   * Result of a fetch from a remote block.
    +   */
    +  sealed trait FetchResult {
    +    val blockId: BlockId
    +  }
    +
    +  /**
    +   * Result of a fetch from a remote block successfully.
        * @param blockId block id
        * @param size estimated size of the block, used to calculate 
bytesInFlight.
    -   *             Note that this is NOT the exact bytes. -1 if failure is 
present.
    -   * @param buf [[ManagedBuffer]] for the content. null is error.
    +   *             Note that this is NOT the exact bytes.
    +   * @param buf [[ManagedBuffer]] for the content.
        */
    -  case class FetchResult(blockId: BlockId, size: Long, buf: ManagedBuffer) 
{
    -    def failed: Boolean = size == -1
    -    if (failed) assert(buf == null) else assert(buf != null)
    +  private[storage] case class SuccessFetchResult(blockId: BlockId, size: 
Long, buf: ManagedBuffer)
    --- End diff --
    
    Just to make sure we're on absolutely the same page, `private[storage]` is 
used to restrict visibility, to ensure that we never accidentally expose this 
API to a wider audience than necessary. `sealed` is used to restrict 
inheritance, so that the compiler (and programmer) can check that all cases 
have been matched on. The attributes are thus orthogonal in nature.
    
    Adding `private[storage]` is good here, and we should also add it to the 
`trait FetchResult` as well, to make sure it's restricted in both visibility 
and inheritance.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---

---------------------------------------------------------------------
To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org
For additional commands, e-mail: reviews-h...@spark.apache.org

Reply via email to