public void SiloStatisticsChangeNotification(SiloAddress updatedSilo, SiloRuntimeStatistics newSiloStats)
        {
            // just create a new empty CachedLocalStat and throw the old one.
            var updatedCacheEntry = new CachedLocalStat(updatedSilo, newSiloStats);

            localCache.AddOrUpdate(updatedSilo, k => updatedCacheEntry, (k, v) => updatedCacheEntry);
        }
Exemple #2
0
        internal void AddSiloMetricWithOrleans(/*SiloAddress*/ string siloAddr, SiloRuntimeStatistics siloMetric, SiloComputedStats siloComputedStat, DateTime time, int machines)
        {
            var siloStat = new SiloRuntimeStats()
            {
                ExpID       = this.ExperimentID,
                Time        = time,
                Machines    = machines,
                Address     = siloAddr.ToString(),
                CPU         = siloMetric.CpuUsage,
                MemoryUsage = siloMetric.MemoryUsage,
                //Activations = siloMetric.ActivationCount,
                Activations             = siloComputedStat.TotalActivations,
                RecentlyUsedActivations = siloMetric.RecentlyUsedActivationCount,
                ReceivedMessages        = siloComputedStat.TotalRecvLocalSilo + siloComputedStat.TotalRecvNetworkSilo,
                SentMessages            = siloComputedStat.TotalSentLocalSilo + siloComputedStat.TotalSentNetworkSilo,
                PartitionKey            = this.ExperimentID,
                RowKey = siloAddr.ToString() + ":" + time.ToFileTime().ToString(),
                TotalRecvNetworkSilo = siloComputedStat.TotalRecvNetworkSilo,
                TotalSentLocalSilo   = siloComputedStat.TotalSentLocalSilo,
                TotalSentNetworkSilo = siloComputedStat.TotalSentNetworkSilo,
                TotalRecvLocalSilo   = siloComputedStat.TotalRecvLocalSilo,
                TotalClientMsg       = siloComputedStat.TotalClientMessages
            };

            if (this.siloMetrics == null)
            {
                this.siloMetrics = CreateTable("SiloMetrics");
            }

            var insertOperation = TableOperation.Insert(siloStat);

            // Execute the insert operation.
            this.siloMetrics.Execute(insertOperation);
        }
Exemple #3
0
 internal CachedLocalStat(SiloRuntimeStatistics siloStats) => SiloStats = siloStats;
 private static bool IsSiloOverloaded(SiloRuntimeStatistics stats)
 {
     return(stats.IsOverloaded || stats.CpuUsage >= 100);
 }
 internal CachedLocalStat(SiloAddress address, SiloRuntimeStatistics siloStats)
 {
     Address   = address;
     SiloStats = siloStats;
 }
 private static bool IsSiloOverloaded(SiloRuntimeStatistics stats)
 {
     return stats.IsOverloaded || stats.CpuUsage >= 100;
 }
 internal CachedLocalStat(SiloAddress address, SiloRuntimeStatistics siloStats)
 {
     Address = address;
     SiloStats = siloStats;
 }
 public void SiloStatisticsChangeNotification(SiloAddress updatedSilo, SiloRuntimeStatistics newSiloStats)
 {
     // just create a new empty CachedLocalStat and throw the old one.
     var updatedCacheEntry = new CachedLocalStat(updatedSilo, newSiloStats);
     localCache.AddOrUpdate(updatedSilo, k => updatedCacheEntry, (k, v) => updatedCacheEntry);
 }