Merge lp:~hrvojem/percona-server/rn-5.6.16-64.0-tokudb-5.6 into lp:percona-server/5.6

Proposed by Hrvoje Matijakovic
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
Reviewer Review Type Date Requested Status
Laurynas Biveinis (community) Approve
Review via email: mp+209019@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Laurynas Biveinis (laurynas-biveinis) wrote :

   - I am not sure why --rewrite-db is called a "variable". It's an
     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-provided libmysqlclient package upgrade, and please run
     the resulting paragraph by BAlexey/raghu/tomislav for feedback.
   - 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

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

    TokuDB review only
    - How is patching doc/source/conf.py to +release =
      '5.6.16-64.0-tokudb' is going to work for the next trunk
      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-Server-tokudb-56.x86_64 / apt-get install
      percona-server-tokudb-5.6 install both the patched PS and the
      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_intro.rst.

review: Needs Fixing
Revision history for this message
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

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

    TokuDB review only
    - 245, 490: "oreven"
    - 327: "with <missing> CPU utilization"

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

TokuDB review only

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
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/>`_

Subscribers

People subscribed via source and target branches