Merge lp:~hrvojem/percona-server/rn-5.6.13-60.6 into lp:percona-server/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
Reviewer Review Type Date Requested Status
Laurynas Biveinis (community) Approve
Review via email: mp+186735@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Laurynas Biveinis (laurynas-biveinis) wrote :

   Not commenting on the missing stuff as this is a draft.

   - Line 44: remove whitespace before "=", and "CREATE,DROP,LOCK
   TABLES"
   - Line 64: s/CSV/comma-separated, missing space before EXECUTE.
   - 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".

review: Needs Fixing
Revision history for this message
Laurynas Biveinis (laurynas-biveinis) wrote :

- 62018 reference is now lost?
- For AHI, s/decreases the contention/decreases AHI latch 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+

Subscribers

People subscribed via source and target branches