this.asyncDelay = builder.getAsyncDelay();
//TODO Make stats collection configurable as it add slight overhead
nodeCache = builder.buildCache(builder.getNodeCacheSize());
nodeCacheStats = new CacheStats(nodeCache, "DocumentMk-Node",
builder.getWeigher(), builder.getNodeCacheSize());
nodeChildrenCache = builder.buildCache(builder.getChildrenCacheSize());
nodeChildrenCacheStats = new CacheStats(nodeChildrenCache, "DocumentMk-NodeChildren",
builder.getWeigher(), builder.getChildrenCacheSize());
docChildrenCache = builder.buildCache(builder.getDocChildrenCacheSize());
docChildrenCacheStats = new CacheStats(docChildrenCache, "DocumentMk-DocChildren",
builder.getWeigher(), builder.getDocChildrenCacheSize());
diffCache = builder.buildCache(builder.getDiffCacheSize());
diffCacheStats = new CacheStats(diffCache, "DocumentMk-DiffCache",
builder.getWeigher(), builder.getDiffCacheSize());
// check if root node exists
if (store.find(Collection.NODES, Utils.getIdFromPath("/")) == null) {
// root node is missing: repository is not initialized