Exemplo n.º 1
0
        public Task <PlacementResult> OnAddActivation(PlacementStrategy strategy, PlacementTarget target, IPlacementContext context)
        {
            var grainType = context.GetGrainTypeName(target.GrainId);

            return(Task.FromResult(
                       PlacementResult.SpecifyCreation(context.LocalSilo, strategy, grainType)));
        }
Exemplo n.º 2
0
        OnAddActivation(PlacementStrategy strategy, GrainId grain, IPlacementContext context)
        {
            var grainType = context.GetGrainTypeName(grain);

            return(Task.FromResult(
                       PlacementResult.SpecifyCreation(context.LocalSilo, strategy, grainType)));
        }
Exemplo n.º 3
0
 internal override Task<PlacementResult> OnAddActivation(
     PlacementStrategy strategy, GrainId grain, IPlacementContext context)
 {
     var grainType = context.GetGrainTypeName(grain);
     var allSilos = context.AllActiveSilos;
     return Task.FromResult(
         PlacementResult.SpecifyCreation(allSilos[random.Next(allSilos.Count)], strategy, grainType));
 }
Exemplo n.º 4
0
        public virtual Task <PlacementResult> OnAddActivation(
            PlacementStrategy strategy, GrainId grain, IPlacementContext context)
        {
            var grainType = context.GetGrainTypeName(grain);
            var allSilos  = context.AllActiveSilos;

            return(Task.FromResult(
                       PlacementResult.SpecifyCreation(allSilos[random.Next(allSilos.Count)], strategy, grainType)));
        }
Exemplo n.º 5
0
        public virtual Task <PlacementResult> OnAddActivation(
            PlacementStrategy strategy, PlacementTarget target, IPlacementContext context)
        {
            var grainType = context.GetGrainTypeName(target.GrainId);
            var allSilos  = context.GetCompatibleSiloList(target);

            return(Task.FromResult(
                       PlacementResult.SpecifyCreation(allSilos[random.Next(allSilos.Count)], strategy, grainType)));
        }
        private Task <PlacementResult> MakePlacement(PlacementStrategy strategy, GrainId grain, IPlacementContext context, CachedLocalStat minLoadedSilo)
        {
            // Increment placement by number of silos instead of by one.
            // This is our trick to get more balanced placement, accounting to the probable
            // case when multiple silos place on the same silo at the same time, before stats are refreshed.
            minLoadedSilo.IncrementActivationCount(localCache.Count);

            return(Task.FromResult(PlacementResult.SpecifyCreation(
                                       minLoadedSilo.Address,
                                       strategy,
                                       context.GetGrainTypeName(grain))));
        }
Exemplo n.º 7
0
        OnAddActivation(PlacementStrategy strategy, GrainId grain, IPlacementContext context)
        {
            // if local silo is not active, revert to random placement
            if (context.LocalSiloStatus != SiloStatus.Active)
            {
                return(base.OnAddActivation(strategy, grain, context));
            }

            var grainType = context.GetGrainTypeName(grain);

            return(Task.FromResult(
                       PlacementResult.SpecifyCreation(context.LocalSilo, strategy, grainType)));
        }
        OnAddActivation(PlacementStrategy strategy, GrainId grain, IPlacementContext context)
        {
            // if local silo is not active or does not support this type of grain, revert to random placement
            if (context.LocalSiloStatus != SiloStatus.Active || !context.GetCompatibleSiloList(grain).Contains(context.LocalSilo))
            {
                return(base.OnAddActivation(strategy, grain, context));
            }

            var grainType = context.GetGrainTypeName(grain);

            return(Task.FromResult(
                       PlacementResult.SpecifyCreation(context.LocalSilo, strategy, grainType)));
        }
Exemplo n.º 9
0
 public static string GetGrainTypeName(this IPlacementContext @this, GrainId grainId, string genericArguments = null)
 {
     return(@this.GetGrainTypeName(grainId.GetTypeCode(), genericArguments));
 }
     OnAddActivation(PlacementStrategy strategy, GrainId grain, IPlacementContext context)
 {
     var grainType = context.GetGrainTypeName(grain);
     return Task.FromResult( 
         PlacementResult.SpecifyCreation(context.LocalSilo, strategy, grainType));
 }
        private Task<PlacementResult> MakePlacement(PlacementStrategy strategy, GrainId grain, IPlacementContext context, CachedLocalStat minLoadedSilo)
        {
            // Increment placement by number of silos instead of by one.
            // This is our trick to get more balanced placement, accounting to the probable
            // case when multiple silos place on the same silo at the same time, before stats are refreshed.
            minLoadedSilo.IncrementActivationCount(localCache.Count);

            return Task.FromResult(PlacementResult.SpecifyCreation(
                minLoadedSilo.Address,
                strategy,
                context.GetGrainTypeName(grain)));
        }