Interface RBloomFilterReactive<T>

Type Parameters:
T - - type of object
All Superinterfaces:
RExpirableReactive, RObjectReactive

public interface RBloomFilterReactive<T> extends RExpirableReactive
Distributed implementation of Bloom filter based on Highway 128-bit hash.
Author:
Nikita Koksharov
  • Method Details

    • add

      reactor.core.publisher.Mono<Boolean> add(T object)
      Adds element
      Parameters:
      object - - element to add
      Returns:
      true if element has been added successfully false if element is already present
    • add

      reactor.core.publisher.Mono<Long> add(Collection<T> elements)
      Adds elements
      Parameters:
      elements - elements to add
      Returns:
      number of added elements
    • contains

      reactor.core.publisher.Mono<Boolean> contains(T object)
      Checks for element presence
      Parameters:
      object - element
      Returns:
      true if element is present false if element is not present
    • contains

      reactor.core.publisher.Mono<Long> contains(Collection<T> elements)
      Checks for elements presence
      Parameters:
      elements - elements to check presence
      Returns:
      number of elements present
    • tryInit

      reactor.core.publisher.Mono<Boolean> tryInit(long expectedInsertions, double falseProbability)
      Initializes Bloom filter params (size and hashIterations) calculated from expectedInsertions and falseProbability Stores config to Redis server.
      Parameters:
      expectedInsertions - - expected amount of insertions per element
      falseProbability - - expected false probability
      Returns:
      true if Bloom filter initialized false if Bloom filter already has been initialized
    • getExpectedInsertions

      reactor.core.publisher.Mono<Long> getExpectedInsertions()
      Returns expected amount of insertions per element. Calculated during bloom filter initialization.
      Returns:
      expected amount of insertions per element
    • getFalseProbability

      reactor.core.publisher.Mono<Double> getFalseProbability()
      Returns false probability of element presence. Calculated during bloom filter initialization.
      Returns:
      false probability of element presence
    • getSize

      reactor.core.publisher.Mono<Long> getSize()
      Returns number of bits in Redis memory required by this instance
      Returns:
      number of bits
    • getHashIterations

      reactor.core.publisher.Mono<Integer> getHashIterations()
      Returns hash iterations amount used per element. Calculated during bloom filter initialization.
      Returns:
      hash iterations amount
    • count

      reactor.core.publisher.Mono<Long> count()
      Calculates probabilistic number of elements already added to Bloom filter.
      Returns:
      probabilistic number of elements