Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

I\'m looking for recommendations for an in-memory database for capturing streami

ID: 657498 • Letter: I

Question

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.

Explanation / Answer

You might consider VoltDB. It meets most of your criteria.

It doesn't run on Windows, only on 64-bit Linux, but that could be in a VM on Windows or in the cloud.

Rather than triggers, it uses stored procedures written in plain java. You could have a procedure that performs the first update and conditionally performs the second update. It could also check a subscription table and conditionally insert notification records in an export table, which could stream automatically to Kafka or RabbitMQ using an export connector.

I wrote an example app that performs a real-time national best bid & offer calculation on simulated streaming market data. The majority of the code is actually the simulated data generation, the database schema is very simple and the stored procedure that does the calculation isn't a lot of code and may give you a quick idea at how simple an application like this could be to build in VoltDB.

We have many customers from Fortune 500 to very small startups and cost has never been an obstacle.

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote