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.
---------------------------(end of broadcast)---------------------------
TIP 2: Don't 'kill -9' the postmaster