diff --git a/core/src/main/java/com/arangodb/entity/CursorStats.java b/core/src/main/java/com/arangodb/entity/CursorStats.java index 2c1367f09..8f432b6e2 100644 --- a/core/src/main/java/com/arangodb/entity/CursorStats.java +++ b/core/src/main/java/com/arangodb/entity/CursorStats.java @@ -20,6 +20,9 @@ public final class CursorStats { private Long fullCount; private Double executionTime; private Long peakMemoryUsage; + private Integer documentLookups; + private Integer intermediateCommits; + private Integer seeks; @JsonAnySetter public void add(String key, Object value) { @@ -142,4 +145,22 @@ public Double getExecutionTime() { public Long getPeakMemoryUsage() { return peakMemoryUsage; } + + public Integer getDocumentLookups() { + return documentLookups; + } + + /** + * @return The total number of intermediate commits the query has performed. This number can only be greater than + * zero for data-modification queries that perform modifications beyond the `--rocksdb.intermediate-commit-count` + * or `--rocksdb.intermediate-commit-size` thresholds. In a cluster, the intermediate commits are tracked per + * DB-Server that participates in the query and are summed up in the end. + */ + public Integer getIntermediateCommits() { + return intermediateCommits; + } + + public Integer getSeeks() { + return seeks; + } } diff --git a/test-functional/src/test/java/com/arangodb/ArangoDatabaseAsyncTest.java b/test-functional/src/test/java/com/arangodb/ArangoDatabaseAsyncTest.java index 243e41ca5..35502380a 100644 --- a/test-functional/src/test/java/com/arangodb/ArangoDatabaseAsyncTest.java +++ b/test-functional/src/test/java/com/arangodb/ArangoDatabaseAsyncTest.java @@ -630,6 +630,11 @@ void queryStats(ArangoDatabaseAsync db) throws ExecutionException, InterruptedEx assertThat(cursor.getExtra().getStats().getFiltered()).isNotNull(); assertThat(cursor.getExtra().getStats().getExecutionTime()).isNotNull(); assertThat(cursor.getExtra().getStats().getPeakMemoryUsage()).isNotNull(); + assertThat(cursor.getExtra().getStats().getIntermediateCommits()).isNotNull(); + if (isAtLeastVersion(3, 12)) { + assertThat(cursor.getExtra().getStats().getDocumentLookups()).isNotNull(); + assertThat(cursor.getExtra().getStats().getSeeks()).isNotNull(); + } } @ParameterizedTest diff --git a/test-functional/src/test/java/com/arangodb/ArangoDatabaseTest.java b/test-functional/src/test/java/com/arangodb/ArangoDatabaseTest.java index 62bb0c86f..b44ed20bb 100644 --- a/test-functional/src/test/java/com/arangodb/ArangoDatabaseTest.java +++ b/test-functional/src/test/java/com/arangodb/ArangoDatabaseTest.java @@ -662,11 +662,14 @@ void queryStats(ArangoDatabase db) { assertThat(cursor.getStats().getFiltered()).isNotNull(); assertThat(cursor.getStats().getExecutionTime()).isNotNull(); assertThat(cursor.getStats().getPeakMemoryUsage()).isNotNull(); - if (isAtLeastVersion(3, 10)) { - assertThat(cursor.getStats().getCursorsCreated()).isNotNull(); - assertThat(cursor.getStats().getCursorsRearmed()).isNotNull(); - assertThat(cursor.getStats().getCacheHits()).isNotNull(); - assertThat(cursor.getStats().getCacheMisses()).isNotNull(); + assertThat(cursor.getStats().getCursorsCreated()).isNotNull(); + assertThat(cursor.getStats().getCursorsRearmed()).isNotNull(); + assertThat(cursor.getStats().getCacheHits()).isNotNull(); + assertThat(cursor.getStats().getCacheMisses()).isNotNull(); + assertThat(cursor.getStats().getIntermediateCommits()).isNotNull(); + if (isAtLeastVersion(3, 12)) { + assertThat(cursor.getStats().getDocumentLookups()).isNotNull(); + assertThat(cursor.getStats().getSeeks()).isNotNull(); } }