Merge lp:~hrvojem/percona-server/rn-5.6.16-64.0-tokudb-5.6 into lp:percona-server/5.6
- rn-5.6.16-64.0-tokudb-5.6
- Merge into 5.6
Status: | Merged |
---|---|
Merged at revision: | 552 |
Proposed branch: | lp:~hrvojem/percona-server/rn-5.6.16-64.0-tokudb-5.6 |
Merge into: | lp:percona-server/5.6 |
Diff against target: |
528 lines (+389/-13) 13 files modified
.bzrignore (+1/-0) doc/source/conf.py (+4/-4) doc/source/flexibility/mysqlbinlog_change_db.rst (+89/-0) doc/source/index.rst (+13/-0) doc/source/installation/apt_repo.rst (+7/-8) doc/source/ps-versions-comparison.rst (+1/-1) doc/source/release-notes/Percona-Server-5.6.16-64.0-tokudb.rst (+28/-0) doc/source/release-notes/Percona-Server-5.6.16-64.0.rst (+47/-0) doc/source/release-notes/release-notes_index.rst (+2/-0) doc/source/tokudb/tokudb_compression.rst (+45/-0) doc/source/tokudb/tokudb_installation.rst (+96/-0) doc/source/tokudb/tokudb_intro.rst (+23/-0) doc/source/tokudb/using_tokudb.rst (+33/-0) |
To merge this branch: | bzr merge lp:~hrvojem/percona-server/rn-5.6.16-64.0-tokudb-5.6 |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Laurynas Biveinis (community) | Approve | ||
Review via email: mp+209019@code.launchpad.net |
Commit message
Description of the change
Laurynas Biveinis (laurynas-biveinis) wrote : | # |
Laurynas Biveinis (laurynas-biveinis) wrote : | # |
TokuDB review only
- How is patching doc/source/conf.py to +release =
'
releases?
- 221,224: "-tokudb" to the version string
- 250: only the 1st sentence enough
- 309: s/that aren't available.../for TokuDB tables.
- 311: s/bases/basis, uppercase ROW_FORMAT
- 311: uppercase option names
- 333: uppercase
- 335: uppercase ROW_FORMAT
- 343: "datayou'll"
- How are the packages organized? Will yum install
Percona-
percona-
TokuDB SE as two packages, one joint package, or?
- On alpha vs non-alpha features. (i.e. what's on the alpha tree,
and what's on the trunk). The TokuDB compression is in the
trunk, so it's not an alpha. The rest are not present in the
trunk, thus I'll make a separate list for them and add a warning
that these features might change or even disappear in a future
release. I'd put these two lists both in the RNs and in
tokudb_
Laurynas Biveinis (laurynas-biveinis) wrote : | # |
TokuDB review only
- s/Features available only in ALPHA release/Currently available
ALPHA features/g
- footnotes: these features are available only in ALPHA Percona
Server with TokuDB builds. They might change or ...
- 266: s/algorithm names/algorithms
- 329/332: uppercase option names
- 337: uppercase
- 349: uppercase
- 355: uppercase
Laurynas Biveinis (laurynas-biveinis) wrote : | # |
TokuDB review only
- 245, 490: "oreven"
- 327: "with <missing> CPU utilization"
Laurynas Biveinis (laurynas-biveinis) wrote : | # |
TokuDB review only
Preview Diff
1 | === modified file '.bzrignore' |
2 | --- .bzrignore 2013-10-08 06:03:07 +0000 |
3 | +++ .bzrignore 2014-03-03 18:33:47 +0000 |
4 | @@ -3140,3 +3140,4 @@ |
5 | storage/perfschema/pfs_lex_token.h |
6 | storage/perfschema/gen_pfs_lex_token |
7 | sql/share/bulgarian |
8 | +doc/build |
9 | |
10 | === modified file 'doc/source/conf.py' |
11 | --- doc/source/conf.py 2014-03-03 17:51:33 +0000 |
12 | +++ doc/source/conf.py 2014-03-03 18:33:47 +0000 |
13 | @@ -45,7 +45,7 @@ |
14 | |
15 | # General information about the project. |
16 | project = u'Percona Server' |
17 | -copyright = u'Percona LLC and/or its affiliates 2009-2013' |
18 | +copyright = u'Percona LLC and/or its affiliates 2009-2014' |
19 | |
20 | # The version info for the project you're documenting, acts as replacement for |
21 | # |version| and |release|, also used in various other places throughout the |
22 | @@ -54,7 +54,7 @@ |
23 | # The short X.Y version. |
24 | version = '5.6' |
25 | # The full version, including alpha/beta/rc tags. |
26 | -release = '5.6.15-63.0' |
27 | +release = '5.6.16-64.0-tokudb' |
28 | |
29 | # The language for content autogenerated by Sphinx. Refer to documentation |
30 | # for a list of supported languages. |
31 | @@ -226,7 +226,7 @@ |
32 | # (source start file, target name, title, author, documentclass [howto/manual]). |
33 | latex_documents = [ |
34 | ('index', 'PerconaServer-5.6.tex', u'Percona Server Documentation', |
35 | - u'Percona LLC and/or its affiliates 2009-2013', 'manual'), |
36 | + u'Percona LLC and/or its affiliates 2009-2014', 'manual'), |
37 | ] |
38 | |
39 | # The name of an image file (relative to this directory) to place at the top of |
40 | @@ -259,7 +259,7 @@ |
41 | # (source start file, name, description, authors, manual section). |
42 | man_pages = [ |
43 | ('index', 'perconaserver56', u'Percona Server 5.6 Documentation', |
44 | - [u'Percona LLC and/or its affiliates 2009-2013'], 1) |
45 | + [u'Percona LLC and/or its affiliates 2009-2014'], 1) |
46 | ] |
47 | |
48 | |
49 | |
50 | === added file 'doc/source/flexibility/mysqlbinlog_change_db.rst' |
51 | --- doc/source/flexibility/mysqlbinlog_change_db.rst 1970-01-01 00:00:00 +0000 |
52 | +++ doc/source/flexibility/mysqlbinlog_change_db.rst 2014-03-03 18:33:47 +0000 |
53 | @@ -0,0 +1,89 @@ |
54 | +.. _mysqlbinlog_change_db: |
55 | + |
56 | +========================================== |
57 | +Ability to change database for mysqlbinlog |
58 | +========================================== |
59 | + |
60 | +Sometimes there is a need to take a binary log and apply it to a database with |
61 | +a different name than the original name of the database on binlog producer. |
62 | + |
63 | +New option rewrite-db has been added to the mysqlbinlog utility that allows the changing names of the used databases in both Row-Based and Statement-Based replication. This was possible before by using tools like grep, awk and sed but only for SBR, because with RBR database name is encoded within the BINLOG ‘....’ statement. |
64 | + |
65 | +Option :option:`rewrite-db` of **mysqlbinlog** utility allows to setup rewriting rule "from->"to". |
66 | + |
67 | +Example |
68 | +======= |
69 | + |
70 | +**mysqlbinlog** output before rewrite-db :: |
71 | + |
72 | + $ mysqlbinlog mysql-bin.000005 |
73 | + ... |
74 | + # at 175 |
75 | + #120517 13:10:00 server id 2 end_log_pos 203 Intvar |
76 | + SET INSERT_ID=4083/*!*/; |
77 | + # at 203 |
78 | + #120517 13:10:00 server id 2 end_log_pos 367 Query thread_id=88 exec_time=0 error_code=0 |
79 | + use world/*!*/; |
80 | + SET TIMESTAMP=1337253000/*!*/; |
81 | + insert into City (Name, CountryCode, District, Population) values ("New City", "ZMB", "TEX", 111000) |
82 | + /*!*/; |
83 | + # at 367 |
84 | + #120517 13:10:00 server id 2 end_log_pos 394 Xid = 1414 |
85 | + COMMIT/*!*/; |
86 | + DELIMITER ; |
87 | + |
88 | +**mysqlbinlog** output when the new variable is used: :: |
89 | + |
90 | + $ mysqlbinlog --rewrite-db='world->new_world' mysql-bin.000005 |
91 | + ... |
92 | + # at 106 |
93 | + use new_world/*!*/; |
94 | + #120517 13:10:00 server id 2 end_log_pos 175 Query thread_id=88 exec_time=0 error_code=0 |
95 | + SET TIMESTAMP=1337253000/*!*/; |
96 | + SET @@session.pseudo_thread_id=88/*!*/; |
97 | + SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1, @@session.autocommit=1/*!*/; |
98 | + SET @@session.sql_mode=0/*!*/; |
99 | + SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; |
100 | + /*!\C latin1 *//*!*/; |
101 | + SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; |
102 | + SET @@session.lc_time_names=0/*!*/; |
103 | + SET @@session.collation_database=DEFAULT/*!*/; |
104 | + BEGIN |
105 | + /*!*/; |
106 | + # at 175 |
107 | + #120517 13:10:00 server id 2 end_log_pos 203 Intvar |
108 | + SET INSERT_ID=4083/*!*/; |
109 | + # at 203 |
110 | + #120517 13:10:00 server id 2 end_log_pos 367 Query thread_id=88 exec_time=0 error_code=0 |
111 | + SET TIMESTAMP=1337253000/*!*/; |
112 | + insert into City (Name, CountryCode, District, Population) values ("New City", "ZMB", "TEX", 111000) |
113 | + /*!*/; |
114 | + # at 367 |
115 | + #120517 13:10:00 server id 2 end_log_pos 394 Xid = 1414 |
116 | + COMMIT/*!*/; |
117 | + |
118 | + |
119 | +Version Specific Information |
120 | +============================ |
121 | + |
122 | + * :rn:`5.6.16-64.0` |
123 | + Feature ported from |Percona Server| 5.1 |
124 | + |
125 | +Client Command Line Parameter |
126 | +============================= |
127 | + |
128 | +.. option:: rewrite-db |
129 | + |
130 | + :cli: Yes |
131 | + :conf: Yes |
132 | + :scope: Global |
133 | + :dyn: No |
134 | + :vartype: String |
135 | + :default: Off |
136 | + |
137 | + |
138 | +Related Reading |
139 | +=============== |
140 | + |
141 | + * `WL #36 <http://askmonty.org/worklog/Server-Sprint/?tid=36>`_ |
142 | + |
143 | |
144 | === modified file 'doc/source/index.rst' |
145 | --- doc/source/index.rst 2014-03-03 17:51:33 +0000 |
146 | +++ doc/source/index.rst 2014-03-03 18:33:47 +0000 |
147 | @@ -89,6 +89,7 @@ |
148 | flexibility/extended_select_into_outfile |
149 | flexibility/per_query_variable_statement |
150 | flexibility/extended_mysqlbinlog |
151 | + flexibility/mysqlbinlog_change_db |
152 | |
153 | Reliability Improvements |
154 | ======================== |
155 | @@ -140,6 +141,18 @@ |
156 | diagnostics/misc_info_schema_tables |
157 | diagnostics/thread_based_profiling |
158 | |
159 | +TokuDB |
160 | +====== |
161 | + |
162 | +.. toctree:: |
163 | + :maxdepth: 1 |
164 | + :glob: |
165 | + |
166 | + tokudb/tokudb_intro |
167 | + tokudb/tokudb_installation |
168 | + tokudb/using_tokudb |
169 | + tokudb/tokudb_compression |
170 | + |
171 | Reference |
172 | ========= |
173 | |
174 | |
175 | === modified file 'doc/source/installation/apt_repo.rst' |
176 | --- doc/source/installation/apt_repo.rst 2013-12-19 13:40:34 +0000 |
177 | +++ doc/source/installation/apt_repo.rst 2014-03-03 18:33:47 +0000 |
178 | @@ -42,14 +42,13 @@ |
179 | * 13.10 (saucy) |
180 | |
181 | |
182 | -Release Candidate Repository |
183 | -============================ |
184 | - |
185 | -To subscribe to the release candidate repository, add two lines to the :file:`/etc/apt/sources.list` file, again replacing ``VERSION`` with your server's release version: :: |
186 | - |
187 | - deb http://repo.percona.com/apt-rc VERSION main |
188 | - deb-src http://repo.percona.com/apt-rc VERSION main |
189 | - |
190 | +Percona `apt` Experimental repository |
191 | +===================================== |
192 | + |
193 | +Percona offers fresh beta builds from the experimental repository. To enable it add the following lines to your :file:`/etc/apt/sources.list` , replacing ``VERSION`` with the name of your distribution: :: |
194 | + |
195 | + deb http://repo.percona.com/apt VERSION main experimental |
196 | + deb-src http://repo.percona.com/apt VERSION main experimental |
197 | |
198 | Apt-Pinning the packages |
199 | ======================== |
200 | |
201 | === modified file 'doc/source/ps-versions-comparison.rst' |
202 | --- doc/source/ps-versions-comparison.rst 2013-12-19 13:40:34 +0000 |
203 | +++ doc/source/ps-versions-comparison.rst 2014-03-03 18:33:47 +0000 |
204 | @@ -45,7 +45,7 @@ |
205 | - Replaced by the upstream implementation [#n-4]_ |
206 | * - :ref:`Reduced Buffer Pool Mutex Contention <ps51:innodb_opt_lru_count>` |
207 | - :ref:`Reduced Buffer Pool Mutex Contention <ps55:innodb_opt_lru_count>` |
208 | - - :ref:`Reduced Buffer Pool Mutex Contention <ps56:innodb_opt_lru_count>` |
209 | + - Feature not implemented |
210 | * - :ref:`InnoDB timer-based Concurrency Throttling <ps51:innodb_thread_concurrency_timer_based_page>` |
211 | - :ref:`InnoDB timer-based Concurrency Throttling <ps55:innodb_thread_concurrency_timer_based_page>` |
212 | - Replaced by the upstream implementation [#n-5]_ |
213 | |
214 | === added file 'doc/source/release-notes/Percona-Server-5.6.16-64.0-tokudb.rst' |
215 | --- doc/source/release-notes/Percona-Server-5.6.16-64.0-tokudb.rst 1970-01-01 00:00:00 +0000 |
216 | +++ doc/source/release-notes/Percona-Server-5.6.16-64.0-tokudb.rst 2014-03-03 18:33:47 +0000 |
217 | @@ -0,0 +1,28 @@ |
218 | +.. rn:: 5.6.16-64.0-tokudb |
219 | + |
220 | +======================================================== |
221 | + |Percona Server| 5.6.16-64.0-tokudb with TokuDB engine |
222 | +======================================================== |
223 | + |
224 | +Percona is glad to announce the first **ALPHA** release of |Percona Server| 5.6.16-64.0-tokudb with TokuDB engine on March 3rd, 2014. Downloads are available `here <http://www.percona.com/downloads/TESTING/Percona-5.6-TokuDB/545/>`_ and from the :ref:`Percona Software Repositories <tokudb_installation>`. |
225 | + |
226 | +Based on |Percona Server| :rn:`5.6.16-64.0` including all the features and bug fixes in it, and on TokuDB 7.1.5-rc.3, |Percona Server| 5.6.16-64.0-tokudb is the first **ALPHA** release in the |Percona Server| 5.6 with TokuDB series. All of |Percona|'s software is open-source and free, all the details of the release can be found in the `5.6.16-64.0 milestone at Launchpad <https://launchpad.net/percona-server/+milestone/5.6.16-64.0>`_. |
227 | + |
228 | +New Features |
229 | +============ |
230 | + |
231 | +|Percona Server| now supports TokuDB storage engine. More information on how to :ref:`install <tokudb_installation>` and :ref:`use <using_tokudb>` TokuDB can be found in the documentation. This feature is currently considered ALPHA quality. |
232 | + |
233 | +Available TokuDB features: |
234 | + |
235 | + * :ref:`tokudb_compression` |
236 | + |
237 | +Currently available ALPHA features [#n-1]_: |
238 | + |
239 | + * `Multiple Clustering Indexes <http://www.tokutek.com/2009/05/introducing_multiple_clustering_indexes/>`_ |
240 | + * `Fast Updates with NOAR <http://www.tokutek.com/2013/02/fast-updates-with-tokudb/>`_ |
241 | + * `Hot Table Optimization <http://www.tokutek.com/2012/06/hot-table-optimization-with-mysql/>`_ |
242 | + * `TokuDB AUTOINCREMENT implementation <http://www.tokutek.com/2009/07/autoincrement_semantics/>`_ |
243 | + * `Prelocking index and range scans <https://github.com/Tokutek/mysql56/wiki/Patch-for-prelocking-index-and-range-scans>`_ |
244 | + |
245 | +.. [#n-1] These features are available only in ALPHA Percona Server with TokuDB builds. They might change or even disappear in a future release. |
246 | |
247 | === added file 'doc/source/release-notes/Percona-Server-5.6.16-64.0.rst' |
248 | --- doc/source/release-notes/Percona-Server-5.6.16-64.0.rst 1970-01-01 00:00:00 +0000 |
249 | +++ doc/source/release-notes/Percona-Server-5.6.16-64.0.rst 2014-03-03 18:33:47 +0000 |
250 | @@ -0,0 +1,47 @@ |
251 | +.. rn:: 5.6.16-64.0 |
252 | + |
253 | +================================================= |
254 | + |Percona Server| 5.6.16-64.0 [Not Released Yet] |
255 | +================================================= |
256 | + |
257 | +Percona is glad to announce the release of |Percona Server| 5.6.16-64.0 on March 6th, 2014 (Downloads are available `here <http://www.percona.com/downloads/Percona-Server-5.6/Percona-Server-5.6.16-64.0/>`_ and from the :doc:`Percona Software Repositories </installation>`). |
258 | + |
259 | +Based on `MySQL 5.6.16 <http://dev.mysql.com/doc/relnotes/mysql/5.6/en/news-5-6-16.html>`_, including all the bug fixes in it, |Percona Server| 5.6.16-64.0 is the current GA 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.16-64.0 milestone at Launchpad <https://launchpad.net/percona-server/+milestone/5.6.16-64.0>`_. |
260 | + |
261 | +New Features |
262 | +============ |
263 | + |
264 | + |Percona Server| now supports :ref:`tokudb_compression` algorithms. |
265 | + |
266 | + In order to comply with Linux distribution packaging standards |Percona|'s version of ``libmysqlclient`` has been renamed to ``libperconaserver``. The reason this was done was to avoid name conflicts with packages upstream name and library conflicts, otherwise, ``libmysqlclient`` and ``libperconaserverclient`` of same version have no differences. Users will have to use ``libmysqlclient`` of respective distributions, for *CentOS* it is ``mysql-libs`` and for *Ubuntu*/*Debian* it is ``libmysqlclient18`` package. |
267 | + |
268 | + :ref:`mysqlbinlog_change_db` has been ported from |Percona Server| 5.1. |
269 | + |
270 | +Bugs Fixed |
271 | +========== |
272 | + |
273 | + |Percona Server| 5.6 installation on *Debian* would fail due to default config reference to ``/etc/mysql/conf.d`` which didn't exist. Bug fixed :bug:`1206648`. |
274 | + |
275 | + Due to a regression in the buffer pool mutex split, a combination of |InnoDB| compression, write workload, and multiple active purge threads could lead to a server crash. Bug fixed :bug:`1247021`. |
276 | + |
277 | + Several fixes for multiple XA engine support in the server have been ported from |MariaDB|. Bugs fixed :bug:`1255551` (upstream :mysqlbug:`70854`) and :bug:`1255549` (upstream :mysqlbug:`47134`). |
278 | + |
279 | + ``auth_pam.so`` shared library needed for :ref:`pam_plugin` was missing from ``RPM`` packages. Bug fixed :bug:`1268246`. |
280 | + |
281 | + Fix for bug :bug:`1227581`, a buffer pool mutex split regression, was not complete, thus a combination of write workload to |InnoDB| compressed table and a tablespace drop could crash the server. Bug fixed :bug:`1269352`. |
282 | + |
283 | + |Percona Server| compilation with Performance Schema turned off would fail due to regression introduced by the 5.6 priority mutex framework. Bug fixed :bug:`1272747`. |
284 | + |
285 | + The |InnoDB| page cleaner thread could have incorrectly decided whether the server is busy or idle on some of its iterations and consequently issue a too big flush list flushing request on a busy server, causing performance instabilities. Bug fixed :bug:`1238039`. |
286 | + |
287 | + |Percona Server| had different server version value when installing from Source and from Binary/RPM. Bug fixed :bug:`1244178`. |
288 | + |
289 | + |InnoDB| did not handle the cases of asynchronous and synchronous I/O requests completing partially or being interrupted. Bugs fixed :bug:`1262500` (upstream :mysqlbug:`54430`), and :bug:`1263087` (*Andrew Gaul*). |
290 | + |
291 | + Fixed the upstream bug :mysqlbug:`70768`: the fix for upstream bug :mysqlbug:`70768` may cause a high rate of RW lock creations and desctructions, resulting in a performance regression on some workloads. Bug fixed :bug:`1279671`. |
292 | + |
293 | + *Debian* and *Ubuntu* packaging has been reworked to meet the packaging standards. Bug fixed :bug:`1281261`. |
294 | + |
295 | + Fixed the ``CMake`` warnings that were happening when ``Makefile`` was generated. Bugs fixed :bug:`1274827`, upstream bug fixed :mysqlbug:`71089` and :bug:`1274411` (upstream :mysqlbug:`71094`). |
296 | + |
297 | +Other bugs fixed: :bug:`1052636`, :bug:`1014477`, :bug:`1276445`, :bug:`1274827` (upstream :mysqlbug:`71089`), :bug:`1264952`, :bug:`1005787`, :bug:`1285064`, :bug:`1229598`, :bug:`1277505` (upstream :mysqlbug:`71624`), and :bug:`1204871` (upstream :mysqlbug:`71270`). |
298 | |
299 | === modified file 'doc/source/release-notes/release-notes_index.rst' |
300 | --- doc/source/release-notes/release-notes_index.rst 2014-03-03 17:51:33 +0000 |
301 | +++ doc/source/release-notes/release-notes_index.rst 2014-03-03 18:33:47 +0000 |
302 | @@ -6,6 +6,8 @@ |
303 | :maxdepth: 1 |
304 | :glob: |
305 | |
306 | + Percona-Server-5.6.16-64.0-tokudb |
307 | + Percona-Server-5.6.16-64.0 |
308 | Percona-Server-5.6.15-63.0 |
309 | Percona-Server-5.6.14-62.0 |
310 | Percona-Server-5.6.13-61.0 |
311 | |
312 | === added directory 'doc/source/tokudb' |
313 | === added file 'doc/source/tokudb/tokudb_compression.rst' |
314 | --- doc/source/tokudb/tokudb_compression.rst 1970-01-01 00:00:00 +0000 |
315 | +++ doc/source/tokudb/tokudb_compression.rst 2014-03-03 18:33:47 +0000 |
316 | @@ -0,0 +1,45 @@ |
317 | +.. _tokudb_compression: |
318 | + |
319 | +==================== |
320 | + TokuDB Compression |
321 | +==================== |
322 | + |
323 | +TokuDB storage engine provides new compression options for TokuDB tables. |
324 | + |
325 | +These options are defined on per-table basis by setting ``ROW_FORMAT`` during a ``CREATE TABLE`` or ``ALTER TABLE``. If no value is specified for ``ROW_FORMAT`` ``zlib`` compression is used by default. Currently available formats are: |
326 | + |
327 | + * ``TOKUDB_ZLIB`` - This compression is using ``zlib`` library and provides mid-range compression with medium CPU utilization. |
328 | + * ``TOKUDB_QUICKLZ`` - This compression is using ``quicklz`` library and provides light compression with low CPU utilization. |
329 | + * ``TOKUDB_LZMA`` - This compression is using ``lzma`` library and provides the highest compression with high CPU utilization. |
330 | + * ``TOKUDB_UNCOMPRESSED`` - This option disables the compression. |
331 | + |
332 | +Example |
333 | +------- |
334 | + |
335 | +In order to create a new table with the highest compression you need to specify the ``TOKUDB_LZMA`` as the ``ROW_FORMAT``: |
336 | + |
337 | +.. code-block:: mysql |
338 | + |
339 | + mysql> CREATE TABLE `City` ( |
340 | + > `ID` int(11) NOT NULL AUTO_INCREMENT, |
341 | + `Name` char(35) NOT NULL DEFAULT '', |
342 | + `CountryCode` char(3) NOT NULL DEFAULT '', |
343 | + `District` char(20) NOT NULL DEFAULT '', |
344 | + `Population` int(11) NOT NULL DEFAULT '0', |
345 | + PRIMARY KEY (`ID`), |
346 | + KEY `CountryCode` (`CountryCode`) |
347 | + ) ENGINE=TokuDB, ROW_FORMAT=TOKUDB_LZMA; |
348 | + |
349 | +In order to change the compression for this table you need to change the ``ROW_FORMAT`` with ``ALTER TABLE`` command: |
350 | + |
351 | +.. code-block:: mysql |
352 | + |
353 | + mysql> ALTER TABLE City ROW_FORMAT=TOKUDB_ZLIB; |
354 | + |
355 | +.. note:: |
356 | + |
357 | + When the compression format is changed it will affect only newly written data. In order to change the old data you'll need to run ``OPTIMIZE TABLE`` on that table. |
358 | + |
359 | + .. code-block:: mysql |
360 | + |
361 | + mysql> OPTIMIZE TABLE City; |
362 | |
363 | === added file 'doc/source/tokudb/tokudb_installation.rst' |
364 | --- doc/source/tokudb/tokudb_installation.rst 1970-01-01 00:00:00 +0000 |
365 | +++ doc/source/tokudb/tokudb_installation.rst 2014-03-03 18:33:47 +0000 |
366 | @@ -0,0 +1,96 @@ |
367 | +.. _tokudb_installation: |
368 | + |
369 | +===================== |
370 | + TokuDB Installation |
371 | +===================== |
372 | + |
373 | +.. warning:: |
374 | + |
375 | + This feature is considered **ALPHA** quality and it isn't recommended for production use. |
376 | + |
377 | +|Percona Server| has added support for TokuDB storage engine in the :rn:`5.6.16-64.0-tokudb` release. |
378 | + |
379 | +`TokuDB <http://www.tokutek.com/products/tokudb-for-mysql/>`_ is a scalable, ACID and MVCC compliant storage engine that provides indexing-based query improvements, offers online schema modifications, and reduces slave lag for both hard disk drives and flash memory. This storage engine is specifically designed for high performance on write-intensive workloads which is achieved with Fractal Tree indexing. |
380 | + |
381 | +TokuDB is currently supported only for 64-bit Linux distributions. |
382 | + |
383 | +Installation |
384 | +============ |
385 | + |
386 | +|Percona Server| with TokuDB is currently available in our :ref:`apt experimental <apt_repo>` and :ref:`yum testing <yum_repo>` repositories. |
387 | + |
388 | +You can install the |Percona Server| with TokuDB engine by using the apt/yum commands: |
389 | + |
390 | +.. code-block:: bash |
391 | + |
392 | + [root@centos ~]# yum install Percona-Server-tokudb-56.x86_64 |
393 | + |
394 | +or |
395 | + |
396 | +.. code-block:: bash |
397 | + |
398 | + root@wheezy:~# apt-get install percona-server-tokudb-5.6 |
399 | + |
400 | +.. note:: |
401 | + |
402 | + TokuDB won't be able to start if the transparent huge pages are enabled. `Transparent huge pages <https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Performance_Tuning_Guide/s-memory-transhuge.html>`_ is feature available in the newer kernel versions. You can check if the Transparent huge pages are enabled with: :: |
403 | + |
404 | + $ cat /sys/kernel/mm/transparent_hugepage/enabled |
405 | + |
406 | + [always] madvise never |
407 | + |
408 | + You can `disable <http://www.oracle-base.com/articles/linux/configuring-huge-pages-for-oracle-on-linux-64.php#disabling-transparent-hugepages>`_ them by passing ``transparent_hugepage=never`` to the kernel in your bootloader or by running: :: |
409 | + |
410 | + $ echo never > /sys/kernel/mm/transparent_hugepage/enabled |
411 | + $ echo never > /sys/kernel/mm/transparent_hugepage/defrag |
412 | + |
413 | + |
414 | +Upgrade |
415 | +======= |
416 | + |
417 | +Upgrading from other |Percona Server| 5.5 and 5.6 releases should work without problems (you should read :ref:`changed_in_56` before upgrading from |Percona Server| 5.5 to |Percona Server| 5.6 with TokuDB engine). |
418 | + |
419 | + |
420 | +Enabling the TokuDB support |
421 | +=========================== |
422 | + |
423 | +This plugin requires manual installation because it isn't installed by default. |
424 | + |
425 | +.. code-block:: mysql |
426 | + |
427 | + mysql> INSTALL PLUGIN tokudb SONAME 'ha_tokudb.so'; |
428 | + mysql> INSTALL PLUGIN tokudb_file_map SONAME 'ha_tokudb.so'; |
429 | + mysql> INSTALL PLUGIN tokudb_fractal_tree_info SONAME 'ha_tokudb.so'; |
430 | + mysql> INSTALL PLUGIN tokudb_fractal_tree_block_map SONAME 'ha_tokudb.so'; |
431 | + mysql> INSTALL PLUGIN tokudb_trx SONAME 'ha_tokudb.so'; |
432 | + mysql> INSTALL PLUGIN tokudb_locks SONAME 'ha_tokudb.so'; |
433 | + mysql> INSTALL PLUGIN tokudb_lock_waits SONAME 'ha_tokudb.so'; |
434 | + |
435 | +After the engine has been installed it should be present in the engines list. To check if the engine has been correctly installed and active: |
436 | + |
437 | +.. code-block:: mysql |
438 | + |
439 | + mysql> SHOW ENGINES; |
440 | + ... |
441 | + | TokuDB | YES | Tokutek TokuDB Storage Engine with Fractal Tree(tm) Technology | YES | YES | YES | |
442 | + ... |
443 | + |
444 | +To check if all the TokuDB plugins have been installed correctly you should run: |
445 | + |
446 | +.. code-block:: mysql |
447 | + |
448 | + mysql> SHOW PLUGINS; |
449 | + ... |
450 | + | TokuDB | ACTIVE | STORAGE ENGINE | ha_tokudb.so | GPL | |
451 | + | TokuDB_file_map | ACTIVE | INFORMATION SCHEMA | ha_tokudb.so | GPL | |
452 | + | TokuDB_fractal_tree_info | ACTIVE | INFORMATION SCHEMA | ha_tokudb.so | GPL | |
453 | + | TokuDB_fractal_tree_block_map | ACTIVE | INFORMATION SCHEMA | ha_tokudb.so | GPL | |
454 | + | TokuDB_trx | ACTIVE | INFORMATION SCHEMA | ha_tokudb.so | GPL | |
455 | + | TokuDB_locks | ACTIVE | INFORMATION SCHEMA | ha_tokudb.so | GPL | |
456 | + | TokuDB_lock_waits | ACTIVE | INFORMATION SCHEMA | ha_tokudb.so | GPL | |
457 | + ... |
458 | + |
459 | +Other Reading |
460 | +============= |
461 | + |
462 | +* `Official TokuDB Documentation <http://www.tokutek.com/resources/product-docs/>`_ |
463 | |
464 | === added file 'doc/source/tokudb/tokudb_intro.rst' |
465 | --- doc/source/tokudb/tokudb_intro.rst 1970-01-01 00:00:00 +0000 |
466 | +++ doc/source/tokudb/tokudb_intro.rst 2014-03-03 18:33:47 +0000 |
467 | @@ -0,0 +1,23 @@ |
468 | +.. _tokudb_intro: |
469 | + |
470 | +===================== |
471 | + TokuDB Introduction |
472 | +===================== |
473 | + |
474 | +TokuDB is a scalable, ACID and MVCC compliant storage engine that provides indexing-based query improvements, offers online schema modifications, and reduces slave lag for both hard disk drives and flash memory. This storage engine is specifically designed for high performance on write-intensive workloads which is achieved with Fractal Tree indexing. |
475 | + |
476 | +Available TokuDB features: |
477 | + |
478 | + * :ref:`tokudb_compression` |
479 | + |
480 | +Currently available ALPHA features [#n-1]_: |
481 | + |
482 | + * `Multiple Clustering Indexes <http://www.tokutek.com/2009/05/introducing_multiple_clustering_indexes/>`_ |
483 | + * `Fast Updates with NOAR <http://www.tokutek.com/2013/02/fast-updates-with-tokudb/>`_ |
484 | + * `Hot Table Optimization <http://www.tokutek.com/2012/06/hot-table-optimization-with-mysql/>`_ |
485 | + * `TokuDB AUTOINCREMENT implementation <http://www.tokutek.com/2009/07/autoincrement_semantics/>`_ |
486 | + * `Prelocking index and range scans <https://github.com/Tokutek/mysql56/wiki/Patch-for-prelocking-index-and-range-scans>`_ |
487 | + |
488 | +.. rubric:: Footnotes |
489 | + |
490 | +.. [#n-1] These features are available only in ALPHA Percona Server with TokuDB builds. They might change or even disappear in a future release. |
491 | |
492 | === added file 'doc/source/tokudb/using_tokudb.rst' |
493 | --- doc/source/tokudb/using_tokudb.rst 1970-01-01 00:00:00 +0000 |
494 | +++ doc/source/tokudb/using_tokudb.rst 2014-03-03 18:33:47 +0000 |
495 | @@ -0,0 +1,33 @@ |
496 | +.. _using_tokudb: |
497 | + |
498 | +============== |
499 | + Using TokuDB |
500 | +============== |
501 | + |
502 | +TokuDB storage engine can be used as the rest of the already available |MySQL| engines. You can create the TokuDB tables by specifying TokuDB when creating the tables: |
503 | + |
504 | +.. code-block:: mysql |
505 | + |
506 | + mysql> CREATE TABLE `City` ( |
507 | + `ID` int(11) NOT NULL AUTO_INCREMENT, |
508 | + `Name` char(35) NOT NULL DEFAULT '', |
509 | + `CountryCode` char(3) NOT NULL DEFAULT '', |
510 | + `District` char(20) NOT NULL DEFAULT '', |
511 | + `Population` int(11) NOT NULL DEFAULT '0', |
512 | + PRIMARY KEY (`ID`), |
513 | + KEY `CountryCode` (`CountryCode`) |
514 | + ) ENGINE=TokuDB |
515 | + |
516 | +You can also convert existing tables to TokuDB by running ``ALTER TABLE``: |
517 | + |
518 | +.. code-block:: mysql |
519 | + |
520 | + mysql> ALTER TABLE City ENGINE=TokuDB; |
521 | + |
522 | +Other Reading |
523 | +============= |
524 | + |
525 | +* `InnoDB vs TokuDB comparison <http://www.tokutek.com/resources/tokudb-vs-innodb/>`_ |
526 | +* `TokuDB vs InnoDB in timeseries INSERT benchmark <http://www.mysqlperformanceblog.com/2013/09/05/tokudb-vs-innodb-timeseries-insert-benchmark/>`_ |
527 | +* `Considering TokuDB as an engine for timeseries data <http://www.mysqlperformanceblog.com/2013/08/29/considering-tokudb-as-an-engine-for-timeseries-data/>`_ |
528 | +* `Benchmarking Percona Server TokuDB vs InnoDB <http://www.mysqlperformanceblog.com/2013/05/07/benchmarking-percona-server-tokudb-vs-innodb/>`_ |
- I am not sure why --rewrite-db is called a "variable". It's an provided libmysqlclient package upgrade, and please run raghu/tomislav for feedback.
option.
- The TokuDB build version cannot be just "5.6.16-64.0", because
it will conflict with the regular release having the same
version. IIRC the TokuDB build scripts added something to the
version string, so let's add the same thing here and use it
uniformly.
- TokuDB compression has to be documented with examples, listing
of allowed row_type values, probably on its own page.
- The TokuDB alpha features perhaps should be listed somewhere or
users won't even know about their existence. Perhaps a short page
for alpha features only which links to TokuDB pages on secondary
clustering keys, prescans, NOAR, ONLINE OPTIMIZE, autoincrement
would suffice.
- 250: "have no differences and can be installed side by side if
desired." It needs documenting what will happen on existing
Percona-
the resulting paragraph by BAlexey/
- 259: "due to a regression in the buffer pool mutex split, a
combination of InnoDB compression, write workload, and multiple
active purge threads could lead to a server crash".
- 261: "Several fixes for multiple XA engine support in the server
have been ported from MariaDB."
- 265: "Fix for bug 1227581, a buffer pool mutex split regression,
was not complete, thus a combination of write workload to InnoDB
compressed table and a tablespace drop could crash the server".
- 269: "The InnoDB page cleaner thread could have incorrectly
decided whether the server is busy or idle on some of its
iterations and consequently issue a too big flush list flushing
request on a busy server, causing performance instabilities"
- 273-275: join: "InnoDB did not handle the cases of asynchronous
and synchronous I/O requests completing partially or being
interrupted."
- 277: "Fixed the upstream bug 70768: the fix for upstream bug
70768 may cause a high rate of RW lock creations and
desctructions, resulting in a performance regression on some
workloads"
- 279: "Debian and Ubuntu packaging has been reworked to meet the
packaging standards"
- 281: add 1274411 there too
- 1277383 needs a RN entry
- 1159625/1199534 may or may not need RN entries
- 1204871 needs a RN entry
- The multiple XA fixes need more details what was fixed in one
bug and in the other.
- 1229598 needs a RN entry
- 1005787 needs a RN entry
- 1264952 needs a RN entry
- 1276445 and 1014477 might get a RN entry, "Percona Server source
tree has been reorganized to match the MySQL source tree layout
closer" "Permissions on some testsuite files have been
corrected"
- 1052636 needs a RN entry
- 338: "availble"
- 363-369: unify "INSTALL PLUGIN" case