Class Sort


  • public final class Sort
    extends java.lang.Object
    On-disk sorting of byte arrays. Each byte array (entry) is a composed of the following fields:
    • (two bytes) length of the following byte array,
    • exactly the above count of bytes for the sequence to be sorted.
    See Also:
    sort(File, File)
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  Sort.BufferSize
      A bit more descriptive unit for constructors.
      static class  Sort.ByteSequencesReader
      Utility class to read length-prefixed byte[] entries from an input.
      static class  Sort.ByteSequencesWriter
      Utility class to emit length-prefixed byte[] entries to an output stream for sorting.
      class  Sort.SortInfo
      Sort info (debugging mostly).
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static long ABSOLUTE_MIN_SORT_BUFFER_SIZE
      Absolute minimum required buffer size for sorting.
      static java.util.Comparator<BytesRef> DEFAULT_COMPARATOR
      Default comparator: sorts in binary (codepoint) order
      static long GB
      Convenience constant for gigabytes
      static int MAX_TEMPFILES
      Maximum number of temporary files before doing an intermediate merge.
      static long MB
      Convenience constant for megabytes
      static long MIN_BUFFER_SIZE_MB
      Minimum recommended buffer size for sorting.
    • Constructor Summary

      Constructors 
      Constructor Description
      Sort()
      Defaults constructor.
      Sort​(java.util.Comparator<BytesRef> comparator)
      Defaults constructor with a custom comparator.
      Sort​(java.util.Comparator<BytesRef> comparator, Sort.BufferSize ramBufferSize, java.io.File tempDirectory, int maxTempfiles)
      All-details constructor.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      static java.io.File defaultTempDir()
      Returns the default temporary directory.
      java.util.Comparator<BytesRef> getComparator()
      Returns the comparator in use to sort entries
      Sort.SortInfo sort​(java.io.File input, java.io.File output)
      Sort input to output, explicit hint for the buffer size.
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • MIN_BUFFER_SIZE_MB

        public static final long MIN_BUFFER_SIZE_MB
        Minimum recommended buffer size for sorting.
        See Also:
        Constant Field Values
      • ABSOLUTE_MIN_SORT_BUFFER_SIZE

        public static final long ABSOLUTE_MIN_SORT_BUFFER_SIZE
        Absolute minimum required buffer size for sorting.
        See Also:
        Constant Field Values
      • MAX_TEMPFILES

        public static final int MAX_TEMPFILES
        Maximum number of temporary files before doing an intermediate merge.
        See Also:
        Constant Field Values
      • DEFAULT_COMPARATOR

        public static final java.util.Comparator<BytesRef> DEFAULT_COMPARATOR
        Default comparator: sorts in binary (codepoint) order
    • Method Detail

      • sort

        public Sort.SortInfo sort​(java.io.File input,
                                  java.io.File output)
                           throws java.io.IOException
        Sort input to output, explicit hint for the buffer size. The amount of allocated memory may deviate from the hint (may be smaller or larger).
        Throws:
        java.io.IOException
      • defaultTempDir

        public static java.io.File defaultTempDir()
                                           throws java.io.IOException
        Returns the default temporary directory. By default, java.io.tmpdir. If not accessible or not available, an IOException is thrown
        Throws:
        java.io.IOException
      • getComparator

        public java.util.Comparator<BytesRef> getComparator()
        Returns the comparator in use to sort entries