iotdb
iotdb copied to clipboard
Subscription: improve subscription meta management with sub-procedures strong exception handling semantics
The purpose of this PR is to enhance the management of subscription metadata, with the expectation that the final state of DN will be consistent with the meta on CN, while having a certain degree of fault tolerance.
This PR mainly includes the following contents:
On the CN side:
- Does not rely on consumer group information in topic meta, avoiding additional procedures for alter topic when creating/dropping subscriptions.
- Fast fail by reporting errors directly if any subscription procedure on DN metadata fails, enabling early detection.
- Introduces isRollbackFromOperateOnDataNodesSuccessful similar to pipe procedure.
- Removes createPipeProcedureFailIndexOnCN & dropPipeProcedureFailIndexOnCN to avoid 'show subscriptions' being empty while 'show pipes' is not.
- Attempts to create a pipe even if subscription meta exists but pipe meta does not.
On the DN side:
- Weakens the timing requirements for synchronizing subscription meta and pipe meta to DN.