public int GetInMemoryIndexingQueueSize(PrefetchingUser user) { var value = prefetchingBehaviors.FirstOrDefault(x => x.PrefetchingUser == user); if (value != null) return value.InMemoryIndexingQueueSize; return -1; }
public void AfterStorageCommitBeforeWorkNotifications(PrefetchingUser user, JsonDocument[] documents) { foreach (var prefetcher in prefetchingBehaviors.Where(x => x.PrefetchingUser == user)) { prefetcher.AfterStorageCommitBeforeWorkNotifications(documents); } }
public PrefetchingBehavior(PrefetchingUser prefetchingUser, WorkContext context, BaseBatchSizeAutoTuner autoTuner, string prefetchingUserDescription, bool isDefault = false, Func<int> getPrefetchintBehavioursCount = null, Func<PrefetchingSummary> getPrefetcherSummary = null) { this.context = context; this.autoTuner = autoTuner; PrefetchingUser = prefetchingUser; this.userDescription = prefetchingUserDescription; this.IsDefault = isDefault; this.getPrefetchintBehavioursCount = getPrefetchintBehavioursCount ?? (() => 1); this.getPrefetcherSummary = getPrefetcherSummary ?? GetSummary; MemoryStatistics.RegisterLowMemoryHandler(this); LastTimeUsed = DateTime.MinValue; ingestMeter = context.MetricsCounters.DbMetrics.Meter("metrics", "ingest/sec", "In memory documents held by this prefetcher", TimeUnit.Seconds); returnedDocsMeter = context.MetricsCounters.DbMetrics.Meter("metrics", "returned docs/sec", "Documents being served by this prefetcher", TimeUnit.Seconds); if (isDefault) { context.Database.TransactionalStorage.Batch(accessor => { recentEtag = accessor.Staleness.GetMostRecentDocumentEtag(); }); } }
public PrefetchingBehavior CreatePrefetchingBehavior( PrefetchingUser user, BaseBatchSizeAutoTuner autoTuner, string prefetchingUserDescription, HashSet <string> entityNames = null, bool isDefault = false) { lock (this) { var newPrefetcher = new PrefetchingBehavior(user, workContext, autoTuner ?? new IndependentBatchSizeAutoTuner(workContext, user), prefetchingUserDescription, entityNames, isDefault, GetPrefetchintBehavioursCount, GetPrefetchingBehaviourSummary); prefetchingBehaviors = new List <PrefetchingBehavior>(prefetchingBehaviors) { newPrefetcher }; return(newPrefetcher); } }
public PrefetchingBehavior(PrefetchingUser prefetchingUser, WorkContext context, BaseBatchSizeAutoTuner autoTuner) { this.context = context; this.autoTuner = autoTuner; PrefetchingUser = prefetchingUser; MemoryStatistics.RegisterLowMemoryHandler(this); }
public int GetInMemoryIndexingQueueSize(PrefetchingUser user) { PrefetchingBehavior value; if (prefetchingBehaviors.TryGetValue(user, out value)) return value.InMemoryIndexingQueueSize; return -1; }
public void AfterStorageCommitBeforeWorkNotifications(PrefetchingUser user, JsonDocument[] documents) { PrefetchingBehavior value; if (prefetchingBehaviors.TryGetValue(user, out value) == false) return; value.AfterStorageCommitBeforeWorkNotifications(documents); }
public int GetInMemoryIndexingQueueSize(PrefetchingUser user) { PrefetchingBehavior value; if (prefetchingBehaviors.TryGetValue(user, out value)) { return(value.InMemoryIndexingQueueSize); } return(-1); }
public int GetInMemoryIndexingQueueSize(PrefetchingUser user) { var value = prefetchingBehaviors.FirstOrDefault(x => x.PrefetchingUser == user); if (value != null) { return(value.InMemoryIndexingQueueSize); } return(-1); }
public void AfterStorageCommitBeforeWorkNotifications(PrefetchingUser user, JsonDocument[] documents) { PrefetchingBehavior value; if (prefetchingBehaviors.TryGetValue(user, out value) == false) { return; } value.AfterStorageCommitBeforeWorkNotifications(documents); }
public PrefetchingBehavior CreatePrefetchingBehavior(PrefetchingUser user, BaseBatchSizeAutoTuner autoTuner, string prefetchingUserDescription) { lock (this) { var newPrefetcher = new PrefetchingBehavior(user, workContext, autoTuner ?? new IndependentBatchSizeAutoTuner(workContext, user), prefetchingUserDescription); prefetchingBehaviors = new List <PrefetchingBehavior>(prefetchingBehaviors) { newPrefetcher }; return(newPrefetcher); } }
public PrefetchingBehavior CreatePrefetchingBehavior(PrefetchingUser user, BaseBatchSizeAutoTuner autoTuner) { lock (this) { var newPrefetcher = new PrefetchingBehavior(user, workContext, autoTuner ?? new IndependentBatchSizeAutoTuner(workContext)); prefetchingBehaviors = new List<PrefetchingBehavior>(prefetchingBehaviors) { newPrefetcher }; return newPrefetcher; } }
public PrefetchingBehavior GetPrefetchingBehavior(PrefetchingUser user) { PrefetchingBehavior value; if (prefetchingBehaviors.TryGetValue(user, out value)) return value; lock (this) { if (prefetchingBehaviors.TryGetValue(user, out value)) return value; value = new PrefetchingBehavior(workContext, new IndexBatchSizeAutoTuner(workContext)); prefetchingBehaviors = new Dictionary<PrefetchingUser, PrefetchingBehavior>(prefetchingBehaviors) { {user, value} }; return value; } }
public PrefetchingBehavior CreatePrefetchingBehavior(PrefetchingUser user, BaseBatchSizeAutoTuner autoTuner, string prefetchingUserDescription, bool isDefault = false) { lock (this) { var newPrefetcher = new PrefetchingBehavior(user, workContext, autoTuner ?? new IndependentBatchSizeAutoTuner(workContext, user), prefetchingUserDescription, isDefault, GetPrefetchintBehavioursCount, GetPrefetchingBehaviourSummary); prefetchingBehaviors = new List<PrefetchingBehavior>(prefetchingBehaviors) { newPrefetcher }; return newPrefetcher; } }
public PrefetchingBehavior CreatePrefetchingBehavior(PrefetchingUser user, BaseBatchSizeAutoTuner autoTuner) { PrefetchingBehavior value; if (prefetchingBehaviors.TryGetValue(user, out value)) { return(value); } lock (this) { if (prefetchingBehaviors.TryGetValue(user, out value)) { return(value); } value = new PrefetchingBehavior(user, workContext, autoTuner ?? new IndependentBatchSizeAutoTuner(workContext, user)); prefetchingBehaviors = new Dictionary <PrefetchingUser, PrefetchingBehavior>(prefetchingBehaviors) { { user, value } }; return(value); } }
public PrefetchingBehavior GetPrefetchingBehavior(PrefetchingUser user) { PrefetchingBehavior value; if (prefetchingBehaviors.TryGetValue(user, out value)) { return(value); } lock (this) { if (prefetchingBehaviors.TryGetValue(user, out value)) { return(value); } value = new PrefetchingBehavior(workContext, new IndexBatchSizeAutoTuner(workContext)); prefetchingBehaviors = new Dictionary <PrefetchingUser, PrefetchingBehavior>(prefetchingBehaviors) { { user, value } }; return(value); } }
public PrefetchingBehavior(PrefetchingUser prefetchingUser, WorkContext context, BaseBatchSizeAutoTuner autoTuner) { this.context = context; this.autoTuner = autoTuner; PrefetchingUser = prefetchingUser; }
public int[] GetInMemoryIndexingQueueSizes(PrefetchingUser user) { return prefetchingBehaviors.Where(x => x.PrefetchingUser == user).Select(value => value.InMemoryIndexingQueueSize).ToArray(); }
public int[] GetInMemoryIndexingQueueSizes(PrefetchingUser user) { return(prefetchingBehaviors.Where(x => x.PrefetchingUser == user).Select(value => value.InMemoryIndexingQueueSize).ToArray()); }
public IndependentBatchSizeAutoTuner(WorkContext context, PrefetchingUser user) : base(context) { this.User = user; InstallGauges(); }