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"));
         }
 


Reply via email to