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

Reply via email to