FIS GT.M™ – A Gentle IntroductionK.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://email@example.com• K.S. Bhaskar / firstname.lastname@example.org / +1 (610) 578-4265
A particular slide catching your eye?
Clipping is a handy way to collect important slides you want to go back to later.