Merge lp:~hrvojem/percona-server/rn-5.6.13-60.6 into lp:percona-server/5.6
- rn-5.6.13-60.6
- Merge into 5.6
Proposed by
Hrvoje Matijakovic
Status: | Merged |
---|---|
Approved by: | Laurynas Biveinis |
Approved revision: | no longer in the source branch. |
Merged at revision: | 427 |
Proposed branch: | lp:~hrvojem/percona-server/rn-5.6.13-60.6 |
Merge into: | lp:percona-server/5.6 |
Diff against target: |
304 lines (+194/-4) 9 files modified
doc/source/conf.py (+1/-1) doc/source/diagnostics/slow_extended.rst (+16/-1) doc/source/index.rst (+2/-0) doc/source/management/utility_user.rst (+17/-1) doc/source/release-notes/Percona-Server-5.6.13-60.5.rst (+1/-1) doc/source/release-notes/Percona-Server-5.6.13-60.6.rst (+37/-0) doc/source/release-notes/release-notes_index.rst (+1/-0) doc/source/scalability/innodb_adaptive_hash_index_partitions.rst (+39/-0) doc/source/scalability/innodb_split_buf_pool_mutex.rst (+80/-0) |
To merge this branch: | bzr merge lp:~hrvojem/percona-server/rn-5.6.13-60.6 |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Laurynas Biveinis (community) | Approve | ||
Review via email: mp+186735@code.launchpad.net |
Commit message
Description of the change
To post a comment you must log in.
Revision history for this message
Laurynas Biveinis (laurynas-biveinis) wrote : | # |
review:
Needs Fixing
Revision history for this message
Laurynas Biveinis (laurynas-biveinis) wrote : | # |
- 62018 reference is now lost?
- For AHI, s/decreases the contention/
- Diff line 102: s/the new variable/a new variable
review:
Needs Fixing
Revision history for this message
Laurynas Biveinis (laurynas-biveinis) wrote : | # |
- "... AHI latch contention, fixing upstream bug <bug ref> (<our bug ref>).
- diff line 146 s/for in/in
- "It can be used to specify an additional execution time threshold for the slow query log, that, when exceeded, will cause a query to be logged unconditionally, that is, ref log_slow_rate_limit will not apply to it."
- Even though AHI changes descriptions look +- acceptable to me, feel free to ping KAlexey if he's available for any suggestions.
review:
Needs Fixing
Revision history for this message
Laurynas Biveinis (laurynas-biveinis) : | # |
review:
Approve
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | === modified file 'doc/source/conf.py' |
2 | --- doc/source/conf.py 2013-08-28 09:39:11 +0000 |
3 | +++ doc/source/conf.py 2013-09-20 13:14:11 +0000 |
4 | @@ -54,7 +54,7 @@ |
5 | # The short X.Y version. |
6 | version = '5.6' |
7 | # The full version, including alpha/beta/rc tags. |
8 | -release = '5.6.13-60.5' |
9 | +release = '5.6.13-60.6' |
10 | |
11 | # The language for content autogenerated by Sphinx. Refer to documentation |
12 | # for a list of supported languages. |
13 | |
14 | === modified file 'doc/source/diagnostics/slow_extended.rst' |
15 | --- doc/source/diagnostics/slow_extended.rst 2013-06-03 10:01:08 +0000 |
16 | +++ doc/source/diagnostics/slow_extended.rst 2013-09-20 13:14:11 +0000 |
17 | @@ -16,6 +16,10 @@ |
18 | |
19 | * Feature ported from |Percona Server| 5.5. |
20 | |
21 | + * :rn:`5.6.13-60.4`: |
22 | + |
23 | + * New :variable:`slow_query_log_always_write_time` variable introduced |
24 | + |
25 | Other Information |
26 | ================= |
27 | |
28 | @@ -96,7 +100,9 @@ |
29 | |
30 | This allows flexible setup logging behavior. |
31 | |
32 | -For example, if you set the value to 100, then one percent of ``sessions/queries`` will be logged. |
33 | +For example, if you set the value to 100, then one percent of ``sessions/queries`` will be logged. In |Percona Server| :rn:`5.6.13-60.6` information about the :variable:`log_slow_rate_limit` has been added to the slow query log. This means that if the :variable:`log_slow_rate_limit` is effective it will be reflected in the slow query log for each written query. Example of the output looks like this: :: |
34 | + |
35 | + Log_slow_rate_type: query Log_slow_rate_limit: 10 |
36 | |
37 | .. variable:: log_slow_sp_statements |
38 | |
39 | @@ -212,6 +218,15 @@ |
40 | * ``all`` |
41 | Global variables has effect (instead of local) |
42 | |
43 | +.. variable:: slow_query_log_always_write_time |
44 | + |
45 | + :cli: Yes |
46 | + :conf: Yes |
47 | + :scope: Global |
48 | + :dyn: Yes |
49 | + :default: 10 |
50 | + |
51 | +This variable can be used to specify the query execution time after which the query will be written to the slow query log. It can be used to specify an additional execution time threshold for the slow query log, that, when exceeded, will cause a query to be logged unconditionally, that is, :variable:`log_slow_rate_limit` will not apply to it. |
52 | |
53 | Other Information |
54 | ================= |
55 | |
56 | === modified file 'doc/source/index.rst' |
57 | --- doc/source/index.rst 2013-08-28 09:39:11 +0000 |
58 | +++ doc/source/index.rst 2013-09-20 13:14:11 +0000 |
59 | @@ -58,7 +58,9 @@ |
60 | :maxdepth: 1 |
61 | :glob: |
62 | |
63 | + scalability/innodb_split_buf_pool_mutex |
64 | scalability/innodb_io |
65 | + scalability/innodb_adaptive_hash_index_partitions |
66 | |
67 | Performance Improvements |
68 | ======================== |
69 | |
70 | === modified file 'doc/source/management/utility_user.rst' |
71 | --- doc/source/management/utility_user.rst 2013-06-03 10:01:08 +0000 |
72 | +++ doc/source/management/utility_user.rst 2013-09-20 13:14:11 +0000 |
73 | @@ -10,7 +10,7 @@ |
74 | |
75 | * Utility user will not appear in the mysql.user table and can not be modified by any other user, including root. |
76 | |
77 | - * Utility user will not appear in USER_STATISTICS, CLIENT_STATISTICS or THREAD_STATISTICS tables. |
78 | + * Utility user will not appear in :table:`USER_STATISTICS`, :table:`CLIENT_STATISTICS` or :table:`THREAD_STATISTICS` tables. |
79 | |
80 | * Utility user's queries may appear in the general and slow logs. |
81 | |
82 | @@ -46,6 +46,10 @@ |
83 | |
84 | Example: :option:`--utility_user_schema_access` =schema1,schema2,schema3 ; |
85 | |
86 | +Option :variable:`utility_user_privileges` allows a comma-separated list of extra access privileges to grant to the utility user. |
87 | + |
88 | + Example: :option:`--utility-user-privileges` ="CREATE, DROP, LOCK TABLES" |
89 | + |
90 | System Variables |
91 | ================ |
92 | |
93 | @@ -84,3 +88,15 @@ |
94 | :default: NULL |
95 | |
96 | Specifies the schemas that the utility user has access to in a comma delimited list. |
97 | + |
98 | +.. variable:: utility_user_privileges |
99 | + |
100 | + :version 5.6.13-60.6: Implemented |
101 | + :cli: Yes |
102 | + :conf: utility_user_privileges=<privilege1>,<privilege2>,<privilege3> |
103 | + :scope: Global |
104 | + :dyn: No |
105 | + :vartype: String |
106 | + :default: NULL |
107 | + |
108 | +This variable can be used to specify a comma-separated list of extra access privileges to grant to the utility user. Supported values for the privileges list are: ``SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS,FILE, GRANT, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES,EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER, CREATE TABLESPACE`` |
109 | |
110 | === modified file 'doc/source/release-notes/Percona-Server-5.6.13-60.5.rst' |
111 | --- doc/source/release-notes/Percona-Server-5.6.13-60.5.rst 2013-08-28 09:39:11 +0000 |
112 | +++ doc/source/release-notes/Percona-Server-5.6.13-60.5.rst 2013-09-20 13:14:11 +0000 |
113 | @@ -4,7 +4,7 @@ |
114 | |Percona Server| 5.6.13-60.5 |
115 | ============================== |
116 | |
117 | -Percona is glad to announce the third Release Candidate release of |Percona Server| 5.6.13-60.5 on August 28th, 2013 (Downloads are available `here <http://www.percona.com/downloads/Percona-Server-5.6/Percona-Server-5.6.12-60.4/>`_ and from the :doc:`Percona Software Repositories </installation>`. |
118 | +Percona is glad to announce the third Release Candidate release of |Percona Server| 5.6.13-60.5 on August 28th, 2013 (Downloads are available `here <http://www.percona.com/downloads/Percona-Server-5.6/Percona-Server-5.6.13-60.5/>`_ and from the :doc:`Percona Software Repositories </installation>`. |
119 | |
120 | Based on `MySQL 5.6.13 <http://dev.mysql.com/doc/relnotes/mysql/5.6/en/news-5-6-13.html>`_, including all the bug fixes in it, |Percona Server| 5.6.13-60.5 is the third RC release in the |Percona Server| 5.6 series. All of |Percona|'s software is open-source and free, all the details of the release can be found in the `5.6.13-60.5 milestone at Launchpad <https://launchpad.net/percona-server/+milestone/5.6.13-60.5>`_. |
121 | |
122 | |
123 | === added file 'doc/source/release-notes/Percona-Server-5.6.13-60.6.rst' |
124 | --- doc/source/release-notes/Percona-Server-5.6.13-60.6.rst 1970-01-01 00:00:00 +0000 |
125 | +++ doc/source/release-notes/Percona-Server-5.6.13-60.6.rst 2013-09-20 13:14:11 +0000 |
126 | @@ -0,0 +1,37 @@ |
127 | +.. rn:: 5.6.13-60.6 |
128 | + |
129 | +============================== |
130 | + |Percona Server| 5.6.13-60.6 |
131 | +============================== |
132 | + |
133 | +Percona is glad to announce the fourth Release Candidate release of |Percona Server| 5.6.13-60.6 on September 20th, 2013 (Downloads are available `here <http://www.percona.com/downloads/Percona-Server-5.6/Percona-Server-5.6.13-60.6/>`_ and from the :doc:`Percona Software Repositories </installation>`. |
134 | + |
135 | +Based on `MySQL 5.6.13 <http://dev.mysql.com/doc/relnotes/mysql/5.6/en/news-5-6-13.html>`_, including all the bug fixes in it, |Percona Server| 5.6.13-60.6 is the fourth RC release in the |Percona Server| 5.6 series. All of |Percona|'s software is open-source and free, all the details of the release can be found in the `5.6.13-60.6 milestone at Launchpad <https://launchpad.net/percona-server/+milestone/5.6.13-60.6>`_. |
136 | + |
137 | +New Features |
138 | +============ |
139 | + |
140 | + :ref:`innodb_split_buf_pool_mutex` feature has been ported from |Percona Server| 5.5. This feature splits the single global InnoDB buffer pool mutex into several mutexes. The goal of this change is to reduce mutex contention, which can be very impacting when the working set does not fit in memory. |
141 | + |
142 | + :ref:`innodb_adaptive_hash_index_partitions_page` feature has been ported from |Percona Server| 5.5. This feature splits the adaptive hash index across several partitions and decreases the AHI latch contention. This feature fixes the upstream bug :mysqlbug:`62018` (:bug:`1216804`). |
143 | + |
144 | + :ref:`psaas_utility_user` feature has been extended by adding a new :variable:`utility_user_privileges` that allows a comma separated value list of extra access privileges that can be granted to the utility user. |
145 | + |
146 | + |Percona Server| now provides additional information in the slow query log when :variable:`log_slow_rate_limit` variable is enabled. |
147 | + |
148 | + A new variable :variable:`slow_query_log_always_write_time` has been introduced. It can be used to specify an additional execution time threshold for the slow query log, that, when exceeded, will cause a query to be logged unconditionally, that is, :variable:`log_slow_rate_limit` will not apply to it. |
149 | + |
150 | +Bugs Fixed |
151 | +========== |
152 | + |
153 | + The unnecessary overhead from persistent InnoDB adaptive hash index latching has been removed, potentially improving stability of the :ref:`innodb_adaptive_hash_index_partitions_page` feature as well. Upstream bug fixed :mysqlbug:`70216`, bug fixed :bug:`1218347`. |
154 | + |
155 | + Adaptive hash index memory size was incorrectly calculated in ``SHOW ENGINE INNODB STATUS`` and :table:`XTRADB_INTERNAL_HASH_TABLES`. Bug fixed :bug:`1218330`. |
156 | + |
157 | + An unnecessary buffer pool mutex acquisition has been removed, potentially improving performance. Upstream bug fixed :mysqlbug:`69258`, bug fixed :bug:`1219842`. |
158 | + |
159 | + Fixed the build warnings caused by :ref:`user_stats` code on non-Linux platforms. Bug fixed :bug:`711817`. |
160 | + |
161 | + Adaptive hash indexing partitioning code has been simplified, potentially improving performance. Bug fixed :bug:`1218321`. |
162 | + |
163 | +Other bugs fixed: upstream bug fixed :mysqlbug:`69617` bug fixed :bug:`1216815`, upstream bug fixed :mysqlbug:`70228` bug fixed :bug:`1220544`. |
164 | |
165 | === modified file 'doc/source/release-notes/release-notes_index.rst' |
166 | --- doc/source/release-notes/release-notes_index.rst 2013-08-28 09:39:11 +0000 |
167 | +++ doc/source/release-notes/release-notes_index.rst 2013-09-20 13:14:11 +0000 |
168 | @@ -6,6 +6,7 @@ |
169 | :maxdepth: 1 |
170 | :glob: |
171 | |
172 | + Percona-Server-5.6.13-60.6 |
173 | Percona-Server-5.6.13-60.5 |
174 | Percona-Server-5.6.12-60.4 |
175 | Percona-Server-5.6.11-60.3 |
176 | |
177 | === added file 'doc/source/scalability/innodb_adaptive_hash_index_partitions.rst' |
178 | --- doc/source/scalability/innodb_adaptive_hash_index_partitions.rst 1970-01-01 00:00:00 +0000 |
179 | +++ doc/source/scalability/innodb_adaptive_hash_index_partitions.rst 2013-09-20 13:14:11 +0000 |
180 | @@ -0,0 +1,39 @@ |
181 | +.. _innodb_adaptive_hash_index_partitions_page: |
182 | + |
183 | +========================================== |
184 | + Multiple Adaptive Hash Search Partitions |
185 | +========================================== |
186 | + |
187 | +The |InnoDB| adaptive hash index can have contention issues on multi-core systems when you run a mix of read and write queries that need to scan secondary indexes. This feature splits the adaptive hash index across several partitions to avoid such problems. |
188 | + |
189 | +The number of adaptive hash partitions specified by the variable :variable:`innodb_adaptive_hash_index_partitions` are created, and hash indexes are assigned to each one based on ``index_id``. This should help to solve contention problems in the adaptive hash search process when they occur. |
190 | + |
191 | + |
192 | +Version Specific Information |
193 | +============================ |
194 | + * :rn:`5.6.13-60.6` - Feature ported from |Percona Server| 5.5 |
195 | + |
196 | +System Variables |
197 | +---------------- |
198 | + |
199 | +.. variable:: innodb_adaptive_hash_index_partitions |
200 | + |
201 | + :version 5.6.13-60.6: Ported from |Percona Server| 5.6 |
202 | + :cli: Yes |
203 | + :conf: Yes |
204 | + :scope: Global |
205 | + :dyn: No |
206 | + :vartype: Numeric |
207 | + :def: 1 |
208 | + :range: 1-64, (on 32-bit platform 1-32) |
209 | + |
210 | +Specifies the number of partitions to use in the adaptive hash search process. |
211 | + |
212 | +When set to one, no extra partitions are created and the normal process is in effect. When greater than one, the specified number of partitions are created across which to perform the adaptive search. |
213 | + |
214 | +Other reading |
215 | +------------- |
216 | + |
217 | + * `Index lock and adaptive search <http://www.mysqlperformanceblog.com/2010/02/25/index-lock-and-adaptive-search-next-two-biggest-innodb-problems/>`_ |
218 | + |
219 | + * |MySQL| bug :mysqlbug:`62018` |
220 | |
221 | === added file 'doc/source/scalability/innodb_split_buf_pool_mutex.rst' |
222 | --- doc/source/scalability/innodb_split_buf_pool_mutex.rst 1970-01-01 00:00:00 +0000 |
223 | +++ doc/source/scalability/innodb_split_buf_pool_mutex.rst 2013-09-20 13:14:11 +0000 |
224 | @@ -0,0 +1,80 @@ |
225 | +.. _innodb_split_buf_pool_mutex: |
226 | + |
227 | +================================== |
228 | + Improved Buffer Pool Scalability |
229 | +================================== |
230 | + |
231 | +The |InnoDB| buffer pool is a well known point of contention when many queries are executed concurrently. In |XtraDB|, the global mutex protecting the buffer pool has been split into several mutexes to decrease contention. |
232 | + |
233 | +This feature splits the single global InnoDB buffer pool mutex into several mutexes: |
234 | + |
235 | +.. list-table:: |
236 | + :widths: 20 40 |
237 | + :header-rows: 1 |
238 | + |
239 | + * - Name |
240 | + - Protects |
241 | + * - flush_state_mutex |
242 | + - flushing state of dirty blocks |
243 | + * - LRU_list_mutex |
244 | + - LRU lists of blocks in buffer pool |
245 | + * - flush_list_mutex |
246 | + - flush list of dirty blocks to flush |
247 | + * - free_list_mutex |
248 | + - list of free blocks in buffer pool |
249 | + * - zip_free_mutex |
250 | + - lists of free area to treat compressed pages |
251 | + * - zip_hash_mutex |
252 | + - hash table to search compressed pages |
253 | + |
254 | +The goal of this change is to reduce mutex contention, which can be very impacting when the working set does not fit in memory. |
255 | + |
256 | +Version Specific Information |
257 | +============================ |
258 | + * :rn:`5.6.13-60.6` - Feature ported from |Percona Server| 5.5 |
259 | + |
260 | +Other Information |
261 | +================= |
262 | + |
263 | +Detecting Mutex Contention |
264 | +-------------------------- |
265 | + |
266 | +You can detect when you suffer from mutex contention in the buffer pool by reading the information provided in the SEMAPHORES section of the output of SHOW ENGINE INNODB STATUS: |
267 | + |
268 | +Under normal circumstances this section should look like this: |
269 | + |
270 | +.. code-block:: guess |
271 | + |
272 | + SEMAPHORES |
273 | + ---------- |
274 | + OS WAIT ARRAY INFO: reservation count 50238, signal count 17465 |
275 | + Mutex spin waits 0, rounds 628280, OS waits 31338 |
276 | + RW-shared spins 38074, OS waits 18900; RW-excl spins 0, OS waits 0 |
277 | + |
278 | +If you have a high-concurrency workload this section may look like this: |
279 | + |
280 | +.. code-block:: guess |
281 | + |
282 | + 1 ---------- |
283 | + 2 SEMAPHORES |
284 | + 3 ---------- |
285 | + 4 OS WAIT ARRAY INFO: reservation count 36255, signal count 12675 |
286 | + 5 --Thread 10607472 has waited at buf/buf0rea.c line 420 for 0.00 seconds the semaphore: |
287 | + 6 Mutex at 0x358068 created file buf/buf0buf.c line 597, lock var 0 |
288 | + 7 waiters flag 0 |
289 | + 8 --Thread 3488624 has waited at buf/buf0buf.c line 1177 for 0.00 seconds the semaphore: |
290 | + 9 Mutex at 0x358068 created file buf/buf0buf.c line 597, lock var 0 |
291 | + 10 waiters flag 0 |
292 | + 11 --Thread 6896496 has waited at btr/btr0cur.c line 442 for 0.00 seconds the semaphore: |
293 | + 12 S-lock on RW-latch at 0x8800244 created in file buf/buf0buf.c line 547 |
294 | + 13 a writer (thread id 14879600) has reserved it in mode exclusive |
295 | + 14 number of readers 0, waiters flag 1 |
296 | + 15 Last time read locked in file btr/btr0cur.c line 442 |
297 | + 16 Last time write locked in file buf/buf0buf.c line 1797 |
298 | + [...] |
299 | + 17 Mutex spin waits 0, rounds 452650, OS waits 22573 |
300 | + 18 RW-shared spins 27550, OS waits 13682; RW-excl spins 0, OS waits 0 |
301 | + |
302 | + |
303 | +Note that in the second case you will see indications that threads are waiting for a mutex created in the file buf/buf0buf.c (lines 5 to 7 or 8 to 10). Such an indication is a sign of buffer pool contention. |
304 | + |
Not commenting on the missing stuff as this is a draft.
- Line 44: remove whitespace before "=", and "CREATE,DROP,LOCK separated, missing space before EXECUTE.
TABLES"
- Line 64: s/CSV/comma-
- Line 74: release date.
- "The unnecessary overhead from persistent InnoDB adaptive hash
index latching has been removed, potentially improving the
stability of (AHI partitions link) feature as well. Bug fixed ... "
- Move bug 1216804/62018 up to the "feature has been ported",
assign its explaining the text to the feature instead.
- Line 107: s/hash index memory/hash index memory size
- "An unncessary buffer pool mutex acquisition has been removed,
potentially improving performance".
- 70228 goes to "other fixes".
- "Adaptive hash indexing partitioning code has been simplified,
potentially improving performance".