Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

GT.M - NoSQL in core banking systems

2,976 views

Published on

GT.M - NoSQL in core banking systems

Published in: Technology
  • Be the first to comment

GT.M - NoSQL in core banking systems

  1. 1. GT.M NoSQL in core banking systems @zmerta
  2. 2. NoSQL in core banking systems? WTF?
  3. 3. The story begins as usual...
  4. 4. A long time ago in a galaxy far, far away….
  5. 5. A long time ago in a galaxy far, far away…. MUMPS
  6. 6. A long time ago in a galaxy far, far away…. MUMPS Welcome to the 60s!
  7. 7. MUMPS Massachusetts General Hospital Utility Multi-Programming System or simply M Features - ANSI and ISO standardized - Procedural language combined with a database engine - ACID transactions - Optimized for low-memory computers - Commercial implementations: GT.M, Caché
  8. 8. MUMPS Syntax - Weird language constructions - All commands could be shorten to one or two letters - Allows multiple commands on a line - Beware of white spaces - some are significant
  9. 9. MUMPS %DTC ; SF/XAK - DATE/TIME OPERATIONS ;1/16/92 11:36 AM ;;19.0;VA FileMan;;Jul 14, 1992 D I 'X1!'X2 S X="" Q S X=X1 D H S X1=%H,X=X2,X2=%Y+1 D H S X=X1-%H,%Y=%Y+1&X2 K %H,X1,X2 Q ; C S X=X1 Q:'X D H S %H=%H+X2 D YMD S:$P(X1,".",2) X=X_"."_$P(X1,".",2) K X1,X2 Q S S %=%#60/100+(%#360060)/100+(%3600)/100 Q ; H I X<1410000 S %H=0,%Y=-1 Q S %Y=$E(X,1,3),%M=$E(X,4,5),%D=$E(X,6,7) S %T=$E(X_0,9,10)*60+$E(X_"000",11,12)*60+$E(X_"00000",13,14) TOH S %H=%M>2&'(%Y#4)+$P("^31^59^90^120^151^181^212^243^273^304^334","^",%M)+%D S %='%M!'%D,%Y=%Y-141,%H=%H+(%Y*365)+(%Y4)-(%Y>59)+%,%Y=$S(%:-1,1:%H+4#7) K %M,%D,% Q
  10. 10. OMG!!! It’s even worse than Perl
  11. 11. or Brainfuck… or Whitespace... :-)
  12. 12. It’s not so bad... MUMPS could be readable...
  13. 13. MUMPS HELLO ; Hello application ; FOR I=1:1:10 DO . IF I#2=0 DO .. DO PRINT^HELLO("Peter") . ELSE DO .. DO PRINT^HELLO("Paul") QUIT ; PRINT(NAME) WRITE "Hello, ",NAME,! QUIT
  14. 14. Nobody wants to write large applications in MUMPS
  15. 15. Think about it as a language for writing stored procedures and triggers...
  16. 16. But there is one aspect which is still ahead of time…
  17. 17. Global Persistent Variables aka Globals
  18. 18. MUMPS - Globals Features - Hierarchical key-value data store (persistent arrays) - B-trees abstraction - Keys are ordered - Schema-less
  19. 19. MUMPS - Globals ^ACCOUNTS --- | --- 1 --- | | | --- name --- Petr Novák | | | --- email --- petr.novak@mail.cz --- 2 --- | | | --- name --- Martina Pavlíčková | | | --- email --- martina.pavlickova@mail.cz ^ACCOUNTS(1,"name") = "Petr Novák" | | | | | | | node | subscript | global
  20. 20. Oh wait, isn’t it...
  21. 21. NoSQL?
  22. 22. NoSQL? 50 years ago?
  23. 23. Even better...
  24. 24. Globals are very flexible...
  25. 25. MUMPS - Globals Can be used to model: - Relational databases - Key value databases (Redis, memcached, …) - Column/tabular databases (BigTable, Cassandra, …) - Document databases (MongoDB, CouchDB, …) - Graph databases (Neo4j, …)
  26. 26. Later in the same galaxy...
  27. 27. Later in the same galaxy... GT.M
  28. 28. GT.M Features Greystone Technology M - Database engine and application platform - MUMPS implementation - The heart of FIS Profile™ (core banking system) - Used in large financial and healthcare institutions - Open sourced in 2000 (GPLv2, AGPL) - Multiplatform (AIX, Linux, OpenVMS, Solaris, z/OS…) - Commercial support
  29. 29. GT.M Performance - High performance - Small footprint - Ultra fast ACID transactions (optimistic concurrency) - Software transactional memory - In-memory like performance with on-disk like integrity - Sophisticated caching
  30. 30. GT.M Security - Uses underlying operating system - Processes run as user level processes - No database daemon - Journaling - Database encryption - Plugin architecture for encryption algorithms
  31. 31. GT.M Scalability & continuity of business - Logical multi site operation - One instance streams to up to 16 replicas - 2 replication modes: - BC replication - SI replication
  32. 32. GT.M Deployment - Internet superserver (inetd, xinetd) - EWD (M/Gateway) - MTM (Profile)
  33. 33. GT.M Limits - One Global must fit in one database file (no limit on the number of database files) - Database file is divided to 992 mi blocks (variable block sizes - multiple of 512 bytes, with a maximum size of 65,024
  34. 34. GT.M Proven in business-critical environments World’s largest banks - ING DIRECT - Capital One 360 (USA) - Barclays Direct (GB) Healthcare - WorldVistA (Electronic Health Record system)
  35. 35. NoSQL - Advantages Five Advantages 1. Elastic scaling 2. Big data 3. Goodbye DBAs 4. Economics 5. Flexible data models http://www.techrepublic.com/blog/10-things/10-things-you-should-know-about-nosql-databases/
  36. 36. NoSQL Five Advantages 1. Elastic scaling Support for scaling out across multiple servers 2. Big data 3. Goodbye DBAs 4. Economics 5. Flexible data models
  37. 37. NoSQL Five Advantages 1. Elastic scaling 2. Big data Designed to support huge ammount of data 3. Goodbye DBAs 4. Economics 5. Flexible data models
  38. 38. NoSQL Five Advantages 1. Elastic scaling 2. Big data 3. Goodbye DBAs Some systems have been running unattended for decades 4. Economics 5. Flexible data models
  39. 39. NoSQL Five Advantages 1. Elastic scaling 2. Big data 3. Goodbye DBAs 4. Economics Runs on low-cost commodity hardware 5. Flexible data models
  40. 40. NoSQL Five Advantages 1. Elastic scaling 2. Big data 3. Goodbye DBAs 4. Economics 5. Flexible data models NoSQL or relational databases emulation
  41. 41. NoSQL Five challenges 1. Maturity 2. Support 3. Analytics and business intelligence 4. Administration 5. Expertise http://www.techrepublic.com/blog/10-things/10-things-you-should-know-about-nosql-databases/
  42. 42. NoSQL Five challenges 1. Maturity 50. years in business-critical environments 2. Support 3. Analytics and business intelligence 4. Administration 5. Expertise
  43. 43. NoSQL Five challenges 1. Maturity 2. Support Commercial support available. 3. Analytics and business intelligence 4. Administration 5. Expertise
  44. 44. NoSQL Five challenges 1. Maturity 2. Support 3. Analytics and business intelligence DeepSee - product for realtime analysis (InterSystems / Caché) 4. Administration 5. Expertise
  45. 45. NoSQL Five challenges 1. Maturity 2. Support 3. Analytics and business intelligence 4. Administration Easy to install and to maintain. 5. Expertise
  46. 46. NoSQL Five challenges 1. Maturity 2. Support 3. Analytics and business intelligence 4. Administration 5. Expertise Small number of skilled professionals :-(
  47. 47. So why we reinventing the wheel over and over again?

×