Quelle base de données NoSQL convient le mieux aux systèmes financiers OLTP?
Nous sommes en train de concevoir un OLTP système financier. il devrait être en mesure de soutenir de 10 000 transactions par seconde et ont des fonctionnalités de création de rapports.
Donc, nous sommes arrivés à l'idée d'utiliser:
- un NoSQL DB comme notre principal site de stockage
- d'une base MySQL (Percona server en fait) de faire quelques ETLs de la NoSQL DB pour stocker les données des rapports
Nous envisageons de MongoDB et Riak pour le NoSQL travail. nous avons lu que Riak échelles plus fluide que MongoDB. Et nous tenons à les écouter votre opinion.
- Qui NoSQL DB utiliseriez-vous pour un
OLTP système financier? - Comment a été
votre expérience de mise à l'échelle MongoDB/Riak?
source d'informationauteur SDReyes
Vous devez vous connecter pour publier un commentaire.
Il n'est pas concevable circonstance où je voudrais utiliser une base de données NOSQl pour quoi que ce soit à voir avec la finance. Vous n'avez pas l'intégrité des données nécessaires ou les contrôles internes. Dow Jones utilise SQL Server pour effectuer ses transactions, et s'ils peuvent concevoir une haute performance, haute transaction Relationnelle datbase si vous le pouvez. Vous aurez à investir dans certains des gens qui savent ce qu'ils font.
On a qu'à penser au problème différemment. La notion de cohérence des transactions provient de l'UD (mise à jour) dans les opérations CRUD (Create, Read, Update, Delete). noSQL DBs sont de la MERDE (Créer, Reproduire, Append, Processus), travail par accrétion de horodaté des données. Avec le bon modèle de domaine, il n'y a pas de raison que la vérifiabilité et l'équivalent de l'intégrité référentielle ne peut pas être réalisé.
Le mondial-le stockage des bases de données NoSQL - Cache à partir d'InterSystems et GT.M de la FIS - sont largement utilisés dans les services financiers et ont été pendant de nombreuses années. Cache, en particulier, est utilisé pour la base de données de base et pour OLTP.
Je peux répondre au sujet de mon expérience avec mise à l'échelle Riak.
Riak échelles de douceur à l'extrême. Mise à l'échelle est aussi facile que d'ajouter des nœuds au cluster, qui est une opération très simple en soi. Vous pouvez atteindre près de l'évolutivité linéaire par simple ajout de nœuds. Notre expérience avec Riak que la mesure de mise à l'échelle est concernée a été incroyable.
Le revers de la médaille, c'est qu'il manque à de nombreux égards. Quelques exemples:
count(*)
oulist keys
sur un cluster de production. Cela nécessiterait un travail autour de si vous voulez faire ETL de Riak dans MySQL - ou comment vous le savez quoi (E)xtract?(Une manière de contourner ce problème serait de maintenir un seau avec une séquence de touches qui carte pour des valeurs qui contiennent les clés que vous avez inséré dans votre seaux).
Je travaille avec les Starcounter (donc je suis partial), mais je pense que je peux dire que pour un système de traitement des transactions financières que vous avez à vous soucier de la cohérence des transactions. Malheureusement, c'est ce que les moteurs utilisés pour Facebook et Twitter, a dû abandonner permettre à leur échelle-une stratégie pour offrir des performances. Ce n'est pas parce que les moteurs comme MongoDb ou Cassandra sont mal conçus; plutôt, il en résulte naturellement de la PAC théorème (http://en.wikipedia.org/wiki/CAP_theorem). Tout simplement, les modifications que vous apportez dans votre base de données permettra de remplacer d'autres changements s'ils se produisent à proximité dans le temps. Ok pour les mises à jour de statut et de nouveaux tweets, mais désastreux si vous faites affaire avec de l'argent ou d'autres quantités. Les montants seront simplement finissent mal lorsque de nombreuses lectures et écritures sont réalisées en parallèle. Donc, pour le débit dont vous avez besoin, un mémoire centré sur les bases de données NoSQL avec de l'ACIDE est probablement la voie à suivre.
Vous pouvez utiliser des bases de données NoSQL (Cassandra, EventStore) comme un espace de stockage pour les services financiers si vous implémentez votre application à l'aide d'event sourcing et les concepts de DDD. Je vous recommande de lire ce minibook http://www.oreilly.com/programming/free/reactive-microservices-architecture.html
OLTP peut être obtenue en utilisant une solution NoSQL avec une mesure de mise en œuvre,
il y a deux choses,
1. Comment allez-vous pour obtenir de l'ACIDE propriétés qu'un SGBDR donne.
2. Fournir une coutume bloquant ou non bloquant la simultanéité et de transaction d'un mécanisme de gestion.
À te rapprocher de la solution,
Apache Phoenix,apache trafodion ou la jonction de la machine.
Trafodion a plein d'ACIDE appui sur HBase, vous devriez jeter un oeil.
Cassandra peut être utilisé pour les deux OLTP et OLAP. Bon la réplication et de l'éventuelle cohérence des données vous donne le choix dans votre main. Besoin pour concevoir le système correctement. Et après tout, il est libre de coût, mais pas exempte de développeur, lui donner un essai