FIS GT.M™ – A Gentle Introduction
K.S. Bhaskar, FIS
Agenda

• What is GT.M? Why should I care?
• Technology Overview
• Where to go for more information
What is GT.M? Why should I care?

• NoSQL database + embedded procedural scripting language
   – Layered mappings for “Universal NoSQL” and SQL
• System of record for the two largest real time core banking systems
  in the world that we know of
   – Production database sizes of a few TB
   – Serving around 10,000 concurrent online users + ATMs, voice response
     units, web & mobile access...
   – 1000s of online banking transactions/second with full ACID properties
• Increasingly used in health care for electronic health records
• Operating database for at least one multi-sourced “big data” project
• Mature code base
   – First live production use in 1986; actively developed and supported
   – Free / open source software (AGPL v3) on x86 Linux (proprietary license
     on other platforms, including proprietary UNIX systems)
   – Free community based support on active forums
   – Commercial support with assured service levels
Technology Overview – Database Engine

• Hierarchical key-value (multi-dimensional array) data store, e.g.:
     – Set ^Capital("United States",1774,1776)="Philadelphia"
• Software Transaction Memory model
    Tstart
        …
    TCommit
•   Map key-value pairs to SQL tables with JDBC access – FIS PIP
•   Universal NoSQL: Map to other NoSQL uses cases with layered FOSS
    – e.g., M/DB SimpleDB clone, M/DB:X native XML database, M/Wire
    (modelled on Redis protocol)
•   Logical database consists of unlimited number of database files; each
    database file is 224M blocks (1024M blocks next release)
•   Keys up to 255 bytes long (1023 bytes next release); values up to
    65,008 bytes long (1MB next release)
Technology Overview – CAP Theorem

• Eventual Consistency requirement
   – Financial application requirement is that all nodes must eventually have
     the same path through state space, not just the same state, with
     Consistency at each point
• Business (application) logic runs on one originating primary instance
   – Updates streamed in real time to up to 16 replicating secondary
     instances, 256 tertiary instances, etc. without limit
   – Other instances available for querying / read-only access
• Any downstream instance can be switched to primary role
   – Roll-back / roll-forward to restore Consistency requires cooperation
     between database and application logic
   – Support for rolling upgrades even when schema change involved
• 12,450 mile distance limit
   – Longest known: Manchester, England to San Diego, CA (5,300 miles)
   – Longest known high volume: Delaware to Minnesota (1,000 miles)
Technology Overview – Scripting Language

• Official name is M – ISO/IEC standard 11756:1999
• Popular name is MUMPS – Massachusetts General Hospital Utility
  Multi-Programming System
   – De facto standard in healthcare, used by virtually all major VARs – Epic,
     IDX (now part of GE), McKesson, Eclipsys... – and by major institutions,
     e.g, Mayo, Kaiser, Cleveland Clinic, Partners, Quest, Lab Corp
   – Largest user is US Government – Dept. of Veterans Affairs, Dept. of
     Defense, Indian Health Service
   – Used in diverse industries including banking, retail, manufacturing
• Use it to create
   – Applications directly (largest applications are ERP systems with tens of
     thousands of modules)
   – An API to call from C (or anything compatible with C)
   – A server for an RPC protocol layered on TCP
Technology Overview – Engineering

•   No database daemon – processes cooperate to manage database
•   Optimistic concurrency control
•   Processes run with normal user / group ids
•   Simple security model written in plain English
•   Written mostly in C (some bits in assembly language)
•   Compiler generates dynamically linked threaded code
For More Information

• FIS GT.M home page – http://fis-gtm.com
     – User documentation – User documentation tab on home page
     – Download from http://sf.net/projects/fis-gtm (working its way into
       Debian repositories)
• FIS PIP home page – http://fis-pip.com
     – Download from http://sf.net/projects/pip
• M/DB, M/DB:X/ M/Wire, EWD (rich application platform):
    http://mgateway.com
•   Universal NoSQL -
    http://www.mgateway.com/docs/universalNoSQL.pdf
•   fosm (public big-data project) – http://fosm.org
•   NoSQL benchmark – http://ksbhaskar@blogspot.com
•   K.S. Bhaskar / ks.bhaskar@fisglobal.com / +1 (610) 578-4265

Intro to FIS GT.M

  • 1.
    FIS GT.M™ –A Gentle Introduction K.S. Bhaskar, FIS
  • 2.
    Agenda • What isGT.M? Why should I care? • Technology Overview • Where to go for more information
  • 3.
    What is GT.M?Why should I care? • NoSQL database + embedded procedural scripting language – Layered mappings for “Universal NoSQL” and SQL • System of record for the two largest real time core banking systems in the world that we know of – Production database sizes of a few TB – Serving around 10,000 concurrent online users + ATMs, voice response units, web & mobile access... – 1000s of online banking transactions/second with full ACID properties • Increasingly used in health care for electronic health records • Operating database for at least one multi-sourced “big data” project • Mature code base – First live production use in 1986; actively developed and supported – Free / open source software (AGPL v3) on x86 Linux (proprietary license on other platforms, including proprietary UNIX systems) – Free community based support on active forums – Commercial support with assured service levels
  • 4.
    Technology Overview –Database Engine • Hierarchical key-value (multi-dimensional array) data store, e.g.: – Set ^Capital("United States",1774,1776)="Philadelphia" • Software Transaction Memory model Tstart … TCommit • Map key-value pairs to SQL tables with JDBC access – FIS PIP • Universal NoSQL: Map to other NoSQL uses cases with layered FOSS – e.g., M/DB SimpleDB clone, M/DB:X native XML database, M/Wire (modelled on Redis protocol) • Logical database consists of unlimited number of database files; each database file is 224M blocks (1024M blocks next release) • Keys up to 255 bytes long (1023 bytes next release); values up to 65,008 bytes long (1MB next release)
  • 5.
    Technology Overview –CAP Theorem • Eventual Consistency requirement – Financial application requirement is that all nodes must eventually have the same path through state space, not just the same state, with Consistency at each point • Business (application) logic runs on one originating primary instance – Updates streamed in real time to up to 16 replicating secondary instances, 256 tertiary instances, etc. without limit – Other instances available for querying / read-only access • Any downstream instance can be switched to primary role – Roll-back / roll-forward to restore Consistency requires cooperation between database and application logic – Support for rolling upgrades even when schema change involved • 12,450 mile distance limit – Longest known: Manchester, England to San Diego, CA (5,300 miles) – Longest known high volume: Delaware to Minnesota (1,000 miles)
  • 6.
    Technology Overview –Scripting Language • Official name is M – ISO/IEC standard 11756:1999 • Popular name is MUMPS – Massachusetts General Hospital Utility Multi-Programming System – De facto standard in healthcare, used by virtually all major VARs – Epic, IDX (now part of GE), McKesson, Eclipsys... – and by major institutions, e.g, Mayo, Kaiser, Cleveland Clinic, Partners, Quest, Lab Corp – Largest user is US Government – Dept. of Veterans Affairs, Dept. of Defense, Indian Health Service – Used in diverse industries including banking, retail, manufacturing • Use it to create – Applications directly (largest applications are ERP systems with tens of thousands of modules) – An API to call from C (or anything compatible with C) – A server for an RPC protocol layered on TCP
  • 7.
    Technology Overview –Engineering • No database daemon – processes cooperate to manage database • Optimistic concurrency control • Processes run with normal user / group ids • Simple security model written in plain English • Written mostly in C (some bits in assembly language) • Compiler generates dynamically linked threaded code
  • 8.
    For More Information •FIS GT.M home page – http://fis-gtm.com – User documentation – User documentation tab on home page – Download from http://sf.net/projects/fis-gtm (working its way into Debian repositories) • FIS PIP home page – http://fis-pip.com – Download from http://sf.net/projects/pip • M/DB, M/DB:X/ M/Wire, EWD (rich application platform): http://mgateway.com • Universal NoSQL - http://www.mgateway.com/docs/universalNoSQL.pdf • fosm (public big-data project) – http://fosm.org • NoSQL benchmark – http://ksbhaskar@blogspot.com • K.S. Bhaskar / ks.bhaskar@fisglobal.com / +1 (610) 578-4265