Author: fapeeler Date: Mon Dec 7 18:54:57 2009 New Revision: 888079 URL: http://svn.apache.org/viewvc?rev=888079&view=rev Log: VCL-275
corrected usage math. Added additional usage conditions for setting timeframe Added more debug statments for vcld.log VCL-92 Previously done in another commit. HAVING count > 1 Modified: incubator/vcl/trunk/managementnode/lib/VCL/Module/Predictive/Level_1.pm Modified: incubator/vcl/trunk/managementnode/lib/VCL/Module/Predictive/Level_1.pm URL: http://svn.apache.org/viewvc/incubator/vcl/trunk/managementnode/lib/VCL/Module/Predictive/Level_1.pm?rev=888079&r1=888078&r2=888079&view=diff ============================================================================== --- incubator/vcl/trunk/managementnode/lib/VCL/Module/Predictive/Level_1.pm (original) +++ incubator/vcl/trunk/managementnode/lib/VCL/Module/Predictive/Level_1.pm Mon Dec 7 18:54:57 2009 @@ -13,7 +13,7 @@ # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. ############################################################################### @@ -211,15 +211,31 @@ } my $avail = $data[0]{cnt}; - # check if > 75% usage, look at past 2 days, otherwise, look at past 6 months + # check if > X% usage, look at past X days, otherwise, look at past 2 months my $timeframe; - if (($avail / $online) > 0.75) { + my $notavail = ($online - $avail); + if (($notavail / $online) > 0.75) { $timeframe = '2 DAY'; } + elsif(($notavail / $online) > 0.55) { + $timeframe = '5 DAY'; + } + elsif(($notavail / $online) > 0.45) { + $timeframe = '10 DAY'; + } + elsif(($notavail / $online) > 0.35) { + $timeframe = '20 DAY'; + } + elsif(($notavail / $online) > 0.25) { + $timeframe = '30 DAY'; + } else { - $timeframe = '6 MONTH'; + $timeframe = '2 MONTH'; } + notify($ERRORS{'OK'}, 0, "$notify_prefix computer_short_name= $computer_short_name type= $type"); + notify($ERRORS{'OK'}, 0, "$notify_prefix avail= $avail notavail= $notavail online= $online timeframe= $timeframe"); + # what images map to this computer my $select_mapped_images = " SELECT @@ -318,6 +334,8 @@ my %row = %{$_}; push(@imgids, $row{subid}); } + my $numselected_imagids = @imgids; + notify($ERRORS{'OK'}, 0, "$notify_prefix $numselected_imagids of available images that can go on $computer_short_name"); # which of those are loaded $inlist = join(',', @imgids); @@ -338,6 +356,8 @@ my %row = %{$_}; push(@loaded, $row{currentimageid}); } + my $already_loaded_once = @loaded; + notify($ERRORS{'OK'}, 0, "$notify_prefix $already_loaded_once of available images $numselected_imagids already loaded at least once"); # which of those are not loaded (find difference of @imagids and @loaded) my (@intersection, @notloaded, $element); @@ -348,6 +368,9 @@ push @{$count{$element} > 1 ? \...@intersection : \...@notloaded}, $element; } + my $not_loaded = @notloaded; + notify($ERRORS{'OK'}, 0, "$notify_prefix $not_loaded of available images $numselected_imagids that are not loaded at least once"); + # get the most popular in $timeframe $inlist = join(',', @notloaded); my $select_imageid = " @@ -370,6 +393,8 @@ } my $imageid = $data[0]{imageid}; + notify($ERRORS{'OK'}, 0, "$notify_prefix imageid= $imageid is most popular image duing last $timeframe"); + # get extra data about the image my $select_extra = " SELECT