16.20 - Configuring the udfGPL Server Memory Limit - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQL External Routine Programming

Advanced SQL Engine
Teradata Database
Release Number
Release Date
April 2020
Content Type
Programming Reference
Publication ID
English (United States)

As mentioned in the Installing the udfGPL Library, you can adjust the memory limit of the udfGPL server, within which ExecR operates.

Run the cufconfig GDO (Globally Distributed Object) utility and look for the GPLUDFServerMemSize field, if you wish to modify the default 32 MB memory limit of the udfGPL server. Recommended values for the GPLUDFServerMemSize field are in the range of 1 - 3 GB (1073741824 to 3221225472 bytes). Lack of memory might result in errors during ExecR execution.

The following example assumes default settings on a system, and shows how to check and change the GPLUDFServerMemSize value to 1 GB.

  1. Connect as root user to the target system, and use a Bash shell command line for the following.
  2. Inspect the current cufconfig parameters and their values by executing the command:
    /usr/tdbms/bin/cufconfig -o
  3. Locate the GPLUDFServerMemSize field in the output listing. It should appear among the output as follows:
       GPLUDFServerMemSize: 33554432
    This means the GPLUDFServerMemSize size is 33554432 bytes / 1024 (KB/byte) / 1024 (MB/KB) = 32 MB.
  4. To change this value to 1 GB, create a text file in the /tmp directory of every node on the server, so that this file contains the line: GPLUDFServerMemSize: 1073741824, using the following command:
    psh "printf 'GPLUDFServerMemSize: 1073741824' > /tmp/ccChange.txt"
    Memory size must be specified in bytes.
  5. Invoke the cufconfig utility to accept the new setting by executing the following command:
    psh /usr/tdbms/bin/cufconfig -i -f /tmp/ccChange.txt
  6. You can inspect the result of your action by typing again, using the following command:
    /usr/tdbms/bin/cufconfig -o
Changes in the GPLUDFServerMemSize field take effect the following time an ExecR query is executed.