public PartitioningFilter( uint partitionCount, Partitioner.GetPartitionKey?partitioner = null, Partitioner.GetPartitionHash?getHash = null ) { _getHash = getHash ?? MurmurHash3.Hash; _partitionCount = (int)partitionCount; _partitioner = partitioner ?? (ctx => ctx.Stream); _filters = Enumerable.Range(0, _partitionCount).Select(_ => new ConcurrentFilter(1)).ToArray(); }
public static SubscriptionBuilder WithPartitioning( this SubscriptionBuilder builder, uint partitionsCount, Partitioner.GetPartitionKey getPartitionKey ) => builder.AddConsumeFilterFirst(new PartitioningFilter(partitionsCount, getPartitionKey));