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


Reply via email to