Skip to content

Commit 554f19f

Browse files
committed
Update Chapter2.md
1 parent 6214dfc commit 554f19f

File tree

1 file changed

+8
-8
lines changed

1 file changed

+8
-8
lines changed

Chapter2.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,9 @@ Figure 2-4. Using PGO in higher versions of MySQL 8.0: a step-by-step guide.
4040

4141
From the diagram, the Profile-Guided Optimization (PGO) mechanism involves several steps:
4242

43-
1. Initially, compile a specific version of MySQL with the compilation option *"-DFPROFILE_GENERATE=ON"*.
44-
2. Start this MySQL version and capture training data by running performance tests such as TPC-C, which helps collect performance metrics.
45-
3. After completing the training phase, perform a second compilation with the option *"-DFPROFILE_USE=ON"*. During this compilation, the compiler automatically utilizes the gathered statistical data to optimize conditional branches and related aspects, significantly improving the performance of the resulting MySQL executable.
43+
1. Initially, compile a specific version of MySQL with the compilation option *"-DFPROFILE_GENERATE=ON"*.
44+
2. Start this MySQL version and capture training data by running performance tests such as TPC-C, which helps collect performance metrics.
45+
3. After completing the training phase, perform a second compilation with the option *"-DFPROFILE_USE=ON"*. During this compilation, the compiler automatically utilizes the gathered statistical data to optimize conditional branches and related aspects, significantly improving the performance of the resulting MySQL executable.
4646

4747
The following figure illustrates the relationship between throughput and concurrency before and after applying PGO to MySQL 8.0.27.
4848

@@ -104,7 +104,7 @@ The following figure illustrates the throughput over time during long-term testi
104104

105105
Figure 2-7. Performance degradation exposed during BenchmarkSQL testing of MySQL 8.0.27.
106106

107-
This problem was identified during testing using BenchmarkSQL and may not necessarily occur with other TPC-C testing tools. As of the current version, MySQL 8.0.38, the problem of rapid throughput decline has not been fully solved. Subsequent chapters will delve into detailed explanations of the underlying causes of this problem.
107+
This problem was identified during testing using BenchmarkSQL and may not necessarily occur with other TPC-C testing tools. As of the current version, MySQL 8.0.39, the problem of rapid throughput decline has not been fully solved. Subsequent chapters will delve into detailed explanations of the underlying causes of this problem.
108108

109109
## 2.5 Repeatable Read Surprisingly Outperforms Read Committed
110110

@@ -181,21 +181,21 @@ commit 1d259b87a63defa814e19a7534380cb43ee23c48
181181
Author: Jakub Łopuszański <jakub.lopuszanski@oracle.com>
182182
Date: Wed Feb 5 14:12:22 2020 +0100
183183
WL#10314 - InnoDB: Lock-sys optimization: sharded lock_sys mutex
184-
184+
185185
The Lock-sys orchestrates access to tables and rows. Each table, and each row,
186186
can be thought of as a resource, and a transaction may request access right for
187187
a resource. As two transactions operating on a single resource can lead to
188188
problems if the two operations conflict with each other, Lock-sys remembers
189189
lists of already GRANTED lock requests and checks new requests for conflicts in
190190
which case they have to start WAITING for their turn.
191-
191+
192192
Lock-sys stores both GRANTED and WAITING lock requests in lists known as queues.
193193
To allow concurrent operations on these queues, we need a mechanism to latch
194194
these queues in safe and quick fashion.
195-
195+
196196
In the past a single latch protected access to all of these queues.
197197
This scaled poorly, and the management of queues become a bottleneck.
198-
198+
199199
In this WL, we introduce a more granular approach to latching.
200200
```
201201

0 commit comments

Comments
 (0)