LIBNAME Domains

LIBNAME domains define the primary directory path and can, if desired, define other directories for placing the data and index components of SPD Server tables. The METAPATH=, DATAPATH=, and INDEXPATH= LIBNAME definition options determine the placement of SPD Server's component and partition files.

Data and Index Separation

The section on File System Performance Concepts discussed how distributing I/O load across different disk drives can improve performance. Further load distribution can be achieved by separating data and index components of SPD Server tables. To do this, use the DATAPATH= and INDEXPATH= options when configuring LIBNAME domains.
For example, when performing complex WHERE clause evaluations, multiple threads are active on index component files and the data component file at the same time. Splitting the index and data file components onto different volumes can improve performance by reducing disk contention and increasing the level of parallelism down to the disk access level.
A word of caution when using DATAPATH= and INDEXPATH= options to distribute the data and index components: take extra care when performing and restoring disk backups of SPD Server tables using a system backup and restore utility. When making a backup, ensure that the metadata, data, and index component partition files are of the same generation and are in their respective directories.
When restoring a backup, restore the component partitions to the same directories where they were created. To avoid this restore problem, create symbolic links with the original directory path that point to the restore directories. Of course, if the components are not separated using the path options, this restore issue does not apply.
The backup and restore issues are not an issue when using the SPD Server Backup and Restore Utilities. These utilities resolve any component files when backing up or restoring tables. For more information, see SAS Scalable Performance Data (SPD) Server Backup and Restore Utilities in SAS Scalable Performance Data Server: Administrator's Guide.

Configuring a LIBNAME Domain

Suppose a user has four volumes designated. Volumes exist for (1) SPD Server metadata, (2) data components, (3) index components, and (4) proxy working storage, as follows:
  • /dmart_domain is a 500 GB volume
  • /dmart_data is a 3 TB volume
  • /dmart_index is a 3 TB volume
  • /spds_work is a 1 TB volume
The user wants to configure a LIBNAME domain called dmart. Dmart will use /dmart_domain for the primary directory, dmart data components will reside in /dmart_data, and dmart index components will reside in /dmart_index. The /spds_work volume should be configured for proxy working storage.
The configuration is made in two steps:
  1. In the server parameter file (-parmfile) enter the following line:
    WORKPATH=/spds_work; 
  2. In the SPD Server LIBNAME file (-libnamefile) enter the following domain definition:
    ibname=dmart
       path=/dmart_domain
       roptions="datapath=('/dmart_data')
       indexpath=('/dmart_index')";