public Block find(long pointer) {
final int fileSize = numBlocksPerFile * (
numRecordsPerBlock * UserEventIndex.ID_SIZE + UserEventIndex.Block.MetaData.SIZE);
MappedByteBuffer byteBuffer = buffers.getUnchecked((int) (pointer / fileSize));
ByteBuffer metaDataByteBuffer = byteBuffer.duplicate();
metaDataByteBuffer.position((int) (pointer % fileSize));
metaDataByteBuffer = metaDataByteBuffer.slice();
ByteBuffer blockByteBuffer = byteBuffer.duplicate();
blockByteBuffer.position((int) (pointer % fileSize) + Block.MetaData.SIZE);
blockByteBuffer = blockByteBuffer.slice();