Tanzu Greenplum Platform Extension Framework 7.0.0-beta.1

About the Configuration Files

Last Updated February 14, 2025

There are two types of user-customizable configuration files in PXF. First are the PXF cluster configurations, the second are PXF service group configurations.

The PXF cluster configurations for the default cluster can be found at $PXF_BASE/clusters/default/conf and include the following files:

  • cluster.txt - PXF cluster configuration properties
  • hosts.txt - List of hosts in the PXF cluster

The default PXF service group configurations for the default cluster can be found at $PXF_BASE/clusters/default/groups/default/conf includes these user-customizable configuration files:

  • pxf-application.properties - PXF Service application configuration properties
  • pxf-env.sh - PXF command and JVM-specific runtime configuration properties
  • pxf-log4j2.xml - PXF logging configuration properties
  • pxf-profiles.xml - Custom PXF profile definitions

PXF Cluster Configurations

PXF cluster configuration files are required for each PXF cluster in the PXF deployment and lives in the cluster configuration directory. For the default PXF cluster, it can be found at $PXF_BASE/clusters/default/conf.

cluster.txt

The cluster.txt file exposes the following PXF configuration properties:

ParameterDescriptionDefault Value
cluster.nameThe name of the PXF cluster (should be consistent with the cluster folder name)default
cluster.collocatedIdentifies whether or not the PXF Services should be run on the same hosts as the Greenplum clustertrue
group.default.portsThe port number where the PXF Services listen for requests. This value is consistent across all hosts in the PXF cluster.5888

hosts.txt

If the cluster.collocated property inside cluster.txt is set to true, then the hosts.txt file should not exist or be empty. If the hosts.txt file is not empty, it will be ignored in this situation.

If the cluster.collocated property is set to false, then the hosts.txt file should contain a list of hosts that make up the external PXF cluster. Each hostname in the cluster should be on a separate line, and each hostname can be an IPv4 address, an alias hostname, or a Fully Qualified Domain Name (FQDN).

For example, to set the PXF external cluster to run on external-pxf-host1 and external-pxf-host2, the hosts.txt file should contain:

external-pxf-host1
external-pxf-host2

Modifying Cluster Level Configurations

When you update a PXF cluster configuration file, you must first stop PXF, make any necessary modifications, synchronize the changes to all PXF hosts and then start PXF again for the changes to take effect.

Procedure:

  1. Stop PXF on all PXF hosts:

    gpadmin@coordinator$ pxf cluster stop
    
  2. Update the PXF cluster configuration file(s) of interest.

  3. Synchronize the configuration to all hosts in the PXF cluster:

    gpadmin@coordinator$ pxf cluster sync
    
  4. Start PXF on all PXF hosts:

    gpadmin@coordinator$ pxf cluster start
    

PXF Service Group Configurations

Each PXF cluster requires at least one PXF service group. For the default PXF cluster, the default PXF service group configuration files can be found at $PXF_BASE/clusters/default/groups/default/conf.

In PXF 7.0.0-beta.1, there can only be one PXF service group in the PXF cluster.

pxf-application.properties

The pxf-application.properties file exposes these PXF Service application configuration properties:

ParameterDescriptionDefault Value
pxf.connection.timeoutThe Tomcat server connection timeout for read operations (-1 for infinite timeout).5m (5 minutes)
pxf.connection.upload-timeoutThe Tomcat server connection timeout for write operations (-1 for infinite timeout).5m (5 minutes)
pxf.max.threadsThe maximum number of PXF tomcat threads.200
pxf.task.pool.allow‑core‑thread‑timeoutIdentifies whether or not core streaming threads are allowed to time out.false
pxf.task.pool.core-sizeThe number of core streaming threads.8
pxf.task.pool.queue-capacityThe capacity of the core streaming thread pool queue.0
pxf.task.pool.max-sizeThe maximum allowed number of core streaming threads.pxf.max.threads if set, or 200
pxf.log.levelThe log level for the PXF Service.info
pxf.fragmenter-cache.expirationThe amount of time after which an entry expires and is removed from the fragment cache.10s (10 seconds)
server.addressThe PXF server listen address.0.0.0.0

To change the value of a PXF Service application property, you may first need to add the property to, or uncomment the property in, the pxf-application.properties file before you can set the new value.

pxf-env.sh

The pxf-env.sh file exposes these PXF JVM configuration properties:

ParameterDescriptionDefault Value
JAVA_HOMEThe path to the Java JRE home directory./usr/java/default
PXF_LOG_DIRThe PXF log directory.$PXF_BASE/clusters/default/groups/default/logs
PXF_RUN_DIRThe PXF run directory.$PXF_BASE/clusters/default/groups/default/run
PXF_JVM_OPTSThe default options for the PXF Java virtual machine.-Xmx2g -Xms1g
PXF_OOM_KILLActivate/deactivate PXF auto-termination on OutOfMemoryError (OOM).true (activated)
PXF_OOM_DUMP_PATHThe absolute path to the dump file that PXF generates on OOM.No dump file (empty)
PXF_LOADER_PATHAdditional directories and JARs for PXF to class-load.(empty)
LD_LIBRARY_PATHAdditional directories and native libraries for PXF to load.(empty)

To set a new value for a PXF JVM configuration property, you may first need to uncomment the property in the pxf-env.sh file before you set the new value.

pxf-log4j2.xml

The pxf-log4j2.xml file configures PXF and subcomponent logging. By default, PXF is configured to log at the info level, and logs at the warn or error levels for some third-party libraries to reduce verbosity.

The Logging advanced configuration topic describes how to enable more verbose client-level and server-level logging for PXF.

pxf-profiles.xml

PXF defines its default profiles in the PXF server application JAR file. If you choose to add a custom profile, you configure the profile in pxf-profiles.xml.

Modifying Service Group Level Configuration

When you update a PXF service group configuration file, you must synchronize the changes to all PXF hosts and then restart PXF for the changes to take effect.

Procedure:

  1. Update the PXF service group configuration file(s) of interest.

  2. Synchronize the configuration to all hosts in the PXF cluster:

    gpadmin@coordinator$ pxf cluster sync
    
  3. Restart PXF on all PXF hosts:

    gpadmin@coordinator$ pxf cluster restart