/** * Construct a ShardedCriteriaImpl * * @param criteriaId unique id for this ShardedCriteria * @param shards the shards that this ShardedCriteria is aware of * @param criteriaFactory factory that knows how to create concrete {@link Criteria} objects * @param shardAccessStrategy the access strategy we use when we execute this * ShardedCriteria across multiple shards. */ public ShardedCriteriaImpl(CriteriaId criteriaId, IList <IShard> shards, ICriteriaFactory criteriaFactory, IShardAccessStrategy shardAccessStrategy) { this.criteriaId = criteriaId; this.shards = shards; this.criteriaFactory = criteriaFactory; this.shardAccessStrategy = shardAccessStrategy; this.criteriaCollector = new ExitOperationsCriteriaCollector(); criteriaCollector.SetSessionFactory(shards[0].SessionFactoryImplementor); }
public ShardStrategyImpl(IShardSelectionStrategy shardSelectionStrategy, IShardResolutionStrategy shardResolutionStrategy, IShardAccessStrategy shardAccessStrategy) { Preconditions.CheckNotNull(shardSelectionStrategy); Preconditions.CheckNotNull(shardResolutionStrategy); Preconditions.CheckNotNull(shardAccessStrategy); this.shardSelectionStrategy = shardSelectionStrategy; this.shardResolutionStrategy = shardResolutionStrategy; this.shardAccessStrategy = shardAccessStrategy; }
///** // * Constructor for ShardedQueryImpl // * // * @param queryId the id of the query // * @param shards list of shards on which this query will be executed // * @param queryFactory factory that knows how to create the actual query we'll execute // * @param shardAccessStrategy the shard strategy for this query // */ public ShardedQueryImpl(QueryId queryId, List <IShard> shards, IQueryFactory queryFactory, IShardAccessStrategy shardAccessStrategy) { this.queryId = queryId; this.shards = shards; this.queryFactory = queryFactory; this.shardAccessStrategy = shardAccessStrategy; this.queryCollector = new ExitOperationsQueryCollector(); Preconditions.CheckState(!(shards.Count == 0)); foreach (IShard shard in shards) { Preconditions.CheckNotNull(shard); } }
public ShardStrategy() { ShardAccessStrategy = new ParallelShardAccessStrategy(); ShardSelectionStrategy = new ShardSelectionByRegion(); ShardResolutionStrategy = new AllShardsResolutionStrategy(); }