def METHOD_NAME(self, columns, chunk_size=None, reverse=False):
    if self.nommap:
        # we expect here a path like s3 fetching, which will benefit from multithreading
        pool = get_main_io_pool()
        def read(i1, i2, reader):
            return i1, i2, reader()
        chunks_generator = self._default_lazy_chunk_iterator(self._columns, columns, chunk_size)
        yield from pwait(buffer(pmap(read, chunks_generator, pool), pool._max_workers+3))
    else:
        yield from self._default_chunk_iterator(self._columns, columns, chunk_size, reverse=reverse)