You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@shardingsphere.apache.org by Juan Pan <pa...@apache.org> on 2020/10/27 03:59:15 UTC
Re: [DISCUSS] Rename MasterSlave module to ReadWriteSplit
Hi, community,
I know it is a little late to deliver this email. Still, I want to drop some discussion about this issue here.
Currently, with a crude talking with other guys, there are two great alternatives ( PrimaryReplica ad QueryReplica) for the original name (i.e., masterSlave).
I prefer QueryReplica, but considering we have finished renaming it as PrimaryReplica, my opinion is to keep it that way. However, @John wants to have another renaming work with `QueryReplica` for this module's optimal name.
I’d like to listen to your idea about this one, but keep in mind that our next release is close at hand.
So we have to make a decision ASAP.
Juan Pan (Trista)
Senior DBA & PMC of Apache ShardingSphere
E-mail: panjuan@apache.org
On 09/25/2020 01:46,Liang Zhang<zh...@apache.org> wrote:
Done by https://github.com/apache/shardingsphere/issues/7560
On 2020/09/22 10:44:29, "zhangliang@apache.org" <zh...@apache.org> wrote:
Because the release date is coming soon, I will do this issue.
------------------
Sincerely,
Liang Zhang (John)
Apache ShardingSphere
Harvey <fl...@gmail.com> 于2020年9月16日周三 下午8:03写道:
Looks good to me
Thanks,
Hongwei Li
On Sep 16, 2020, at 1:43 AM, "zhangliang@apache.org" <
zhangliang@apache.org> wrote:
Primary-replica is good to me.
So, how about:
MasterSlave -> PrimaryReplicaReplication
MasterDataSource -> PrimaryDataSource
SlaveDataSource -> ReplicaDataSource
------------------
Sincerely,
Liang Zhang (John)
Apache ShardingSphere
Hongwei Li <fl...@gmail.com> 于2020年9月14日周一 下午10:31写道:
FYI:
primary and replica, replica replication are widely used terms in AWS.
https://aws.amazon.com/blogs/database/best-practices-for-amazon-rds-postgresql-replication/
https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Replication.Redis.Groups.html
On Mon, Sep 14, 2020 at 1:07 AM Juan Pan <pa...@apache.org> wrote:
Hi Liang,
I also looked through many docs of other databases,
like MySQL, MariaDB, PostgreSQL, and MongoDB.
For me, I can accept your proposal.
In short, no matter `PrimarySecondaryReplication` or
`PrimaryReplicaReplication`,
IMO. We need to focus on `replication` which means a synchronization
process
among primary nodes and secondary nodes (Replica nodes).
The links below will help me explain more.
[1]
https://medium.com/@Jelastic/mongodb-replica-set-with-master-slave-replication-and-automated-failover-be3cb374452
[2]
https://www.datadriveninvestor.com/2020/05/28/the-master-slave-database-concept-for-beginners/
[3] https://www.postgresql.org/docs/9.2/warm-standby.html
[4]
https://mariadb.com/resources/blog/database-master-slave-replication-in-the-cloud/
Best,
Trista
Juan Pan (Trista)
Senior DBA & PMC of Apache ShardingSphere
E-mail: panjuan@apache.org
On 09/14/2020 12:34,zhangliang@apache.org<zh...@apache.org>
wrote:
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 <fl...@gmail.com> 于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 zhangliang@apache.org <
zhangliang@apache.org> 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 <pa...@apache.org> 于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: panjuan@apache.org
On 09/12/2020 22:26,Craig Russell<ap...@gmail.com> 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, zhangliang@apache.org 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
clr@apache.org
Re: [DISCUSS] Rename MasterSlave module to ReadWriteSplit
Posted by "zhangliang@apache.org" <zh...@apache.org>.
Nice catch and good name for ReplicaQuery.
PrimaryReplicaReplication may mislead user because the feature do nothing
for replication. We just route query requests to replica and route write
requests to primary data source.
I will rename the module name to ReplicaQuery soon.
------------------
Sincerely,
Liang Zhang (John)
Apache ShardingSphere
Juan Pan <pa...@apache.org> 于2020年10月27日周二 上午11:59写道:
> Hi, community,
>
>
> I know it is a little late to deliver this email. Still, I want to drop
> some discussion about this issue here.
> Currently, with a crude talking with other guys, there are two great
> alternatives ( PrimaryReplica ad QueryReplica) for the original name (i.e.,
> masterSlave).
>
>
> I prefer QueryReplica, but considering we have finished renaming it as
> PrimaryReplica, my opinion is to keep it that way. However, @John wants to
> have another renaming work with `QueryReplica` for this module's optimal
> name.
>
>
> I’d like to listen to your idea about this one, but keep in mind that our
> next release is close at hand.
> So we have to make a decision ASAP.
>
>
> Juan Pan (Trista)
>
> Senior DBA & PMC of Apache ShardingSphere
> E-mail: panjuan@apache.org
>
>
>
>
> On 09/25/2020 01:46,Liang Zhang<zh...@apache.org> wrote:
> Done by https://github.com/apache/shardingsphere/issues/7560
>
> On 2020/09/22 10:44:29, "zhangliang@apache.org" <zh...@apache.org>
> wrote:
> Because the release date is coming soon, I will do this issue.
>
> ------------------
>
> Sincerely,
> Liang Zhang (John)
> Apache ShardingSphere
>
>
> Harvey <fl...@gmail.com> 于2020年9月16日周三 下午8:03写道:
>
> Looks good to me
>
> Thanks,
>
> Hongwei Li
>
> On Sep 16, 2020, at 1:43 AM, "zhangliang@apache.org" <
> zhangliang@apache.org> wrote:
>
> Primary-replica is good to me.
>
> So, how about:
>
> MasterSlave -> PrimaryReplicaReplication
> MasterDataSource -> PrimaryDataSource
> SlaveDataSource -> ReplicaDataSource
>
> ------------------
>
> Sincerely,
> Liang Zhang (John)
> Apache ShardingSphere
>
>
> Hongwei Li <fl...@gmail.com> 于2020年9月14日周一 下午10:31写道:
>
> FYI:
> primary and replica, replica replication are widely used terms in AWS.
>
>
>
>
> https://aws.amazon.com/blogs/database/best-practices-for-amazon-rds-postgresql-replication/
>
>
>
> https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Replication.Redis.Groups.html
>
> On Mon, Sep 14, 2020 at 1:07 AM Juan Pan <pa...@apache.org> wrote:
>
> Hi Liang,
>
>
> I also looked through many docs of other databases,
> like MySQL, MariaDB, PostgreSQL, and MongoDB.
>
>
> For me, I can accept your proposal.
>
>
> In short, no matter `PrimarySecondaryReplication` or
> `PrimaryReplicaReplication`,
> IMO. We need to focus on `replication` which means a synchronization
> process
> among primary nodes and secondary nodes (Replica nodes).
> The links below will help me explain more.
>
>
>
>
> [1]
>
>
>
> https://medium.com/@Jelastic/mongodb-replica-set-with-master-slave-replication-and-automated-failover-be3cb374452
> [2]
>
>
>
> https://www.datadriveninvestor.com/2020/05/28/the-master-slave-database-concept-for-beginners/
> [3] https://www.postgresql.org/docs/9.2/warm-standby.html
> [4]
>
>
>
> https://mariadb.com/resources/blog/database-master-slave-replication-in-the-cloud/
>
>
> Best,
> Trista
>
>
> Juan Pan (Trista)
>
> Senior DBA & PMC of Apache ShardingSphere
> E-mail: panjuan@apache.org
>
>
>
>
> On 09/14/2020 12:34,zhangliang@apache.org<zh...@apache.org>
> wrote:
> 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 <fl...@gmail.com> 于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 zhangliang@apache.org <
> zhangliang@apache.org> 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 <pa...@apache.org> 于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: panjuan@apache.org
>
>
>
>
> On 09/12/2020 22:26,Craig Russell<ap...@gmail.com> 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, zhangliang@apache.org 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
> clr@apache.org
>
>
>
>
>
>
>
>