Unbundle installation of components not common to the majority of users
Final Release Note
NO RELEASE NOTE NEEDED because other Issues ([#457 (closed)], [#458 (closed)], [#521 (closed)]) document functionality released in r1.30 and [#625 (closed)] documents functionality deferred to r1.32.
Description
For production deployments, it is recommended that only the minimum required components/files/functions be installed; to build up what is needed rather than to strip out what is not needed. To that end:
- While the traditional usage of YottaDB has been M applications, the trend is towards non-M applications. Ergo, the installation of YottaDB components that are primarily useful to M applications should be optional rather than automatic.
- Functionality that is not commonly used should be optional.
YottaDB components useful primarily to M users are:
- Unicode support: UTF-8 mode is primarily useful to M programs. Programs written in C and other languages manage character encoding in non-M application code, and use YottaDB only to store and receive data.
- M help: the
gtmhelp.dat
database file. - Utility programs (“% routines”) fall roughly into two categories: those used to configure, and manage the database, and those used by and to manage MUMPS programs. While routines used used to configure and manage the database (such as GDE, the global utilities, and system management utilities) are relevant to all users of YottaDB, others (date and time utilities, conversion utilities, mathematic utilities, string utilities, routine utilities, and Unicode utilities) are relevant only to M applications.
Furthermore:
- As the majority of YottaDB applications do not use database encryption the
source.tar
for the encryption plugin can be optionally installed. - The
%DSEWRAP
utility is deprecated, and its installation can be optional.
Of course, any components in the above that are used by non-M users should not be optional. For example, if there is content in gtmhelp.dat
that is used by %PEEKBYNAME()
that content should not be optional, even if the content relating to M programming is optional.
As a fringe benefit for those environments where space is tight, this should trim a few MB from an installed YottaDB directory.
Draft Release Note
Installation of deprecated components is optional, where previously they were automatic. Installation of plugins can now be done via the ydbinstall.sh
script. The ydbinstall.sh
script supports the following options:
-
--encplugin
– compile and install the encryption plugin -
--nodeprecated
– Don't install deprecated components, specifically%DSEWRAP
-
--octo
– download and install the Octo plugin -
--posix
– download and install the POSIX plugin -
--zlib
– download and install the zlib plugin
Note that Unicode support is already optional, invoked with the --utf8
command line option, and ydbinstall.sh --help
provides a list of all options. [#306 (closed)]