|
4 | 4 | Encrypting Doublewrite Buffers |
5 | 5 | ======================================================================= |
6 | 6 |
|
7 | | -As of |Percona Server| 8.0.20-11, the Percona version of the |
8 | | -doublewrite buffer is replaced with the MySQL implementation. |
| 7 | +A summary of Doublewrite buffer and Doublewrite buffer encryption changes: |
9 | 8 |
|
10 | | -Until |MySQL| 8.0.20, the system tablespace contained the doublewrite |
11 | | -buffer. The key which encrypts the InnoDB system tablespace also |
12 | | -encrypts the ``doublewrite buffer`` pages. |
| 9 | +.. tabularcolumns:: |p{5cm}|p{11cm}| |
| 10 | + |
| 11 | +.. list-table:: |
| 12 | + :header-rows: 1 |
| 13 | + |
| 14 | + * - |Percona Server| Versions |
| 15 | + - Doublewrite Buffer and Doublewrite Buffer Encryption Implementation |
| 16 | + * - Percona-Server-8.0.12-1.alpha to Percona-Server-8.0.19-10 inclusive |
| 17 | + - |Percona Server| had its own implementation of the parallel doublewrite buffer which was enabled by setting the :variable:`innodb_parallel_doublewrite_path` variable. |
| 18 | + |
| 19 | + Enabling the :variable:`innodb_parallel_dblwr_encrypt` controlled whether the parallel |
| 20 | + doublewrite pages were encrypted or not. In case the parallel doublewrite buffer was disabled (:variable:`innodb_parallel_doublewrite_path` was set to empty string),the doublewrite buffer pages were located in the system tablespace (ibdata1). The system tablespace itself could be encrypted by setting :variable:`innodb_sys_tablespace_encrypt`, which also encrypted the doublewrite buffer pages. |
| 21 | + * - Percona Server from Percona-Server-8.0.20-11 to Percona-Server-8.0.22-13 inclusive |
| 22 | + - |MySQL| 8.0.20 implemented its own `parallel doublewrite buffer <https://dev.mysql.com/doc/refman/8.0/en/innodb-doublewrite-buffer.html>`__, which is stored in external files (#ib_16384_xxx.dblwr) and not stored in the system tablespace. Percona's implementation was reverted. As a result, :variable:`innodb_parallel_doublewrite_path` was deprecated. |
| 23 | + |
| 24 | + However, |MySQL| did not implement parallel doublewrite buffer |
| 25 | + encryption at this time, so Percona reimplemented parallel doublewrite |
| 26 | + buffer encryption on top of the |MySQL| parallel doublewrite buffer |
| 27 | + implementation. Percona preserved the meaning and |
| 28 | + functionality of the :variable:`innodb_parallel_dblwr_encrypt` variable. |
| 29 | + * - Percona Server from Percona-Server-8.0.23-14 |
| 30 | + - |MySQL| 8.0.23 implemented its own version of `parallel doublewrite encryption <https://dev.mysql.com/doc/refman/8.0/en/innodb-data-encryption.html#innodb-doublewrite-file-encryption)>`__. |
| 31 | + Pages that belong to encrypted tablespaces are also written into the |
| 32 | + doublewrite buffer in an encrypted form. Percona's |
| 33 | + implementation was reverted and :variable:`innodb_parallel_dblwr_encrypt` is deprecated. |
| 34 | + |
| 35 | +For |Percona Server| versions below |Percona Server| version 8.0.23-14, |Percona| encrypts the ``doublewrite buffer`` using :variable:`innodb_parallel_dblwr_encrypt`. |
13 | 36 |
|
14 | | -Currently, |Percona| encrypts the ``doublewrite buffer`` using :variable:`innodb_parallel_dblwr_encrypt`. |
15 | | -Encrypted tablespace pages are written as encrypted in the |
16 | | -doublewrite buffer using their respective tablespace keys. Unencrypted tablespace pages are not encrypted in the |
17 | | -doublewrite buffer. |
18 | 37 |
|
19 | 38 | .. variable:: innodb_parallel_dblwr_encrypt |
20 | 39 |
|
| 40 | + :deprecated: Percona-Server 8.0.23-14 |
21 | 41 | :cli: ``--innodb-parallel-dblwr-encrypt`` |
22 | 42 | :dyn: Yes |
23 | 43 | :scope: Global |
24 | 44 | :vartype: Boolean |
25 | 45 | :default: ``OFF`` |
26 | 46 |
|
27 | | -Enables the encryption of the doublewrite buffer. The encryption uses |
28 | | -the key of the tablespace where the doublewrite buffer is used. |
29 | | - |
30 | | -.. seealso:: |
| 47 | +This variable controls whether the parallel doublewrite buffer pages were encrypted or not. The encryption used the key of the tablespace to which the page belong. |
31 | 48 |
|
32 | | - `MySQL Doublewrite Buffer <https://dev.mysql.com/doc/refman/8.0/en/innodb-doublewrite-buffer.html>`_ |
| 49 | +Starting from |Percona Server| 8.0.23-14, regardless of the value of this variable, pages from the encrypted tablespaces are always written to the doublewrite buffer as encrypted, and pages from unencrypted tablespaces are always written unencrypted. |
33 | 50 |
|
| 51 | +The :variable:`innodb_parallel_dblwr_encrypt` is accepted but has no effect. An explicit attempt to change the value generates the following warning in the error log file: |
34 | 52 |
|
| 53 | + **Setting Percona-specific INNODB_PARALLEL_DBLWR_ENCRYPT is deprecated and has no effect.** |
0 commit comments