$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
%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
{
sub init
{
$json = DXJSON->new;
+ $json->canonical(0);
if (check_cache()) {
$noinrush = 1;
} else {
# 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';
# 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.
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 $!");
$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