Hi Jackrabbit/Oak Team,
We are facing issue while repository startup, As number of direct child nodes of Root node are huge in number. The number of child node is close to million. Below is Repository startup code, final RDBOptions options = new RDBOptions().tablePrefix(dbDetails.get(DB_TABLE_PREFIX)).dropTablesOnClose( false); final DataSource ds = RDBDataSourceFactory.forJdbcUrl( dbDetails.get("dbURL"), dbDetails.get("dbUser"), dbDetails.get("dbPassword")); final Properties properties = buildS3Properties(dbDetails); final S3DataStore s3DataStore = buildS3DataStore(properties); final DataStoreBlobStore dataStoreBlobStore = new DataStoreBlobStore(s3DataStore); final Whiteboard wb = new DefaultWhiteboard(); wb.register( BlobAccessProvider.class, (BlobAccessProvider) dataStoreBlobStore, properties); documentNodeStore = new RDBDocumentNodeStoreBuilder() .setBlobStore(dataStoreBlobStore) .setRDBConnection(ds, options) .build(); final long start = System.currentTimeMillis(); repository = new Jcr(new Oak(documentNodeStore)).with(wb).createRepository(); final long end = System.currentTimeMillis(); log.info("Total Time : " + (end - start)); return repository; Bheviour obsereved is that as the Repository size gets bigger the Startup time is increased, As we observed most of the time is spent on call to following method, ChildNodeEntryIterator() { fetchMore(); } and its getting called from MemoryNodeState.wrap(NodeState state) So there are some questions, 1) Is there any guidlines/best practice to store child nodes under root? 2) How can we minimize the Repository startup time? 3) Does bundling of nodes will help in Repository startup? Thanks N Regards, Vivek