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.
Ideally:
- 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.