Release Note Revision History
|1.00||September 11, 2019||r1.28 Initial Release|
|1.01||March 31, 2020||Added CentOS 8 Build|
40 Lloyd Avenue, Suite 104 Malvern, PA 19355, USA email@example.com +1 (610) 644-1898
Contact your YottaDB support channel.
For free (to you) support from members of communities who run widely available applications on YottaDB, please use an application-specific list where appropriate.
For requests other than to the communities below, post an Issue at https://gitlab.com/YottaDB/DB/YDB/issues and include the words "Help Wanted" in the summary.
For requests specific to the use of YottaDB with M other than for applications above, post to the comp.lang.mumps list.
For users of YottaDB using the Go API, r1.28 is a major release because it is required for production grade access to YottaDB from Go. For others, it is a minor release with a small set of enhancements anf fixes as detailed in the complete release notes.
A platform is a combination of a CPU architecture and an operating system. A platform is Supported, Supportable, or Unsupported. Supported means that we have the platform in our development environment and test each release on that platform. Supportable means that although we do not necessarily have such a platform in our environment, we have no reason to believe that the software will not run on it. All others are Unsupported.
|CPU Architecture||Supported OS Version(s)||Notes|
|64-bit x86||Ubuntu 18.04 LTS; Red Hat Enterprise Linux 7.6; Debian GNU/Linux 10 (Buster)||There are separate binary distributions for each OS version, owing to differences in library versions of those distributions.|
|64-bit ARM (Raspberry Pi 3 Model B)||Ubuntu 18.04 LTS||While YottaDB is Supportable on other ARMv8-A CPUs, owing to variations in the implementations of ARM microarchitectures, we recommend that you ensure the software runs correctly before committing to any specific hardware other than those Supported. Please contact firstname.lastname@example.org if you want a specific combination of OS and CPU microarchitecture to be Supported.|
|32-bit ARM (Raspberry Pi 3 Model B)||Raspbian GNU/Linux 10 (Buster)||While YottaDB is Supportable on other ARMv7-A CPUs, owing to variations in the implementations of ARM microarchitectures, we recommend that you ensure the software runs correctly before committing to any specific hardware other than those Supported. Please contact email@example.com if you want a specific combination of OS and CPU microarchitecture to be Supported.|
|32-bit ARM (Raspberry Pi Zero)||Raspbian GNU/Linux 9.1||While YottaDB is Supportable on other ARMv6 CPUs, owing to variations in the implementations of ARM microarchitectures, we recommend that you ensure the software runs correctly before committing to any specific hardware other than those Supported. Please contact firstname.lastname@example.org if you want a specific combination of OS and CPU microarchitecture to be Supported.|
Recent releases of major GNU/Linux distributions with contemporary kernels, glibc and ncurses are Supportable. Specific notes:
- On Ubuntu releases after 18.04 LTS, YottaDB needs the libtinfo5 package to be installed.
- On Arch Linux and other leading edge distributions, YottaDB may need to be recompiled from source code owing to library and tool chain versions significantly newer than those used in building the distribution.
See our Get Started page to use YottaDB.
We strongly recommend that you install YottaDB r1.28 in a newly created directory, different from those of YottaDB r1.26 and any GT.M versions you may have installed on the system.
Removing an installed YottaDB release
Assuming $ydb_dist points to the directory where YottaDB is installed:
- Cleanly shut down all application processes using that release.
mupip rundown && mupip rundown -relinkctl
- Ensure that there are no gtcm* or gtmsecshr processes active.
sudo lsof | grep $ydb_distto ensure there are no open files.
- Delete the directory with
sudo rm -rf $ydb_dist
Upgrading to YottaDB r1.28
As YottaDB r1.28 is upward compatible from YottaDB r1.26, GT.M V6.3-006 and GT.M V6.3-007, the minimal upgrade steps are:
- Install YottaDB r1.28.
- Install plugins you use.
- Recompile object code, and recreate shared libraries where appropriate.
- If you are using encryption, compile and install the reference implementation plugin or your customized plugin.
- Cleanly shut down the application and ensure that the database files are shut down using mupip rundown from the prior release.
- Switch journal files with the new YottaDB release.
- Start using the new YottaDB release.
If the database has triggers defined with non-canonical numbers, or numbers specified as strings with any version prior to r1.26, or if you are unsure, extract the trigger definitions, delete existing triggers, and reload the trigger definitions. Issue [#430] from r1.26 has a series of steps you can copy and execute.
To upgrade from older GT.M releases, first upgrade to GT.M V6.0-000 or later and follow the steps above, or contact your YottaDB support channel for assistance and guidance.
A more sophisticated upgrade technique is:
- Install YottaDB r1.28.
- Create a new replicated instance of your application (on the same system or a different system).
- Assuming the existing instance is A, and the new instance is B, upgrade B to r1.28 and start replicating from A to B.
- Once B catches up, switchover so that B is in a primary role replicating to A.
- Once you are satisfied with B, remove (or upgrade) A.
YottaDB r1.28 includes the following changes from YottaDB r1.26.
|(#469)||Language||$FNUMBER() formatting code
|(#471)||Other||Sourcing ydb_env_set and ydb_env_unset provides more information in the event of an error|
|(#472)||Language||ydb_data_s()/ydb_data_st() return YDB_DATA_ERROR in case of error|
|(#475)||Language||ydb_lock_incr_s(), ydb_lock_decr_s(), and ydb_lock_s() check for too many subscripts|
|(#477)||Language||NEW accepts $TEST as an argument|
|(#480)||Language||Incrementing a variable whose initial value is zero or undefined with a seven or more digit increment returns the correct string value|
To facilitate application internationalization, $FNUMBER() accepts the following formatting code (i.e., as the second argument):
".": inserts periods (
".") every third position to the left of the decimal within the number and uses a comma (
",") as the decimal separator.
When ydb_data_s() or ydb_data_st() get an error, the return value in *ret_value is set to YDB_DATA_ERROR. Previously the return value was zero which is a valid return value. [#472]
ydb_lock_incr_s(), ydb_lock_decr_s(), and ydb_lock_s() validate that the number of subscripts provided does not exceed the maximum. Previously specifying too many subscripts resulted in uninformative assert failures and buffer overflows. [#475]
Using $INCREMENT(), ydb_incr_s(), or ydb_incr_st() to increment a variable whose initial value is zero or undefined with an increment of seven digits or more returns the correct string value. Previously, while the numeric value of the result was correct, the string value was the empty string (
""). Depending on how the result was used, it could have been wrong. [#480]
- With the %YDBENV program (invoked while sourcing the
ydb_env_unsetfiles), the error output includes the output of
ZSHOW "*"in addition to the single line error message. Previously, it was only the single line error message, which provided less information when troubleshooting. [#471]
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts and no Back-Cover Texts.
This document contains a description of YottaDB and the operating instructions pertaining to the various functions that comprise the software. This document does not contain any commitment of YottaDB LLC. YottaDB LLC believes the information in this publication is accurate as of its publication date; such information is subject to change without notice. YottaDB LLC is not responsible for any errors or defects.