various small speed up changes
authorDirk Koopman <djk@tobit.co.uk>
Thu, 5 Jan 2012 15:19:44 +0000 (15:19 +0000)
committerDirk Koopman <djk@tobit.co.uk>
Thu, 5 Jan 2012 15:19:44 +0000 (15:19 +0000)
perl/DXChannel.pm
perl/DXUser.pm
perl/Msg.pm
perl/Version.pm
perl/cluster.pl

index 64a9a1ae5b7c153608c19416f95d64ebb287fa67..517372fa9446b49aba4799c3528483dddb203381 100644 (file)
@@ -706,7 +706,7 @@ sub broadcast_list
 
 sub process
 {
-       foreach my $dxchan (get_all()) {
+       foreach my $dxchan (values %channels) {
 
                while (my $data = shift @{$dxchan->{inqueue}}) {
                        my ($sort, $call, $line) = $dxchan->decode_input($data);
index b868eaa93189e36659f5482c38f826e9b979eb34..c273970bf542df3a8c0589124486239e537eee05 100644 (file)
@@ -181,7 +181,7 @@ sub init
        if ($v4) {
                my $new = ! -e $ufn;
                $dbh = DBI->connect("dbi:SQLite:dbname=$ufn","","") or die "Cannot open $ufn ($!)\n";
-               if ($new && $dbh) {
+               if ($new) {
                        # create the table
                        my $table = q{create table user(
 call text not null unique,
@@ -193,6 +193,8 @@ data text not null
                        # Add indexes
                        $dbh->do(q(create index x1 on user(lastseen))) or die $dbh->errstr;
                }
+               $dbh->do(q{PRAGMA cache_size = 8000});
+               $dbh->do(q{PRAGMA synchronous = OFF});
        }
 
 
index d44d4f4f5ea0d25d5d6b32d80fa78b2657cb2c15..fc1179c5828aec64d280f0ec94ca84e91a77b2cd 100644 (file)
@@ -316,7 +316,7 @@ sub new_server {
     my ($pkg, $my_host, $my_port, $login_proc) = @_;
        my $self = $pkg->new($login_proc);
        
-    $self->{sock} = tcp_server $my_host, $my_port, sub { $self->new_client(@_); }, sub { return 256; };
+    $self->{sock} = tcp_server $my_host, $my_port, sub { $self->new_client(@_); };
     die "Could not create socket: $! \n" unless $self->{sock};
        return $self;
 }
index aa6e1a071b553888551fe67918229804d9ca705c..8142a148761bbf5fad6b3dd62499061ea459caf8 100644 (file)
@@ -11,7 +11,7 @@ use vars qw($version $subversion $build $gitversion);
 
 $version = '1.56';
 $subversion = '0';
-$build = '15';
-$gitversion = '955a8e0';
+$build = '16';
+$gitversion = 'fb8e4bc';
 
 1;
index 43828974d05c00f10d7936c8815b3df914fa8500..745ad1dd09217a5465d59240309d4efadea24ec5 100755 (executable)
@@ -123,7 +123,7 @@ use vars qw(@inqueue $systime $starttime $lockfn @outstanding_connects
                        $zombies $root @listeners $lang $myalias @debug $userfn $clusteraddr
                        $clusterport $mycall $decease $is_win $routeroot $me $reqreg $bumpexisting
                        $allowdxby $dbh $dsn $dbuser $dbpass $do_xml $systime_days $systime_daystart
-                       $can_encode $maxconnect_user $maxconnect_node
+                       $can_encode $maxconnect_user $maxconnect_node $idle_interval
                   );
 
 @inqueue = ();                                 # the main input queue, an array of hashes
@@ -138,6 +138,7 @@ $maxconnect_user = 3;                       # the maximum no of concurrent connections a user can ha
 $maxconnect_node = 0;                  # Ditto but for nodes. In either case if a new incoming connection
                                                                # takes the no of references in the routing table above these numbers
                                                                # then the connection is refused. This only affects INCOMING connections.
+$idle_interval = 0.100;                        # the wait between invocations of the main idle loop processing.
 
 # send a message to call on conn and disconnect
 sub already_conn
@@ -300,6 +301,8 @@ sub cease
        }
 
        LogDbg('cluster', "DXSpider V$version, build $subversion.$build (git: $gitversion) ended");
+       dbg("bye bye everyone - bye bye");
+
        dbgclose();
        Logclose();
 
@@ -582,11 +585,10 @@ $script->run($main::me) if $script;
 
 #open(DB::OUT, "|tee /tmp/aa");
 
-my $per_sec = AnyEvent->timer(after => 0, interval => 0.010, cb => sub{idle_loop()});
+my $per_sec = AnyEvent->timer(after => 0, interval => $idle_interval, cb => sub{idle_loop()});
 
 # main loop
 $decease->recv;
-#AnyEvent->loop;
 
 idle_loop() for (1..25);
 cease(0);