Developer(s) | FIS |
---|---|
Initial release | 1986 |
Stable release |
6.3-002 / August 21, 2017
|
Repository | [cvs://anonymous:@fis-gtm.cvs.sourceforge.net/cvsroot/fis-gtm fis-gtm |
Development status | Active |
Written in | C, assembly, M |
Operating system | Linux, AIX |
Type | Database |
License | GNU AGPLv3, proprietary |
Website | fis-gtm |
GT.M is a high-throughput key-value database engine optimized for transaction processing. (It is a type also referred to as "schema-less", "schema-free," or "NoSQL.") GT.M is also an application development platform and a compiler for the ISO standard M language, also known as MUMPS.
GT.M, an abbreviation for Greystone Technology M, was developed by the Greystone Technology Corp in the 1980s. It is an implementation of ANSI standard M for AIX and Linux. In addition to preserving the traditional features of M, GT.M also offers an optimizing compiler that produces object code that does not require internal interpreters during execution.
The database engine, made open source in 2000, is maintained by FIS. GT.M is used as the backend of their FIS Profile banking application, and it powers ING DIRECT banks in Spain, France, Italy, Holland, Romania and India; Capital One 360 in the United States; Tangerine (Scotiabank) in Canada; Scottish Widows and Barclays Direct in the UK. It is also used as an open source backend for the Electronic Health Record system WorldVistA and other open source EHRs such as Medsphere's OpenVista. It is listed as an open source healthcare solution partner of Red Hat. Today it consists of approximately 2 million lines of code.
GT.M consists of a language subsystem, a database subsystem, and utility programs. The language subsystem and database subsystem are closely integrated, but each is usable without the other. The language and database subsystems share common data organization and typing.
GT.M has only two data types - canonical numbers and strings. A string is any arbitrary sequence of bytes (including nulls). A string such as "42"
is a canonical number. Data typing is dynamic and conversion between the two types is performed on the fly as needed: 1+"42"
yields the result 43
, and the first character of 43
is 4
.