Class BufferParallelAggregation


  • public class BufferParallelAggregation
    extends java.lang.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 = ...
           ImmutableRoaringBitmap[] bitmaps = ...
           // executes on executors threads
           MutableRoaringBitmap result = executor.submit(
                () -> BufferParallelAggregation.or(bitmaps)).get();
     
     
    • Constructor Detail

      • BufferParallelAggregation

        public BufferParallelAggregation()
    • Method Detail

      • groupByKey

        public static java.util.SortedMap<java.lang.Character,​java.util.List<MappeableContainer>> groupByKey​(ImmutableRoaringBitmap... bitmaps)
        Groups the containers by their keys
        Parameters:
        bitmaps - input bitmaps
        Returns:
        The containers from the bitmaps grouped by key
      • xor

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