Hi community,

Currently, ShardingSphere database discovery feature provides the 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.

[1] https://github.com/apache/shardingsphere/issues/24486

Best regards,
Zhengqiang
——————————————————————
Zhengqiang Duan (duanzhengqi...@apache.org)
Apache ShardingSphere PMC
GitHub@strongduanmu

Reply via email to