Details
-
Bug
-
Status: Closed (View Workflow)
-
Critical
-
Resolution: Incomplete
-
10.2(EOL), 10.3(EOL), 10.4(EOL), 10.5
-
None
Description
While converting storage engine from InnoDB to ROCKSDB, even after changing rocksdb_tmpdir= <new_path_location> ,its using tmpdir = /tmp location.
|
For example :-
|
Server version: 10.5.9-6-MariaDB-enterprise-log MariaDB Enterprise Server
|
|
MariaDB [dev]> show session variables like '%tmpdir%';
|
+-------------------+----------------+
|
| Variable_name | Value |
|
+-------------------+----------------+
|
| innodb_tmpdir | /tmp/mysql_tmp |
|
| rocksdb_tmpdir | /tmp/mysql_tmp |
|
| slave_load_tmpdir | /tmp |
|
| tmpdir | /tmp |
|
+-------------------+----------------+
|
|
MariaDB [dev]> alter table tmp engine=ROCKSDB;
|
Query OK, 1200000 rows affected (3.067 sec)
|
Records: 1200000 Duplicates: 0 Warnings: 0
|
|
[root@master ~]# lsof +L1 /tmp
|
|
mariadbd 1265 mysql 33u REG 253,0 67108864 0 16802192 /tmp/myrocksjk5rpG (deleted)
|
|
Attachments
Issue Links
- relates to
-
MDEV-28485 make tmpdir a session modifiable variable
-
- Open
-
serg
Is this a rhetorical question or acknowledgment of ones' ignorance?
I assume there must be some solid reason as different people seem to have specifically bothered about this: both MyRocks developers (see https://github.com/facebook/mysql-5.6/issues/455) and the customer that has filed the associated support ticket.
I agree that a request to perform permission checks is reasonable. The checking function should probably be at the SQL layer.
Besides tmpdirs, the engines allow one to specify where the data files are placed: see innodb_data_home_dir, rocksdb_datadir, rocksdb_waldir.
I assume that performance dictates that engine's tmpdir is located on the same volume as its datadir.
Are we going to reject the engine's right to use its own directories?