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.
Article Feedback: Was this helpful?
Give feedback