fabriziofortino commented on code in PR #2442:
URL: https://github.com/apache/jackrabbit-oak/pull/2442#discussion_r2273961848
##########
oak-search-elastic/src/main/java/org/apache/jackrabbit/oak/plugins/index/elastic/query/async/facets/ElasticStatisticalFacetAsyncProvider.java:
##########
@@ -96,87 +106,120 @@ public class ElasticStatisticalFacetAsyncProvider
implements ElasticFacetProvide
)
);
- LOG.trace("Kicking search query with random sampling {}",
searchRequest);
- CompletableFuture<SearchResponse<ObjectNode>> searchFuture =
- connection.getAsyncClient().search(searchRequest,
ObjectNode.class);
-
- searchFuture.whenCompleteAsync((searchResponse, throwable) -> {
- try {
- if (throwable != null) {
- LOG.error("Error while retrieving sample documents. Search
request: {}", searchRequest, throwable);
- } else {
- List<Hit<ObjectNode>> searchHits =
searchResponse.hits().hits();
- this.sampled = searchHits != null ? searchHits.size() : 0;
- if (sampled > 0) {
- this.totalHits = searchResponse.hits().total().value();
- processAggregations(searchResponse.aggregations());
- searchResponse.hits().hits().forEach(this::processHit);
- computeStatisticalFacets();
- }
- }
- } finally {
- latch.countDown();
- }
- });
+ this.queryStartTimeNanos = System.nanoTime();
+ LOG.trace("Kicking search query with random sampling {}",
searchRequest, new Throwable());
Review Comment:
any specific reason to print the stacktrace here?
##########
oak-search-elastic/src/main/java/org/apache/jackrabbit/oak/plugins/index/elastic/query/async/facets/ElasticStatisticalFacetAsyncProvider.java:
##########
@@ -63,14 +64,23 @@ public class ElasticStatisticalFacetAsyncProvider
implements ElasticFacetProvide
private final Predicate<String> isAccessible;
private final Set<String> facetFields;
private final long facetsEvaluationTimeoutMs;
- private final Map<String, List<FulltextIndex.Facet>> allFacets = new
HashMap<>();
- private final Map<String, Map<String, MutableInt>> accessibleFacetCounts =
new ConcurrentHashMap<>();
private Map<String, List<FulltextIndex.Facet>> facets;
private final SearchRequest searchRequest;
- private final CountDownLatch latch = new CountDownLatch(1);
+ private final CompletableFuture<Map<String, List<FulltextIndex.Facet>>>
searchFuture;
private int sampled;
private long totalHits;
+ private final long queryStartTimeNanos;
+ // All these variables are updated only by the event handler thread of
Elastic. They are read either by that
+ // same thread or by the client thread that waits for the latch to
complete. Since the latch causes a memory barrier,
+ // the updated values will be visible to the client thread.
+ private long queryTimeNanos;
+ private long processAggregationsTimeNannos;
Review Comment:
typo
```suggestion
private long processAggregationsTimeNanos;
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]