Nell’iperspazio con Rocket: il Framework Web di Rust!
Intro to FIS GT.M
1. FIS GT.M™ – A Gentle Introduction
K.S. Bhaskar, FIS
2. Agenda
• What is GT.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