public interface CardinalityEstimator extends DistributedObject
CardinalityEstimator is internally based on a HyperLogLog++ data-structure, and uses P^2 byte registers for storage and computation. (Default P = 14)
 Supports split brain protection SplitBrainProtectionConfig since 3.10 in cluster versions 3.10 and higher.
 
Asynchronous methods
 Asynchronous methods return a CompletionStage that can be used to
 chain further computation stages. Alternatively, a CompletableFuture
 can be obtained via CompletionStage.toCompletableFuture() to wait
 for the operation to complete in a blocking way.
 
 Actions supplied for dependent completions of default non-async methods and async methods
 without an explicit Executor argument are performed
 by the ForkJoinPool.commonPool() (unless it does not
 support a parallelism level of at least 2, in which case a new Thread is
 created per task).
| Modifier and Type | Method and Description | 
|---|---|
| void | add(Object obj)Add a new object in the estimation set. | 
| CompletionStage<Void> | addAsync(Object obj)Add a new object in the estimation set. | 
| long | estimate()Estimates the cardinality of the aggregation so far. | 
| CompletionStage<Long> | estimateAsync()Estimates the cardinality of the aggregation so far. | 
destroy, getDestroyContextForTenant, getName, getPartitionKey, getServiceNamevoid add(@Nonnull Object obj)
Objects are considered identical if they are serialized into the same binary blob. In other words: It does not use Java equality.
obj - object to add in the estimation set.NullPointerException - if obj is nulllong estimate()
CompletionStage<Void> addAsync(@Nonnull Object obj)
Objects are considered identical if they are serialized into the same binary blob. In other words: It does not use Java equality.
 This method will dispatch a request and return immediately a CompletionStage.
 The operations result can be obtained in a blocking way, or a
 callback can be provided for execution upon completion, as demonstrated in the following examples:
 
     CompletionStage<Void> stage = estimator.addAsync();
     // do something else, then read the result
     Boolean result = stage.toCompletableFuture().get(); // this method will block until the result is available
 
 
     CompletionStage<Void> stage = estimator.addAsync();
     stage.whenCompleteAsync((response, throwable) -> {
          if (throwable == null) {
              // do something
          } else {
              // handle failure
          }
     });
 obj - object to add in the estimation set.CompletionStage API consumers can use to chain further computation stagesNullPointerException - if obj is nullCompletionStage<Long> estimateAsync()
 This method will dispatch a request and return immediately a CompletionStage.
 The operations result can be obtained in a blocking way, or a
 callback can be provided for execution upon completion, as demonstrated in the following examples:
 
     CompletionStage<Long> stage = estimator.estimateAsync();
     // do something else, then read the result
     Long result = stage.toCompletableFuture().get(); // this method will block until the result is available
 
 
     CompletionStage<Long> stage = estimator.estimateAsync();
     stage.whenCompleteAsync((response, throwable) -> {
          if (throwable == null) {
              // do something with the result
          } else {
              // handle failure
          }
     });
 CompletionStage bearing the response, the estimate.Copyright © 2021 Hazelcast, Inc.. All rights reserved.