What is In-Place Masking (IPM)? 

In-Place-masking (IPM), also known as in-database masking, is the direct replacement of sensitive data within a database with masked or obfuscated values without creating a separate copy of the data.

GenRocket's In-Place Masking (IPM) feature uses Synthetic Data Replacement (SDR) to replace sensitive data (such as Names, SSNs, or Credit Card Numbers) with synthetic values directly in the source database, eliminating the need for masked copies and ensuring sensitive data protection. IPM provides two modes for masking:

  • Single-Table Masking - Mask one or more columns within a single table.
  • Multi-Table Masking (Horizontal Scaling) - Mask multiple tables in one or more databases simultaneously.
      

IPM is designed for clients transitioning from the standard TDM process to GenRocket’s fully synthetic test data generation. Therefore, GenRocket’s IPM is suitable for those moving from TDM applications but does not aim to replicate or support all features, such as virtualization, data reservation, and refresh. Instead, it serves as a bridge, enabling integration and interoperability between GenRocket’s synthetic data generation and masking capabilities and other enterprise data management processes.

  

Note: In-Place Masking differs from Data Subsetting and Masking, which involves copying a data subset to a target database and masking it. For more, see the G-Subset Overview article. Next, let’s review the key benefits of IPM.


In This Article


IPM Benefits

  • Security - Protects sensitive data without creating duplicate copies.
  • Flexibility - Supports single-table and multi-table workflows based on project needs.
  • Data Integrity - Maintains full referential integrity across related tables. 
  • Compliance - Meet privacy laws (GDPR, HIPAA, PCI) with irreversible synthetic replacement. 
  • Performance - Parallel processing at scale (millions of rows per minute).
  • PII Discovery & Automation - Built-in PII discovery and sensitive data detection.
  • Reusability - Create a secure, masked "gold copy", which can then be used to create subsets to provision data for other teams.
  • Efficiency - Faster turnaround for compliance, testing, and data sharing.

IPM Sample Use Cases

  • Compliance & Security – Protect PII/PHI in accordance with GDPR, HIPAA, and PCI.
  • Testing & Development – Provide masked production-like data to dev, QA, and UAT environments.
  • Legacy Systems - Mask data directly in place when duplicating isn’t practical. 
  • Data Migration & Integration – Secure data before moving to the cloud or sharing with partners.
  • Analytics & Reporting Test Data – Mask sensitive data directly in your database to create secure, realistic test data for analytics, reporting, and machine learning testing requirements..
  • Training & Demos – Use safe, realistic data for employee training and customer demonstrations.

Currently Supported Databases

  • SQL Server (MS SQL)
  • Oracle
  • Coming Soon! Support for PostgreSQL, MySQL, MariaDB, DB2, and Snowflake to come in future releases.

System Requirements

  • SFTP Server- Required for mapping use cases. 
    • Note: To learn more about mapping, click here.
  • Operating System- Linux Only
    • Note: Mac has not been tested by the GenRocket team.
        
  • Java Runtime Environment Supported Versions - Java 8 (except 1.8u20) , 11, 17, and 21
  • Minimum Recommended System Specifications:
    • 16 CPUs
    • 32 GB of RAM
    • 500 GB to 1 TB of Storage

Required GenRocket Components and Features

The following features are required to use IPM: 

IPM Performance Benchmarks

IPM Best Practices

  • Always create a complete copy of your database (a "backup") before applying in-place masking to prevent data loss.

  • Start small with a single table or in a lower environment first. 

  • Define and enforce masking rules to ensure compliance with relevant regulations.

  • UsData Column Profiling to detect all sensitive columns automatically. 

  • One Project = 1 Database

IPM Key Features

GenRocket offers the current IPM capabilities.

Multi-Threaded Processing 

The GenRocket IPM solution is optimized for parallel processing by utilizing stored procedures and stored functions that it dynamically generates, tailored to the specific database platform on which it operates. This allows it to process millions of rows of data with maximum performance and efficiency.

Single Table Masking within a Single Database 

Perform IPM on one or more columns within a single table across the entire dataset. For example, mask columns (e.g., date of birth, ssn, name) in a single high-risk table (e.g., customer) for a specific project.



Multi-Table Masking in Parallel within a Single Database 

Using GenRocket's IPM Horizontal Scaling feature, IPM can be performed on multiple tables within the same database in parallel and across multiple servers, enabling highly scalable IPM processing. For example, mask multiple tables or an entire schema in parallel before creating a shared testing or analytics environment.



Multi-Table Masking in Parallel across Different Databases 

GenRocket’s IPM Horizontal feature can also perform IPM on multiple tables across different databases in parallel, across multiple servers, enabling enterprise-wide IPM processes within heterogeneous environments. A simple example would be masking the name and ssn columns within tables residing in two different databases, where the values must remain consistent across both.


Data Consistency Across Tables and Databases 

GenRocket IPM ensures data consistency within a table, across tables in the same database, and even across multiple databases. It achieves this through a combination of approaches known as mapping and bucketing, which are discussed in more detail here.

How Does Horizontal Scaling Work?

Horizontal Scaling allows users to mask multiple tables in the same or different databases in parallel and follows a client-server architecture. It is a scalable option that can mask multiple tables across one or more databases. In contrast, single-table masking is ideal for masking a single table’s columns in a single database.

For Horizontal Scaling, users must initiate an IPM Server and the desired number of IPM Clients to manage in-place masking operations for multiple tables. The setup requires assistance from GenRocket, so this section will only provide a brief overview of the capability.


The following terms apply to Horizontal Scaling:

  • IPM Server - Orchestrates the distribution and assignment of masking tasks to multiple IPM Clients.

  • IPM Client - Executes masking tasks independently. Each IPM Client connects to a database and performs a masking task on a single table. The client executes the tasks in parallel and reports progress back to the IPM Server.

  • Task - Perform masking on a single table.

  • Logs - Logs for each client will be sent to the Server and can be accessed as needed to view IPM activity.

Note: Both the IPM Server and multiple IPM Clients can run on a single machine for parallel execution of IPM tasks.

Additional IPM Articles

The following articles provide additional information about IPM: 

Article

Description

In-Place Masking (IPM) Performance Benchmarks

See environment details and performance benchmarks for MS SQL and Oracle databases.

IPM Mapping and Bucketing - Data Consistency Across Tables and Databases

Learn how IPM ensures data consistency across tables and databases.

IPM Prunable Columns - Handling Duplicate Values in Columns

Learn about how the isPrunable column option can be used to make sure duplicate values are pruned and every matching value for that key is masked with the same generated (synthetic) value.


What's Next / How to Get Help

In-Place Masking (IPM) requires specific setup steps, including database permissions that require additional assistance. Please reach out to us at support@genrocket.com, and our team will provide everything you need to begin using this feature.

Note: A new IPM customer must purchase navigator services to set up IPM. During setup, all necessary documents, including permission details and other relevant materials, will be shared directly with the requesting customer.