[aprssig] So long.... APRS-IS officially has lost 1/2it's servers.
Scott Miller
scott at opentrac.org
Sun Mar 2 13:23:36 EST 2008
> queues and the basic packet parsing have no problem keeping up. The
> problem is when you look at the output side of the server. Each one of
> these packets must be processed individually for each output queue.
> This is so server-side filtering can occur and so no faulty connection
> can slow down the server's processing. That means that 100 pps has now
> mushroomed to 100+(200*100)=20,100 pps that the server is processing
> assuming 200 connections on the server. That is the killer.
It's impossible to critique the server software when no one else gets to
look at it. For example, is each output queue parsing each packet for
filtering, or is the input side doing the parsing and passing a data
structure containing the relevant details along to the output queues?
What about computational shortcuts? For example, you don't have to do a
great circle distance calculation on every packet for every filter. If
the filter defines a radius of 50 km, calculate corner coordinates for a
bounding box. You can have the parser save positions as 32-bit
integers, so rather than doing a big floating point calculation on each
packet, you only have to do a few integer compares and follow up with
the full calculation only on a small fraction of the packets. Calculate
another box that fits entirely within the circle, and you can eliminate
that calculation for another significant portion of the packets that
fell within the first bounding box.
Filter criteria like packet types can be represented as a bitmap, so
instead of a bunch of compares you just evaluate one 'and' statement and
check for a non-zero result. That compiles to two instructions, at
most, on any processor I can think of.
But as long as the source is closed, no one else can help. Seeing as
there's no profit to be made with this software, I don't really
understand why it can't be opened, but I'm sure you have your reasons -
that's why I suggested creation of new software that'd be open from the
start and built to address the limitations we've run into.
Scott
N1VG
More information about the aprssig
mailing list