> While I agree that hundreds of threads seems like overkill, I think the
> above advice might be going too far in the other direction.  The problem
> with single-threaded operation is that any delay affects the whole
> system --- eg, if you're blocked waiting for disk I/O, the CPU doesn't
    You use UDP which is a connectionless protocol... then why use threads ?
    I'd advise this :
    Use asynchronous network code (one thread) to do your network stuff. This
will lower the CPU used by this code immensely.
    Every minute, dump a file contianing everything to insert into the table.
    Use another thread to COPY it into the DB, in a temporary table if you
wish, and then INSERT INTO ... SELECT.
    This should be well adapted to your requirements.