Author: reschke
Date: Tue Jun 23 13:37:18 2015
New Revision: 1687053
URL: http://svn.apache.org/r1687053
Log:
OAK-1266: improve query diagnostics
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java?rev=1687053&r1=1687052&r2=1687053&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java
Tue Jun 23 13:37:18 2015
@@ -1679,6 +1679,7 @@ public class RDBDocumentStore implements
PreparedStatement stmt = connection.prepareStatement(t);
List<RDBRow> result = new ArrayList<RDBRow>();
+ long dataTotal = 0, bdataTotal = 0;
try {
int si = 1;
setIdInStatement(stmt, si++, minId);
@@ -1706,6 +1707,8 @@ public class RDBDocumentStore implements
String data = rs.getString(7);
byte[] bdata = rs.getBytes(8);
result.add(new RDBRow(id, hasBinary == 1, deletedOnce == 1,
modified, modcount, cmodcount, data, bdata));
+ dataTotal += data.length();
+ bdataTotal += bdata == null ? 0 : bdata.length;
}
} finally {
stmt.close();
@@ -1718,8 +1721,8 @@ public class RDBDocumentStore implements
LOG.info(message, new Exception("call stack"));
}
else if (QUERYTIMELIMIT != 0 && elapsed > QUERYTIMELIMIT) {
- String message = String.format("Long running query with %d hits
(limited to %d), elapsed time %dms (configured QUERYTIMELIMIT %d), params minid
'%s' maxid '%s' indexedProperty %s startValue %d limit %d. Check calling
method.",
- result.size(), limit, elapsed, QUERYTIMELIMIT, minId,
maxId, indexedProperty, startValue, limit);
+ String message = String.format("Long running query with %d hits
(limited to %d), elapsed time %dms (configured QUERYTIMELIMIT %d), params minid
'%s' maxid '%s' indexedProperty %s startValue %d limit %d. Read %d chars from
DATA and %d bytes from BDATA. Check calling method.",
+ result.size(), limit, elapsed, QUERYTIMELIMIT, minId,
maxId, indexedProperty, startValue, limit, dataTotal, bdataTotal);
LOG.info(message, new Exception("call stack"));
}