public override async Task ExecuteStreamIndexEntriesQuery(IndexQueryServerSide query, DocumentsOperationContext documentsContext, HttpResponse response, IStreamQueryResultWriter <BlittableJsonReaderObject> writer, OperationCancelToken token) { ObjectDisposedException lastException = null; for (var i = 0; i < NumberOfRetries; i++) { try { documentsContext.CloseTransaction(); await GetRunner(query).ExecuteStreamIndexEntriesQuery(query, documentsContext, response, writer, token); return; } catch (ObjectDisposedException e) { if (Database.DatabaseShutdown.IsCancellationRequested) { throw; } lastException = e; } } throw CreateRetriesFailedException(lastException); }
public StreamDocumentIndexEntriesQueryResult(HttpResponse response, IStreamQueryResultWriter <BlittableJsonReaderObject> writer, OperationCancelToken token) : base(response, writer, token) { if (response.HasStarted) { throw new InvalidOperationException("You cannot start streaming because response has already started."); } }
protected StreamQueryResult(HttpResponse response, IStreamQueryResultWriter <T> writer, OperationCancelToken token) { if (response.HasStarted) { throw new InvalidOperationException("You cannot start streaming because response has already started."); } _writer = writer; _token = token; }
public override async Task ExecuteStreamIndexEntriesQuery(IndexQueryServerSide query, QueryOperationContext queryContext, HttpResponse response, IStreamQueryResultWriter <BlittableJsonReaderObject> writer, bool ignoreLimit, OperationCancelToken token) { Exception lastException = null; for (var i = 0; i < NumberOfRetries; i++) { try { queryContext.CloseTransaction(); await GetRunner(query).ExecuteStreamIndexEntriesQuery(query, queryContext, response, writer, ignoreLimit, token); return; } catch (ObjectDisposedException e) { if (Database.DatabaseShutdown.IsCancellationRequested) { throw; } lastException = e; await WaitForIndexBeingLikelyReplacedDuringQuery(); } catch (OperationCanceledException e) { if (Database.DatabaseShutdown.IsCancellationRequested) { throw; } if (token.Token.IsCancellationRequested) { throw; } lastException = e; await WaitForIndexBeingLikelyReplacedDuringQuery(); } } throw CreateRetriesFailedException(lastException); }
public override async Task ExecuteStreamIndexEntriesQuery(IndexQueryServerSide query, DocumentsOperationContext documentsContext, HttpResponse response, IStreamQueryResultWriter <BlittableJsonReaderObject> writer, OperationCancelToken token) { var index = GetIndex(query.Metadata.IndexName); using (QueryRunner.MarkQueryAsRunning(index.Name, query, token, true)) { await index.StreamIndexEntriesQuery(response, writer, query, documentsContext, token); } }
public override Task ExecuteStreamQuery(IndexQueryServerSide query, DocumentsOperationContext documentsContext, HttpResponse response, IStreamQueryResultWriter <Document> writer, OperationCancelToken token) { var result = new StreamDocumentQueryResult(response, writer, token); documentsContext.OpenReadTransaction(); FillCountOfResultsAndIndexEtag(result, query.Metadata, documentsContext); var collection = GetCollectionName(query.Metadata.CollectionName, out var indexName); using (QueryRunner.MarkQueryAsRunning(indexName, query, token)) { result.IndexName = indexName; ExecuteCollectionQuery(result, query, collection, documentsContext, pulseReadingTransaction: true, token.Token); result.Flush(); return(Task.CompletedTask); } }
public override Task ExecuteStreamIndexEntriesQuery(IndexQueryServerSide query, DocumentsOperationContext documentsContext, HttpResponse response, IStreamQueryResultWriter <BlittableJsonReaderObject> writer, OperationCancelToken token) { throw new NotSupportedException("Collection query is handled directly by documents storage so index entries aren't created underneath"); }
public override Task StreamQuery(HttpResponse response, IStreamQueryResultWriter <Document> writer, IndexQueryServerSide query, QueryOperationContext queryContext, OperationCancelToken token) { throw new NotSupportedException($"Index {Name} is in-memory implementation of a faulty index", _e); }
public abstract Task ExecuteStreamQuery(IndexQueryServerSide query, QueryOperationContext queryContext, HttpResponse response, IStreamQueryResultWriter <Document> writer, OperationCancelToken token);
public abstract Task ExecuteStreamIndexEntriesQuery(IndexQueryServerSide query, DocumentsOperationContext documentsContext, HttpResponse response, IStreamQueryResultWriter <BlittableJsonReaderObject> writer, OperationCancelToken token);
public override async Task ExecuteStreamQuery(IndexQueryServerSide query, QueryOperationContext queryContext, HttpResponse response, IStreamQueryResultWriter <Document> writer, OperationCancelToken token) { var index = GetIndex(query.Metadata.IndexName); queryContext.WithIndex(index); using (QueryRunner.MarkQueryAsRunning(index.Name, query, token, true)) { await index.StreamQuery(response, writer, query, queryContext, token); } }
public override Task ExecuteStreamIndexEntriesQuery(IndexQueryServerSide query, QueryOperationContext queryContext, HttpResponse response, IStreamQueryResultWriter <BlittableJsonReaderObject> writer, bool ignoreLimit, OperationCancelToken token) { throw new NotSupportedException(ErrorMessage); }
public override Task ExecuteStreamQuery(IndexQueryServerSide query, QueryOperationContext queryContext, HttpResponse response, IStreamQueryResultWriter <Document> writer, OperationCancelToken token) { throw new NotSupportedException(ErrorMessage); }
public override async Task ExecuteStreamQuery(IndexQueryServerSide query, DocumentsOperationContext documentsContext, HttpResponse response, IStreamQueryResultWriter <Document> writer, OperationCancelToken token) { var index = await MatchIndex(query, true, customStalenessWaitTimeout : TimeSpan.FromSeconds(60), documentsContext, token.Token); await index.StreamQuery(response, writer, query, documentsContext, token); }
public override async Task ExecuteStreamQuery(IndexQueryServerSide query, QueryOperationContext queryContext, HttpResponse response, IStreamQueryResultWriter <Document> writer, OperationCancelToken token) { using (var context = QueryOperationContext.Allocate(Database, needsServerContext: false)) { var result = new StreamDocumentQueryResult(response, writer, token) { IndexName = Constants.Documents.Indexing.DummyGraphIndexName }; result = await ExecuteQuery(result, query, context, null, token); result.Flush(); } }
public override Task ExecuteStreamIndexEntriesQuery(IndexQueryServerSide query, DocumentsOperationContext documentsContext, HttpResponse response, IStreamQueryResultWriter <BlittableJsonReaderObject> writer, OperationCancelToken token) { throw new NotImplementedException(); }
public override async Task ExecuteStreamQuery(IndexQueryServerSide query, DocumentsOperationContext documentsContext, HttpResponse response, IStreamQueryResultWriter <Document> writer, OperationCancelToken token) { var result = new StreamDocumentQueryResult(response, writer, token) { IndexName = Constants.Documents.Indexing.DummyGraphIndexName }; result = await ExecuteQuery(result, query, documentsContext, null, token); result.Flush(); }
public abstract Task ExecuteStreamIndexEntriesQuery(IndexQueryServerSide query, QueryOperationContext queryContext, HttpResponse response, IStreamQueryResultWriter <BlittableJsonReaderObject> writer, bool ignoreLimit, OperationCancelToken token);
public override Task ExecuteStreamQuery(IndexQueryServerSide query, DocumentsOperationContext documentsContext, HttpResponse response, IStreamQueryResultWriter <Document> writer, OperationCancelToken token) { var result = new StreamDocumentQueryResult(response, writer, token); documentsContext.OpenReadTransaction(); FillCountOfResultsAndIndexEtag(result, query.Metadata, documentsContext); ExecuteCollectionQuery(result, query, query.Metadata.CollectionName, documentsContext, token.Token); result.Flush(); return(Task.CompletedTask); }
public override async Task ExecuteStreamQuery(IndexQueryServerSide query, QueryOperationContext queryContext, HttpResponse response, IStreamQueryResultWriter <Document> writer, OperationCancelToken token) { var index = await MatchIndex(query, true, customStalenessWaitTimeout : TimeSpan.FromSeconds(60), token.Token); queryContext.WithIndex(index); using (QueryRunner.MarkQueryAsRunning(index.Name, query, token, isStreaming: true)) { await index.StreamQuery(response, writer, query, queryContext, token); } }
public override Task ExecuteStreamIndexEntriesQuery(IndexQueryServerSide query, DocumentsOperationContext documentsContext, HttpResponse response, IStreamQueryResultWriter <BlittableJsonReaderObject> writer, OperationCancelToken token) { var index = GetIndex(query.Metadata.IndexName); return(index.StreamIndexEntriesQuery(response, writer, query, documentsContext, token)); }
public override async Task ExecuteStreamQuery(IndexQueryServerSide query, DocumentsOperationContext documentsContext, HttpResponse response, IStreamQueryResultWriter <Document> writer, OperationCancelToken token) { Exception lastException = null; for (var i = 0; i < NumberOfRetries; i++) { try { await GetRunner(query).ExecuteStreamQuery(query, documentsContext, response, writer, token); return; } catch (ObjectDisposedException e) { if (Database.DatabaseShutdown.IsCancellationRequested) { throw; } lastException = e; await WaitForIndexBeingLikelyReplacedDuringQuery(); } catch (OperationCanceledException e) { if (Database.DatabaseShutdown.IsCancellationRequested) { throw; } if (token.Token.IsCancellationRequested) { throw; } lastException = e; await WaitForIndexBeingLikelyReplacedDuringQuery(); } } throw CreateRetriesFailedException(lastException); }