read blocks in batches