V6.3-001 brings important and useful enhancements to GT.M.
GT.M provides a fast and efficient mechanism for processes to opt-in to share their database access statistics for other processes to monitor. The statistics are the same as those available to the process itself using the ZSHOW "G" command.
MUPIP FREEZE -ONLINE freezes database writes from global buffers to the filesystem, while allowing applications to continue database updates as long as they are able to, without requiring a write to the database filesystem. During this time, journal writes continue, ensuring database recoverability.... read more
V6.3-000A brings timely fixes to issues, including two issues in the string optimization introduced in V6.3-000, GTM-8540 and GTM-8549. The release includes other fixes and performance enhancements, as described in the release notes (http://tinco.pair.com/bhaskar/gtm/doc/articles/GTM_V6.3-000_Release_Notes.html). Please do use V6.3-000A.
While not a part of the GT.M distribution, we would also like to let you know about a reference implementation of GT.M Peer Replication, a type of bi-directional replication that uses GT.M triggers. Subsets of application logic which do not need update / transaction serialization, but which can benefit by aggregating updates from separate instances, can be deployed using peer replication. For example, financial transactions on a bank account must be serialized because each transaction depends on the result of the previous transaction on that account; balance inquiries need not be serialized because, while an inquiry to an account depends on the last financial transaction on that account, it does not depend on the last inquiry to that account. The reference implementation of GT.M peer replication is available as a plugin that you can add to your application (the reference implementation of a plugin is code that you can use as-is if it meets your needs, or adapt to your needs as appropriate; an existing example is the POSIX plugin). Plugins are not part of the GT.M core release but are separately released packages. The plugin includes a detailed readme file on implementing peer replication using the plugin.
V6.3-000 brings significant enhancements to GT.M's use of encryption. One defensive technique is to reduce the "surface" available to an attacker. V6.3-000 reduces the surface in several ways.
An attacker with the wherewithal for a brute-force attack on encryption can in theory benefit from the voluminous, long-lived, and structurally similar data in a typical application database, such as financial transactions and medical records. One component of a traditional layered defense-in-depth is to change the actual encryption keys periodically. By enabling encryption keys for database files to be changed "on the fly" while a database is in use (GTM-6310), V6.3-000 operationally simplifies changing the keys, and makes key changes less prone to human error. The prior technique required database regions to be extracted and loaded into newly created database files with keys different from those of their predecessors. Context-sensitive initialization vectors (IVs) in database, journal, extract and bytestream backup files (GTM-8117) further reduce the surface for a brute-force attack.... read more
V6.2-002 brings a number of modest enhancements to GT.M.
By reducing the number of dirty global buffers to be flushed in anticipation of an impending epoch, epoch tapers aim to ameliorate spikes in response time that can occur at epochs.
$ORDER(gvn,-1) - "reverse dollar order" - of global variables is faster.
Under conditions of high contention, processes holding locks exit faster, processes acquire database critical sections more efficiently when the mutex queue slots are all used, and lock acquisition is more efficient with substantially reduced impact on database throughput.... read more
V6.2-000 is a major release that introduces auto-relink, a publish+subscribe model that enables GT.M processes to automatically and safely execute the latest published versions of routines; adds support to read and write encrypted sequential disk files, pipes, and FIFOs; adds the ability to pass SOCKET devices from one process to another; and includes many other enhancements and fixes.
In V6.0-003, GT.M: adds IPv6 to the previous support of IPv4 for TCP connections. SOCKET devices, replication, inbound connections managed by Internet superservers such as inetd, and the GNP protocol - all GT.M uses of TCP/IP except the deprecated "TCP" devices - use TCP over both IPv4 and IPv6; maintains $KEY for terminal operation and introduces the [NO]EMPT[ERM] device parameter for terminal devices that allows an "erase" character to terminate a READ when there are no characters in the input buffer; improves critical section management & deadlock detection; changes the time stamp used for prior generation journal files to make operational management easier; as well as providing a number of other enhancements, improvements in robustness, and bug fixes. Details are in the release notes.
GT.M V6.0-002 and the new GTMJI GT.M Java Plug-in, together extend the usefulness of both GT.M and Java by enabling in-process calls between Java and M application code. Together they make the power of GT.M available to Java application code, and allow GT.M applications to access functionality written in a popular programming language. V6.0-002 implements the changes within GT.M needed to allow access from and to Java application code, and GTMJI enables Java application code to call and be called by M code.... read more
V6.0-000 significantly extends database file limits:
The maximum supported key size increases from 255 to 1,019 bytes.
Global variable nodes need no longer fit within a database block. This opens opportunities for applications to consider smaller block sizes where these improve performance. Also, the new maximum global variable node size of 1,048,576 bytes (1 MiB) means that any local variable node can also be stored in a global variable.
The maximum size of a database file is now 1,040,187,392 (992 Mi) blocks. Previously this limit was 234,881,024 (224 Mi) blocks.... read more
GT.M's open architecture makes it easy to extend GT.M with calls to functions in popular standard libraries. Such a call entails creating a small wrapper of a few lines for each function. On UNIX/Linux platforms, GT.M V5.5-000 brought a small enhancment to the "gtmprofile" shell commmand file that provided a framework for plugins that could be dropped into an existing GT.M installation: for any standard format plugin in the plugin subdirectory, the "gtmprofile" file automatically sets up environment variables to access the plugin. With the release of V5.5-000, we released a plugin to use the popular zlib compression library. ... read more
(Our apologies; this news nugget was not submitted in a timely manner.)
V5.5-000 provides a new type of replication, described in more detail in the Supplementary Instance Technical Bulletin (for all GT.M user documentation go to http://fis-gtm.com and click on the User Documentation tab). With Supplementary Instance (SI) replication, GT.M provides a mechanism to replicate to a supplementary instance which can execute its own business logic and commit database updates, for example, to provide reporting, decision support, data warehousing, auditing, and so on. In the course of that work, we have improved other aspects of replication.... read more
GT.M V5.4-002B brings timely remediation to several issues. Please review the release notes* to see whether any of the issues are relevant to your use of GT.M. In this release, we also improved the performance of NOBEFORE_IMAGE journaling by eliminating a time-consuming action that added no value to its correct operation; we expect a more interesting impact with the MM access method than with the BG access method.... read more
We anticipate future releases on the x86 GNU/Linux and Alpha/AXP OpenVMS platforms, but not the Tru64 UNIX platform. If this will cause you hardship, please do contact us to discuss possible arrangements.
GT.M V5.3-004 adds major new functionality and platform support.
* Database encryption. GT.M on selected platforms can encrypt data in database and journal files. Encryption protects against unauthorized access to data by an unauthorized process which is able to access disk files, that is, encryption protects data at rest (DAR) to help improve security in cloud based application deployment, as well as making it easier for sites to comply with data protection standards such as PCI and HIPAA. A plug-in architecture facilitates use of your preferred encryption software. Details are in the GT.M Database Encryption Technical Bulletin (http://www.fidelityinfoservices.com/FNFIS/Markets/NonFinancialIndustries/Healthcare/GTM/UNIX-DatabaseEncryption.htm).... read more
I have created an *experimental* Toaster (software appliance, virtual machine) of WorldVistA EHR VOE/ 1.0 on GT.M V5.3-003 on Ubuntu Jeos 8.04 - *running in UTF-8 (Unicode) mode*. See http://www.fidelityinfoservices.com/user_documentation/html/rn_tb/GTM_Unicode_Support.html for information about GT.M Unicode support. Instructions for use are the same as for the VistA Tour CD (http://downloads.sourceforge.net/fis-gtm/VistATour20081118.iso) except that the file name of the virtual disk image differs.... read more
V5.3-003 is a new GT.M release with useful additional functionality. Complete details are in the release notes (http:// www.fidelityinfoservices.com/user_documentation/html/rn_tb/GTM_V5.3-0...).
* IO to a process. A GT.M process can now OPEN a process, WRITE to that process and READ from that process. For the simplest usage, application code can now write directly to, say, the lpr command to send output directly to a print spooler without the need for a temporary intermediate file. For a more complicated example, you can use an external program like iconv to translate between encodings of strings by writing to its STDIN and reading from its STDOUT. Details are in a technical bulletin (http://www.fidelityinfoservices.com/ user_documentation/html/rn_tb/PIPE_IO_Technical_Bulletin.html).... read more
As part of the GT.M sponsorship of VistA Tour (http://vistatour.blogspot.com), Peter Bodtke will hand out CDs of WorldVistA EHR VOE/ 1.0 on GT.M V5.3-002. A copy of the CD is now available in the download area.
An updated advisory, with details of a remediation wrapper for gtmsecshr has been posted (http://www.fidelityinfoservices.com/NR/rdonlyres/D14A492F-09E5-4DBE-91DE-6F6C822461A7/0/0810232dS9I10002703gtmsecshr.pdf). Please act on it at your earliest convenience.
In response to a report of a GT.M vulnerability, we have produced a GT.M security advisory (see http://www.fidelityinfoservices.com/NR/rdonlyres/0CABD5C8-82B9-41E9-B9C1-5D477E36E306/0/0810232cS9I10002703gtmsecshr.pdf\). This vulnerability can theoretically allow someone who has programmer access to GT.M in a UNIX/Linux system to escalate privileges to root, but should not otherwise expose a properly secured production system.... read more
We will have our first GT.M+PIP Technology Exchange in Malvern, Pennsylvania, October 16 & 17 (http://www.fidelityinfoservices.com/FNFIS/Markets/NonFinancialIndustries/Healthcare/GTM/InfoBulletins/default). Please do plan to attend if you can.
GT.M V5.3-002 is a major new release that completes the planned support for 64-bit architectures by adding Sun SPARC Solaris to the set of 64-bit platforms. It also adds support for the Mapped Memory database access method and includes functional & performance enhancements (especially on platforms running GNU/Linux), as well as bug fixes. Details follow.
* GT.M on the following computing platforms runs as 64-bit processes: Solaris on SPARC; GNU/Linux on x86_64 and Itanium; AIX on pSeries; HP-UX on Itanium. With this and future releases, there are no 32-bit GT.M processes on these platforms.
* GT.M on the following computing platforms continues to run as 32-bit processes: x86 GNU/Linux; HP-UX on PA-RISC; Tru64 UNIX and OpenVMS on Alpha/AXP. There are no plans to move to a 64-bit architecture on these platforms. ... read more
GT.M V5.3-001A is available. It is a minor release derived from V5.3-001, and provides timely fixes to defects, including an issue with NOUNDEF handling, an issue with TP transactions that include multiple global directories, as well as some other issues as described in the release notes at http://www.fidelityinfoservices.com/user_documentation/GTM-V53-001A-RL/GTM_V5.3-001A_Release_Notes.html... read more
GT.M V5.3-001 is a major new release that extends the platforms on which GT.M is a 64-bit application to IBM pSeries AIX and x86_64 GNU/Linux.
On IBM pSeries AIX, GT.M processes are now 64-bit processes rather than 32-bit processes. Since there is no contemporary 32-bit hardware, and all contemporary releases of AIX are 64-bits, there are no more 32-bit GT.M processes on pSeries AIX. M application program logic and database formats remain 100% compatible between the 32-bit V5.3-000 and the 64-bit V5.3-001. As a consequence of the move to 64-bits, GT.M processes on pSeries AIX are no longer limited to 11 database regions, and shared libraries are no longer limited to a system wide limit of 256MB (there are still limits of course, but they are vastly greater than the needs of any application that we know of).... read more
The Source Forge project name has been changed from sanchez-gtm to fis-gtm, to reflect rebranding following the acquisition of Sanchez Computer Associates by Fidelity National Information Services.
GT.M V5.3-000 is a major new release. Although there are no changes to M language support or to database functionality, GT.M has been internally re-engineered to support both 32- and 64-bit architectures. Even on 64-bit hardware, prior GT.M releases have always executed as 32-bit processes.
Coming in a release in the near future, 64-bit GT.M processes will be supported on GNU/Linux on x86_64. Since 64-bit hardware and operating systems are not yet common on the x86 platform, a 32-bit GT.M will continue to be available to run on GNU/Linux on both x86 as well as x86_64 hardware.... read more
GT.M V5.2-000B is available. This release is identical to V5.2-000A with a fix for a regression introduced in V5.2-000 that was recently reported by the user community. Release notes will be on the GT.M web site (go to http://fis-gtm.com and click on the User Documentation tab) shortly, if they are not there already. The release note entry for the fix is:
READ * in M-mode on Sequential Disk file and Socket device of a character with encoding between 128 to 255 inclusive now returns the correct code value. This fixes a problem introduced in V5.2-000 that resulted in READ * on those devices returning an incorrect (negative) value. (C9H04-002843)... read more