Ejemplo n.º 1
0
        public IDistribution GetDistribution(string cluster, string database, string collection)
        {
            ClusterInfo clusterInfo = (ClusterInfo)_clusterMetaData[cluster];

            if (clusterInfo.Databases != null)
            {
                return clusterInfo.GetDatabase(database).GetCollection(collection).DataDistribution;
            }
            return null;
        }
Ejemplo n.º 2
0
        public void SetDistributionStrategy(string cluster, string database, string collection, IDistributionStrategy distribution)
        {
            ClusterInfo clusterInfo = (ClusterInfo)_clusterMetaData[cluster];

            if (clusterInfo.Databases != null)
            {
                clusterInfo.GetDatabase(database).GetCollection(collection).DistributionStrategy = distribution;
                _configurationStore.InsertOrUpdateDistributionStrategy(clusterInfo, database, collection);
            }
        }
Ejemplo n.º 3
0
        public void RestoreDistributionStrategy(string cluster, string database, string collection, IDistributionStrategy strategy)
        {
            ClusterInfo clusterInfo = (ClusterInfo)_clusterMetaData[cluster];

            if (clusterInfo.Databases != null)
            {
                clusterInfo.GetDatabase(database).GetCollection(collection).DistributionStrategy = strategy;
                //clusterInfo.GetDatabase(database).GetCollection(collection).DataDistribution = strategy.GetCurrentBucketDistribution();
                _configurationStore.InsertOrUpdateDistributionStrategy(clusterInfo, database, collection);
                
                if (LoggerManager.Instance.RecoveryLogger != null && LoggerManager.Instance.RecoveryLogger.IsInfoEnabled)
                    LoggerManager.Instance.RecoveryLogger.Info("MetaStore.RestoreDistributionStrrategy()", "Updated");
            }
        }
Ejemplo n.º 4
0
        //IDictionary<string, ClusterInfo> _clusterMetaData = new Dictionary<string, ClusterInfo>();


        public void AddDistributionStrategy(string cluster, string database, string collection, IDistributionStrategy strategy, DistributionStrategyConfiguration configuration, Boolean needTransfer)
        {
            ClusterInfo clusterInfo = (ClusterInfo)_clusterMetaData[cluster];

            if (clusterInfo.Databases != null)
            {
                DatabaseInfo databaseInfo = clusterInfo.GetDatabase(database);
                
                CollectionInfo collectionInfo = databaseInfo.GetCollection(collection);
                collectionInfo.SetDistributionStrategy(configuration, strategy);
                if (collectionInfo.DistributionStrategy.Name.Equals(DistributionType.NonSharded.ToString()))
                {
                    collectionInfo.DistributionStrategy.AddShard(collectionInfo.CollectionShard, null, needTransfer);
                    //In case of NonShardedDistributionStrategy: The shard told by user must be added first. That is why this check is placed
                }

                _clusterMetaData[cluster] = clusterInfo;
                _configurationStore.InsertOrUpdateDistributionStrategy(clusterInfo, database, collection);
            }

        }