private void testConcurrentIterate() {
   MVStore s = new MVStore.Builder().pageSplitSize(3).open();
   s.setVersionsToKeep(100);
   final MVMap<Integer, Integer> map = s.openMap("test");
   final int len = 10;
   final Random r = new Random();
   Task t =
       new Task() {
         @Override
         public void call() throws Exception {
           while (!stop) {
             int x = r.nextInt(len);
             if (r.nextBoolean()) {
               map.remove(x);
             } else {
               map.put(x, r.nextInt(100));
             }
           }
         }
       };
   t.execute();
   for (int k = 0; k < 10000; k++) {
     Iterator<Integer> it = map.keyIterator(r.nextInt(len));
     long old = s.getCurrentVersion();
     s.commit();
     while (map.getVersion() == old) {
       Thread.yield();
     }
     while (it.hasNext()) {
       it.next();
     }
   }
   t.get();
   s.close();
 }