コード例 #1
0
ファイル: Prefetcher.cs プロジェクト: Nakro/ravendb
		public int GetInMemoryIndexingQueueSize(PrefetchingUser user)
		{
			var value = prefetchingBehaviors.FirstOrDefault(x => x.PrefetchingUser == user);
			if (value != null)
				return value.InMemoryIndexingQueueSize;
			return -1;
		}
コード例 #2
0
ファイル: Prefetcher.cs プロジェクト: Nakro/ravendb
		public void AfterStorageCommitBeforeWorkNotifications(PrefetchingUser user, JsonDocument[] documents)
		{
			foreach (var prefetcher in prefetchingBehaviors.Where(x => x.PrefetchingUser == user))
			{
				prefetcher.AfterStorageCommitBeforeWorkNotifications(documents);
			}
		}
コード例 #3
0
        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();
                });
            }
        }
コード例 #4
0
 public void AfterStorageCommitBeforeWorkNotifications(PrefetchingUser user, JsonDocument[] documents)
 {
     foreach (var prefetcher in prefetchingBehaviors.Where(x => x.PrefetchingUser == user))
     {
         prefetcher.AfterStorageCommitBeforeWorkNotifications(documents);
     }
 }
コード例 #5
0
ファイル: Prefetcher.cs プロジェクト: xinix00/ravendb
        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);
            }
        }
コード例 #6
0
 public PrefetchingBehavior(PrefetchingUser prefetchingUser, WorkContext context, BaseBatchSizeAutoTuner autoTuner)
 {
     this.context    = context;
     this.autoTuner  = autoTuner;
     PrefetchingUser = prefetchingUser;
     MemoryStatistics.RegisterLowMemoryHandler(this);
 }
コード例 #7
0
ファイル: Prefetcher.cs プロジェクト: WimVergouwe/ravendb
		public int GetInMemoryIndexingQueueSize(PrefetchingUser user)
		{
			PrefetchingBehavior value;
			if (prefetchingBehaviors.TryGetValue(user, out value))
				return value.InMemoryIndexingQueueSize;
			return -1;
		}
コード例 #8
0
ファイル: Prefetcher.cs プロジェクト: WimVergouwe/ravendb
		public void AfterStorageCommitBeforeWorkNotifications(PrefetchingUser user, JsonDocument[] documents)
		{
			PrefetchingBehavior value;
			if (prefetchingBehaviors.TryGetValue(user, out value) == false)
				return;
			value.AfterStorageCommitBeforeWorkNotifications(documents);
		}
コード例 #9
0
		public PrefetchingBehavior(PrefetchingUser prefetchingUser, WorkContext context, BaseBatchSizeAutoTuner autoTuner)
		{
			this.context = context;
			this.autoTuner = autoTuner;
			PrefetchingUser = prefetchingUser;
			MemoryStatistics.RegisterLowMemoryHandler(this);
		}
コード例 #10
0
        public int GetInMemoryIndexingQueueSize(PrefetchingUser user)
        {
            PrefetchingBehavior value;

            if (prefetchingBehaviors.TryGetValue(user, out value))
            {
                return(value.InMemoryIndexingQueueSize);
            }
            return(-1);
        }
コード例 #11
0
        public int GetInMemoryIndexingQueueSize(PrefetchingUser user)
        {
            var value = prefetchingBehaviors.FirstOrDefault(x => x.PrefetchingUser == user);

            if (value != null)
            {
                return(value.InMemoryIndexingQueueSize);
            }
            return(-1);
        }
コード例 #12
0
        public void AfterStorageCommitBeforeWorkNotifications(PrefetchingUser user, JsonDocument[] documents)
        {
            PrefetchingBehavior value;

            if (prefetchingBehaviors.TryGetValue(user, out value) == false)
            {
                return;
            }
            value.AfterStorageCommitBeforeWorkNotifications(documents);
        }
コード例 #13
0
        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);
            }
        }
コード例 #14
0
ファイル: Prefetcher.cs プロジェクト: Nakro/ravendb
		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;
			}
		}
コード例 #15
0
ファイル: Prefetcher.cs プロジェクト: robashton/ravendb
		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;
			}
		}
コード例 #16
0
ファイル: Prefetcher.cs プロジェクト: j2jensen/ravendb
        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;
            }
        }
コード例 #17
0
ファイル: Prefetcher.cs プロジェクト: dkardach/ravendb
        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);
            }
        }
コード例 #18
0
        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);
            }
        }
コード例 #19
0
ファイル: PrefetchingBehavior.cs プロジェクト: ybdev/ravendb
 public PrefetchingBehavior(PrefetchingUser prefetchingUser, WorkContext context, BaseBatchSizeAutoTuner autoTuner)
 {
     this.context    = context;
     this.autoTuner  = autoTuner;
     PrefetchingUser = prefetchingUser;
 }
コード例 #20
0
ファイル: Prefetcher.cs プロジェクト: GorelH/ravendb
		public int[] GetInMemoryIndexingQueueSizes(PrefetchingUser user)
		{
			return prefetchingBehaviors.Where(x => x.PrefetchingUser == user).Select(value => value.InMemoryIndexingQueueSize).ToArray();
		}
コード例 #21
0
 public int[] GetInMemoryIndexingQueueSizes(PrefetchingUser user)
 {
     return(prefetchingBehaviors.Where(x => x.PrefetchingUser == user).Select(value => value.InMemoryIndexingQueueSize).ToArray());
 }
コード例 #22
0
ファイル: PrefetchingBehavior.cs プロジェクト: Nakro/ravendb
		public PrefetchingBehavior(PrefetchingUser prefetchingUser, WorkContext context, BaseBatchSizeAutoTuner autoTuner)
		{
			this.context = context;
			this.autoTuner = autoTuner;
			PrefetchingUser = prefetchingUser;
		}
コード例 #23
0
        public IndependentBatchSizeAutoTuner(WorkContext context, PrefetchingUser user)
            : base(context)
		{
		    this.User = user;
            InstallGauges();
		}
コード例 #24
0
 public IndependentBatchSizeAutoTuner(WorkContext context, PrefetchingUser user)
     : base(context)
 {
     this.User = user;
     InstallGauges();
 }