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

Proposed by Hrvoje Matijakovic on 2012-02-14
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) 2012-02-14 Needs Fixing on 2012-03-09
Review via email: mp+92920@code.launchpad.net
To post a comment you must log in.
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
428. By Hrvoje Matijakovic on 2012-03-09

* doc bugfix for Bug #860922
* fixed build warnings

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 2012-02-08 07:31:56 +0000
3+++ doc/source/conf.py 2012-03-09 08:07:21 +0000
4@@ -266,5 +266,5 @@
5 intersphinx_mapping = {
6 'ps55' : ('http://www.percona.com/doc/percona-server/5.5/', None),
7 'xtrabackup' : ('http://www.percona.com/doc/percona-xtrabackup', None),
8- 'ptoolkit' : ('http://www.percona.com/doc/percona-toolkit', None)
9+ 'ptoolkit' : ('http://www.percona.com/doc/percona-toolkit/2.0/', None)
10 }
11
12=== modified file 'doc/source/glossary.rst'
13--- doc/source/glossary.rst 2012-01-31 14:24:44 +0000
14+++ doc/source/glossary.rst 2012-03-09 08:07:21 +0000
15@@ -29,14 +29,13 @@
16
17 Drizzle Charter:
18
19- * A database optimized for Cloud infrastructure and Web applications.
20- * Design for massive concurrency on modern multi-cpu architecture
21- * Optimize memory for increased performance and parallelism
22- * Open source, open community, open design Scope
23- * Re-designed modular architecture providing plugins with defined APIs
24- * Simple design for ease of use and administration
25- * Reliable, ACID transactional
26-
27+ * A database optimized for Cloud infrastructure and Web applications.
28+ * Design for massive concurrency on modern multi-cpu architecture
29+ * Optimize memory for increased performance and parallelism
30+ * Open source, open community, open design Scope
31+ * Re-designed modular architecture providing plugins with defined APIs
32+ * Simple design for ease of use and administration
33+ * Reliable, ACID transactional
34
35 Durability
36 Once a transaction is committed, it will remain so.
37@@ -59,14 +58,13 @@
38 on all platforms.
39
40 Jenkins
41- `Jenkins <http://www.jenkins-ci.org>`_ is a continuous integration
42+ `Jenkins <http://www.jenkins-ci.org>`_ is a continuous integration
43 system that we use to help ensure the continued quality of the
44 software we produce. It helps us achieve the aims of:
45
46- * no failed tests in trunk on any platform,
47- * aid developers in ensuring merge requests build and test on all platforms,
48- * no known performance regressions (without a damn good explanation).
49-
50+ * no failed tests in trunk on any platform,
51+ * aid developers in ensuring merge requests build and test on all platforms,
52+ * no known performance regressions (without a damn good explanation).
53
54 LSN
55 Log Serial Number. A term used in relation to the :term:`InnoDB` or
56@@ -92,7 +90,6 @@
57 the Oracle distribution of MySQL as distinct from the drop-in
58 replacements such as :term:`MariaDB` and :term:`Percona Server`.
59
60-
61 Percona Server
62 Percona's branch of :term:`MySQL` with performance and management improvements.
63
64
65=== modified file 'doc/source/index.rst'
66--- doc/source/index.rst 2012-01-31 10:35:01 +0000
67+++ doc/source/index.rst 2012-03-09 08:07:21 +0000
68@@ -57,6 +57,7 @@
69 :glob:
70
71 scalability/innodb_split_buf_pool_mutex
72+ scalability/innodb_insert_buffer
73 scalability/innodb_io
74 scalability/innodb_extra_rseg
75 scalability/innodb_expand_undo_slots
76
77=== added file 'doc/source/scalability/innodb_insert_buffer.rst'
78--- doc/source/scalability/innodb_insert_buffer.rst 1970-01-01 00:00:00 +0000
79+++ doc/source/scalability/innodb_insert_buffer.rst 2012-03-09 08:07:21 +0000
80@@ -0,0 +1,69 @@
81+.. _innodb_insert_buffer:
82+
83+==========================
84+Configurable Insert Buffer
85+==========================
86+
87+Percona 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.
88+
89+System variables:
90+=================
91+
92+.. variable:: innodb_ibuf_accel_rate
93+
94+ :cli: Yes
95+ :conf: Yes
96+ :scope: Global
97+ :dyn: Yes
98+ :vartype: Numeric
99+ :default: 100
100+ :range: 100 - 999999999
101+
102+This 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: ::
103+
104+ [real activity] = [default activity] * (innodb_io_capacity/100) * (innodb_ibuf_accel_rate/100)
105+
106+
107+By increasing the value of :variable:`innodb_ibuf_accel_rate`, you will increase the insert buffer activity
108+
109+.. variable:: innodb_ibuf_active_contract
110+
111+ :cli: Yes
112+ :conf: Yes
113+ :scope: Global
114+ :dyn: Yes
115+ :vartype: Numeric
116+ :default: 0(1.0.5), 1(1.0.6)
117+ :range: 0 - 1
118+
119+This variable specifies whether the insert buffer can be processed before it reaches its maximum size. The following values are allowed:
120+
121+ * 0:
122+ The insert buffer is not processed until it is full. This is the standard |InnoDB| behavior.
123+
124+ * 1:
125+ The insert buffer can be processed even it is not full.
126+
127+
128+.. variable:: innodb_ibuf_max_size
129+
130+ :cli: Yes
131+ :conf: Yes
132+ :scope: Global
133+ :dyn: No
134+ :vartype: Numeric
135+ :default: Half the size of the |InnoDB| buffer pool
136+ :range: 0 - Half the size of the |InnoDB| buffer pool
137+ :unit: Bytes
138+
139+This 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.
140+
141+Setting 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.
142+
143+If 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.
144+
145+Other Reading
146+=============
147+
148+* `Some little known facts about InnoDB Insert Buffer <http://www.mysqlperformanceblog.com/2009/01/13/some-little-known-facts-about-innodb-insert-buffer/>`_
149+* `5.0.75-build12 Percona binaries <http://www.mysqlperformanceblog.com/2009/01/23/5075-build12-percona-binaries/>`_
150
151=== modified file 'doc/source/scalability/innodb_io.rst'
152--- doc/source/scalability/innodb_io.rst 2012-02-07 13:43:02 +0000
153+++ doc/source/scalability/innodb_io.rst 2012-03-09 08:07:21 +0000
154@@ -36,7 +36,7 @@
155
156 .. variable:: innodb_adaptive_checkpoint
157
158- :version 5.1.54-12.5 Added
159+ :version: 5.1.54-12.5 Added
160 :cli: Yes
161 :conf: Yes
162 :scope: Global
163@@ -109,7 +109,7 @@
164
165 .. variable:: innodb_flush_log_at_trx_commit_session
166
167- :version 5.1.49-13 Added
168+ :version: 5.1.49-13 Added
169 :cli: Yes
170 :conf: Yes
171 :scope: Global
172@@ -176,60 +176,6 @@
173
174 If you use a storage which has no “head seek delay” (e.g. SSD or enough memory for write buffering), 0 may show better performance.
175
176-.. variable:: innodb_ibuf_accel_rate
177-
178- :cli: Yes
179- :conf: Yes
180- :scope: Global
181- :dyn: Yes
182- :vartype: Numeric
183- :default: 100
184- :range: 100 - 999999999
185-
186-This 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: ::
187-
188- [real activity] = [default activity] * (innodb_io_capacity/100) * (innodb_ibuf_accel_rate/100)
189-
190-
191-By increasing the value of :variable:`innodb_ibuf_accel_rate`, you will increase the insert buffer activity
192-
193-.. variable:: innodb_ibuf_active_contract
194-
195- :cli: Yes
196- :conf: Yes
197- :scope: Global
198- :dyn: Yes
199- :vartype: Numeric
200- :default: 0(1.0.5), 1(1.0.6)
201- :range: 0 - 1
202-
203-This variable specifies whether the insert buffer can be processed before it reaches its maximum size. The following values are allowed:
204-
205- * 0:
206- The insert buffer is not processed until it is full. This is the standard |InnoDB| behavior.
207-
208- * 1:
209- The insert buffer can be processed even it is not full.
210-
211-
212-.. variable:: innodb_ibuf_max_size
213-
214- :cli: Yes
215- :conf: Yes
216- :scope: Global
217- :dyn: No
218- :vartype: Numeric
219- :default: Half the size of the |InnoDB| buffer pool
220- :range: 0 - Half the size of the |InnoDB| buffer pool
221- :unit: Bytes
222-
223-This 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.
224-
225-Setting 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.
226-
227-If 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.
228-
229-
230 .. variable:: innodb_log_block_size
231
232 :cli: Yes

Subscribers

People subscribed via source and target branches