diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/reftable/ReftableReader.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/reftable/ReftableReader.java
index b3bf33a..f1ca1a7 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/reftable/ReftableReader.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/reftable/ReftableReader.java
@@ -49,6 +49,7 @@
 import static org.eclipse.jgit.internal.storage.reftable.ReftableConstants.REF_BLOCK_TYPE;
 import static org.eclipse.jgit.internal.storage.reftable.ReftableConstants.VERSION_1;
 import static org.eclipse.jgit.internal.storage.reftable.ReftableConstants.isFileHeaderMagic;
+import static org.eclipse.jgit.internal.storage.reftable.ReftableConstants.INDEX_BLOCK_TYPE;
 
 import java.io.IOException;
 import java.nio.ByteBuffer;
@@ -60,6 +61,7 @@
 import org.eclipse.jgit.internal.storage.io.BlockSource;
 import org.eclipse.jgit.lib.AnyObjectId;
 import org.eclipse.jgit.lib.Ref;
+import org.eclipse.jgit.util.LongMap;
 import org.eclipse.jgit.util.NB;
 
 /**
@@ -77,6 +79,7 @@
 	long objRootChunkAddr;
 
 	private BlockReader refRoot;
+	private LongMap<BlockReader> idxCache;
 
 	/**
 	 * Initialize a new reftable reader.
@@ -230,12 +233,25 @@
 	}
 
 	private BlockReader readBlock(long position, long end) throws IOException {
-		int sz = 1024; // what a fucking hack
+		if (idxCache != null) {
+			BlockReader b = idxCache.get(position);
+			if (b != null) {
+				return b;
+			}
+		}
+
+		int sz = 4096; // what a fucking hack
 		if (position + sz > end) {
 			sz = (int) (end - position);
 		}
 		BlockReader b = new BlockReader();
 		b.readBlock(src, position, sz);
+		if (b.type() == INDEX_BLOCK_TYPE) {
+			if (idxCache == null) {
+				idxCache = new LongMap<>();
+			}
+			idxCache.put(position, b);
+		}
 		return b;
 	}
 
