/** * Asserts that {@link BloomFilter#approximateElementCount} is within 1 percent of the expected * value. */ private static void assertApproximateElementCountGuess(BloomFilter<?> bf, int sizeGuess) { assertThat(bf.approximateElementCount()).isAtLeast((long) (sizeGuess * 0.99)); assertThat(bf.approximateElementCount()).isAtMost((long) (sizeGuess * 1.01)); }
/** * Returns an estimate for the number of words added to the dictionary. See {@link * BloomFilter#approximateElementCount()}. * * @return approximate number of words in the dictionary */ @Override public long size() { return bloomFilter == null ? 0 : bloomFilter.approximateElementCount(); }
/** * https://en.wikipedia.org/wiki/Bloom_filter# Approximating_the_number_of_items_in_a_Bloom_filter * * @param bloomFilter * @return an estimation of the number of entries inserted in this BloomFilter. It is guaranteed to be at least one * if at least one put happened * @deprecated BloomFilter.approximateElementCount has been introduced in Guava 23.0 */ @Deprecated public static long estimateCardinality(BloomFilter<?> bloomFilter) { return Optional.ofNullable(bloomFilter).map(bf -> bf.approximateElementCount()).orElse(0L); } }
private void _checkBloomFilterUsage() { _monitorService.modifyCounter(MonitorService.Counter.BLOOMFILTER_APPROXIMATE_ELEMENT_COUNT, bloomFilter.approximateElementCount(), null); _monitorService.modifyCounter(MonitorService.Counter.BLOOMFILTER_SCOPE_ONLY_APPROXIMATE_ELEMENT_COUNT, bloomFilterScopeOnly.approximateElementCount(), null); _monitorService.modifyCounter(MonitorService.Counter.BLOOMFILTER_SCOPE_AND_METRIC_ONLY_APPROXIMATE_ELEMENT_COUNT, bloomFilterScopeAndMetricOnly.approximateElementCount(), null); _monitorService.modifyCounter(MonitorService.Counter.BLOOMFILTER_METATAGS_APPROXIMATE_ELEMENT_COUNT, bloomFilterMetatags.approximateElementCount(), null); _logger.info("Metrics Bloom expected error rate = {}", bloomFilter.expectedFpp()); _logger.info("Scope only Bloom expected error rate = {}", bloomFilterScopeOnly.expectedFpp()); _logger.info("Scope and metric only Bloom expected error rate = {}", bloomFilterScopeAndMetricOnly.expectedFpp()); _logger.info("Metic Metatags Bloom expected error rate = {}", bloomFilterMetatags.expectedFpp()); }
private void _checkBloomFilterUsage() { _monitorService.modifyCounter(MonitorService.Counter.BLOOMFILTER_APPROXIMATE_ELEMENT_COUNT, bloomFilter.approximateElementCount(), null); _monitorService.modifyCounter(MonitorService.Counter.BLOOMFILTER_SCOPE_ONLY_APPROXIMATE_ELEMENT_COUNT, bloomFilterScopeOnly.approximateElementCount(), null); _monitorService.modifyCounter(MonitorService.Counter.BLOOMFILTER_SCOPE_AND_METRIC_ONLY_APPROXIMATE_ELEMENT_COUNT, bloomFilterScopeAndMetricOnly.approximateElementCount(), null); _monitorService.modifyCounter(MonitorService.Counter.BLOOMFILTER_METATAGS_APPROXIMATE_ELEMENT_COUNT, bloomFilterMetatags.approximateElementCount(), null); _logger.info("Metrics Bloom expected error rate = {}", bloomFilter.expectedFpp()); _logger.info("Scope only Bloom expected error rate = {}", bloomFilterScopeOnly.expectedFpp()); _logger.info("Scope and metric only Bloom expected error rate = {}", bloomFilterScopeAndMetricOnly.expectedFpp()); _logger.info("Metic Metatags Bloom expected error rate = {}", bloomFilterMetatags.expectedFpp()); }
/** * Asserts that {@link BloomFilter#approximateElementCount} is within 1 percent of the expected * value. */ private static void assertApproximateElementCountGuess(BloomFilter<?> bf, int sizeGuess) { assertThat(bf.approximateElementCount()).isAtLeast((long) (sizeGuess * 0.99)); assertThat(bf.approximateElementCount()).isAtMost((long) (sizeGuess * 1.01)); }