MODE-1224 Improved start performance The startup time of a new repository was reduced by making a simple change to the way the node types are persisted. If existing node types are to be skipped, then we know that any requests to create new nodes will not replace existing content (since there is no existing content for nonexistent nodes).
An additional integration test was added to easily test this situation, using all of the node type CND files for all of the sequencers. Tests that use ModeShape with a local PostgreSQL database reduced the time required to register node types from ~11seconds to about 6 or 7 seconds. Hopefully this will have a similarly significant effect on the startup when using a remote database.
All unit and integration tests pass with these changes.
MODE-1224 Improved restart performance Added quite a few debug logging statements to help identify the issue with startup times. Also added two info-level log messages around the node registration activity.
Created a test case that uses a slightly-modified EDS configuration (different index location in 'target' area, HSQLDB stored on disk in 'target' area), and starts then restarts the engine.
I was able to see the problem, and I believe it is solely because of the re-registration of the node types listed in the configuration file. I then changed the registration process to allow a flag that will not re-register the node type if a node type already exists with the same name (there was already a flag to fail if the node type exists), and changed the startup to a) not fail but b) to skip the registration for any node type that already exists.
After implementing this change, restarting appears to be significantly faster. If fact, my tests show that the time to register the node types in subsequent restarts goes from minutes to ~0.02 seconds.