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
=== modified file '.bzrignore'
--- .bzrignore 2013-10-08 06:03:07 +0000
+++ .bzrignore 2014-03-03 18:33:47 +0000
@@ -3140,3 +3140,4 @@
3140storage/perfschema/pfs_lex_token.h3140storage/perfschema/pfs_lex_token.h
3141storage/perfschema/gen_pfs_lex_token3141storage/perfschema/gen_pfs_lex_token
3142sql/share/bulgarian3142sql/share/bulgarian
3143doc/build
31433144
=== modified file 'doc/source/conf.py'
--- doc/source/conf.py 2014-03-03 17:51:33 +0000
+++ doc/source/conf.py 2014-03-03 18:33:47 +0000
@@ -45,7 +45,7 @@
4545
46# General information about the project.46# General information about the project.
47project = u'Percona Server'47project = u'Percona Server'
48copyright = u'Percona LLC and/or its affiliates 2009-2013'48copyright = u'Percona LLC and/or its affiliates 2009-2014'
4949
50# The version info for the project you're documenting, acts as replacement for50# The version info for the project you're documenting, acts as replacement for
51# |version| and |release|, also used in various other places throughout the51# |version| and |release|, also used in various other places throughout the
@@ -54,7 +54,7 @@
54# The short X.Y version.54# The short X.Y version.
55version = '5.6'55version = '5.6'
56# The full version, including alpha/beta/rc tags.56# The full version, including alpha/beta/rc tags.
57release = '5.6.15-63.0'57release = '5.6.16-64.0-tokudb'
5858
59# The language for content autogenerated by Sphinx. Refer to documentation59# The language for content autogenerated by Sphinx. Refer to documentation
60# for a list of supported languages.60# for a list of supported languages.
@@ -226,7 +226,7 @@
226# (source start file, target name, title, author, documentclass [howto/manual]).226# (source start file, target name, title, author, documentclass [howto/manual]).
227latex_documents = [227latex_documents = [
228 ('index', 'PerconaServer-5.6.tex', u'Percona Server Documentation',228 ('index', 'PerconaServer-5.6.tex', u'Percona Server Documentation',
229 u'Percona LLC and/or its affiliates 2009-2013', 'manual'),229 u'Percona LLC and/or its affiliates 2009-2014', 'manual'),
230]230]
231231
232# The name of an image file (relative to this directory) to place at the top of232# The name of an image file (relative to this directory) to place at the top of
@@ -259,7 +259,7 @@
259# (source start file, name, description, authors, manual section).259# (source start file, name, description, authors, manual section).
260man_pages = [260man_pages = [
261 ('index', 'perconaserver56', u'Percona Server 5.6 Documentation',261 ('index', 'perconaserver56', u'Percona Server 5.6 Documentation',
262 [u'Percona LLC and/or its affiliates 2009-2013'], 1)262 [u'Percona LLC and/or its affiliates 2009-2014'], 1)
263]263]
264264
265265
266266
=== added file 'doc/source/flexibility/mysqlbinlog_change_db.rst'
--- doc/source/flexibility/mysqlbinlog_change_db.rst 1970-01-01 00:00:00 +0000
+++ doc/source/flexibility/mysqlbinlog_change_db.rst 2014-03-03 18:33:47 +0000
@@ -0,0 +1,89 @@
1.. _mysqlbinlog_change_db:
2
3==========================================
4Ability to change database for mysqlbinlog
5==========================================
6
7Sometimes there is a need to take a binary log and apply it to a database with
8a different name than the original name of the database on binlog producer.
9
10New 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.
11
12Option :option:`rewrite-db` of **mysqlbinlog** utility allows to setup rewriting rule "from->"to".
13
14Example
15=======
16
17**mysqlbinlog** output before rewrite-db ::
18
19 $ mysqlbinlog mysql-bin.000005
20 ...
21 # at 175
22 #120517 13:10:00 server id 2 end_log_pos 203 Intvar
23 SET INSERT_ID=4083/*!*/;
24 # at 203
25 #120517 13:10:00 server id 2 end_log_pos 367 Query thread_id=88 exec_time=0 error_code=0
26 use world/*!*/;
27 SET TIMESTAMP=1337253000/*!*/;
28 insert into City (Name, CountryCode, District, Population) values ("New City", "ZMB", "TEX", 111000)
29 /*!*/;
30 # at 367
31 #120517 13:10:00 server id 2 end_log_pos 394 Xid = 1414
32 COMMIT/*!*/;
33 DELIMITER ;
34
35**mysqlbinlog** output when the new variable is used: ::
36
37 $ mysqlbinlog --rewrite-db='world->new_world' mysql-bin.000005
38 ...
39 # at 106
40 use new_world/*!*/;
41 #120517 13:10:00 server id 2 end_log_pos 175 Query thread_id=88 exec_time=0 error_code=0
42 SET TIMESTAMP=1337253000/*!*/;
43 SET @@session.pseudo_thread_id=88/*!*/;
44 SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1, @@session.autocommit=1/*!*/;
45 SET @@session.sql_mode=0/*!*/;
46 SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/;
47 /*!\C latin1 *//*!*/;
48 SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/;
49 SET @@session.lc_time_names=0/*!*/;
50 SET @@session.collation_database=DEFAULT/*!*/;
51 BEGIN
52 /*!*/;
53 # at 175
54 #120517 13:10:00 server id 2 end_log_pos 203 Intvar
55 SET INSERT_ID=4083/*!*/;
56 # at 203
57 #120517 13:10:00 server id 2 end_log_pos 367 Query thread_id=88 exec_time=0 error_code=0
58 SET TIMESTAMP=1337253000/*!*/;
59 insert into City (Name, CountryCode, District, Population) values ("New City", "ZMB", "TEX", 111000)
60 /*!*/;
61 # at 367
62 #120517 13:10:00 server id 2 end_log_pos 394 Xid = 1414
63 COMMIT/*!*/;
64
65
66Version Specific Information
67============================
68
69 * :rn:`5.6.16-64.0`
70 Feature ported from |Percona Server| 5.1
71
72Client Command Line Parameter
73=============================
74
75.. option:: rewrite-db
76
77 :cli: Yes
78 :conf: Yes
79 :scope: Global
80 :dyn: No
81 :vartype: String
82 :default: Off
83
84
85Related Reading
86===============
87
88 * `WL #36 <http://askmonty.org/worklog/Server-Sprint/?tid=36>`_
89
090
=== modified file 'doc/source/index.rst'
--- doc/source/index.rst 2014-03-03 17:51:33 +0000
+++ doc/source/index.rst 2014-03-03 18:33:47 +0000
@@ -89,6 +89,7 @@
89 flexibility/extended_select_into_outfile89 flexibility/extended_select_into_outfile
90 flexibility/per_query_variable_statement90 flexibility/per_query_variable_statement
91 flexibility/extended_mysqlbinlog91 flexibility/extended_mysqlbinlog
92 flexibility/mysqlbinlog_change_db
9293
93Reliability Improvements94Reliability Improvements
94========================95========================
@@ -140,6 +141,18 @@
140 diagnostics/misc_info_schema_tables141 diagnostics/misc_info_schema_tables
141 diagnostics/thread_based_profiling142 diagnostics/thread_based_profiling
142143
144TokuDB
145======
146
147.. toctree::
148 :maxdepth: 1
149 :glob:
150
151 tokudb/tokudb_intro
152 tokudb/tokudb_installation
153 tokudb/using_tokudb
154 tokudb/tokudb_compression
155
143Reference156Reference
144=========157=========
145158
146159
=== modified file 'doc/source/installation/apt_repo.rst'
--- doc/source/installation/apt_repo.rst 2013-12-19 13:40:34 +0000
+++ doc/source/installation/apt_repo.rst 2014-03-03 18:33:47 +0000
@@ -42,14 +42,13 @@
42 * 13.10 (saucy)42 * 13.10 (saucy)
4343
4444
45Release Candidate Repository45Percona `apt` Experimental repository
46============================46=====================================
4747
48To 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: ::48Percona 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: ::
4949
50 deb http://repo.percona.com/apt-rc VERSION main50 deb http://repo.percona.com/apt VERSION main experimental
51 deb-src http://repo.percona.com/apt-rc VERSION main51 deb-src http://repo.percona.com/apt VERSION main experimental
52
5352
54Apt-Pinning the packages53Apt-Pinning the packages
55========================54========================
5655
=== modified file 'doc/source/ps-versions-comparison.rst'
--- doc/source/ps-versions-comparison.rst 2013-12-19 13:40:34 +0000
+++ doc/source/ps-versions-comparison.rst 2014-03-03 18:33:47 +0000
@@ -45,7 +45,7 @@
45 - Replaced by the upstream implementation [#n-4]_45 - Replaced by the upstream implementation [#n-4]_
46 * - :ref:`Reduced Buffer Pool Mutex Contention <ps51:innodb_opt_lru_count>`46 * - :ref:`Reduced Buffer Pool Mutex Contention <ps51:innodb_opt_lru_count>`
47 - :ref:`Reduced Buffer Pool Mutex Contention <ps55:innodb_opt_lru_count>`47 - :ref:`Reduced Buffer Pool Mutex Contention <ps55:innodb_opt_lru_count>`
48 - :ref:`Reduced Buffer Pool Mutex Contention <ps56:innodb_opt_lru_count>`48 - Feature not implemented
49 * - :ref:`InnoDB timer-based Concurrency Throttling <ps51:innodb_thread_concurrency_timer_based_page>`49 * - :ref:`InnoDB timer-based Concurrency Throttling <ps51:innodb_thread_concurrency_timer_based_page>`
50 - :ref:`InnoDB timer-based Concurrency Throttling <ps55:innodb_thread_concurrency_timer_based_page>`50 - :ref:`InnoDB timer-based Concurrency Throttling <ps55:innodb_thread_concurrency_timer_based_page>`
51 - Replaced by the upstream implementation [#n-5]_51 - Replaced by the upstream implementation [#n-5]_
5252
=== added file 'doc/source/release-notes/Percona-Server-5.6.16-64.0-tokudb.rst'
--- doc/source/release-notes/Percona-Server-5.6.16-64.0-tokudb.rst 1970-01-01 00:00:00 +0000
+++ doc/source/release-notes/Percona-Server-5.6.16-64.0-tokudb.rst 2014-03-03 18:33:47 +0000
@@ -0,0 +1,28 @@
1.. rn:: 5.6.16-64.0-tokudb
2
3========================================================
4 |Percona Server| 5.6.16-64.0-tokudb with TokuDB engine
5========================================================
6
7Percona 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>`.
8
9Based 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>`_.
10
11New Features
12============
13
14|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.
15
16Available TokuDB features:
17
18 * :ref:`tokudb_compression`
19
20Currently available ALPHA features [#n-1]_:
21
22 * `Multiple Clustering Indexes <http://www.tokutek.com/2009/05/introducing_multiple_clustering_indexes/>`_
23 * `Fast Updates with NOAR <http://www.tokutek.com/2013/02/fast-updates-with-tokudb/>`_
24 * `Hot Table Optimization <http://www.tokutek.com/2012/06/hot-table-optimization-with-mysql/>`_
25 * `TokuDB AUTOINCREMENT implementation <http://www.tokutek.com/2009/07/autoincrement_semantics/>`_
26 * `Prelocking index and range scans <https://github.com/Tokutek/mysql56/wiki/Patch-for-prelocking-index-and-range-scans>`_
27
28.. [#n-1] These features are available only in ALPHA Percona Server with TokuDB builds. They might change or even disappear in a future release.
029
=== added file 'doc/source/release-notes/Percona-Server-5.6.16-64.0.rst'
--- doc/source/release-notes/Percona-Server-5.6.16-64.0.rst 1970-01-01 00:00:00 +0000
+++ doc/source/release-notes/Percona-Server-5.6.16-64.0.rst 2014-03-03 18:33:47 +0000
@@ -0,0 +1,47 @@
1.. rn:: 5.6.16-64.0
2
3=================================================
4 |Percona Server| 5.6.16-64.0 [Not Released Yet]
5=================================================
6
7Percona 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>`).
8
9Based 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>`_.
10
11New Features
12============
13
14 |Percona Server| now supports :ref:`tokudb_compression` algorithms.
15
16 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.
17
18 :ref:`mysqlbinlog_change_db` has been ported from |Percona Server| 5.1.
19
20Bugs Fixed
21==========
22
23 |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`.
24
25 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`.
26
27 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`).
28
29 ``auth_pam.so`` shared library needed for :ref:`pam_plugin` was missing from ``RPM`` packages. Bug fixed :bug:`1268246`.
30
31 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`.
32
33 |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`.
34
35 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`.
36
37 |Percona Server| had different server version value when installing from Source and from Binary/RPM. Bug fixed :bug:`1244178`.
38
39 |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*).
40
41 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`.
42
43 *Debian* and *Ubuntu* packaging has been reworked to meet the packaging standards. Bug fixed :bug:`1281261`.
44
45 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`).
46
47Other 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`).
048
=== modified file 'doc/source/release-notes/release-notes_index.rst'
--- doc/source/release-notes/release-notes_index.rst 2014-03-03 17:51:33 +0000
+++ doc/source/release-notes/release-notes_index.rst 2014-03-03 18:33:47 +0000
@@ -6,6 +6,8 @@
6 :maxdepth: 16 :maxdepth: 1
7 :glob:7 :glob:
88
9 Percona-Server-5.6.16-64.0-tokudb
10 Percona-Server-5.6.16-64.0
9 Percona-Server-5.6.15-63.011 Percona-Server-5.6.15-63.0
10 Percona-Server-5.6.14-62.012 Percona-Server-5.6.14-62.0
11 Percona-Server-5.6.13-61.013 Percona-Server-5.6.13-61.0
1214
=== added directory 'doc/source/tokudb'
=== added file 'doc/source/tokudb/tokudb_compression.rst'
--- doc/source/tokudb/tokudb_compression.rst 1970-01-01 00:00:00 +0000
+++ doc/source/tokudb/tokudb_compression.rst 2014-03-03 18:33:47 +0000
@@ -0,0 +1,45 @@
1.. _tokudb_compression:
2
3====================
4 TokuDB Compression
5====================
6
7TokuDB storage engine provides new compression options for TokuDB tables.
8
9These 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:
10
11 * ``TOKUDB_ZLIB`` - This compression is using ``zlib`` library and provides mid-range compression with medium CPU utilization.
12 * ``TOKUDB_QUICKLZ`` - This compression is using ``quicklz`` library and provides light compression with low CPU utilization.
13 * ``TOKUDB_LZMA`` - This compression is using ``lzma`` library and provides the highest compression with high CPU utilization.
14 * ``TOKUDB_UNCOMPRESSED`` - This option disables the compression.
15
16Example
17-------
18
19In order to create a new table with the highest compression you need to specify the ``TOKUDB_LZMA`` as the ``ROW_FORMAT``:
20
21.. code-block:: mysql
22
23 mysql> CREATE TABLE `City` (
24 > `ID` int(11) NOT NULL AUTO_INCREMENT,
25 `Name` char(35) NOT NULL DEFAULT '',
26 `CountryCode` char(3) NOT NULL DEFAULT '',
27 `District` char(20) NOT NULL DEFAULT '',
28 `Population` int(11) NOT NULL DEFAULT '0',
29 PRIMARY KEY (`ID`),
30 KEY `CountryCode` (`CountryCode`)
31 ) ENGINE=TokuDB, ROW_FORMAT=TOKUDB_LZMA;
32
33In order to change the compression for this table you need to change the ``ROW_FORMAT`` with ``ALTER TABLE`` command:
34
35.. code-block:: mysql
36
37 mysql> ALTER TABLE City ROW_FORMAT=TOKUDB_ZLIB;
38
39.. note::
40
41 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.
42
43 .. code-block:: mysql
44
45 mysql> OPTIMIZE TABLE City;
046
=== added file 'doc/source/tokudb/tokudb_installation.rst'
--- doc/source/tokudb/tokudb_installation.rst 1970-01-01 00:00:00 +0000
+++ doc/source/tokudb/tokudb_installation.rst 2014-03-03 18:33:47 +0000
@@ -0,0 +1,96 @@
1.. _tokudb_installation:
2
3=====================
4 TokuDB Installation
5=====================
6
7.. warning::
8
9 This feature is considered **ALPHA** quality and it isn't recommended for production use.
10
11|Percona Server| has added support for TokuDB storage engine in the :rn:`5.6.16-64.0-tokudb` release.
12
13`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.
14
15TokuDB is currently supported only for 64-bit Linux distributions.
16
17Installation
18============
19
20|Percona Server| with TokuDB is currently available in our :ref:`apt experimental <apt_repo>` and :ref:`yum testing <yum_repo>` repositories.
21
22You can install the |Percona Server| with TokuDB engine by using the apt/yum commands:
23
24.. code-block:: bash
25
26 [root@centos ~]# yum install Percona-Server-tokudb-56.x86_64
27
28or
29
30.. code-block:: bash
31
32 root@wheezy:~# apt-get install percona-server-tokudb-5.6
33
34.. note::
35
36 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: ::
37
38 $ cat /sys/kernel/mm/transparent_hugepage/enabled
39
40 [always] madvise never
41
42 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: ::
43
44 $ echo never > /sys/kernel/mm/transparent_hugepage/enabled
45 $ echo never > /sys/kernel/mm/transparent_hugepage/defrag
46
47
48Upgrade
49=======
50
51Upgrading 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).
52
53
54Enabling the TokuDB support
55===========================
56
57This plugin requires manual installation because it isn't installed by default.
58
59.. code-block:: mysql
60
61 mysql> INSTALL PLUGIN tokudb SONAME 'ha_tokudb.so';
62 mysql> INSTALL PLUGIN tokudb_file_map SONAME 'ha_tokudb.so';
63 mysql> INSTALL PLUGIN tokudb_fractal_tree_info SONAME 'ha_tokudb.so';
64 mysql> INSTALL PLUGIN tokudb_fractal_tree_block_map SONAME 'ha_tokudb.so';
65 mysql> INSTALL PLUGIN tokudb_trx SONAME 'ha_tokudb.so';
66 mysql> INSTALL PLUGIN tokudb_locks SONAME 'ha_tokudb.so';
67 mysql> INSTALL PLUGIN tokudb_lock_waits SONAME 'ha_tokudb.so';
68
69After the engine has been installed it should be present in the engines list. To check if the engine has been correctly installed and active:
70
71.. code-block:: mysql
72
73 mysql> SHOW ENGINES;
74 ...
75 | TokuDB | YES | Tokutek TokuDB Storage Engine with Fractal Tree(tm) Technology | YES | YES | YES |
76 ...
77
78To check if all the TokuDB plugins have been installed correctly you should run:
79
80.. code-block:: mysql
81
82 mysql> SHOW PLUGINS;
83 ...
84 | TokuDB | ACTIVE | STORAGE ENGINE | ha_tokudb.so | GPL |
85 | TokuDB_file_map | ACTIVE | INFORMATION SCHEMA | ha_tokudb.so | GPL |
86 | TokuDB_fractal_tree_info | ACTIVE | INFORMATION SCHEMA | ha_tokudb.so | GPL |
87 | TokuDB_fractal_tree_block_map | ACTIVE | INFORMATION SCHEMA | ha_tokudb.so | GPL |
88 | TokuDB_trx | ACTIVE | INFORMATION SCHEMA | ha_tokudb.so | GPL |
89 | TokuDB_locks | ACTIVE | INFORMATION SCHEMA | ha_tokudb.so | GPL |
90 | TokuDB_lock_waits | ACTIVE | INFORMATION SCHEMA | ha_tokudb.so | GPL |
91 ...
92
93Other Reading
94=============
95
96* `Official TokuDB Documentation <http://www.tokutek.com/resources/product-docs/>`_
097
=== added file 'doc/source/tokudb/tokudb_intro.rst'
--- doc/source/tokudb/tokudb_intro.rst 1970-01-01 00:00:00 +0000
+++ doc/source/tokudb/tokudb_intro.rst 2014-03-03 18:33:47 +0000
@@ -0,0 +1,23 @@
1.. _tokudb_intro:
2
3=====================
4 TokuDB Introduction
5=====================
6
7TokuDB 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.
8
9Available TokuDB features:
10
11 * :ref:`tokudb_compression`
12
13Currently available ALPHA features [#n-1]_:
14
15 * `Multiple Clustering Indexes <http://www.tokutek.com/2009/05/introducing_multiple_clustering_indexes/>`_
16 * `Fast Updates with NOAR <http://www.tokutek.com/2013/02/fast-updates-with-tokudb/>`_
17 * `Hot Table Optimization <http://www.tokutek.com/2012/06/hot-table-optimization-with-mysql/>`_
18 * `TokuDB AUTOINCREMENT implementation <http://www.tokutek.com/2009/07/autoincrement_semantics/>`_
19 * `Prelocking index and range scans <https://github.com/Tokutek/mysql56/wiki/Patch-for-prelocking-index-and-range-scans>`_
20
21.. rubric:: Footnotes
22
23.. [#n-1] These features are available only in ALPHA Percona Server with TokuDB builds. They might change or even disappear in a future release.
024
=== added file 'doc/source/tokudb/using_tokudb.rst'
--- doc/source/tokudb/using_tokudb.rst 1970-01-01 00:00:00 +0000
+++ doc/source/tokudb/using_tokudb.rst 2014-03-03 18:33:47 +0000
@@ -0,0 +1,33 @@
1.. _using_tokudb:
2
3==============
4 Using TokuDB
5==============
6
7TokuDB 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:
8
9.. code-block:: mysql
10
11 mysql> CREATE TABLE `City` (
12 `ID` int(11) NOT NULL AUTO_INCREMENT,
13 `Name` char(35) NOT NULL DEFAULT '',
14 `CountryCode` char(3) NOT NULL DEFAULT '',
15 `District` char(20) NOT NULL DEFAULT '',
16 `Population` int(11) NOT NULL DEFAULT '0',
17 PRIMARY KEY (`ID`),
18 KEY `CountryCode` (`CountryCode`)
19 ) ENGINE=TokuDB
20
21You can also convert existing tables to TokuDB by running ``ALTER TABLE``:
22
23.. code-block:: mysql
24
25 mysql> ALTER TABLE City ENGINE=TokuDB;
26
27Other Reading
28=============
29
30* `InnoDB vs TokuDB comparison <http://www.tokutek.com/resources/tokudb-vs-innodb/>`_
31* `TokuDB vs InnoDB in timeseries INSERT benchmark <http://www.mysqlperformanceblog.com/2013/09/05/tokudb-vs-innodb-timeseries-insert-benchmark/>`_
32* `Considering TokuDB as an engine for timeseries data <http://www.mysqlperformanceblog.com/2013/08/29/considering-tokudb-as-an-engine-for-timeseries-data/>`_
33* `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