Changeset 29251 for trunk/tools/czartool/CzarDb.pm
- Timestamp:
- Sep 28, 2010, 11:26:51 AM (16 years ago)
- File:
-
- 1 edited
-
trunk/tools/czartool/CzarDb.pm (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/tools/czartool/CzarDb.pm
r29168 r29251 561 561 ########################################################################### 562 562 # 563 # Deletes all but one row per interval from all stage tables for all labels between the provided day 563 # Deletes all but one row per interval from all tables for the provided date range 564 # TODO this is very clumsy, I just have time to thinmk of something more elegant 564 565 # 565 566 ########################################################################### … … 574 575 my $totalDeleted = undef; 575 576 my $quit = 0; 577 my $query = undef; 576 578 while(!$quit) { 577 579 … … 594 596 my ($label) = @{$row}; 595 597 596 my$query = $self->{_db}->prepare(<<SQL);598 $query = $self->{_db}->prepare(<<SQL); 597 599 SELECT COUNT(*) 598 600 FROM $stage … … 617 619 $totalDeleted += $toDelete; 618 620 } 621 619 622 } 623 624 # servers table 625 my $servers = undef; 626 if ($self->getServers(\$servers)) { 627 628 my $server = undef; 629 my $row = undef; 630 foreach $row ( @{$servers} ) { 631 my ($server) = @{$row}; 632 633 $query = $self->{_db}->prepare(<<SQL); 634 SELECT COUNT(*) 635 FROM servers 636 WHERE timestamp > '$fromTime' 637 AND timestamp <= '$toTime' 638 AND server = '$server' 639 SQL 640 $query->execute; 641 642 my $toDelete = scalar $query->fetchrow_array() - 1; 643 if ($toDelete > 0) { 644 645 $query = $self->{_db}->prepare(<<SQL); 646 DELETE FROM servers 647 WHERE timestamp > '$fromTime' 648 AND timestamp <= '$toTime' 649 AND server = '$server' ORDER BY timestamp DESC LIMIT $toDelete 650 SQL 651 $query->execute; 652 653 $totalDeleted += $toDelete; 654 } 655 } 656 } 657 658 # now deal with cluster_space table 659 $query = $self->{_db}->prepare(<<SQL); 660 SELECT COUNT(*) 661 FROM cluster_space 662 WHERE timestamp > '$fromTime' 663 AND timestamp <= '$toTime' 664 SQL 665 $query->execute; 666 667 my $toDelete = scalar $query->fetchrow_array() - 1; 668 if ($toDelete > 0) { 669 670 $query = $self->{_db}->prepare(<<SQL); 671 DELETE FROM cluster_space 672 WHERE timestamp > '$fromTime' 673 AND timestamp <= '$toTime' 674 ORDER BY timestamp DESC LIMIT $toDelete 675 SQL 676 $query->execute; 677 678 $totalDeleted += $toDelete; 679 } 680 620 681 print " * Deleted $totalDeleted between $fromTime and $toTime\n"; 621 682 $fromTime = $toTime; 622 683 } 684 } 685 686 ########################################################################### 687 # 688 # Returns an array of servers 689 # 690 ########################################################################### 691 sub getServers { 692 my ($self, $servers) = @_; 693 694 my $query = $self->{_db}->prepare(<<SQL); 695 SELECT DISTINCT server 696 FROM servers 697 SQL 698 699 if (!$query->execute) { 700 701 return 0; 702 } 703 704 ${$servers} = $query->fetchall_arrayref(); 705 706 return 1; 623 707 } 624 708
Note:
See TracChangeset
for help on using the changeset viewer.
