Propagate text search commands to all worker nodes (#5797)

Here is a list of some functions, and the `TargetWorkerSet` parameters
they supply to `NodeDDLTaskList`:

PostprocessCreateTextSearchConfigurationStmt - 
NON_COORDINATOR_NODES

PreprocessDropTextSearchConfigurationStmt -
NON_COORDINATOR_METADATA_NODES

PreprocessAlterTextSearchConfigurationSchemaStmt -
NON_COORDINATOR_METADATA_NODES 

I guess this means that, if metadata
syncing is disabled on the node, we may have some issues. Consider the
following:

Let's assume the user has metadata syncing disabled. 2 workers.

`CREATE TEXT SEARCH CONFIGURATION ...` will get propagated to all
workers. `ALTER ... CONFIGURATION ...` will not get propagated to
workers.

After adding a new non-metadata node, the new node will get the altered
configuration as it reads from catalog. At this point CONFIGURATION
definitions got diverged in the cluster.

I suggest that we always use `NON_COORDINATOR_METADATA_NODES` in all the
TEXT SEARCH operations here.
pull/5796/head^2
Hanefi Onaldi 2022-03-14 14:44:34 +03:00 committed by GitHub
parent c5031ac7b5
commit b24e1dfccc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 10 additions and 10 deletions

View File

@ -264,7 +264,7 @@ PreprocessDropTextSearchConfigurationStmt(Node *node, const char *queryString,
(void *) dropStmtSql,
ENABLE_DDL_PROPAGATION);
return NodeDDLTaskList(NON_COORDINATOR_METADATA_NODES, commands);
return NodeDDLTaskList(NON_COORDINATOR_NODES, commands);
}
@ -315,7 +315,7 @@ PreprocessDropTextSearchDictionaryStmt(Node *node, const char *queryString,
(void *) dropStmtSql,
ENABLE_DDL_PROPAGATION);
return NodeDDLTaskList(NON_COORDINATOR_METADATA_NODES, commands);
return NodeDDLTaskList(NON_COORDINATOR_NODES, commands);
}
@ -406,7 +406,7 @@ PreprocessAlterTextSearchConfigurationStmt(Node *node, const char *queryString,
(void *) alterStmtSql,
ENABLE_DDL_PROPAGATION);
return NodeDDLTaskList(NON_COORDINATOR_METADATA_NODES, commands);
return NodeDDLTaskList(NON_COORDINATOR_NODES, commands);
}
@ -437,7 +437,7 @@ PreprocessAlterTextSearchDictionaryStmt(Node *node, const char *queryString,
(void *) alterStmtSql,
ENABLE_DDL_PROPAGATION);
return NodeDDLTaskList(NON_COORDINATOR_METADATA_NODES, commands);
return NodeDDLTaskList(NON_COORDINATOR_NODES, commands);
}
@ -470,7 +470,7 @@ PreprocessRenameTextSearchConfigurationStmt(Node *node, const char *queryString,
(void *) ddlCommand,
ENABLE_DDL_PROPAGATION);
return NodeDDLTaskList(NON_COORDINATOR_METADATA_NODES, commands);
return NodeDDLTaskList(NON_COORDINATOR_NODES, commands);
}
@ -503,7 +503,7 @@ PreprocessRenameTextSearchDictionaryStmt(Node *node, const char *queryString,
(void *) ddlCommand,
ENABLE_DDL_PROPAGATION);
return NodeDDLTaskList(NON_COORDINATOR_METADATA_NODES, commands);
return NodeDDLTaskList(NON_COORDINATOR_NODES, commands);
}
@ -537,7 +537,7 @@ PreprocessAlterTextSearchConfigurationSchemaStmt(Node *node, const char *querySt
(void *) sql,
ENABLE_DDL_PROPAGATION);
return NodeDDLTaskList(NON_COORDINATOR_METADATA_NODES, commands);
return NodeDDLTaskList(NON_COORDINATOR_NODES, commands);
}
@ -571,7 +571,7 @@ PreprocessAlterTextSearchDictionarySchemaStmt(Node *node, const char *queryStrin
(void *) sql,
ENABLE_DDL_PROPAGATION);
return NodeDDLTaskList(NON_COORDINATOR_METADATA_NODES, commands);
return NodeDDLTaskList(NON_COORDINATOR_NODES, commands);
}
@ -658,7 +658,7 @@ PreprocessTextSearchConfigurationCommentStmt(Node *node, const char *queryString
(void *) sql,
ENABLE_DDL_PROPAGATION);
return NodeDDLTaskList(NON_COORDINATOR_METADATA_NODES, commands);
return NodeDDLTaskList(NON_COORDINATOR_NODES, commands);
}
@ -691,7 +691,7 @@ PreprocessTextSearchDictionaryCommentStmt(Node *node, const char *queryString,
(void *) sql,
ENABLE_DDL_PROPAGATION);
return NodeDDLTaskList(NON_COORDINATOR_METADATA_NODES, commands);
return NodeDDLTaskList(NON_COORDINATOR_NODES, commands);
}