Sorry, your browser does not support inline SVG.

YottaDB r1.24 Released

r1.24 is a major release on our path to “YottaDB Everywhere” through better integration with package management and Simple API extensions to support multi-threaded applications or those using coroutines, 64-bit Linux on ARM, and much more, including a large set of functional & performance enhancements as well as fixes to issues detailed in the release notes.

Better integration with package management:

pkg-config is a standard tool on Linux systems for managing package versions, for example, to query the location and latest installed version of a package. YottaDB is now part of this ecosystem: the ydbinstall script creates a pkg-config file for YottaDB at /usr/share/pkgconfig/yottadb.pc. In turn, this means that an application can write a script to use YottaDB without the script needing to be updated when a new YottaDB release is installed on a system, or if a YottaDB release is installed in different directories on different systems, e.g.

source $(pkg-config --variable=prefix yottadb)/ydb_env_set # setup environment
gcc -I $ydb_dist -L $ydb_dist -o myprog myprog.c -lyottadb


source $(pkg-config --variable=prefix yottadb)/ydb_env_set # setup environment
mumps -run myprog

Fitting into the standard ecosystem becomes increasingly important as we release YottaDB wrappers providing standard APIs for a variety of languages starting with Go (see below).

Simple API extensions for multi-threaded applications:

Although the YottaDB engine is single-threaded, applications can be multi-threaded, and often are. Furthermore, in the case of Go, a process can have hundreds to thousands of coroutines (called Goroutines) which are dynamically scheduled over a smaller number of threads within a process, i.e., during its lifetime, a coroutine may well execute on different threads at different times. In r1.24, YottaDB’s Simple API is extended with functions to support multi-threaded applications. We recently blogged about this. Look for an announcement in the very near future telling you about the YottaDB Go wrapper. A wrapper is a small software shim that accesses YottaDB through its Simple API to provide a YottaDB API in another language, an API that fits in with the paradigms of that language and is intuitive to application developers working in that language. Note that the Simple API extensions for multi-threaded applications is field test grade functionality, i.e., suitable for development and testing but not for production. In the near future, and no later than the next YottaDB release, we anticipate that these API extensions will become production grade. Except for the functions to support multi-threaded applications, the rest of YottaDB r1.24 is production grade, i.e., suitable for production use.

The new 64-bit ARM platform:

With the advent of 64-bit ARMv8 CPUs, and Linux distributions that make use of that extended capability, 64-bit Linux on ARM is a computing platform worth taking seriously. With r1.24, YottaDB adds 64-bit Linux on ARM as a fully Supported platform. Thanks to community member Steve Johnson for contributing the port.

A large set of enhancements and fixes:

Although too numerous to list here (full details in the release notes), YottaDB comes with numerous functional and performance enhancements, as well as fixes. Some are implemented by YottaDB, where as others are inherited from GT.M V6.3-005, whose code base is merged into YottaDB r1.24. r1.24 also includes fixes to issues in the GT.M code base. For example:

  • Application code executing on a release of YottaDB can access database files on the same machine in use by another version of YottaDB/GT.M.
  • Several Improvements to the ydbinstall script.
  • Journal records fed to replication filters include timestamps.
  • YottaDB changes terminal characteristics only during a READ or in direct mode.
  • Support for TLS 1.3 in the reference implementation of the encryption plugin.
  • A symbolic constant YDB_RELEASE in libyottadb.h to allow C applications to determine the YottaDB release at compile time.

YottaDB is upward compatible with YottaDB r1.22 as well as GT.M V6.3-005.

Please do try YottaDB r1.24, and tell us what you think of it.

Published on January 31, 2019