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);