Which NoSQL DB is best fitted for OLTP financial systems?

15,339

Solution 1

There is no conceivable circumstance where I would use a NOSQl database for anything to do with finance. You simply don't have the data integrity needed or the internal controls. Dow Jones uses SQL Server to do its transactions and if they can properly design a high performance, high transaction Relational datbase so can you. You will have to invest in some people who know what they are doing though.

Solution 2

One has to think about the problem differently. The notion of transaction consistency stems from the UD (update) in CRUD (Create, Read, Update, Delete). noSQL DBs are CRAP (Create, Replicate, Append, Process) oriented, working by accretion of time-stamped data. With the right domain model, there is no reason that auditability and the equivalent of referential integrity can't be achieved.

Solution 3

The global-storage based NoSQL databases - Cache from InterSystems and GT.M from FIS - are used extensively in financial services and have been for many years. Cache in particular is used for both the core database and for OLTP.

Solution 4

I can answer regarding my experience with scaling Riak.

Riak scales smoothly to the extreme. Scaling is as easy as adding nodes to the cluster, which is a very simple operation in itself. You can achieve near linear scalability by simply adding nodes. Our experience with Riak as far as scaling is concerned has been amazing.

The flip side is that it is lacking in many respects. Some examples:

  • You can't do something like count(*) or list keys on a production cluster. That would require a work around if you want to do ETL from Riak into MySQL - or how would you know what to (E)xtract? (One possible work around would be to maintain a bucket with a known key sequence that map to values that contain the keys you inserted into your other buckets).
  • The free version of Riak comes with no management console that lets you know what's going on, and the one that's included in the Enterprise version isn't much of an improvement.
  • You'll need the Enterprise version of you're looking to replicate your data over WAN (e.g. for DR / high availability). That's alright if you don't mind paying, but keep in mind that Basho pricing is very high.

Solution 5

OLTP can be achieved using NoSQL with a custom implementation,

there are two things, 1. How are you going to achieve ACID properties that an RDBMS gives. 2. Provide a custom blocking or non blocking concurrency and transaction handling mechanism.

To take you closer to solution, Apache Phoenix,apache trafodion or Splice machine.

Share:
15,339
SDReyes
Author by

SDReyes

“Courage brother, do not stumble, though thy path be dark as night: There is a star to guide the humble, trust in God, and do the right. Let the road be dark and dreary and its end far out of sight. Face it bravely, strong or weary. Trust God, and do”

Updated on June 20, 2022

Comments

  • SDReyes
    SDReyes about 2 years

    We're designing an OLTP financial system. it should be able to support 10.000 transactions per second and have reporting features.

    So we have come to the idea of using:

    • a NoSQL DB as our main storage
    • a MySQL DB (Percona server actually) making some ETLs from the NoSQL DB for store reporting data

    We're considering MongoDB and Riak for the NoSQL job. we have read that Riak scales more smoothly than MongoDB. And we would like to listen your opinion.

    • Which NoSQL DB would you use for a OLTP financial system?
    • How has been your experience scaling MongoDB/Riak?