public static IEnumerable AddFilterToSnap(SqlBytes arrayBinary, short snap, int phkey) { List<object[]> results = new List<object[]>(); SqlBigIntArrayMax myIds = new SqlBigIntArrayMax(arrayBinary); const int expectedFilterCapacity = 1000; float errorRate = BloomFilter.Filter<long>.bestErrorRate(expectedFilterCapacity); int hashFunctions = BloomFilter.Filter<long>.bestK(expectedFilterCapacity, errorRate); BloomFilter.Filter<long> filter = new BloomFilter.Filter<long>(expectedFilterCapacity, errorRate, hashFunctions); long[] idsArray = myIds.ToArray(); for (int i = 0; i < idsArray.Length; i++) { filter.Add(idsArray[i]); } object[] item = { snap, phkey, filter.convertToByteArray(), hashFunctions, expectedFilterCapacity }; results.Add(item); return results; //finalFilter = filter.convertToByteArray(); }
public DefaultPreFilterService(IStoreService storeService) { this.storeService = storeService; filter = BloomFilter.FilterBuilder.Build <string>(int.MaxValue); }
public URLStorageBloomFilter(int maxItems) { bloomFilter = new BloomFilter.Filter<string>(maxItems); }
public static SqlInt32 checkFilterForId(SqlBinary filterAsBinary, SqlInt64 id, SqlInt32 hashFunctions) { BloomFilter.Filter<long> filter = new BloomFilter.Filter<long>((byte[])filterAsBinary, (int)hashFunctions); return filter.Contains((long)id) ? 1 : 0; }