Class BlockBasedFile

    • Field Detail

      • cache

        final DfsBlockCache cache
        Cache that owns this file and its data.
      • key

        final DfsStreamKey key
        Unique identity of this file while in-memory.
      • blockSize

        volatile int blockSize
        Preferred alignment for loading blocks from the backing file.

        It is initialized to 0 and filled in on the first read made from the file. Block sizes may be odd, e.g. 4091, caused by the underling DFS storing 4091 user bytes and 5 bytes block metadata into a lower level 4096 byte block on disk.

      • length

        volatile long length
        Total number of bytes in this pack file.

        This field initializes to -1 and gets populated when a block is loaded.

      • invalid

        volatile boolean invalid
        True once corruption has been detected that cannot be worked around.
      • invalidatingCause

        protected volatile java.lang.Exception invalidatingCause
        Exception that caused the packfile to be flagged as invalid
    • Method Detail

      • getFileName

        java.lang.String getFileName()
      • invalid

        boolean invalid()
      • setInvalid

        void setInvalid()
      • setBlockSize

        void setBlockSize​(int newSize)
      • alignToBlock

        long alignToBlock​(long pos)
      • getOrLoadBlock

        DfsBlock getOrLoadBlock​(long pos,
                                DfsReader ctx)
                         throws java.io.IOException
        Throws:
        java.io.IOException
      • read

        static int read​(ReadableChannel rc,
                        java.nio.ByteBuffer buf)
                 throws java.io.IOException
        Throws:
        java.io.IOException
      • elapsedMicros

        static long elapsedMicros​(long start)