mirror of
https://github.com/tahoe-lafs/tahoe-lafs.git
synced 2025-02-07 20:00:20 +00:00
mutable/retrieve.py: use floor division to calculate segment boundaries, don't fetch more segments than necessary
This commit is contained in:
parent
a1a334e1a0
commit
3423b7d6f7
@ -385,11 +385,7 @@ class Retrieve:
|
|||||||
self.log("got offset: %d" % self._offset)
|
self.log("got offset: %d" % self._offset)
|
||||||
# our start segment is the first segment containing the
|
# our start segment is the first segment containing the
|
||||||
# offset we were given.
|
# offset we were given.
|
||||||
start = mathutil.div_ceil(self._offset,
|
start = self._offset // self._segment_size
|
||||||
self._segment_size)
|
|
||||||
# this gets us the first segment after self._offset. Then
|
|
||||||
# our start segment is the one before it.
|
|
||||||
start -= 1
|
|
||||||
|
|
||||||
assert start < self._num_segments
|
assert start < self._num_segments
|
||||||
self._start_segment = start
|
self._start_segment = start
|
||||||
@ -403,9 +399,11 @@ class Retrieve:
|
|||||||
# segment that we were asked to read.
|
# segment that we were asked to read.
|
||||||
self.log("got read length %d" % self._read_length)
|
self.log("got read length %d" % self._read_length)
|
||||||
end_data = self._offset + self._read_length
|
end_data = self._offset + self._read_length
|
||||||
end = mathutil.div_ceil(end_data,
|
# We don't actually need to read the byte at end_data, but
|
||||||
self._segment_size)
|
# the one before it.
|
||||||
end -= 1
|
end_data = end_data - 1
|
||||||
|
end = end_data // self._segment_size
|
||||||
|
|
||||||
assert end < self._num_segments
|
assert end < self._num_segments
|
||||||
self._last_segment = end
|
self._last_segment = end
|
||||||
self.log("got end segment: %d" % self._last_segment)
|
self.log("got end segment: %d" % self._last_segment)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user