so, a possible net step for read_many would be to clean up section 3/3.

first i'll paste how it looks, then the code it was likely ported from:

here's how it looks:
                tail = tails[idx]
                aligned_tail = aligned_tails[idx]
                aligned_offset =
aligned_offsets[idx]#offset_length_tail_idx_ops[next_op_ct-1,TAIL]
                length = aligned_tail - aligned_offset
                assert next_hole <= aligned_offset
                next_hole = aligned_offset
                while next_data < tail:
                        assert next_data - next_hole <= length
                        length = next_data - next_hole
                        offset_length_tail_idx_ops[op_ct,OFFSET] = next_hole
                        offset_length_tail_idx_ops[op_ct,TAIL] = next_data
                        offset_length_tail_idx_ops[op_ct,OP] =
OP_FETCH | OP_PLACE
                        op_ct += 1
                        cls.sparse_usage += length
                        next_hole = self._next_sparse(next_data, os.SEEK_HOLE)
                        next_data = self._next_sparse(next_hole, os.SEEK_DATA)
                    if next_hole < tail:
                        length = aligned_tail - next_hole
                        offset_length_tail_idx_ops[next_op_ct,OFFSET]
= next_hole
                        offset_length_tail_idx_ops[next_op_ct,TAIL] =
aligned_tail
                        offset_length_tail_idx_ops[next_op_ct,OP] =
OP_FETCH | OP_PLACE
                        next_op_ct += 1
                        cls.sparse_usage += length
                        next_hole = self._next_sparse(aligned_tail,
os.SEEK_HOLE)

offset_length_tail_idx_ops[op_ct:next_op_ct,LENGTH] =
offset_length_tail_idx_ops[op_ct:next_op_ct,TAIL]

offset_length_tail_idx_ops[op_ct:next_op_ct,LENGTH] -=
offset_length_tail_idx_ops[op_ct:next_op_ct,OFFSET]
                    cls.sparse_usage +=
offset_length_tail_idx_ops[op_ct:next_op_ct,LENGTH].sum()
                    op_ct = next_op_ct
                    min_hole = max(next_hole, min_hole)
                next_op_ct = op_ct +
                offset_length_tail_idx_ops
                ...

here's the code it was likely ported from:
                length = aligned_tail - aligned_offset
                next_data = self._next_sparse(next_hole, os.SEEK_DATA)
                while next_data < tail:
                    assert next_data - next_hole <= length
                    length = next_data - next_hole
                    self.mmap[next_hole:next_data] =
super().read(next_hole, length, progress=progress)
                    cls.sparse_usage += length
                    next_hole = self._next_sparse(next_data, os.SEEK_HOLE)
                    next_data = self._next_sparse(next_hole, os.SEEK_DATA)
                if next_hole < tail:
                    length = aligned_tail - next_hole
                    self.mmap[next_hole:aligned_tail] =
super().read(next_hole, length, progress=progress)
                    cls.sparse_usage += length

Reply via email to