sharder: refactor _cleave_shard_range
Move most of the method to a helper so that there is a place that receives the multiple return points, before finally returning the result. Change-Id: I48e18beeb32372a287e8297f0870e8627147141f
This commit is contained in:
parent
6609fcd9a1
commit
16a3067746
@ -1603,24 +1603,10 @@ class ContainerSharder(ContainerSharderConf, ContainerReplicator):
|
|||||||
len(created_ranges))
|
len(created_ranges))
|
||||||
return len(created_ranges)
|
return len(created_ranges)
|
||||||
|
|
||||||
def _cleave_shard_range(self, broker, cleaving_context, shard_range,
|
def _cleave_shard_broker(self, broker, cleaving_context, shard_range,
|
||||||
own_shard_range):
|
own_shard_range, shard_broker, put_timestamp,
|
||||||
self.logger.info("Cleaving '%s' from row %s into %s for %r",
|
shard_part, node_id):
|
||||||
quote(broker.path),
|
|
||||||
cleaving_context.last_cleave_to_row,
|
|
||||||
quote(shard_range.name), shard_range)
|
|
||||||
self._increment_stat('cleaved', 'attempted')
|
|
||||||
start = time.time()
|
start = time.time()
|
||||||
policy_index = broker.storage_policy_index
|
|
||||||
try:
|
|
||||||
shard_part, shard_broker, node_id, put_timestamp = \
|
|
||||||
self._get_shard_broker(shard_range, broker.root_path,
|
|
||||||
policy_index)
|
|
||||||
except DeviceUnavailable as duex:
|
|
||||||
self.logger.warning(str(duex))
|
|
||||||
self._increment_stat('cleaved', 'failure', statsd=True)
|
|
||||||
return CLEAVE_FAILED
|
|
||||||
|
|
||||||
# only cleave from the retiring db - misplaced objects handler will
|
# only cleave from the retiring db - misplaced objects handler will
|
||||||
# deal with any objects in the fresh db
|
# deal with any objects in the fresh db
|
||||||
source_broker = broker.get_brokers()[0]
|
source_broker = broker.get_brokers()[0]
|
||||||
@ -1737,6 +1723,27 @@ class ContainerSharder(ContainerSharderConf, ContainerReplicator):
|
|||||||
self._increment_stat('cleaved', 'success', statsd=True)
|
self._increment_stat('cleaved', 'success', statsd=True)
|
||||||
return CLEAVE_SUCCESS
|
return CLEAVE_SUCCESS
|
||||||
|
|
||||||
|
def _cleave_shard_range(self, broker, cleaving_context, shard_range,
|
||||||
|
own_shard_range):
|
||||||
|
self.logger.info("Cleaving '%s' from row %s into %s for %r",
|
||||||
|
quote(broker.path),
|
||||||
|
cleaving_context.last_cleave_to_row,
|
||||||
|
quote(shard_range.name), shard_range)
|
||||||
|
self._increment_stat('cleaved', 'attempted')
|
||||||
|
policy_index = broker.storage_policy_index
|
||||||
|
try:
|
||||||
|
shard_part, shard_broker, node_id, put_timestamp = \
|
||||||
|
self._get_shard_broker(shard_range, broker.root_path,
|
||||||
|
policy_index)
|
||||||
|
except DeviceUnavailable as duex:
|
||||||
|
self.logger.warning(str(duex))
|
||||||
|
self._increment_stat('cleaved', 'failure', statsd=True)
|
||||||
|
return CLEAVE_FAILED
|
||||||
|
else:
|
||||||
|
return self._cleave_shard_broker(
|
||||||
|
broker, cleaving_context, shard_range, own_shard_range,
|
||||||
|
shard_broker, put_timestamp, shard_part, node_id)
|
||||||
|
|
||||||
def _cleave(self, broker):
|
def _cleave(self, broker):
|
||||||
# Returns True if misplaced objects have been moved and the entire
|
# Returns True if misplaced objects have been moved and the entire
|
||||||
# container namespace has been successfully cleaved, False otherwise
|
# container namespace has been successfully cleaved, False otherwise
|
||||||
|
Loading…
x
Reference in New Issue
Block a user