You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@vcl.apache.org by fa...@apache.org on 2014/07/30 21:22:05 UTC
svn commit: r1614746 - in /vcl/trunk/managementnode: bin/vcld
lib/VCL/DataStructure.pm lib/VCL/Module/OS.pm lib/VCL/utils.pm
Author: fapeeler
Date: Wed Jul 30 19:22:04 2014
New Revision: 1614746
URL: http://svn.apache.org/r1614746
Log:
VCL-758
added a inuse check time variable for clusters cluster_inuse_check
On very large clusters inuse checks every 5 minutes can overload the system.
Modified:
vcl/trunk/managementnode/bin/vcld
vcl/trunk/managementnode/lib/VCL/DataStructure.pm
vcl/trunk/managementnode/lib/VCL/Module/OS.pm
vcl/trunk/managementnode/lib/VCL/utils.pm
Modified: vcl/trunk/managementnode/bin/vcld
URL: http://svn.apache.org/viewvc/vcl/trunk/managementnode/bin/vcld?rev=1614746&r1=1614745&r2=1614746&view=diff
==============================================================================
--- vcl/trunk/managementnode/bin/vcld (original)
+++ vcl/trunk/managementnode/bin/vcld Wed Jul 30 19:22:04 2014
@@ -207,6 +207,7 @@ sub main () {
my @reservation_ids = sort { $a <=> $b } keys %{$info{request}{$request_id}{reservation}};
+ my $reservation_cnt = @reservation_ids;
$ENV{request_id} = $request_id;
$ENV{reservation_id} = 0;
@@ -248,7 +249,7 @@ sub main () {
# Figure out the status of this reservation based on reservation times and the request state
# check_time_result can be: start, preload, end, poll, old, remove, 0
- my $check_time_result = check_time($request_start, $request_end, $reservation_lastcheck, $request_state_name, $request_laststate_name, $server_request_id);
+ my $check_time_result = check_time($request_start, $request_end, $reservation_lastcheck, $request_state_name, $request_laststate_name, $server_request_id,$reservation_cnt);
# Do nothing if check_time returned 0
# Check this before querying for the large set of request data
Modified: vcl/trunk/managementnode/lib/VCL/DataStructure.pm
URL: http://svn.apache.org/viewvc/vcl/trunk/managementnode/lib/VCL/DataStructure.pm?rev=1614746&r1=1614745&r2=1614746&view=diff
==============================================================================
--- vcl/trunk/managementnode/lib/VCL/DataStructure.pm (original)
+++ vcl/trunk/managementnode/lib/VCL/DataStructure.pm Wed Jul 30 19:22:04 2014
@@ -487,6 +487,7 @@ $SUBROUTINE_MAPPINGS{management_node_pre
$SUBROUTINE_MAPPINGS{general_inuse_check} = '$ENV{management_node_info}{GENERAL_INUSE_CHECK}';
$SUBROUTINE_MAPPINGS{server_inuse_check} = '$ENV{management_node_info}{SERVER_INUSE_CHECK}';
+$SUBROUTINE_MAPPINGS{cluster_inuse_check} = '$ENV{management_node_info}{cluster_INUSE_CHECK}';
$SUBROUTINE_MAPPINGS{subroutine_mappings} = '\%SUBROUTINE_MAPPINGS';
Modified: vcl/trunk/managementnode/lib/VCL/Module/OS.pm
URL: http://svn.apache.org/viewvc/vcl/trunk/managementnode/lib/VCL/Module/OS.pm?rev=1614746&r1=1614745&r2=1614746&view=diff
==============================================================================
--- vcl/trunk/managementnode/lib/VCL/Module/OS.pm (original)
+++ vcl/trunk/managementnode/lib/VCL/Module/OS.pm Wed Jul 30 19:22:04 2014
@@ -3327,6 +3327,7 @@ sub get_timings {
wait_for_reconnect => '900',
general_inuse_check => '300',
server_inuse_check => '900',
+ cluster_inuse_check => '900',
general_end_notice_first => '600',
general_end_notice_second => '300',
ignore_connections_gte => '1440'
Modified: vcl/trunk/managementnode/lib/VCL/utils.pm
URL: http://svn.apache.org/viewvc/vcl/trunk/managementnode/lib/VCL/utils.pm?rev=1614746&r1=1614745&r2=1614746&view=diff
==============================================================================
--- vcl/trunk/managementnode/lib/VCL/utils.pm (original)
+++ vcl/trunk/managementnode/lib/VCL/utils.pm Wed Jul 30 19:22:04 2014
@@ -996,7 +996,7 @@ sub check_blockrequest_time {
=cut
sub check_time {
- my ($request_start, $request_end, $reservation_lastcheck, $request_state_name, $request_laststate_name, $serverrequest) = @_;
+ my ($request_start, $request_end, $reservation_lastcheck, $request_state_name, $request_laststate_name, $serverrequest, $reservation_cnt) = @_;
# Check the arguments
if (!defined($request_state_name)) {
@@ -1111,6 +1111,15 @@ sub check_time {
return 0;
}
}
+ elsif($reservation_cnt > 1 ){
+ my $cluster_inuse_check_time = ($ENV{management_node_info}->{CLUSTER_INUSE_CHECK} * -1);;
+ if ($lastcheck_diff_minutes <= $cluster_inuse_check_time) {
+ return "poll";
+ }
+ else {
+ return 0;
+ }
+ }
else {
#notify($ERRORS{'DEBUG'}, 0, "reservation will end in more than 10 minutes ($end_diff_minutes)");
my $general_inuse_check_time = ($ENV{management_node_info}->{GENERAL_INUSE_CHECK} * -1);
@@ -4753,6 +4762,10 @@ AND managementnode.id != $management_nod
my $server_inuse_check = get_variable('server_inuse_check') || 300;
$management_node_info->{SERVER_INUSE_CHECK} = round($server_inuse_check / 60);
$ENV{management_node_info}{SERVER_INUSE_CHECK} = $management_node_info->{SERVER_INUSE_CHECK};
+
+ my $cluster_inuse_check = get_variable('cluster_inuse_check') || 300;
+ $management_node_info->{CLUSTER_INUSE_CHECK} = round($cluster_inuse_check / 60);
+ $ENV{management_node_info}{CLUSTER_INUSE_CHECK} = $management_node_info->{CLUSTER_INUSE_CHECK};
# Get the OS name
my $os_name = lc($^O);