I have to have the ability to place 1000's of transactions per second into some type of storage, and have the ability to query it rapidly.

What I must do is log all TCP demands (the important thing being the origin or dest Ip). When another demands is available in see if a previous request through the IP is incorporated in the store/database/cache and carry out the appropriate action.

SQLExpress, SQLCompact, SQLIte, MongoDB, Firebird ? Are these fast enough ?

Must I be only use an in memory data structure of some description ?

The shop must be accessible by multiple threads at the same time...

Any suggestions please...

UPDATE: RaptorDB ? Could it be worthwhile ? Worth thinking about together with another Databases/noSQL above ? http://www.codeproject.com/KB/database/RaptorDB.aspx

At these speeds, your bottleneck will probably be your disk a typical SATA drive can perform merely a couple of hundreds of transactions per second. To supplement the disk, throw plenty of RAM in internet marketing to ensure that the database is saved mostly in memory.

Alternatively, just do all of it in memory by moving your personal logger that utilizes an associative array. Must you log ALL data being sent, or simply the truth that PC A sent data to PC B?