From 5d10d2095199b0d798926fa9e79a3f580c296b67 Mon Sep 17 00:00:00 2001 From: Dirk Koopman Date: Mon, 17 Aug 2020 14:44:10 +0100 Subject: [PATCH] write rbncache in raw json unless set/deb rbncache --- perl/DXUser.pm | 2 +- perl/Prefix.pm | 2 +- perl/RBN.pm | 13 +++++++++---- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/perl/DXUser.pm b/perl/DXUser.pm index 4994c4e0..e5afe25b 100644 --- a/perl/DXUser.pm +++ b/perl/DXUser.pm @@ -31,7 +31,7 @@ $dbm = undef; $filename = undef; $lastoperinterval = 60*24*60*60; $lasttime = 0; -$lrusize = 10000; +$lrusize = 5000; $tooold = 86400 * 365; # this marks an old user who hasn't given enough info to be useful $v3 = 0; our $maxconnlist = 3; # remember this many connection time (duration) [start, end] pairs diff --git a/perl/Prefix.pm b/perl/Prefix.pm index 659178fb..2fab0e0b 100644 --- a/perl/Prefix.pm +++ b/perl/Prefix.pm @@ -26,7 +26,7 @@ $db = undef; # the DB_File handle %prefix_loc = (); # the meat of the info %pre = (); # the prefix list $hits = $misses = $matchtotal = 1; # cache stats -$lrusize = 10000; # size of prefix LRU cache +$lrusize = 5000; # size of prefix LRU cache sub init { diff --git a/perl/RBN.pm b/perl/RBN.pm index 6ec93569..92c66f1a 100644 --- a/perl/RBN.pm +++ b/perl/RBN.pm @@ -104,6 +104,7 @@ our $maxdeviants = 5; # the number of deviant QRGs to record for skimmer recor sub init { $json = DXJSON->new; + $json->canonical(0); if (check_cache()) { $noinrush = 1; } else { @@ -572,6 +573,8 @@ sub process # we have a candidate, create qualitee value(s); unless (@$cand > CData) { dbg "RBN: QUEUE key '$sp' MISSING RECORDS, IGNORED" . dd($cand) if isdbg 'rbnqueue'; + delete $spots->{$sp}; # don't remember it either - this means that a spot HAS to come in with sufficient spotters to be processed. + delete $dxchan->{queue}->{$sp}; next; } dbg "RBN: QUEUE PROCESSING key: '$sp' $now >= $cand->[CTime]" if isdbg 'rbnqueue'; @@ -706,8 +709,8 @@ sub process # clear out the data and make this now just "spotted", but no further action required until respot time dbg "RBN: QUEUE key '$sp' cleared" if isdbg 'rbn'; - delete $spots->{$sp}; delete $dxchan->{queue}->{$sp}; + delete $spots->{$sp}; # calculate new sp (which will be 70% likely the same as the old one) # we do this to cope with the fact that the first spotter may well be "wrongly calibrated" giving a qrg that disagrees with the majority. @@ -793,7 +796,7 @@ sub finish sub write_cache { my $ta = [ gettimeofday ]; - $json->indent(1) if isdbg 'rbncache'; + $json->indent(1)->canonical(1) if isdbg 'rbncache'; my $s = eval {$json->encode($spots)}; if ($s) { my $fh = IO::File->new(">$cachefn") or confess("writing $cachefn $!"); @@ -801,10 +804,12 @@ sub write_cache $fh->close; } else { dbg("RBN:Write_cache error '$@'"); + return; } - $json->indent(0); + $json->indent(0)->canonical(0); my $diff = _diffms($ta); - dbg("RBN:WRITE_CACHE time to write: $diff mS"); + my $size = sprintf('%.3fKB', (length($s) / 1000)); + dbg("RBN:WRITE_CACHE size: $size time to write: $diff mS"); } sub check_cache -- 2.34.1