Skip to content

Commit 6b82e89

Browse files
MyRocks limitations section still showing the Online DDL limitation part (8.4)
modified: docs/myrocks-limitations.md
1 parent a275bad commit 6b82e89

File tree

1 file changed

+52
-4
lines changed

1 file changed

+52
-4
lines changed

docs/myrocks-limitations.md

Lines changed: 52 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,61 @@
11
# MyRocks limitations
22

3-
The MyRocks storage engine lacks the following features compared to InnoDB:
3+
## Online DDL limitations
44

5-
* [Online DDL](https://dev.mysql.com/doc/refman/{{vers}}/en/innodb-online-ddl.html) is not supported due to the lack of atomic DDL support.
5+
MyRocks has limited support for [Online DDL operations](https://dev.mysql.com/doc/refman/{{vers}}/en/innodb-online-ddl.html) due to the lack of atomic DDL. As a result the schema changes are more restricted compared to InnoDB.
66

7-
* There is no `ALTER TABLE ... ALGORITHM=INSTANT` functionality
7+
### Traditional MyRocks DDL behavior
88

9-
* A partition management operation only supports the `COPY` algorithms, which rebuilds the partition table and moves the data based on the new `PARTITION ... VALUE` definition. In the case of `DROP PARTITION`, the data not moved to another partition is deleted.
9+
| Operation type | Examples | ALGORITHM |
10+
|---------------------|--------------------------------------------------|-----------------------------|
11+
| Index operations | `ADD INDEX`, `DROP INDEX`, `RENAME INDEX` | `INPLACE` (always) |
12+
| Column changes | `ADD COLUMN`, `DROP COLUMN`, `MODIFY COLUMN` | `COPY` (full table rebuild) |
13+
| Metadata changes | `RENAME TABLE`, some `RENAME COLUMN` operations | May be `INSTANT` |
1014

15+
**Note:** MyRocks does not support atomic DDL. Even metadata-only operations may require a full table rebuild, depending on the nature of the change.
16+
17+
### Partition management support
18+
19+
MyRocks supports `INPLACE` partition management for certain operations:
20+
21+
```sql
22+
ALTER TABLE t1 DROP PARTITION p1, ALGORITHM=INPLACE;
23+
ALTER TABLE t1 ADD PARTITION (PARTITION p2 VALUES LESS THAN (MAXVALUE)), ALGORITHM=INPLACE;
24+
```
25+
The aforementioned operations no longer require a full table rebuild. However, operations that modify partitioning schemes, such as changing `VALUES LESS THAN`, still fall back to the `COPY` algorithm.
26+
27+
**Note:** Dropping a partition permanently deletes any data stored in it unless that data is reassigned to another partition.
28+
29+
### Instant DDL support
30+
31+
MyRocks has limited support for Instant DDL, which is disabled by default and controlled via configuration variables.
32+
33+
To enable specific types of instant operations, use the following configuration options:
34+
35+
| Configuration variable | Enables Instant DDL for | ALGORITHM required |
36+
|------------------------|--------------------------|----------------------------|
37+
| [`rocksdb_enable_instant_ddl_for_append_column=ON`](myrocks-server-variables.md#rocksdb_enable_instant_ddl_for_append_column) | `ALTER TABLE ... ADD COLUMN` | `ALGORITHM=INSTANT` |
38+
| [`rocksdb_enable_instant_ddl_for_column_default_changes=ON`](myrocks-server-variables.md#rocksdb_enable_instant_ddl_for_column_default_changes) | `ALTER/MODIFY COLUMN … DEFAULT` | `ALGORITHM=INSTANT` |
39+
| [`rocksdb_enable_instant_ddl_for_drop_index_changes=ON`](myrocks-server-variables.md#rocksdb_enable_instant_ddl_for_drop_index_changes) | `ALTER TABLE ... DROP INDEX` | `ALGORITHM=INSTANT` |
40+
| [`rocksdb_enable_instant_ddl_for_table_comment_changes=ON`](myrocks-server-variables.md#rocksdb_enable_instant_ddl_for_table_comment_changes) | `ALTER TABLE ... COMMENT` | `ALGORITHM=INSTANT` |
41+
42+
**Note:** Instant DDL in MyRocks is only triggered when **both** of the following conditions are met:
43+
44+
1. The configuration variable is set to `ON`,
45+
2. The `ALTER TABLE` statement explicitly includes `ALGORITHM=INSTANT`.
46+
47+
For example:
48+
49+
```sql
50+
SET GLOBAL rocksdb_enable_instant_ddl_for_table_comment_changes = ON;
51+
ALTER TABLE my_table COMMENT = 'New comment', ALGORITHM=INSTANT;
52+
```
53+
54+
If the configuration variable is enabled (`ON`) but `ALGORITHM=INSTANT` is not specified, MyRocks will fall back to the default algorithm.
55+
56+
Conversely, if the configuration variable is disabled (`OFF`), attempting to use `ALGORITHM=INSTANT` will result in an error.
57+
58+
## Unsupported InnoDB features in MyRocks
1159

1260
* [ALTER TABLE .. EXCHANGE PARTITION](https://dev.mysql.com/doc/refman/{{vers}}/en/partitioning-management-exchange.html).
1361

0 commit comments

Comments
 (0)