Class PartitionUtils


  • public final class PartitionUtils
    extends java.lang.Object
    • Method Detail

      • rangePartition

        public static <TASK> java.util.List<TASK> rangePartition​(int concurrency,
                                                                 long nodeCount,
                                                                 java.util.function.Function<Partition,​TASK> taskCreator,
                                                                 java.util.Optional<java.lang.Integer> minBatchSize)
      • rangePartitionWithBatchSize

        public static <TASK> java.util.List<TASK> rangePartitionWithBatchSize​(long nodeCount,
                                                                              long batchSize,
                                                                              java.util.function.Function<Partition,​TASK> taskCreator)
      • numberAlignedPartitioning

        public static java.util.List<Partition> numberAlignedPartitioning​(int concurrency,
                                                                          long nodeCount,
                                                                          long alignTo)
      • numberAlignedPartitioning

        public static <TASK> java.util.List<TASK> numberAlignedPartitioning​(int concurrency,
                                                                            long nodeCount,
                                                                            long alignTo,
                                                                            java.util.function.Function<Partition,​TASK> taskCreator)
      • numberAlignedPartitioningWithMaxSize

        public static java.util.List<Partition> numberAlignedPartitioningWithMaxSize​(int concurrency,
                                                                                     long nodeCount,
                                                                                     long alignTo,
                                                                                     long maxPartitionSize)
      • numberAlignedPartitioningWithMaxSize

        public static <TASK> java.util.List<TASK> numberAlignedPartitioningWithMaxSize​(int concurrency,
                                                                                       long nodeCount,
                                                                                       long alignTo,
                                                                                       long maxPartitionSize,
                                                                                       java.util.function.Function<Partition,​TASK> taskCreator)
      • degreePartition

        public static <TASK> java.util.List<TASK> degreePartition​(Graph graph,
                                                                  int concurrency,
                                                                  java.util.function.Function<DegreePartition,​TASK> taskCreator,
                                                                  java.util.Optional<java.lang.Integer> minBatchSize)
      • degreePartition

        public static <TASK> java.util.List<TASK> degreePartition​(long nodeCount,
                                                                  long relationshipCount,
                                                                  PartitionUtils.DegreeFunction degrees,
                                                                  int concurrency,
                                                                  java.util.function.Function<DegreePartition,​TASK> taskCreator,
                                                                  java.util.Optional<java.lang.Integer> minBatchSize)
      • customDegreePartitionWithBatchSize

        public static <TASK> java.util.List<TASK> customDegreePartitionWithBatchSize​(Graph graph,
                                                                                     int concurrency,
                                                                                     java.util.function.LongToIntFunction customDegreeFunction,
                                                                                     java.util.function.Function<DegreePartition,​TASK> taskCreator,
                                                                                     java.util.Optional<java.lang.Integer> minBatchSize,
                                                                                     java.util.Optional<java.lang.Long> weightSum)
      • degreePartitionStream

        public static java.util.stream.Stream<DegreePartition> degreePartitionStream​(long nodeCount,
                                                                                     long relationshipCount,
                                                                                     int concurrency,
                                                                                     PartitionUtils.DegreeFunction degrees)
        Returns a lazy stream of many small partitions (in contrast to list of few big ones)
      • degreePartitionWithBatchSize

        public static <TASK> java.util.List<TASK> degreePartitionWithBatchSize​(Graph graph,
                                                                               long batchSize,
                                                                               java.util.function.Function<DegreePartition,​TASK> taskCreator)
      • degreePartitionWithBatchSize

        public static <TASK> java.util.List<TASK> degreePartitionWithBatchSize​(long nodeCount,
                                                                               PartitionUtils.DegreeFunction degrees,
                                                                               long batchSize,
                                                                               java.util.function.Function<DegreePartition,​TASK> taskCreator)
      • degreePartitionWithBatchSize

        public static <TASK> java.util.List<TASK> degreePartitionWithBatchSize​(com.carrotsearch.hppc.BitSet bitset,
                                                                               PartitionUtils.DegreeFunction degrees,
                                                                               long degreesPerBatch,
                                                                               java.util.function.Function<IteratorPartition,​TASK> taskCreator)
      • rangePartitionActualBatchSizes

        public static java.util.List<java.lang.Long> rangePartitionActualBatchSizes​(int concurrency,
                                                                                    long nodeCount,
                                                                                    java.util.Optional<java.lang.Integer> minBatchSize)
      • blockAlignedPartitioning

        public static <TASK> java.util.Iterator<TASK> blockAlignedPartitioning​(HugeLongArray sortedIds,
                                                                               int blockShift,
                                                                               java.util.function.Function<Partition,​TASK> taskCreator)