I investigate related materials again, maybe read-write-spilt is not a good
name.

There are two features in Apache ShardingSphere now, master-slave and
replica.

Master-slave:
Write to master data source and replication data to slave data sources
async, and then read from slave data sources.
Benefit: performance.

Replica:
Still in dev mode, we plan to use Raft algorithm to keep the multiple
replicas with consensus.
Benefit: consensus.

The tow features can not use together, users can choose one of them in the
same time only.

I prefer to rename master-slave module to primary-secondary-replication,
and rename replica module to consensus-replication.
The new names can describe the feature more accurate and can let user to
know they are mutually exclusive.

Primary-standby-replication is another choice, but I am afraid the meaning
of `standby` is waiting here and do nothing if normal,
but the secondary data source still need to process the query requests.

So, how about to rename the concept to:

MasterSlave -> PrimarySecondaryReplication
MasterDataSource -> PrimaryDataSource
SlaveDataSource -> SecondaryDataSource

Please advice me.

------------------

Sincerely,
Liang Zhang (John)
Apache ShardingSphere


Hongwei Li <[email protected]> 于2020年9月14日周一 下午12:02写道:

> I don't have any idea about how the module 'shardingsphere-master-slave' vs
> 'shardingsphere-read-write-split', was named.
> If there was no specific reason, it is like a historical debt, but does not
> matter so much, as it has been there for a long time, everyone knows
> the function of the module.
> In the meantime, 'read-write-split' is more obvious from the
> processing/action perspective of the module. 'Master/Slave' is also fine
> from the processing object(datasource) perspective.
>
> For simple processing and not considering much, the replacement of
> 'master/slave' to 'primary/replica' including the combinations is much
> straightforward. It is kind of 'leave it as is' processing.
>
> For moving one step further, renaming the module to 'read-write-split' is a
> way to go. The questions are:
> shall we replace 'MasterSlave' as 'ReadWriteSplit' at all places?
> Do we need to consider if the replacement is meaningful at any place, such
> as the below names:
> MasterSlaveDataSourceRuleConfiguration
> MasterSlaveLoadBalanceAlgorithm
>
>
>
> On Sat, Sep 12, 2020 at 11:29 PM [email protected] <
> [email protected]> wrote:
>
> > I like
> >
> > MasterDataSource -> PrimaryDataSource
> > SlaveDataSource -> ReplicaDataSource
> >
> >
> > But I am not sure about
> >
> > MasterSlave -> PrimaryReplica
> >
> > Because ShardingSphere's feature is route the update SQL
> > to PrimaryDataSource and route the query SQL to ReplicaDataSource.
> > The name ReadWriteSplit may describe the feature more clear.
> >
> > Any suggestions?
> >
> > ------------------
> >
> > Sincerely,
> > Liang Zhang (John)
> > Apache ShardingSphere
> >
> >
> > Juan Pan <[email protected]> 于2020年9月13日周日 上午10:07写道:
> >
> > > Hi Craig,
> > >
> > >
> > > Thanks for your suggestion. :-)
> > > For me, both `primary` and `source` are ok.
> > >
> > >
> > > > usually using terms like "primary", "secondary", "source", and
> > "replica"
> > > Considering the expression above is mentioned in [1].
> > >
> > >
> > > > There are good reasons for MySQL to use "source" instead of "primary"
> > > because in their model there may be many "source" databases.
> > > Actually, ShardingSphere could also have many "source" databases
> > > (Depending on the user's configuration).
> > >
> > >
> > > > MasterSlave -> ReadWriteSplit
> > > IMO, this renaming does not sound wonderful. I prefer
> > >
> > >
> > > > MasterSlave -> PrimaryReplica  or MasterSlave -> SourceReplica
> > >
> > >
> > > Moreover, I'd like to listen to others' opinions.
> > >
> > >
> > > [1] https://mysqlhighavailability.com/mysql-terminology-updates/
> > >
> > >
> > > Best,
> > > Trista
> > >
> > >
> > >  Juan Pan (Trista)
> > >
> > > Senior DBA & PMC of Apache ShardingSphere
> > > E-mail: [email protected]
> > >
> > >
> > >
> > >
> > > On 09/12/2020 22:26,Craig Russell<[email protected]> wrote:
> > > Hi,
> > >
> > > This will be a significant change so I think it would be good to
> resolve
> > > all of the naming before any PR is proposed. The first place to start
> > might
> > > be the documentation to see all of the name changes in one place.
> > >
> > > There are good reasons for MySQL to use "source" instead of "primary"
> > > because in their model there may be many "source" databases.
> Personally I
> > > don't think "source" is particularly obvious to users, but they did not
> > ask
> > > me. ;-)
> > >
> > > For ShardingSphere, "primary" and "replica" seem to be better choices.
> It
> > > will be easy for us to tell users that ShardingSphere's "replica"
> > > corresponds to MySQL's "source".
> > >
> > > So the concepts to be changed might be:
> > >
> > > MasterSlave -> PrimaryReplica
> > > MasterDataSource -> PrimaryDataSource
> > > SlaveDataSource -> ReplicaDataSource
> > >
> > > And again, it might be easier to review the name changes in the context
> > of
> > > documentation changes.
> > >
> > > HTH,
> > > Craig
> > >
> > > On Sep 6, 2020, at 2:42 AM, [email protected] wrote:
> > >
> > > Hi All,
> > >
> > > I want to discuss to rename MasterSlave module to ReadWriteSplit
> module.
> > >
> > > MySQL[1] has already change the master and slave to source and replica.
> > >
> > > Some concepts I plan to change:
> > >
> > > MasterSlave -> ReadWriteSplit
> > > MasterDataSource -> SourceDataSource
> > > SlaveDataSource -> ReplicaDataSource
> > >
> > > Please advice me.
> > >
> > > [1] https://mysqlhighavailability.com/mysql-terminology-updates/
> > >
> > > ------------------
> > >
> > > Sincerely,
> > > Liang Zhang (John)
> > > Apache ShardingSphere
> > >
> > > Craig L Russell
> > > [email protected]
> > >
> >
>

Reply via email to