Merge lp:~hrvojem/percona-server/bug860922-5.1 into lp:percona-server/5.1

Proposed by Hrvoje Matijakovic
Status: Merged
Merged at revision: 428
Proposed branch: lp:~hrvojem/percona-server/bug860922-5.1
Merge into: lp:percona-server/5.1
Diff against target: 232 lines (+84/-71)
5 files modified
doc/source/conf.py (+1/-1)
doc/source/glossary.rst (+11/-14)
doc/source/index.rst (+1/-0)
doc/source/scalability/innodb_insert_buffer.rst (+69/-0)
doc/source/scalability/innodb_io.rst (+2/-56)
To merge this branch: bzr merge lp:~hrvojem/percona-server/bug860922-5.1
Reviewer Review Type Date Requested Status
Alexey Kopytov (community) Needs Fixing
Review via email: mp+92920@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Alexey Kopytov (akopytov) wrote :

Hrvoje,

Some minor comments:

- s/This variable allow/This variable allows/
- "Each the thread is called, its activity is altered..." -- I'm not sure what that is supposed to mean. Perhaps "Each time the insert buffer merge is performed by the InnoDB master thread, its activity is affected..."?
- innodb_ibuf_active_contract -- I don't think it's adequately documented, but its purpose eludes me. Perhaps Vadim knows it. Feel free to report it as a separate bug and the consider this MP approved after addressing other comments.

I think we should also have the same fix in 5.5, so I have targeted the bug accordingly.

review: Needs Fixing

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'doc/source/conf.py'
--- doc/source/conf.py 2012-02-08 07:31:56 +0000
+++ doc/source/conf.py 2012-03-09 08:07:21 +0000
@@ -266,5 +266,5 @@
266intersphinx_mapping = {266intersphinx_mapping = {
267 'ps55' : ('http://www.percona.com/doc/percona-server/5.5/', None),267 'ps55' : ('http://www.percona.com/doc/percona-server/5.5/', None),
268 'xtrabackup' : ('http://www.percona.com/doc/percona-xtrabackup', None),268 'xtrabackup' : ('http://www.percona.com/doc/percona-xtrabackup', None),
269 'ptoolkit' : ('http://www.percona.com/doc/percona-toolkit', None)269 'ptoolkit' : ('http://www.percona.com/doc/percona-toolkit/2.0/', None)
270 }270 }
271271
=== modified file 'doc/source/glossary.rst'
--- doc/source/glossary.rst 2012-01-31 14:24:44 +0000
+++ doc/source/glossary.rst 2012-03-09 08:07:21 +0000
@@ -29,14 +29,13 @@
2929
30 Drizzle Charter:30 Drizzle Charter:
3131
32 * A database optimized for Cloud infrastructure and Web applications.32 * A database optimized for Cloud infrastructure and Web applications.
33 * Design for massive concurrency on modern multi-cpu architecture33 * Design for massive concurrency on modern multi-cpu architecture
34 * Optimize memory for increased performance and parallelism34 * Optimize memory for increased performance and parallelism
35 * Open source, open community, open design Scope35 * Open source, open community, open design Scope
36 * Re-designed modular architecture providing plugins with defined APIs36 * Re-designed modular architecture providing plugins with defined APIs
37 * Simple design for ease of use and administration37 * Simple design for ease of use and administration
38 * Reliable, ACID transactional38 * Reliable, ACID transactional
39
4039
41 Durability40 Durability
42 Once a transaction is committed, it will remain so.41 Once a transaction is committed, it will remain so.
@@ -59,14 +58,13 @@
59 on all platforms.58 on all platforms.
6059
61 Jenkins60 Jenkins
62 `Jenkins <http://www.jenkins-ci.org>`_ is a continuous integration61 `Jenkins <http://www.jenkins-ci.org>`_ is a continuous integration
63 system that we use to help ensure the continued quality of the62 system that we use to help ensure the continued quality of the
64 software we produce. It helps us achieve the aims of:63 software we produce. It helps us achieve the aims of:
6564
66 * no failed tests in trunk on any platform,65 * no failed tests in trunk on any platform,
67 * aid developers in ensuring merge requests build and test on all platforms,66 * aid developers in ensuring merge requests build and test on all platforms,
68 * no known performance regressions (without a damn good explanation).67 * no known performance regressions (without a damn good explanation).
69
7068
71 LSN69 LSN
72 Log Serial Number. A term used in relation to the :term:`InnoDB` or70 Log Serial Number. A term used in relation to the :term:`InnoDB` or
@@ -92,7 +90,6 @@
92 the Oracle distribution of MySQL as distinct from the drop-in90 the Oracle distribution of MySQL as distinct from the drop-in
93 replacements such as :term:`MariaDB` and :term:`Percona Server`.91 replacements such as :term:`MariaDB` and :term:`Percona Server`.
9492
95
96 Percona Server93 Percona Server
97 Percona's branch of :term:`MySQL` with performance and management improvements.94 Percona's branch of :term:`MySQL` with performance and management improvements.
9895
9996
=== modified file 'doc/source/index.rst'
--- doc/source/index.rst 2012-01-31 10:35:01 +0000
+++ doc/source/index.rst 2012-03-09 08:07:21 +0000
@@ -57,6 +57,7 @@
57 :glob:57 :glob:
5858
59 scalability/innodb_split_buf_pool_mutex59 scalability/innodb_split_buf_pool_mutex
60 scalability/innodb_insert_buffer
60 scalability/innodb_io61 scalability/innodb_io
61 scalability/innodb_extra_rseg62 scalability/innodb_extra_rseg
62 scalability/innodb_expand_undo_slots63 scalability/innodb_expand_undo_slots
6364
=== added file 'doc/source/scalability/innodb_insert_buffer.rst'
--- doc/source/scalability/innodb_insert_buffer.rst 1970-01-01 00:00:00 +0000
+++ doc/source/scalability/innodb_insert_buffer.rst 2012-03-09 08:07:21 +0000
@@ -0,0 +1,69 @@
1.. _innodb_insert_buffer:
2
3==========================
4Configurable Insert Buffer
5==========================
6
7Percona has implemented several changes related to MySQL's InnoDB Insert Buffer. These features enable adjusting the insert buffer to the different workloads and hardware configurations.
8
9System variables:
10=================
11
12.. variable:: innodb_ibuf_accel_rate
13
14 :cli: Yes
15 :conf: Yes
16 :scope: Global
17 :dyn: Yes
18 :vartype: Numeric
19 :default: 100
20 :range: 100 - 999999999
21
22This variable allows a better control of the background thread processing the insert buffer. Each time the insert buffer merge is performed by the InnoDB master thread, its activity is affected by the value of both :variable:`innodb_io_capacity` and :variable:`innodb_ibuf_accel_rate` this way: ::
23
24 [real activity] = [default activity] * (innodb_io_capacity/100) * (innodb_ibuf_accel_rate/100)
25
26
27By increasing the value of :variable:`innodb_ibuf_accel_rate`, you will increase the insert buffer activity
28
29.. variable:: innodb_ibuf_active_contract
30
31 :cli: Yes
32 :conf: Yes
33 :scope: Global
34 :dyn: Yes
35 :vartype: Numeric
36 :default: 0(1.0.5), 1(1.0.6)
37 :range: 0 - 1
38
39This variable specifies whether the insert buffer can be processed before it reaches its maximum size. The following values are allowed:
40
41 * 0:
42 The insert buffer is not processed until it is full. This is the standard |InnoDB| behavior.
43
44 * 1:
45 The insert buffer can be processed even it is not full.
46
47
48.. variable:: innodb_ibuf_max_size
49
50 :cli: Yes
51 :conf: Yes
52 :scope: Global
53 :dyn: No
54 :vartype: Numeric
55 :default: Half the size of the |InnoDB| buffer pool
56 :range: 0 - Half the size of the |InnoDB| buffer pool
57 :unit: Bytes
58
59This variable specifies the maximum size of the insert buffer. By default the insert buffer is half the size of the buffer pool so if you have a very large buffer pool, the insert buffer will be very large too and you may want to restrict its size with this variable.
60
61Setting this variable to 0 is equivalent to disabling the insert buffer. But then all changes to secondary indexes will be performed synchronously which will probably cause performance degradation. Likewise a too small value can hurt performance.
62
63If you have very fast storage (ie storage with RAM-level speed, not just a RAID with fast disks), a value of a few MB may be the best choice for maximum performance.
64
65Other Reading
66=============
67
68* `Some little known facts about InnoDB Insert Buffer <http://www.mysqlperformanceblog.com/2009/01/13/some-little-known-facts-about-innodb-insert-buffer/>`_
69* `5.0.75-build12 Percona binaries <http://www.mysqlperformanceblog.com/2009/01/23/5075-build12-percona-binaries/>`_
070
=== modified file 'doc/source/scalability/innodb_io.rst'
--- doc/source/scalability/innodb_io.rst 2012-02-07 13:43:02 +0000
+++ doc/source/scalability/innodb_io.rst 2012-03-09 08:07:21 +0000
@@ -36,7 +36,7 @@
3636
37.. variable:: innodb_adaptive_checkpoint37.. variable:: innodb_adaptive_checkpoint
3838
39 :version 5.1.54-12.5 Added 39 :version: 5.1.54-12.5 Added
40 :cli: Yes40 :cli: Yes
41 :conf: Yes41 :conf: Yes
42 :scope: Global42 :scope: Global
@@ -109,7 +109,7 @@
109109
110.. variable:: innodb_flush_log_at_trx_commit_session110.. variable:: innodb_flush_log_at_trx_commit_session
111111
112 :version 5.1.49-13 Added112 :version: 5.1.49-13 Added
113 :cli: Yes113 :cli: Yes
114 :conf: Yes114 :conf: Yes
115 :scope: Global115 :scope: Global
@@ -176,60 +176,6 @@
176176
177If you use a storage which has no “head seek delay” (e.g. SSD or enough memory for write buffering), 0 may show better performance.177If you use a storage which has no “head seek delay” (e.g. SSD or enough memory for write buffering), 0 may show better performance.
178178
179.. variable:: innodb_ibuf_accel_rate
180
181 :cli: Yes
182 :conf: Yes
183 :scope: Global
184 :dyn: Yes
185 :vartype: Numeric
186 :default: 100
187 :range: 100 - 999999999
188
189This variable allow a better control of the background thread processing the insert buffer. Each the thread is called, its activity is altered by the value of both :variable:`innodb_io_capacity` and :variable:`innodb_ibuf_accel_rate` this way: ::
190
191 [real activity] = [default activity] * (innodb_io_capacity/100) * (innodb_ibuf_accel_rate/100)
192
193
194By increasing the value of :variable:`innodb_ibuf_accel_rate`, you will increase the insert buffer activity
195
196.. variable:: innodb_ibuf_active_contract
197
198 :cli: Yes
199 :conf: Yes
200 :scope: Global
201 :dyn: Yes
202 :vartype: Numeric
203 :default: 0(1.0.5), 1(1.0.6)
204 :range: 0 - 1
205
206This variable specifies whether the insert buffer can be processed before it reaches its maximum size. The following values are allowed:
207
208 * 0:
209 The insert buffer is not processed until it is full. This is the standard |InnoDB| behavior.
210
211 * 1:
212 The insert buffer can be processed even it is not full.
213
214
215.. variable:: innodb_ibuf_max_size
216
217 :cli: Yes
218 :conf: Yes
219 :scope: Global
220 :dyn: No
221 :vartype: Numeric
222 :default: Half the size of the |InnoDB| buffer pool
223 :range: 0 - Half the size of the |InnoDB| buffer pool
224 :unit: Bytes
225
226This variable specifies the maximum size of the insert buffer. By default the insert buffer is half the size of the buffer pool so if you have a very large buffer pool, the insert buffer will be very large too and you may want to restrict its size with this variable.
227
228Setting this variable to 0 is equivalent to disabling the insert buffer. But then all changes to secondary indexes will be performed synchronously which will probably cause performance degradation. Likewise a too small value can hurt performance.
229
230If you have very fast storage (ie storage with RAM-level speed, not just a RAID with fast disks), a value of a few MB may be the best choice for maximum performance.
231
232
233.. variable:: innodb_log_block_size179.. variable:: innodb_log_block_size
234180
235 :cli: Yes181 :cli: Yes

Subscribers

People subscribed via source and target branches