Comments (23)
Maybe we need to consider some compatibility to SDKs like jedis.
Like "cluster nodes", it may return with "master" field and might be used by some SDKs.
from valkey.
3 major version would be enough transition time, I'd assume.
But mainly I'm just advocating have a set plan before changes happen so it doesn't languish for an undetermined amount of time.
from valkey.
Yes, 1 and 2 can be done immediately IMO, but in two separate PRs.
from valkey.
I would vote for "primary" and "replica".
As for changes, I now think more and more that we need a "compat" knob. It can be either compile time or runtime (via config).
We could also consider a staged change:
-
Anything non-user facing, i.e., comments, function/variable names, etc
-
Aliasing input to support both terminologies (but also under the "compat" switch)
-
Changing output. Aliasing would not work in this case. We will default to the new terminology but it can be overridden by the user, again either compile time or runtime (pending decision)
from valkey.
@alonohana627 May I ask why you down-voted this? Just curious. If it's about compatibility, I'd like to hear it so we can make a better decision.
all his (recently) created github repositories are using "master" for branch naming,
so I think it is personal preference in this case
from valkey.
@zuiderkwast , I have taken a look and don't really have time to dig into this and do it right. Other folks should feel free to pick this up :) sorry for whiplast!
from valkey.
Yes, the breaking change is a "major decision". We should analyze the implications a bit more too. There may be reasons to be compatible with other forks and implementations so we should also keep on eye on them.
We may even consider some possibility for conditional compilation or similar.
from valkey.
If there is a compat knob, it would be good to have a pre-determined sequence of deprecation.
E.g. version n
introduce knob and optional new terminology, version n+1
new terminology becomes default, old terminology is deprecated, version n+2
remove old terminology.
Otherwise these things just linger. Pull off the bandaid, as they say.
from valkey.
de-crapify
😂
from valkey.
@singlyfy @zuiderkwast sry for downvote!!! I don't have an opinion, when I create a repo I don't consider the main's repo name. It was a missclick. I remove the downvote.
I want to contribute but I'm new, I'm not sure if upvote/downvote this suggestion because I sincerely don't understand it. I hope you won't think I tried to troll or anything, sorry for the inconvenient.
from valkey.
@Dom4n It is a very valid concern. I think backward compatibility is very important, especially in this kind of project which has been mostly feature-complete since many years. Let's think about it a bit more.
from valkey.
absolutely interested -- sorry for the delay. Felt like a lot happened at once -- I'll start taking a look!
from valkey.
Hi! Would this be a decent "first issue" for a techie who's interested in getting more involved with the alt/redis ecosystem? I'd be happy to use this as a way to get more familiar with the repo :)
from valkey.
@GaryPWhite Yes, that's great, but first we need to analyze and decide exactly what we need to do and in which steps. There are implications like Redis compatibility to consider.
from valkey.
@GaryPWhite Actually I think you can start with the non-breaking changes of simply adding PRIMARY aliases (or rather make MASTER an alias of PRIMARY) for these:
- CLIENT KILL TYPE MASTER
- CLIENT LIST TYPE MASTER
- SENTINEL GET-MASTER-ADDR-BY-NAME
Look into how SLAVE is already an alias of REPLICA in these commands.
from valkey.
Agree with master as an alias of primary. But suggest to hold the master and slave name, maybe they will remove in future version
from valkey.
Pull off the bandaid, as they say
Yes we should do it at some point but I think the timing of it falls in another major decision and we need to give our users ample time to adjust. As much as I am personally in strong favor of ripping this bandaid off asap I also understand that the success of this project is very much dependent on "continuity". It takes time to turn this huge ship around.
from valkey.
I'm just advocating have a set plan before changes happen so it doesn't languish for an undetermined amount of time.
Timing aside, I think one option, as you suggested too, is to just remove this compat knob and we are done. I have yet to think of other options because as far as output is concerned, it is a binary decision. So the plan in my opinion is more about deliberating a timeline with the help of the community, than an engineering plan to help with a smooth transition. In other words, I think #36 (comment) is the best we can do. Curious to hear other folks' thoughts.
from valkey.
@alonohana627 May I ask why you down-voted this? Just curious. If it's about compatibility, I'd like to hear it so we can make a better decision.
from valkey.
I have down-voted only because I don't encourage making breaking changes, aliases are totally fine.
But please do not force name change by removing old naming conventions.
from valkey.
@GaryPWhite Are you still interesting in helping out with the non-breaking changes?
We will not do any of the breaking changes at this point.
from valkey.
There is zero logical reason to make a breaking name change like this. It's just going to cause issues with 3rd party tools.
Nothing of value will be gained by doing this.
from valkey.
There is zero logical reason to make a breaking name change like this
We're only making the non-breaking changes. Anything part of the API (the command names) or API responses will remain the same.
from valkey.
Related Issues (20)
- [BUG] The result of the PING command does not match the documentation when using RESP3 HOT 1
- [BUG] A large negative number(e.g. -LONG_MAX) in HRANDFIELD/ZRANDMEMBER can easily cause Valkey to crash. HOT 3
- [NEW] Migrate from Redis 7.4.0 to Valkey 7.2.5 HOT 10
- [NEW] Introduce slot-level memory metrics
- [Test failure] Test issues with empty shard migrations
- [BUG] "CLIENT CAPA redirect" has no effect in scripts HOT 1
- [BUG] Cluster: Inconsistent MOVED/READONLY errors for read-only client
- [NEW] Introduce a new client capability for throttling
- [NEW] Add support for setting the group on a unix domain socket HOT 1
- Feature Request: Add Error Status Field for Diskless Syncs HOT 5
- [NEW] HTTP support for Valkey HOT 4
- [NEW] Support proxy protocol HOT 2
- Migrate TLS.md into README.md HOT 3
- [Test failure] test_reclaimFilePageCache fails on Amazon Linux 2023 AARCH64
- Remove direct reference to conn->fd and use the connection abstraction
- [BUG] cluster rebalance --cluster-weight <node>=0 fails with clusterManagerMoveSlot: NOREPLICAS error HOT 8
- [NEW] Benchmark CLI tool rewrite HOT 9
- [NEW] New Commands for Module: Module Set-Argument <name> [ARGS1, ARGS2...] and Module Reset-Argument <name> HOT 2
- [NEW] Replication stream access via Module API
- [NEW] Migrate non topology update cluster bus messages to light header type HOT 9
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from valkey.