SlideShare a Scribd company logo
War story
Removing offensive language
from Percona Toolkit
Sveta Smirnova
Percona
March 27, 2025
Sveta Smirnova (Percona) War story: removing offensive language March 27, 2025 1 / 22
Percona Toolkit in Past
Maatkit, Aspersa by Baron Schwartz
Percona Toolkit
▶ Baron Schwartz
2008-2016 Daniel Nichter
-2016 Frank Cizmich
2016-2022 Carlos Salguero
2022- Sveta Smirnova
Sveta Smirnova (Percona) War story: removing offensive language March 27, 2025 2 / 22
Percona Toolkit Today
pt-align
pt-archiver
pt-config-diff
pt-deadlock-logger
pt-diskstats
pt-duplicate-key-checker
pt-eustack-resolver
pt-fifo-split
pt-find
pt-fingerprint
pt-fk-error-logger
pt-galera-log-explainer
pt-heartbeat
pt-index-usage
pt-ioprofile
pt-k8s-debug-collector
pt-kill
pt-mext
pt-mongodb-index-check
pt-mongodb-query-digest
pt-mongodb-summary
pt-mysql-summary
pt-online-schema-change
pt-pg-summary
pt-pmp
pt-query-digest
pt-replica-find
pt-replica-restart
pt-secure-collect
pt-show-grants
pt-sift
pt-slave-delay
pt-slave-find
pt-slave-restart
pt-stalk
pt-summary
pt-table-checksum
pt-table-sync
pt-table-usage
pt-upgrade
pt-variable-advisor
pt-visual-explain
Sveta Smirnova (Percona) War story: removing offensive language March 27, 2025 3 / 22
Percona Toolkit Today: The Most Popular Customer Tools
pt-align
pt-archiver
pt-config-diff
pt-deadlock-logger
pt-diskstats
pt-duplicate-key-checker
pt-eustack-resolver
pt-fifo-split
pt-find
pt-fingerprint
pt-fk-error-logger
pt-galera-log-explainer
pt-heartbeat
pt-index-usage
pt-ioprofile
pt-k8s-debug-collector
pt-kill
pt-mext
pt-mongodb-index-check
pt-mongodb-query-digest
pt-mongodb-summary
pt-mysql-summary
pt-online-schema-change
pt-pg-summary
pt-pmp
pt-query-digest
pt-replica-find
pt-replica-restart
pt-secure-collect
pt-show-grants
pt-sift
pt-slave-delay
pt-slave-find
pt-slave-restart
pt-stalk
pt-summary
pt-table-checksum
pt-table-sync
pt-table-usage
pt-upgrade
pt-variable-advisor
pt-visual-explain
Sveta Smirnova (Percona) War story: removing offensive language March 27, 2025 4 / 22
Percona Toolkit Today: Part of Other Percona Products
pt-align
pt-archiver
pt-config-diff
pt-deadlock-logger
pt-diskstats
pt-duplicate-key-checker
pt-eustack-resolver
pt-fifo-split
pt-find
pt-fingerprint
pt-fk-error-logger
pt-galera-log-explainer
pt-heartbeat
pt-index-usage
pt-ioprofile
pt-k8s-debug-collector
pt-kill
pt-mext
pt-mongodb-index-check
pt-mongodb-query-digest
pt-mongodb-summary
pt-mysql-summary
pt-online-schema-change
pt-pg-summary
pt-pmp
pt-query-digest
pt-replica-find
pt-replica-restart
pt-secure-collect
pt-show-grants
pt-sift
pt-slave-delay
pt-slave-find
pt-slave-restart
pt-stalk
pt-summary
pt-table-checksum
pt-table-sync
pt-table-usage
pt-upgrade
pt-variable-advisor
pt-visual-explain
Sveta Smirnova (Percona) War story: removing offensive language March 27, 2025 5 / 22
Percona Toolkit Today: The Most Popular Support Tools
pt-align
pt-archiver
pt-config-diff
pt-deadlock-logger
pt-diskstats
pt-duplicate-key-checker
pt-eustack-resolver
pt-fifo-split
pt-find
pt-fingerprint
pt-fk-error-logger
pt-galera-log-explainer
pt-heartbeat
pt-index-usage
pt-ioprofile
pt-k8s-debug-collector
pt-kill
pt-mext
pt-mongodb-index-check
pt-mongodb-query-digest
pt-mongodb-summary
pt-mysql-summary
pt-online-schema-change
pt-pg-summary
pt-pmp
pt-query-digest
pt-replica-find
pt-replica-restart
pt-secure-collect
pt-show-grants
pt-sift
pt-slave-delay
pt-slave-find
pt-slave-restart
pt-stalk
pt-summary
pt-table-checksum
pt-table-sync
pt-table-usage
pt-upgrade
pt-variable-advisor
pt-visual-explain
Sveta Smirnova (Percona) War story: removing offensive language March 27, 2025 6 / 22
Percona Toolkit Today: Helper Tools
pt-align
pt-archiver
pt-config-diff
pt-deadlock-logger
pt-diskstats
pt-duplicate-key-checker
pt-eustack-resolver
pt-fifo-split
pt-find
pt-fingerprint
pt-fk-error-logger
pt-galera-log-explainer
pt-heartbeat
pt-index-usage
pt-ioprofile
pt-k8s-debug-collector
pt-kill
pt-mext
pt-mongodb-index-check
pt-mongodb-query-digest
pt-mongodb-summary
pt-mysql-summary
pt-online-schema-change
pt-pg-summary
pt-pmp
pt-query-digest
pt-replica-find
pt-replica-restart
pt-secure-collect
pt-show-grants
pt-sift
pt-slave-delay
pt-slave-find
pt-slave-restart
pt-stalk
pt-summary
pt-table-checksum
pt-table-sync
pt-table-usage
pt-upgrade
pt-variable-advisor
pt-visual-explain
Sveta Smirnova (Percona) War story: removing offensive language March 27, 2025 7 / 22
Percona Toolkit Today: Written in Perl, Bash, and Go
pt-align
pt-archiver
pt-config-diff
pt-deadlock-logger
pt-diskstats
pt-duplicate-key-checker
pt-eustack-resolver
pt-fifo-split
pt-find
pt-fingerprint
pt-fk-error-logger
pt-galera-log-explainer
pt-heartbeat
pt-index-usage
pt-ioprofile
pt-k8s-debug-collector
pt-kill
pt-mext
pt-mongodb-index-check
pt-mongodb-query-digest
pt-mongodb-summary
pt-mysql-summary
pt-online-schema-change
pt-pg-summary
pt-pmp
pt-query-digest
pt-replica-find
pt-replica-restart
pt-secure-collect
pt-show-grants
pt-sift
pt-slave-delay
pt-slave-find
pt-slave-restart
pt-stalk
pt-summary
pt-table-checksum
pt-table-sync
pt-table-usage
pt-upgrade
pt-variable-advisor
pt-visual-explain
Sveta Smirnova (Percona) War story: removing offensive language March 27, 2025 8 / 22
Percona Toolkit Today: Tools that Work Directly with MySQL
pt-align
✓ pt-archiver
✓ pt-config-diff
✓ pt-deadlock-logger
pt-diskstats
✓ pt-duplicate-key-checker
pt-eustack-resolver
pt-fifo-split
✓ pt-find
pt-fingerprint
✓ pt-fk-error-logger
pt-galera-log-explainer
✓ pt-heartbeat
✓ pt-index-usage
pt-ioprofile
pt-k8s-debug-collector
✓ pt-kill
pt-mext
pt-mongodb-index-check
pt-mongodb-query-digest
pt-mongodb-summary
✓ pt-mysql-summary
✓ pt-online-schema-change
pt-pg-summary
pt-pmp
✓ pt-query-digest
✓ pt-replica-find
✓ pt-replica-restart
pt-secure-collect
✓ pt-show-grants
pt-sift
✓ pt-slave-delay
✓ pt-slave-find
✓ pt-slave-restart
✓ pt-stalk
pt-summary
✓ pt-table-checksum
✓ pt-table-sync
✓ pt-table-usage
✓ pt-upgrade
✓ pt-variable-advisor
✓ pt-visual-explain
Sveta Smirnova (Percona) War story: removing offensive language March 27, 2025 9 / 22
MySQL 8.4 New and Legacy Syntax
Legacy Syntax New Syntax First Introduced
SHOW SLAVE HOSTS SHOW REPLICAS 8.0.23
CHANGE MASTER CHANGE REPLICATION SOURCE 8.0.23
SHOW MASTER STATUS SHOW BINARY LOG STATUS 8.1
RESET MASTER RESET BINARY LOGS[ AND GTIDS] 8.1
SLAVE in other commands REPLICA 8.0.23, 8.1
MASTER in other commands SOURCE 8.0.23, 8.1
Sveta Smirnova (Percona) War story: removing offensive language March 27, 2025 10 / 22
MySQL 8.4 Legacy Left Overs
Privileges
▶ REPLICATION SLAVE
Tables in mysql schema
▶ slave master info
▶ slave relay log info
▶ slave worker info
Sveta Smirnova (Percona) War story: removing offensive language March 27, 2025 11 / 22
Solution 1: sed
Easy to implement:
sed ’s/master/source/g’ *
sed ’s/slave/replica/g’ *
Sveta Smirnova (Percona) War story: removing offensive language March 27, 2025 12 / 22
Solution 1: sed
Easy to implement:
sed ’s/master/source/g’ *
sed ’s/slave/replica/g’ *
We have to support old versions
Sveta Smirnova (Percona) War story: removing offensive language March 27, 2025 12 / 22
Solution 1: sed
Easy to implement:
sed ’s/master/source/g’ *
sed ’s/slave/replica/g’ *
We have to support old versions
Rejected!
Sveta Smirnova (Percona) War story: removing offensive language March 27, 2025 12 / 22
Complicated solution
Syntax, depending on version
Split at MySQL 8.1
Queries to MariaDB use old syntax
▶ May change in the future
Sveta Smirnova (Percona) War story: removing offensive language March 27, 2025 13 / 22
Percona Toolkit Code Layout
/
bin/
pt-align
pt-archiver
...
lib/
Advisor.pm
AdvisorRules.pm
bash/
alt_cmds.sh
collect_mysql_info.sh
...
BinaryLogParser.pm
...
...
src/
go/
pt-galera-log-explainer
pt-k8s-debug-collector
...
sandbox/
t/
lib
pt-align
pt-archiver
...
Changelog
...
Sveta Smirnova (Percona) War story: removing offensive language March 27, 2025 14 / 22
Starting the Change
Tests first
Sveta Smirnova (Percona) War story: removing offensive language March 27, 2025 15 / 22
Starting the Change
Tests first
Libraries code
▶ Perl
▶ Bash
Sveta Smirnova (Percona) War story: removing offensive language March 27, 2025 15 / 22
Starting the Change
Tests first
Libraries code
▶ Perl
▶ Bash
Added use VersionParser into tests
Sveta Smirnova (Percona) War story: removing offensive language March 27, 2025 15 / 22
Starting the Change
Tests first
Libraries code
▶ Perl
▶ Bash
Added use VersionParser into tests
Tools one-by-one
Sveta Smirnova (Percona) War story: removing offensive language March 27, 2025 15 / 22
SSL Support
Percona Toolkit does not have full SSL support
MySQL 8.4 does not∗ run without SSL
Sveta Smirnova (Percona) War story: removing offensive language March 27, 2025 16 / 22
SSL Support
Percona Toolkit does not have full SSL support
MySQL 8.4 does not∗ run without SSL
Added basic SSL support for SHA256 plugins and replication
Implemented SSL tests for MySQL 8.4
Disabled SSL tests for earlier versions
Sveta Smirnova (Percona) War story: removing offensive language March 27, 2025 16 / 22
SSL Support
Percona Toolkit does not have full SSL support
MySQL 8.4 does not∗ run without SSL
Added basic SSL support for SHA256 plugins and replication
Implemented SSL tests for MySQL 8.4
Disabled SSL tests for earlier versions
Full SSL support is upcoming
Sveta Smirnova (Percona) War story: removing offensive language March 27, 2025 16 / 22
Deprecation
pt-slave-delay: deprecated
pt-slave-find: − > pt-replica-find
pt-slave-restart: − > pt-replica-restart
Sveta Smirnova (Percona) War story: removing offensive language March 27, 2025 17 / 22
Fine Tuning
Fixed broken staff for 8.0
Reverted rename of COM REGISTER SLAVE to COM REGISTER REPLICA
▶ The constant still named COM REGISTER SLAVE in 8.4 and 9.2
Implemented functions get replica name and get source name in
lib/MasterSlave.pm
Removed practically not supported options --replica-user and --replica-password
from pt-archiver, pt-kill, pt-query-digest
Adjusted pt-variable-advisor, so it reflects current defaults
▶ Still not recommended to use!
Sveta Smirnova (Percona) War story: removing offensive language March 27, 2025 18 / 22
Smooth Migration for Percona Toolkit Users
Legacy and new DDL support for checksum and heartbeat tables
Support for legacy slave-* and master-* options together with new replica-* and
source-* variants
Updated documentation
Sveta Smirnova (Percona) War story: removing offensive language March 27, 2025 19 / 22
Was it Worth?
A lot of work
For young people new syntax is certainly clearer
Found legacy options that do not work
Found legacy tools that should be removed
Legacy code, not related to the new syntax, was updated
Done for good
Sveta Smirnova (Percona) War story: removing offensive language March 27, 2025 20 / 22
References
https://github.com/percona/percona-toolkit/pull/871/commits
https://www.researchgate.net/publication/236752849_Broken_Metaphor_The_
Master-Slave_Analogy_in_Technical_Literature
https://en.wikipedia.org/wiki/Slave_clock
Picture on the Title page
▶ Transfer of master clock network technology to Czechoslovakia: Elektročas or Elektrozeit?
German roots of Czechoslovak post-war timepieces 1923–1990 - Scientific Figure on
ResearchGate.
▶ Available from https://www.researchgate.net/figure/
Presentation-of-product-variety-of-Pragotron-company_fig2_382205982
Sveta Smirnova (Percona) War story: removing offensive language March 27, 2025 21 / 22
Thank You!
https://x.com/svetsmirnova
https://github.com/svetasmirnova
https://www.linkedin.com/in/svetsmirnova/
https://www.slideshare.net/SvetaSmirnova/
Sveta Smirnova (Percona) War story: removing offensive language March 27, 2025 22 / 22

More Related Content

Similar to War Story: Removing Offensive Language from Percona Toolkit (20)

PDF
LinuxLabs 2017 talk: Container monitoring challenges
Xavier Vello
 
PDF
MySQL InnoDB Cluster and Group Replication in a Nutshell
Frederic Descamps
 
PDF
Sample Lucene Big Data Diagram Generic
Ken Irwin
 
PDF
OpenStack Korea 2015 상반기스터디(devops) 스크립트로 오픈스택 설치하기 20150728
jieun kim
 
PDF
Introduction to MySQL InnoDB Cluster
Frederic Descamps
 
PDF
Galera Cluster 3.0 Features
Codership Oy - Creators of Galera Cluster
 
PDF
MySQL Day Roma - MySQL Shell and Visual Studio Code Extension
Frederic Descamps
 
PDF
Embedded Recipes 2019 - Herd your socs become a matchmaker
Anne Nicolas
 
PDF
Embedded Recipes 2019 - Herd your socs become a matchmaker
Anne Nicolas
 
PDF
String Comparison Surprises: Did Postgres lose my data?
Jeremy Schneider
 
PDF
De Java 8 a Java 17
Víctor Leonel Orozco López
 
PDF
MySQL Shell for Database Engineers
Mydbops
 
PPT
Introduction to UNIX
Simonas Kareiva
 
PDF
TechWiseTV Workshop: 5th Generation UCS
Robb Boyd
 
PPTX
[발표자료] 오픈소스 기반 고가용성 Pacemaker 소개 및 적용 사례_20230703_v1.1F.pptx
ssuserf8b8bd1
 
PDF
Swift Install Workshop - OpenStack Conference Spring 2012
Joe Arnold
 
PDF
Introduction to Apache Kafka
Shiao-An Yuan
 
PDF
Lukas Macura - Employing Zabbix to monitor OpenWrt (Beesip) devices with Uciprov
Zabbix
 
PPTX
Mysql 8 vs Mariadb 10.4 Webinar 2020 Feb
Alkin Tezuysal
 
PDF
David-FPGA
guest66dc5f
 
LinuxLabs 2017 talk: Container monitoring challenges
Xavier Vello
 
MySQL InnoDB Cluster and Group Replication in a Nutshell
Frederic Descamps
 
Sample Lucene Big Data Diagram Generic
Ken Irwin
 
OpenStack Korea 2015 상반기스터디(devops) 스크립트로 오픈스택 설치하기 20150728
jieun kim
 
Introduction to MySQL InnoDB Cluster
Frederic Descamps
 
Galera Cluster 3.0 Features
Codership Oy - Creators of Galera Cluster
 
MySQL Day Roma - MySQL Shell and Visual Studio Code Extension
Frederic Descamps
 
Embedded Recipes 2019 - Herd your socs become a matchmaker
Anne Nicolas
 
Embedded Recipes 2019 - Herd your socs become a matchmaker
Anne Nicolas
 
String Comparison Surprises: Did Postgres lose my data?
Jeremy Schneider
 
De Java 8 a Java 17
Víctor Leonel Orozco López
 
MySQL Shell for Database Engineers
Mydbops
 
Introduction to UNIX
Simonas Kareiva
 
TechWiseTV Workshop: 5th Generation UCS
Robb Boyd
 
[발표자료] 오픈소스 기반 고가용성 Pacemaker 소개 및 적용 사례_20230703_v1.1F.pptx
ssuserf8b8bd1
 
Swift Install Workshop - OpenStack Conference Spring 2012
Joe Arnold
 
Introduction to Apache Kafka
Shiao-An Yuan
 
Lukas Macura - Employing Zabbix to monitor OpenWrt (Beesip) devices with Uciprov
Zabbix
 
Mysql 8 vs Mariadb 10.4 Webinar 2020 Feb
Alkin Tezuysal
 
David-FPGA
guest66dc5f
 

More from Sveta Smirnova (20)

PDF
MySQL 2024: Зачем переходить на MySQL 8, если в 5.х всё устраивает?
Sveta Smirnova
 
PDF
Database in Kubernetes: Diagnostics and Monitoring
Sveta Smirnova
 
PDF
MySQL Database Monitoring: Must, Good and Nice to Have
Sveta Smirnova
 
PDF
MySQL Cookbook: Recipes for Developers
Sveta Smirnova
 
PDF
MySQL Performance for DevOps
Sveta Smirnova
 
PDF
MySQL Test Framework для поддержки клиентов и верификации багов
Sveta Smirnova
 
PDF
MySQL Cookbook: Recipes for Your Business
Sveta Smirnova
 
PDF
Introduction into MySQL Query Tuning for Dev[Op]s
Sveta Smirnova
 
PDF
Производительность MySQL для DevOps
Sveta Smirnova
 
PDF
MySQL Performance for DevOps
Sveta Smirnova
 
PDF
How to Avoid Pitfalls in Schema Upgrade with Percona XtraDB Cluster
Sveta Smirnova
 
PDF
How to migrate from MySQL to MariaDB without tears
Sveta Smirnova
 
PDF
Modern solutions for modern database load: improvements in the latest MariaDB...
Sveta Smirnova
 
PDF
How Safe is Asynchronous Master-Master Setup?
Sveta Smirnova
 
PDF
Современному хайлоду - современные решения: MySQL 8.0 и улучшения Percona
Sveta Smirnova
 
PDF
How to Avoid Pitfalls in Schema Upgrade with Galera
Sveta Smirnova
 
PDF
How Safe is Asynchronous Master-Master Setup?
Sveta Smirnova
 
PDF
Introduction to MySQL Query Tuning for Dev[Op]s
Sveta Smirnova
 
PDF
Billion Goods in Few Categories: How Histograms Save a Life?
Sveta Smirnova
 
PDF
A Billion Goods in a Few Categories: When Optimizer Histograms Help and When ...
Sveta Smirnova
 
MySQL 2024: Зачем переходить на MySQL 8, если в 5.х всё устраивает?
Sveta Smirnova
 
Database in Kubernetes: Diagnostics and Monitoring
Sveta Smirnova
 
MySQL Database Monitoring: Must, Good and Nice to Have
Sveta Smirnova
 
MySQL Cookbook: Recipes for Developers
Sveta Smirnova
 
MySQL Performance for DevOps
Sveta Smirnova
 
MySQL Test Framework для поддержки клиентов и верификации багов
Sveta Smirnova
 
MySQL Cookbook: Recipes for Your Business
Sveta Smirnova
 
Introduction into MySQL Query Tuning for Dev[Op]s
Sveta Smirnova
 
Производительность MySQL для DevOps
Sveta Smirnova
 
MySQL Performance for DevOps
Sveta Smirnova
 
How to Avoid Pitfalls in Schema Upgrade with Percona XtraDB Cluster
Sveta Smirnova
 
How to migrate from MySQL to MariaDB without tears
Sveta Smirnova
 
Modern solutions for modern database load: improvements in the latest MariaDB...
Sveta Smirnova
 
How Safe is Asynchronous Master-Master Setup?
Sveta Smirnova
 
Современному хайлоду - современные решения: MySQL 8.0 и улучшения Percona
Sveta Smirnova
 
How to Avoid Pitfalls in Schema Upgrade with Galera
Sveta Smirnova
 
How Safe is Asynchronous Master-Master Setup?
Sveta Smirnova
 
Introduction to MySQL Query Tuning for Dev[Op]s
Sveta Smirnova
 
Billion Goods in Few Categories: How Histograms Save a Life?
Sveta Smirnova
 
A Billion Goods in a Few Categories: When Optimizer Histograms Help and When ...
Sveta Smirnova
 
Ad

Recently uploaded (20)

PDF
Alexander Marshalov - How to use AI Assistants with your Monitoring system Q2...
VictoriaMetrics
 
PDF
4K Video Downloader Plus Pro Crack for MacOS New Download 2025
bashirkhan333g
 
PPTX
Tally software_Introduction_Presentation
AditiBansal54083
 
PDF
AI + DevOps = Smart Automation with devseccops.ai.pdf
Devseccops.ai
 
PDF
HiHelloHR – Simplify HR Operations for Modern Workplaces
HiHelloHR
 
PPTX
Agentic Automation Journey Session 1/5: Context Grounding and Autopilot for E...
klpathrudu
 
PDF
iTop VPN With Crack Lifetime Activation Key-CODE
utfefguu
 
PPTX
Finding Your License Details in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
PPTX
Agentic Automation: Build & Deploy Your First UiPath Agent
klpathrudu
 
PDF
Generic or Specific? Making sensible software design decisions
Bert Jan Schrijver
 
PPTX
Why Businesses Are Switching to Open Source Alternatives to Crystal Reports.pptx
Varsha Nayak
 
PDF
Empower Your Tech Vision- Why Businesses Prefer to Hire Remote Developers fro...
logixshapers59
 
PDF
Driver Easy Pro 6.1.1 Crack Licensce key 2025 FREE
utfefguu
 
PDF
Wondershare PDFelement Pro Crack for MacOS New Version Latest 2025
bashirkhan333g
 
PDF
Build It, Buy It, or Already Got It? Make Smarter Martech Decisions
bbedford2
 
PPTX
Homogeneity of Variance Test Options IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
PDF
Download Canva Pro 2025 PC Crack Full Latest Version
bashirkhan333g
 
PPTX
Help for Correlations in IBM SPSS Statistics.pptx
Version 1 Analytics
 
PPTX
Hardware(Central Processing Unit ) CU and ALU
RizwanaKalsoom2
 
PDF
Automate Cybersecurity Tasks with Python
VICTOR MAESTRE RAMIREZ
 
Alexander Marshalov - How to use AI Assistants with your Monitoring system Q2...
VictoriaMetrics
 
4K Video Downloader Plus Pro Crack for MacOS New Download 2025
bashirkhan333g
 
Tally software_Introduction_Presentation
AditiBansal54083
 
AI + DevOps = Smart Automation with devseccops.ai.pdf
Devseccops.ai
 
HiHelloHR – Simplify HR Operations for Modern Workplaces
HiHelloHR
 
Agentic Automation Journey Session 1/5: Context Grounding and Autopilot for E...
klpathrudu
 
iTop VPN With Crack Lifetime Activation Key-CODE
utfefguu
 
Finding Your License Details in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
Agentic Automation: Build & Deploy Your First UiPath Agent
klpathrudu
 
Generic or Specific? Making sensible software design decisions
Bert Jan Schrijver
 
Why Businesses Are Switching to Open Source Alternatives to Crystal Reports.pptx
Varsha Nayak
 
Empower Your Tech Vision- Why Businesses Prefer to Hire Remote Developers fro...
logixshapers59
 
Driver Easy Pro 6.1.1 Crack Licensce key 2025 FREE
utfefguu
 
Wondershare PDFelement Pro Crack for MacOS New Version Latest 2025
bashirkhan333g
 
Build It, Buy It, or Already Got It? Make Smarter Martech Decisions
bbedford2
 
Homogeneity of Variance Test Options IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
Download Canva Pro 2025 PC Crack Full Latest Version
bashirkhan333g
 
Help for Correlations in IBM SPSS Statistics.pptx
Version 1 Analytics
 
Hardware(Central Processing Unit ) CU and ALU
RizwanaKalsoom2
 
Automate Cybersecurity Tasks with Python
VICTOR MAESTRE RAMIREZ
 
Ad

War Story: Removing Offensive Language from Percona Toolkit

  • 1. War story Removing offensive language from Percona Toolkit Sveta Smirnova Percona March 27, 2025 Sveta Smirnova (Percona) War story: removing offensive language March 27, 2025 1 / 22
  • 2. Percona Toolkit in Past Maatkit, Aspersa by Baron Schwartz Percona Toolkit ▶ Baron Schwartz 2008-2016 Daniel Nichter -2016 Frank Cizmich 2016-2022 Carlos Salguero 2022- Sveta Smirnova Sveta Smirnova (Percona) War story: removing offensive language March 27, 2025 2 / 22
  • 4. Percona Toolkit Today: The Most Popular Customer Tools pt-align pt-archiver pt-config-diff pt-deadlock-logger pt-diskstats pt-duplicate-key-checker pt-eustack-resolver pt-fifo-split pt-find pt-fingerprint pt-fk-error-logger pt-galera-log-explainer pt-heartbeat pt-index-usage pt-ioprofile pt-k8s-debug-collector pt-kill pt-mext pt-mongodb-index-check pt-mongodb-query-digest pt-mongodb-summary pt-mysql-summary pt-online-schema-change pt-pg-summary pt-pmp pt-query-digest pt-replica-find pt-replica-restart pt-secure-collect pt-show-grants pt-sift pt-slave-delay pt-slave-find pt-slave-restart pt-stalk pt-summary pt-table-checksum pt-table-sync pt-table-usage pt-upgrade pt-variable-advisor pt-visual-explain Sveta Smirnova (Percona) War story: removing offensive language March 27, 2025 4 / 22
  • 5. Percona Toolkit Today: Part of Other Percona Products pt-align pt-archiver pt-config-diff pt-deadlock-logger pt-diskstats pt-duplicate-key-checker pt-eustack-resolver pt-fifo-split pt-find pt-fingerprint pt-fk-error-logger pt-galera-log-explainer pt-heartbeat pt-index-usage pt-ioprofile pt-k8s-debug-collector pt-kill pt-mext pt-mongodb-index-check pt-mongodb-query-digest pt-mongodb-summary pt-mysql-summary pt-online-schema-change pt-pg-summary pt-pmp pt-query-digest pt-replica-find pt-replica-restart pt-secure-collect pt-show-grants pt-sift pt-slave-delay pt-slave-find pt-slave-restart pt-stalk pt-summary pt-table-checksum pt-table-sync pt-table-usage pt-upgrade pt-variable-advisor pt-visual-explain Sveta Smirnova (Percona) War story: removing offensive language March 27, 2025 5 / 22
  • 6. Percona Toolkit Today: The Most Popular Support Tools pt-align pt-archiver pt-config-diff pt-deadlock-logger pt-diskstats pt-duplicate-key-checker pt-eustack-resolver pt-fifo-split pt-find pt-fingerprint pt-fk-error-logger pt-galera-log-explainer pt-heartbeat pt-index-usage pt-ioprofile pt-k8s-debug-collector pt-kill pt-mext pt-mongodb-index-check pt-mongodb-query-digest pt-mongodb-summary pt-mysql-summary pt-online-schema-change pt-pg-summary pt-pmp pt-query-digest pt-replica-find pt-replica-restart pt-secure-collect pt-show-grants pt-sift pt-slave-delay pt-slave-find pt-slave-restart pt-stalk pt-summary pt-table-checksum pt-table-sync pt-table-usage pt-upgrade pt-variable-advisor pt-visual-explain Sveta Smirnova (Percona) War story: removing offensive language March 27, 2025 6 / 22
  • 7. Percona Toolkit Today: Helper Tools pt-align pt-archiver pt-config-diff pt-deadlock-logger pt-diskstats pt-duplicate-key-checker pt-eustack-resolver pt-fifo-split pt-find pt-fingerprint pt-fk-error-logger pt-galera-log-explainer pt-heartbeat pt-index-usage pt-ioprofile pt-k8s-debug-collector pt-kill pt-mext pt-mongodb-index-check pt-mongodb-query-digest pt-mongodb-summary pt-mysql-summary pt-online-schema-change pt-pg-summary pt-pmp pt-query-digest pt-replica-find pt-replica-restart pt-secure-collect pt-show-grants pt-sift pt-slave-delay pt-slave-find pt-slave-restart pt-stalk pt-summary pt-table-checksum pt-table-sync pt-table-usage pt-upgrade pt-variable-advisor pt-visual-explain Sveta Smirnova (Percona) War story: removing offensive language March 27, 2025 7 / 22
  • 8. Percona Toolkit Today: Written in Perl, Bash, and Go pt-align pt-archiver pt-config-diff pt-deadlock-logger pt-diskstats pt-duplicate-key-checker pt-eustack-resolver pt-fifo-split pt-find pt-fingerprint pt-fk-error-logger pt-galera-log-explainer pt-heartbeat pt-index-usage pt-ioprofile pt-k8s-debug-collector pt-kill pt-mext pt-mongodb-index-check pt-mongodb-query-digest pt-mongodb-summary pt-mysql-summary pt-online-schema-change pt-pg-summary pt-pmp pt-query-digest pt-replica-find pt-replica-restart pt-secure-collect pt-show-grants pt-sift pt-slave-delay pt-slave-find pt-slave-restart pt-stalk pt-summary pt-table-checksum pt-table-sync pt-table-usage pt-upgrade pt-variable-advisor pt-visual-explain Sveta Smirnova (Percona) War story: removing offensive language March 27, 2025 8 / 22
  • 9. Percona Toolkit Today: Tools that Work Directly with MySQL pt-align ✓ pt-archiver ✓ pt-config-diff ✓ pt-deadlock-logger pt-diskstats ✓ pt-duplicate-key-checker pt-eustack-resolver pt-fifo-split ✓ pt-find pt-fingerprint ✓ pt-fk-error-logger pt-galera-log-explainer ✓ pt-heartbeat ✓ pt-index-usage pt-ioprofile pt-k8s-debug-collector ✓ pt-kill pt-mext pt-mongodb-index-check pt-mongodb-query-digest pt-mongodb-summary ✓ pt-mysql-summary ✓ pt-online-schema-change pt-pg-summary pt-pmp ✓ pt-query-digest ✓ pt-replica-find ✓ pt-replica-restart pt-secure-collect ✓ pt-show-grants pt-sift ✓ pt-slave-delay ✓ pt-slave-find ✓ pt-slave-restart ✓ pt-stalk pt-summary ✓ pt-table-checksum ✓ pt-table-sync ✓ pt-table-usage ✓ pt-upgrade ✓ pt-variable-advisor ✓ pt-visual-explain Sveta Smirnova (Percona) War story: removing offensive language March 27, 2025 9 / 22
  • 10. MySQL 8.4 New and Legacy Syntax Legacy Syntax New Syntax First Introduced SHOW SLAVE HOSTS SHOW REPLICAS 8.0.23 CHANGE MASTER CHANGE REPLICATION SOURCE 8.0.23 SHOW MASTER STATUS SHOW BINARY LOG STATUS 8.1 RESET MASTER RESET BINARY LOGS[ AND GTIDS] 8.1 SLAVE in other commands REPLICA 8.0.23, 8.1 MASTER in other commands SOURCE 8.0.23, 8.1 Sveta Smirnova (Percona) War story: removing offensive language March 27, 2025 10 / 22
  • 11. MySQL 8.4 Legacy Left Overs Privileges ▶ REPLICATION SLAVE Tables in mysql schema ▶ slave master info ▶ slave relay log info ▶ slave worker info Sveta Smirnova (Percona) War story: removing offensive language March 27, 2025 11 / 22
  • 12. Solution 1: sed Easy to implement: sed ’s/master/source/g’ * sed ’s/slave/replica/g’ * Sveta Smirnova (Percona) War story: removing offensive language March 27, 2025 12 / 22
  • 13. Solution 1: sed Easy to implement: sed ’s/master/source/g’ * sed ’s/slave/replica/g’ * We have to support old versions Sveta Smirnova (Percona) War story: removing offensive language March 27, 2025 12 / 22
  • 14. Solution 1: sed Easy to implement: sed ’s/master/source/g’ * sed ’s/slave/replica/g’ * We have to support old versions Rejected! Sveta Smirnova (Percona) War story: removing offensive language March 27, 2025 12 / 22
  • 15. Complicated solution Syntax, depending on version Split at MySQL 8.1 Queries to MariaDB use old syntax ▶ May change in the future Sveta Smirnova (Percona) War story: removing offensive language March 27, 2025 13 / 22
  • 16. Percona Toolkit Code Layout / bin/ pt-align pt-archiver ... lib/ Advisor.pm AdvisorRules.pm bash/ alt_cmds.sh collect_mysql_info.sh ... BinaryLogParser.pm ... ... src/ go/ pt-galera-log-explainer pt-k8s-debug-collector ... sandbox/ t/ lib pt-align pt-archiver ... Changelog ... Sveta Smirnova (Percona) War story: removing offensive language March 27, 2025 14 / 22
  • 17. Starting the Change Tests first Sveta Smirnova (Percona) War story: removing offensive language March 27, 2025 15 / 22
  • 18. Starting the Change Tests first Libraries code ▶ Perl ▶ Bash Sveta Smirnova (Percona) War story: removing offensive language March 27, 2025 15 / 22
  • 19. Starting the Change Tests first Libraries code ▶ Perl ▶ Bash Added use VersionParser into tests Sveta Smirnova (Percona) War story: removing offensive language March 27, 2025 15 / 22
  • 20. Starting the Change Tests first Libraries code ▶ Perl ▶ Bash Added use VersionParser into tests Tools one-by-one Sveta Smirnova (Percona) War story: removing offensive language March 27, 2025 15 / 22
  • 21. SSL Support Percona Toolkit does not have full SSL support MySQL 8.4 does not∗ run without SSL Sveta Smirnova (Percona) War story: removing offensive language March 27, 2025 16 / 22
  • 22. SSL Support Percona Toolkit does not have full SSL support MySQL 8.4 does not∗ run without SSL Added basic SSL support for SHA256 plugins and replication Implemented SSL tests for MySQL 8.4 Disabled SSL tests for earlier versions Sveta Smirnova (Percona) War story: removing offensive language March 27, 2025 16 / 22
  • 23. SSL Support Percona Toolkit does not have full SSL support MySQL 8.4 does not∗ run without SSL Added basic SSL support for SHA256 plugins and replication Implemented SSL tests for MySQL 8.4 Disabled SSL tests for earlier versions Full SSL support is upcoming Sveta Smirnova (Percona) War story: removing offensive language March 27, 2025 16 / 22
  • 24. Deprecation pt-slave-delay: deprecated pt-slave-find: − > pt-replica-find pt-slave-restart: − > pt-replica-restart Sveta Smirnova (Percona) War story: removing offensive language March 27, 2025 17 / 22
  • 25. Fine Tuning Fixed broken staff for 8.0 Reverted rename of COM REGISTER SLAVE to COM REGISTER REPLICA ▶ The constant still named COM REGISTER SLAVE in 8.4 and 9.2 Implemented functions get replica name and get source name in lib/MasterSlave.pm Removed practically not supported options --replica-user and --replica-password from pt-archiver, pt-kill, pt-query-digest Adjusted pt-variable-advisor, so it reflects current defaults ▶ Still not recommended to use! Sveta Smirnova (Percona) War story: removing offensive language March 27, 2025 18 / 22
  • 26. Smooth Migration for Percona Toolkit Users Legacy and new DDL support for checksum and heartbeat tables Support for legacy slave-* and master-* options together with new replica-* and source-* variants Updated documentation Sveta Smirnova (Percona) War story: removing offensive language March 27, 2025 19 / 22
  • 27. Was it Worth? A lot of work For young people new syntax is certainly clearer Found legacy options that do not work Found legacy tools that should be removed Legacy code, not related to the new syntax, was updated Done for good Sveta Smirnova (Percona) War story: removing offensive language March 27, 2025 20 / 22
  • 28. References https://github.com/percona/percona-toolkit/pull/871/commits https://www.researchgate.net/publication/236752849_Broken_Metaphor_The_ Master-Slave_Analogy_in_Technical_Literature https://en.wikipedia.org/wiki/Slave_clock Picture on the Title page ▶ Transfer of master clock network technology to Czechoslovakia: Elektročas or Elektrozeit? German roots of Czechoslovak post-war timepieces 1923–1990 - Scientific Figure on ResearchGate. ▶ Available from https://www.researchgate.net/figure/ Presentation-of-product-variety-of-Pragotron-company_fig2_382205982 Sveta Smirnova (Percona) War story: removing offensive language March 27, 2025 21 / 22