Use ADB DDBoost plugin

Overview

ADB DDBoost is a plugin-connector for native usage of the Dell EMC Data Domain storage system with Greenplum utilities for logical data backup (gpbackup) and restore (gprestore).

When the DDBoost plugin is used with gpbackup and gprestore, it connects to the Data Domain Platform server. To integrate with Data Domain Platform, the plugin requires the libDDBoost.so library version 7.7, which is supplied as part of the Dell DDBoostSDK 7.7 package. This library is proprietary and should be obtained through Dell Support or Dell Data Domain representatives in your country. Due to deduplication of data provided by the library, the DDBoost plugin allows you to significantly accelerate backup operations and reduce the physical storage usage.

NOTE
  • For more information on the ADB DDBoost plugin architecture, advantages, and load testing results, see Arenadata technical blog.

  • The DDBoost plugin is available in the Enterprise version of ADB.

Installation and configuration

To install the ADB DDBoost plugin, follow the steps:

  1. Install the adb-ddp-plugin package on all cluster hosts under the user with sudo privileges. Below is an example of installation via the APT package manager:

    $ sudo apt install adb-ddp-plugin

    As a result of the successful command execution, a plugin executable file is added to the following location: $GPHOME/bin/adb_ddp_plugin.

  2. Put the libDDBoost.so library to the lib directory on all cluster hosts.

  3. Connect to the ADB coordinator host under the gpadmin user:

    $ sudo su - gpadmin
  4. On the coordinator host, create a YAML configuration file in the /home/gpadmin directory (for example, adb_ddp_plugin.yaml). A file structure and its description are given below.

    executablepath: /usr/lib/ggdb/bin/adb_ddp_plugin
    options:
      hostname: "testhost"
      username: "testuser"
      password: "XXXXXXXXXXXX"
      storage_unit: "testunit"
      directory: "testdir"
      write_buffer_size: "1048576"
      read_buffer_size: "1048576"
      log_level: "DEBUG"
      log_path: "/home/gpadmin"
Fields of the plugin configuration file
Name Description Default Required

executablepath

An absolute path to the plugin in the file system of ADB hosts (along with the plugin executable file name). The plugin should be installed on all cluster hosts in the same directory.

The default path to the plugin executable file is $GPHOME/bin/adb_ddp_plugin

 — 

Yes

hostname

An IP address or name of the host that provides operations with DDBoost.

Can contain no more than 30 characters

 — 

Yes

username

A name of the user who is granted permissions to work with DDBoost. The user is configured on the DDBoost side. This is neither operating system nor ADB user.

Can contain no more than 30 characters

 — 

Yes

password

A password of the user who is granted permissions to work with DDBoost

 — 

Yes

storage_unit

A name of the storage unit that is configured on the DDBoost side

 — 

Yes

directory

A name of the directory in the DDBoost file system. That directory is used to store all backup files created when the gpbackup utility is run with the DDBoost plugin. In the /<storage_unit>/<directory> folder, the plugin automatically creates all subdirectories corresponding to the creation date and time of each backup: /<storage_unit>/<directory>/YYYYMMDD/YYYYMMDDHHmmSS/

 — 

Yes

write_buffer_size

A buffer size for writing data to DDBoost (in bytes).

Values from the following range are allowed:

64 <= write_buffer_size <= 1048576

 — 

Yes

read_buffer_size

A buffer size for reading data from DDBoost (in bytes).

Values from the following range are allowed:

64 <= read_buffer_size <= 1048576

 — 

Yes

log_level

A log level. Possible values:

  • DEBUG

  • INFO

  • NOTICE

  • WARN

  • ERROR

  • FATAL

WARN

No

log_path

An absolute directory path to write plugin logs. The adb_ddp_plugin.log file is created in the specified directory when the plugin is used

/home/gpadmin/gpAdminLogs

No

Usage examples

gpbackup

To use the ADB DDBoost plugin when creating backups via the gpbackup utility, specify the --plugin-config <yaml_path> command argument, where <yaml_path> is an absolute path to the plugin configuration file in YAML format.

The following example shows how to back up one table of the adb database:

  1. Connect to the adb database on ADB coordinator under the gpadmin user (for example, via psql). Using the psql command \dt, ensure the required table (public.test in the given example) exists in the database:

    \dt

    Result:

                             List of relations
     Schema |      Name       | Type  |  Owner  |       Storage
    --------+-----------------+-------+---------+----------------------
     public | spatial_ref_sys | table | gpadmin | heap
     public | test            | table | gpadmin | heap
     public | test2           | table | gpadmin | ao_column
     public | test3           | table | gpadmin | ao_column
    (4 rows)
  2. Disconnect from adb and run gpbackup with the --plugin-config parameter under the gpadmin user. Note that the --include-table parameter allows you to back up one table:

    $ gpbackup --dbname adb --no-compression --single-data-file --include-table public.test --plugin-config /home/gpadmin/adb_ddp_plugin.yaml
    TIP

    When the DDBoost plugin is used along with gpbackup, it is recommended to set the backup mode "all segment tables — one file" (--single-data-file). Do not use the parallel backup mode (--jobs) because of its extremely low write performance.

    In the command output, note the backup timestamp, which will be used as the backup directory and will be needed when restoring data:

    [INFO]:-Backup Timestamp = 20251112160114

    If the data backup succeeds, the command output ends with the following message:

    [INFO]:-Backup completed successfully
  3. Ensure that the backup files are generated and stored on the selected Data Domain Platform server. To do this, open the /<storage_unit>/<directory>/YYYYMMDD/YYYYMMDDHHmmSS directory on the server, where:

    • <storage_unit> and <directory> — values of the corresponding fields from the plugin YAML configuration file.

    • YYYYMMDD — backup creation date.

    • YYYYMMDDHHmmSS — backup creation date and time. It is a timestamp that will be used as the --timestamp value when restoring data from the current backup.

    $ ls ./<storage_unit>/<directory>/20251112/20251112160114/

    The directory contents are as follows:

    gpbackup_0_20251112160114                   gpbackup_3_20251112160114
    gpbackup_0_20251112160114_toc.yaml          gpbackup_3_20251112160114_toc.yaml
    gpbackup_1_20251112160114                   gpbackup_4_20251112160114
    gpbackup_1_20251112160114_toc.yaml          gpbackup_4_20251112160114_toc.yaml
    gpbackup_20251112160114_config.yaml         gpbackup_5_20251112160114
    gpbackup_20251112160114_metadata.sql        gpbackup_5_20251112160114_toc.yaml
    gpbackup_20251112160114_plugin_config.yaml  gpbackup_6_20251112160114
    gpbackup_20251112160114_report              gpbackup_6_20251112160114_toc.yaml
    gpbackup_20251112160114_toc.yaml            gpbackup_7_20251112160114
    gpbackup_2_20251112160114                   gpbackup_7_20251112160114_toc.yaml
    gpbackup_2_20251112160114_toc.yaml

    On the coordinator host, in the $COORDINATOR_DATA_DIRECTORY/backups/YYYYMMDD/YYYYMMDDHHmmSS directory, a report about the completed backup is available with information about the number of objects in the backup copy:

    $ cat /data1/master/gpseg-1/backups/20251112/20251112160114/gpbackup_20251112160114_report
    Example of a report for a successful one-table backup
    Greengage Database Backup Report
    
    timestamp key:         20251112160114
    gpdb version:          7.3.0+dev.845.g704bb9a9ef build 256+git704bb9a
    gpbackup version:      1.30.6
    
    database name:         adb
    command line:          gpbackup --dbname adb --no-compression --single-data-file --include-table public.test --plugin-config /home/gpadmin/adb_ddp_plugin.yaml
    compression:           None
    plugin executable:     adb_ddp_plugin
    backup section:        All Sections
    object filtering:      Include Table Filter
    includes statistics:   No
    data file format:      Single Data File Per Segment
    incremental:           False
    
    start time:            Wed Nov 12 2025 16:01:14
    end time:              Wed Nov 12 2025 16:01:52
    duration:              0:00:38
    
    backup status:         Success
    
    segment count:         8
    
    count of database objects in backup:
    constraints          0
    conversions          0
    default privileges   0
    event triggers       0
    indexes              0
    policies             0
    rules                0
    statistics_ext       0
    sequences            0
    tables               1
    triggers             0
    views                0

gprestore

To use the ADB DDBoost plugin when restoring data via the gprestore utility, specify the --plugin-config <yaml_path> command argument, where <yaml_path> is an absolute path to the plugin configuration file in YAML format.

The following example shows how to restore the public.test table, for which a backup was previously created:

  1. Connect to the adb database on ADB coordinator under the gpadmin user (for example, via psql). Drop the public.test table:

    DROP TABLE test;
  2. Ensure the table does not exist via the psql command \dt:

    \dt

    Result:

                             List of relations
     Schema |      Name       | Type  |  Owner  |       Storage
    --------+-----------------+-------+---------+----------------------
     public | spatial_ref_sys | table | gpadmin | heap
     public | test2           | table | gpadmin | ao_column
     public | test3           | table | gpadmin | ao_column
    (3 rows)
  3. Disconnect from adb and run gprestore with the --plugin-config parameter under the gpadmin user. Note that the --timestamp value should contain the backup creation timestamp in the YYYYMMDDHHmmSS format:

    $ gprestore --timestamp 20251112160114 --plugin-config /home/gpadmin/adb_ddp_plugin.yaml --include-table public.test

    If the data restore succeeds, the command output ends with the following message:

    [INFO]:-Restore completed successfully
  4. Connect to the adb database again and check that the public.test table is available:

    \dt

    Result:

                             List of relations
     Schema |      Name       | Type  |  Owner  |       Storage
    --------+-----------------+-------+---------+----------------------
     public | spatial_ref_sys | table | gpadmin | heap
     public | test            | table | gpadmin | heap
     public | test2           | table | gpadmin | ao_column
     public | test3           | table | gpadmin | ao_column
    (4 rows)
Found a mistake? Seleсt text and press Ctrl+Enter to report it