V5.5-000 brings major new enhancements to GT.M
V5.5-000 brings two major new enhancements to GT.M. Supplementary Instance (SI) replication extends GT.M replication functionality to create instances for applications such as reporting, decision support, warehousing, analytics and auditing - all in real time. A new function allows for unused free space to be returned to the operating system after operations such as data archival - even while the database continues to be actively used. There is also now a framework to allow GT.M to be extended with plugins, whether from FIS or others.
SI replication permits the receiver of a replication stream to also compute and commit its own updates. GT.M's traditional Business Continuity (BC) replication is designed to create replicated secondary instances that can on demand take over the role of an originating primary for transactional systems of record. To ensure consistent results across instances, replicated secondary instances do not permit updates other than those replicated from upstream sources. With SI replication, an originating primary that is not intended to be the transactional system of record can both execute business logic and commit updates as well as receive a replication stream. This allows for instances to be created for real time:
- reporting (since reporting itself may generate database updates, such as for aggregates, or just to record the running of the report),
- decision support (for example, authorizations can be based on real time transactional data),
- data warehousing (cross referencing, householding, scrubbing, etc. can be performed in real time), and many others such as
- analytics and auditing.
Details are in the Supplementary Instance Replication Technical Bulletin.
An important operational enhancement in GT.M V5.5-000 is the ability to release unused space from a database back to the underlying operating system even as the application continues to operate, for example, when archival of historical data creates free space in a database. Previously, releasing space to the operating system had to be performed when the database was offline, and involved extracting the data followed by loading it into a freshly created database file.
The default gtmprofile and gtm scripts included with GT.M now implement a framework for GT.M enhancements via plugins which can be written in M, C, or a combination thereof, such as an M wrapper around C low level access to a standard library. For any standard-format plugin installed in the plugin subdirectory of a GT.M installation directory, environment variables created with gtmprofile, or a mumps process executed via the gtm script will automatically start with access to the plugin. Plugins can be developed by anyone - not just FIS - and are independent of GT.M releases. Existing GT.M releases can use plugins, and the gtmprofile and gtm scripts from V5.5-000 can be easily retrofitted to older GT.M releases. As a proof of concept, FIS is providing gtmzlib, a small plugin that wraps the popular zlib (http://zlib.net) to compress and uncompress string data. gtmzlib can be downloaded from the GT.M project page at Source Forge (http://sourceforge.net/projects/fis-gtm).
As usual, there are smaller enhancements and bug fixes, detailed in the V5.5-000 Release Notes.