void initIndex(ScheduledExecutorService newScheduler) throws StoreException {
    config = new StoreConfig(new VerifiableProperties(properties));
    sessionId = UUID.randomUUID();
    metricRegistry = new MetricRegistry();
    metrics = new StoreMetrics(metricRegistry);
    shutDownExecutorService(scheduler, 1, TimeUnit.SECONDS);
    scheduler = newScheduler == null ? Utils.newScheduler(1, false) : newScheduler;
    index = new PersistentIndex(tempDirStr, tempDirStr, scheduler, log, config, CuratedLogIndexState.STORE_KEY_FACTORY,
        recovery, hardDelete, DISK_IO_SCHEDULER, metrics, time, sessionId, incarnationId);
  }
Creates the index instance with the provided {@code metricRegistry}.
@param newScheduler the {@link ScheduledExecutorService} to use in testing. If null, a default scheduler will be created to use.
@throws StoreException
ambry-store/src/test/java/com/github/ambry/store/CuratedLogIndexState.java