I'm looking for recommendations for an in-memory database for capturing streaming market data state. While the transaction rate may reach into millions/sec, most of these transactions will be updates to existing records, so the database is not expected to grow much throughout the day. The database will be reset each business day.
- runs on windows environment, resides inside my .NET process, but I suppose an unmanaged process is not out of the question
- offers the ability for other processes to connect and run queries, preferrably using SQL or I'm open to Linq
- Allows me to embed triggers inside the database so that a row update can trigger another row update
- Allows some way to push notifications to clients that are connected and subscribed to receive notifications when a particular row is changed.
- gratis or very inexpensive
So far, I believe MemSQL fits the bill on all points except the last one.