add mmap for data reading