Details

    • Sub-task
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 2.2.0
    • 2.4.0
    • datanode
    • None
    • Reviewed

    Description

      The current implementation of hsync in BlockReceiver only works if the output streams are instances of FileOutputStream. Therefore, there is currently no way for a FSDatasetSpi plugin to implement hsync if it is not using standard OS files.

      One possible solution is to push the implementation of hsync into the ReplicaOutputStreams class. This class is constructed by the ReplicaInPipeline which is constructed by the FSDatasetSpi plugin, therefore it can be extended. Instead of directly calling sync on the output stream, BlockReceiver would call ReplicaOutputStream.sync. The default implementation of sync in ReplicaOutputStream would be the same as the current implementation in BlockReceiver.

      Attachments

        1. HDFS-5868-branch-2.patch
          4 kB
          Taylor, Buddy
        2. HDFS-5868b-branch-2.patch
          5 kB
          Taylor, Buddy
        3. HDFS-5868a-branch-2.patch
          4 kB
          Taylor, Buddy

        Activity

          People

            buddytaylor0 Taylor, Buddy
            buddytaylor0 Taylor, Buddy
            Votes:
            0 Vote for this issue
            Watchers:
            7 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: