You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by ch...@apache.org on 2013/07/04 07:37:24 UTC
svn commit: r1499658 - in
/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak:
cache/CacheStats.java plugins/mongomk/MongoMK.java
Author: chetanm
Date: Thu Jul 4 05:37:23 2013
New Revision: 1499658
URL: http://svn.apache.org/r1499658
Log:
OAK-863 - Enable stats for various caches used in Oak by default
-- Enhancing CacheStats.toString
-- Using a loader for Node Children cache to get an estimate of time taken to load children as part of stats
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/cache/CacheStats.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/mongomk/MongoMK.java
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/cache/CacheStats.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/cache/CacheStats.java?rev=1499658&r1=1499657&r2=1499658&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/cache/CacheStats.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/cache/CacheStats.java Thu Jul 4 05:37:23 2013
@@ -152,7 +152,7 @@ public class CacheStats implements Cache
.add("loadSuccessCount", getLoadSuccessCount())
.add("loadExceptionCount", getLoadExceptionCount())
.add("totalLoadTime", timeInWords(getTotalLoadTime()))
- .add("averageLoadPenalty (nanos)", getAverageLoadPenalty())
+ .add("averageLoadPenalty (nanos)", String.format("%1.2f", getAverageLoadPenalty()))
.add("evictionCount", getEvictionCount())
.add("elementCount", getElementCount())
.add("totalWeight", humanReadableByteCount(estimateCurrentWeight(), true))
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/mongomk/MongoMK.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/mongomk/MongoMK.java?rev=1499658&r1=1499657&r2=1499658&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/mongomk/MongoMK.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/mongomk/MongoMK.java Thu Jul 4 05:37:23 2013
@@ -601,16 +601,24 @@ public class MongoMK implements MicroKer
return includeRevision(revision, readRevision);
}
- public Children getChildren(String path, Revision rev, int limit) {
+ public Children getChildren(final String path, final Revision rev, final int limit) throws MicroKernelException{
checkRevisionAge(rev, path);
String key = path + "@" + rev;
- Children children = nodeChildrenCache.getIfPresent(key);
- if (children == null) {
- children = readChildren(path, rev, limit);
- if (children != null) {
- nodeChildrenCache.put(key, children);
- }
- } else if (children.hasMore) {
+ Children children;
+ try {
+ children = nodeChildrenCache.get(key, new Callable<Children>() {
+ @Override
+ public Children call() throws Exception {
+ return readChildren(path, rev, limit);
+ }
+ });
+ } catch (ExecutionException e) {
+ throw new MicroKernelException("Error occurred while fetching children nodes for path "+path,e);
+ }
+
+ //In case the limit > cached children size and there are more child nodes
+ //available then refresh the cache
+ if (children.hasMore) {
if (limit > children.children.size()) {
children = readChildren(path, rev, limit);
if (children != null) {