Class RrdNioBackend


  • public class RrdNioBackend
    extends RrdFileBackend
    JRobin backend which is used to store RRD data to ordinary disk files by using fast java.nio.* package. This is the default backend engine since JRobin 1.4.0.
    • Constructor Detail

      • RrdNioBackend

        protected RrdNioBackend​(String path,
                                boolean readOnly,
                                int syncPeriod)
                         throws IOException
        Creates RrdFileBackend object for the given file path, backed by java.nio.* classes. This constructor will create a SyncManager for each instance, which is very inefficient. It is recommended that you instead use the RrdNioBackend(String, boolean, SyncManager) constructor instead.
        Parameters:
        path - Path to a JRB file.
        readOnly - True, if file should be open in a read-only mode. False otherwise
        syncPeriod - How often (in seconds) to sync MMAP'd RRD data to disk
        Throws:
        IOException - Thrown in case of I/O error
      • RrdNioBackend

        protected RrdNioBackend​(String path,
                                boolean readOnly,
                                SyncManager syncManager)
                         throws IOException
        Creates RrdFileBackend object for the given file path, backed by java.nio.* classes.
        Parameters:
        path - Path to a file
        readOnly - True, if file should be open in a read-only mode. False otherwise.
        syncManager - An object for managing synchronization of NIO-backed RRDs, generally owned by the backend factory. If null, MMAP'd data will only be synchronized to disk upon unmap. Note that if the file is opened read-only, the SyncManager is ignored. unmapFile()
        Throws:
        IOException - Thrown in case of I/O error
    • Method Detail

      • setLength

        protected void setLength​(long newLength)
                          throws IOException
        Sets length of the underlying RRD file. This method is called only once, immediately after a new RRD file gets created.
        Overrides:
        setLength in class RrdFileBackend
        Parameters:
        newLength - Length of the RRD file
        Throws:
        IOException - Thrown in case of I/O error.
      • write

        protected void write​(long offset,
                             byte[] b)
                      throws IOException
        Writes bytes to the underlying RRD file on the disk
        Overrides:
        write in class RrdFileBackend
        Parameters:
        offset - Starting file offset
        b - Bytes to be written.
        Throws:
        IOException - Thrown in case of I/O error
      • read

        protected void read​(long offset,
                            byte[] b)
                     throws IOException
        Reads a number of bytes from the RRD file on the disk
        Overrides:
        read in class RrdFileBackend
        Parameters:
        offset - Starting file offset
        b - Buffer which receives bytes read from the file.
        Throws:
        IOException - Thrown in case of I/O error.
      • sync

        protected void sync()
        This method forces all data cached in memory but not yet stored in the file, to be stored in it.