implementation for archive_read_data_block