PingDataSync synchronizes data between a directory server and a relational database management system (RDBMS) with a Server SDK extension. PingDataSync provides multiple configuration options, such as advanced filtering (fractional and subtree), attribute and distinguished name (DN) mappings, transformations, correlations, and configurable logging.

To support synchronizing changes, the database must be configured with a change tracking mechanism. An approach involving triggers, (one trigger per table) to record all changes to a change log table, is recommended. The database change log table Ping Identity should record the type of change (INSERT, UPDATE, DELETE), the specific table name, the unique identifier for the changed row, the database entry type, the changed columns (from the source table), the modifier’s name, and the changetimestamp.

PingDataSync delegates the physical interaction with the database to a user-defined extension, which has full control of the SQL queries. The extension layer provides flexibility in how the mapping semantics between the LDAP environment and the relational database environment are defined. The connection management, pooling, retry logic, and other boilerplate code are handled internally by PingDataSync.

The RDBMS Synchronization (DBSync) implementation does not support failover between different physical database servers. Most enterprise databases have a built-in failover layer from which PingDataSync can point to a single virtual address and port and still be highly available. A single RDBMS node can scale to multiple directory server endpoints.