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))); }
OnAddActivation(PlacementStrategy strategy, GrainId grain, IPlacementContext context) { var grainType = context.GetGrainTypeName(grain); return(Task.FromResult( PlacementResult.SpecifyCreation(context.LocalSilo, strategy, grainType))); }
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)); }
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))); }
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)))); }
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))); }
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))); }