Class ParallelAggregation

java.lang.Object
org.roaringbitmap.ParallelAggregation

public class ParallelAggregation extends Object
These utility methods provide parallel implementations of logical aggregation operators. AND is not implemented because it is unlikely to be profitable. There is a temporary memory overhead in using these methods, since a materialisation of the rotated containers grouped by key is created in each case. Each method executes on the default fork join pool by default. If this is undesirable (it usually is) wrap the call inside a submission of a runnable to your own thread pool.
 

       //...

       ExecutorService executor = ...
       RoaringBitmap[] bitmaps = ...
       // executes on executors threads
       RoaringBitmap result = executor.submit(() -> ParallelAggregation.or(bitmaps)).get();
 
 
  • Constructor Details

    • ParallelAggregation

      public ParallelAggregation()
  • Method Details

    • groupByKey

      public static SortedMap<Character,List<Container>> groupByKey(RoaringBitmap... bitmaps)
      Groups the containers by their keys
      Parameters:
      bitmaps - input bitmaps
      Returns:
      The containers from the bitmaps grouped by key
    • or

      public static RoaringBitmap or(RoaringBitmap... bitmaps)
      Computes the bitwise union of the input bitmaps
      Parameters:
      bitmaps - the input bitmaps
      Returns:
      the union of the bitmaps
    • xor

      public static RoaringBitmap xor(RoaringBitmap... bitmaps)
      Computes the bitwise symmetric difference of the input bitmaps
      Parameters:
      bitmaps - the input bitmaps
      Returns:
      the symmetric difference of the bitmaps