internal TimeSeriesBatchOperation(TimeSeriesStore store, string timeSeriesName, TimeSeriesBatchOptions batchOptions = null) : base(store, timeSeriesName) { if (batchOptions != null && batchOptions.BatchSizeLimit < 1) { throw new ArgumentException("batchOptions.BatchSizeLimit cannot be negative", "batchOptions"); } _defaultOptions = batchOptions ?? new TimeSeriesBatchOptions(); //defaults do exist streamingStarted = new AsyncManualResetEvent(); batchOperationTcs = new TaskCompletionSource <bool>(); cts = new CancellationTokenSource(); appendQueue = new BlockingCollection <TimeSeriesAppend>(_defaultOptions.BatchSizeLimit); singleAuthUrl = string.Format("{0}ts/{1}/singleAuthToken", ServerUrl, timeSeriesName); OperationId = Guid.NewGuid(); disposed = false; batchOperationTask = StartBatchOperation(); if (streamingStarted.WaitAsync().Wait(DefaultOptions.StreamingInitializeTimeout) == false || batchOperationTask.IsFaulted) { throw new InvalidOperationException("Failed to start streaming batch.", batchOperationTask.Exception); } closeAndReopenStreamingTimer = CreateNewTimer(); }
protected TimeSeriesOperationsBase(TimeSeriesStore store, string timeSeriesName) { credentials = store.Credentials; jsonRequestFactory = store.JsonRequestFactory; ServerUrl = store.Url; Parent = store; TimeSeriesName = timeSeriesName; TimeSeriesUrl = string.Format(CultureInfo.InvariantCulture, "{0}ts/{1}", ServerUrl, timeSeriesName); JsonSerializer = store.JsonSerializer; timeSeriesConvention = store.TimeSeriesConvention; }
internal TimeSeriesReplicationInformer(HttpJsonRequestFactory requestFactory, TimeSeriesStore timeSeriesStore, TimeSeriesConvention timeSeriesConvention, int delayTimeInMiliSec = 1000) { currentReadStripingBase = 0; ReplicationDestinations = new List <TimeSeriesReplicationDestination>(); this.requestFactory = requestFactory; this.timeSeriesStore = timeSeriesStore; this.timeSeriesConvention = timeSeriesConvention; this.delayTimeInMiliSec = delayTimeInMiliSec; failureTimeSeries = new FailureTimeSeries(); firstTime = true; lastReplicationUpdate = SystemTime.UtcNow; MaxIntervalBetweenUpdatesInMilliseconds = TimeSpan.FromMinutes(DefaultIntervalBetweenUpdatesInMinutes).TotalMilliseconds; }
protected ITimeSeriesStore NewRemoteTimeSeriesStore(int port = 8079, RavenDbServer ravenDbServer = null, bool createDefaultTimeSeries = true, OperationCredentials credentials = null) { ravenDbServer = GetNewServer(requestedStorage: "voron", databaseName: DefaultTimeSeriesName + "Database", port: port); var timeSeriesStore = new TimeSeriesStore { Url = GetServerUrl(true, ravenDbServer.SystemDatabase.ServerUrl), Credentials = credentials ?? new OperationCredentials(null, CredentialCache.DefaultNetworkCredentials), Name = DefaultTimeSeriesName + (timeSeriesStores.Count + 1) }; timeSeriesStore.Initialize(createDefaultTimeSeries); timeSeriesStores.Add(timeSeriesStore); return(timeSeriesStore); }