Sorry, we didn't find any relevant articles for you.

Send us your queries using the form below and we will get back to you with a solution.

In-Place Masking (IPM) Performance Benchmarks

Overview

This article presents a benchmarking analysis of GenRocket’s In-Place Masking (IPM) and Horizontal Scaling capabilities across tables of varying sizes in both SQL Server and Oracle databases.

Table Column Glossary of Terms

  • Execution Model - How masking was executed - Single Table or Mult-Table (Horizontal Scaling).
  • Total Rows (table size) - The number of records / rows present in the table; M stands for million, and B stands for billion.
  • Masking Columns - The number of columns getting masked in the table.
  • Threads - The number of threads involved in the generation and masking of synthetic data.
  • Time Spent - The time taken for IPM to execute on the tables.
  • Throughput (Rows / Minute) - The amount of time it took to mask rows per minute; M stands for million.

SQL Server

Server Configuration

GenRocket Server Configuration:

  • AWS EC2 Instance - 32 CPUs, 128 GB RAM
  • 750GB SSD Storage Disk General Purpose SSD (GP3)

Database Server Configuration:

  • AWS RDS Instance - 16 CPUs, 64 GB RAM
  • 3TB - 10TB Expandable Storage Disk
  • Provisioned IOPS SSD (io2) Disk Type with 10000 IOPS

Masking Performance Summary - 10M vs. 50M vs. 100M Rows

The results in the table below reflect the following: 

  • Single Table results reflect masking only one table in the database. 
  • Horizontal Scaling (Multiple Tables in parallel) results reflect masking of three tables in parallel (tables with 10M, 50M, 100M rows concurrently) using 1 IPM Server and 3 IPM Clients.
Execution Model Number of Tables Total Rows Masking Columns Threads Time Spent Throughput (Rows / Minute)
Single Table 1 Table 10M 5 8 data / 8 masking 2m 07s 4.72 M
50M 6 16 data/ 8 masking 12m 17s 4.07 M
100M 5 16 data / 8 masking 23m 18s 4.29 M
Multi-Table (Horizontal Scaling)

3 Tables

(in Parallel)

10M 5 8 data/ 8 masking 3m 47s 5.04 M
50M 6 8 data/ 8 masking 22m 58s 2.18 M
100M 5 8 data/ 8 masking 1h 11m 34s 1.40 M

*Increasing the thread count can improve performance, provided the hardware supports it.

Oracle

Server Configuration

GenRocket Server Configuration:

  • AWS EC2 Instance - 32 CPUs, 128 GB RAM
  • 750GB SSD Storage Disk General Purpose SSD (GP3)

Database Server Configuration:

  • AWS RDS Instance - 16 CPUs, 64 GB RAM
  • 3TB - 15TB Expandable Storage Disk
  • Provisioned IOPS SSD (io2) Disk Type with 20000 IOPS

Masking Performance Summary - 10M vs. 50M vs. 100M Rows

The results in the table below reflect the following: 

  • Single Table results reflect masking only one table in the database
  • Horizontal Scaling (Multiple Tables in parallel) results reflect masking of three tables in parallel (tables with 10M, 50M, 100M rows concurrently) using 1 IPM Server and 3 IPM Clients.
Execution Model Number of Tables Total Rows Masking Columns Threads Time Spent Throughput (Rows / Minute)
Single 1 Table 10M 5 8 data / 8 masking 3m 44s 2.68 M
50M 6 16 data / 8 masking 13m 53s 3.60 M
100M 5 16 data / 8 masking 32m 55s 3.04 M
Multi-Table (Horizontal Scaling)

3 Tables

(In Parallel)

10M 5 8 data / 8 masking 1m 59s 2.64 M
50M 6 8 data/ 8 masking 10m 26s 4.79 M
100M 5 8 data / 8 masking 1h 11m 25s 1.40 M

*Increasing the thread count can improve performance, provided the hardware supports it.