[Xastir-Dev] Short list, stable release, then Xastir-2 development?

James Jefferson jj at aprsworld.net
Thu Mar 13 18:10:52 EST 2003


> > My thoughts are that for starters, just the APRS data points received. It
> > might be helpful to ask Steve Dimse what his database fields are, since
> > he has plenty of experience in a SQL database of APRS data.
>
> We have an Xastir user that has a bit of experience there as well
> don't we?  James?

Sure. I'm databasing ~ 2 million packets a day. Running a database with about 
60 queries a second 24/7.

I don't have time today to write too much in depth. But here are the issues I 
see:

Indexes, Indexes, Indexes! If you ever do a query that can't take advantage of 
an index, then the system is as good as dead. With the overhead of the 
databases and normalization between tables, you're looking about more than a 
100 megabytes of data per day. (Heck, the raw stream is at least 50 megabytes 
a day). If you have to do a table scan off of disk (as is the case with a 
machine with not a lot of memory) this starts taking real time.

Figure out what queries you are going to do, and design your tables 
accordingly. For example, on aprsworld.net there is a lastposition table that 
is relatively small (<5 megabytes) and then a full position table that has 
all positions in the database. XAstir would probably want a lastposition 
table, then another table for all of the positions that need to be shown on 
screen. 

Look at the overhead of triggers in Postgres. You may find it nescessary to 
have the parser / inserter daemon handle triggering. In aprsworld.net's 
parser it can fork() a program based on the callsign and SSID of the packet 
it has just inserted. On linux, a signal might be a good way of doing 
triggers. Dunno about how fast other *nixes handle signals.

All for now.

-Jim



More information about the Xastir-dev mailing list