opened 08:03AM - 07 Mar 23 UTC
closed 10:44AM - 13 Apr 23 UTC
type: discussion
feature: db-discovery
Hi community,
Currently, ShardingSphere database discovery feature provides t…he function of automatically discovery the master-slave relationship of the database and dynamically correct the status of the data source. It supports `MySQL`、`openGauss` database type.
We consider remove this feature, beancase the design of db-discovery and dynamic readwrite-splitting of ShardingSphere seems unreasonable, ShardingSphere readwrite-splitting should kept concise and not should rely master-slave role and read datasource lists of database discovery.
During the actual development and use, we encountered many problems:
- The database discovery does not meet the pluggable architecture of ShardingSphere, it needs to pass the constructed rule to readwrite-splitting.
- ShardingSphere does not provide database high availability, it relies on three-party high-availability solutions to find master-slave topological relationship, there are too many three-party high-availability solutions and they are very complicated, so it is a great challenge for the ShardingSphere database discovery feature.
- The database discovery function awareness may cause the entire read cluster to be unavailable when use ApsaraDB for reading cluster domain names.
Therefore, we intend to remove db-discovery feature in ShardingSphere into a separate branch for maintenance to reduce the cost of understanding and maintaining the main code.
Please voice your opinions as fully as possible. Thank you.