private void populateSecond10kto20kwrites() {
    afterHavingCompacted = false;
    setCacheObserverCallBack();
    CacheObserverHolder.setInstance(new CacheObserverAdapter() {
      @Override
      public void afterHavingCompacted() {
        afterHavingCompacted = true;
      }
    });

    // put another 10000-19999 entries
    final byte[] value = new byte[ENTRY_SIZE];
    Arrays.fill(value, (byte) 77);

    for (int i = 10000; i < 20000; i++) {
      region.put("" + i, value);
    }
    // Now get 10000-19999 which will fault in from second oplog
    long startTimeGet2 = System.currentTimeMillis();
    for (int i = 10000; i < 20000; i++) {
      region.get("" + i);
    }
    long endTimeGet2 = System.currentTimeMillis();
    if (debug) {
      System.out.println(" done with getting 10000-19999 which will fault in from second oplog");
    }
    // to fault-in entries from H-tree first verify that the rolling of oplog is
    // over
    if (((LocalRegion) region).getDiskRegion().isBackup()) {
      WaitCriterion ev = new WaitCriterion() {
        @Override
        public boolean done() {
          return afterHavingCompacted;
        }

        @Override
        public String description() {
          return null;
        }
      };
      GeodeAwaitility.await().untilAsserted(ev);
    }

    // Now get 0-9999 entries
    long startTimeGet1 = System.currentTimeMillis();
    for (int i = 0; i < 10000; i++) {
      region.get("" + i);
    }
    long endTimeGet1 = System.currentTimeMillis();
    if (debug) {
      System.out.println(" done with getting 0-9999 entries from H-tree");
    }

    region.close(); // closes disk file which will flush all buffers

    // Perf stats for get op (fauting in from H-tree)
    float etGet1 = endTimeGet1 - startTimeGet1;
    float etSecsGet1 = etGet1 / 1000f;
    float opPerSecGet1 = etSecsGet1 == 0 ? 0 : (10000 / (etGet1 / 1000f));
    float bytesPerSecGet1 = etSecsGet1 == 0 ? 0 : ((10000 * ENTRY_SIZE) / (etGet1 / 1000f));

    String statsGet1 =
        "etGet=" + etGet1 + "ms gets/sec=" + opPerSecGet1 + " bytes/sec=" + bytesPerSecGet1;
    log.info(statsGet1);
    if (debug) {
      System.out.println("Perf Stats of get which is fauting in from H-tree  :" + statsGet1);
    }

    // Perf stats for get op (fauting in from second op log)
    float etGet2 = endTimeGet2 - startTimeGet2;
    float etSecsGet2 = etGet2 / 1000f;
    float opPerSecGet2 = etSecsGet2 == 0 ? 0 : (10000 / (etGet2 / 1000f));
    float bytesPerSecGet2 = etSecsGet2 == 0 ? 0 : ((10000 * ENTRY_SIZE) / (etGet2 / 1000f));

    String statsGet2 =
        "etGet=" + etGet2 + "ms gets/sec=" + opPerSecGet2 + " bytes/sec=" + bytesPerSecGet2;
    log.info(statsGet2);
    if (debug) {
      System.out.println("Perf Stats of get which is fauting in from Second OpLog  :" + statsGet2);
    }
    unSetCacheObserverCallBack();
  }
1) Performance of Get Operation for Entry faulting in from current Op Log 2) Performance of Get
operation for Entry faulting in from previous Op Log 3) Performance of Get operation for Entry
faulting in from H Tree
geode-core/src/integrationTest/java/org/apache/geode/internal/cache/diskPerf/DiskRegionOverflowAsyncRollingOpLogJUnitTest.java