package MogileFS::RebalancePolicy; use strict; use warnings; sub new { my ($class) = @_; return bless { 'devfid_magazine' => [], # devfids queued up for next # called to 'devfid_to_rebalance' }, $class; } # return DevFID (or undef) of a devid to migrate away sub devfid_to_rebalance { my ($self) = @_; my $mag = $self->{devfid_magazine}; return shift @$mag if @$mag; push @$mag, $self->devfids_to_rebalance; return shift @$mag; } sub devfids_to_rebalance { return () } # return MogileFS::Device objects which shouldn't # be replicated towards, since it wouldn't help # out... sub dest_devs_to_avoid { my $self = shift; () } 1;