Does online DDL "lock all tables corresponding to DDL statements in the job queue to read-only status"?

Note:
This topic has been translated from a Chinese forum by GPT and might contain errors.

Original topic: online ddl是否“将job队列中的DDL语句对应的表全部锁住为只读状态”

| username: yytest

The official documentation describes online DDL as follows:
When the database executes DDL statements, it uses certain methods to ensure that the DDL execution does not block user operations and allows users to submit modifications during the DDL execution. It also ensures the correctness and consistency of the data of the corresponding objects during the execution process.
Dear teachers, does online DDL lock all the tables corresponding to the DDL statements in the job queue to a read-only state? Because although online DDL allows modifications to be submitted during the DDL execution, submission does not mean immediate execution.
I am not sure if the description “locks all the tables corresponding to the DDL statements in the job queue to a read-only state” is accurate.

| username: BraveChen | Original post link

It’s not accurate. Since it’s mentioned as online DDL, it must be similar to MySQL’s inplace multi-version DDL, or similar to GT’s object switching DDL. In any case, table locking is definitely not involved… You can test it yourself, can’t you?

| username: 小龙虾爱大龙虾 | Original post link

If it doesn’t execute immediately, doesn’t that mean it’s blocked?

This statement is incorrect.

| username: yytest | Original post link

I also think this sentence is incorrect, but the official says it is correct.

| username: yytest | Original post link

I understand that non-blocking here means that submitting DDL does not result in an error, but it may not be executed immediately because ONLINE DDL has a queue in TiKV and is executed in the order of submission.

| username: 小龙虾爱大龙虾 | Original post link

Non-blocking means not blocking the DML sent by the business.

| username: 小于同学 | Original post link

Not locked