IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 29281


Ignore:
Timestamp:
Sep 30, 2010, 9:22:46 AM (16 years ago)
Author:
rhenders
Message:

Added method to check whether a server has been down for a defined amount of time; new method to optimize all large tables

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tools/czartool/CzarDb.pm

    r29251 r29281  
    682682        $fromTime = $toTime;
    683683    }
     684}
     685
     686###########################################################################
     687#
     688# Optimizes all tables that need to be optimized
     689#
     690###########################################################################
     691sub optimize {
     692        my ($self) = @_;
     693
     694    my $stage = undef;
     695    foreach $stage (@stages) {
     696
     697        $self->optimizeTable($stage);
     698    }
     699
     700    $self->optimizeTable("cluster_space");
     701    $self->optimizeTable("servers");
     702}
     703
     704###########################################################################
     705#
     706# Returns if a particular server has been down for a certain interval
     707#
     708###########################################################################
     709sub isServerDown {
     710    my ($self, $server, $interval) = @_;
     711
     712    my $query = $self->{_db}->prepare(<<SQL);
     713    SELECT COUNT(*)
     714        FROM servers
     715        WHERE server = "$server"
     716        AND timestamp > now() - INTERVAL $interval
     717SQL
     718
     719    $query->execute;
     720    my $numOfReadings = scalar $query->fetchrow_array();
     721
     722    if ($numOfReadings == 0) {return 0;}
     723
     724    $query = $self->{_db}->prepare(<<SQL);
     725    SELECT COUNT(*)
     726        FROM servers
     727        WHERE server = "$server"
     728        AND timestamp > now() - INTERVAL $interval
     729        AND !running
     730SQL
     731
     732    $query->execute;
     733    my $numNotRunning = scalar $query->fetchrow_array();
     734
     735    if ($numOfReadings == $numNotRunning) {return 1;}
     736
     737    return 0;
    684738}
    685739
Note: See TracChangeset for help on using the changeset viewer.