Live data from Hacker News

Redis 4.0

groups.google.com

171–180 of 184 posts

Re: Redis 4.0

#171

I really wish Redis wouldn't use the "master/slave" terminology. Primary/replica or even Master/replica are better terms. I know I'll probably get flamed for saying this, but it's a pox on a project that I otherwise very much love.

This sums up Hacker News so beautifully. On a post related to the release of a new version of a piece of software for caching data would the topic of slavery come up.

Re: Redis 4.0

#172
post #92

Earlier quoted context omitted.

'Bash' is too violent as well. We should rename it to 'hug'.

`bash` is also pretty evangelical ;) On a serious note, I've never actually understood where the term "hung" comes from in computing. Why is the process "hung" and not simply "stalled" or something else.

Hung is used like that outside computing. For example in the terms "hung jury" and "hung parliament". I have no idea how this word became common in computing though.

Re: Redis 4.0

#173
post #167

Interesting coincidence (or maybe not...) Redis was discussed on the Floss podcast that I listened to earlier today and now I have an inkling of what Redis is. My first exposure to Redis was to ponder where it came from after I tried to run Gitlab on my puny (J1900, 4GB RAM and spinning rust) file server. It was spectacularly non-performant with most page loads timing out. I suppose it was because Redis had insuffici…

The issues you had may have come from GitLab not having enough resources available to handle everything, as opposed to Redis itself; anecdotally, I have an application with a couple thousand keys in it that only uses ~5MiB of RAM.

Yeah, I'm in the same boat - I have a redis I use for caching auth tokens and some other values for a small service, and it doesn't take much ram at all. (5-10 MiB)

Re: Redis 4.0

#174
post #90

Earlier quoted context omitted.

To be fair only a compacting GC can do that

That isn't strictly true. You do not need to do garbage collection to compact memory. The data needed to do memory compaction and garbage collection largely overlaps, so you may as well do both, but you don't have to. To implement either you need to do a scan of all pointers in memory - for a garbage collection you save a currently in use list, for compaction you need to a map of where they are so you can change them…

Compaction is rather trivial with stop the world phase. Doing it without is a lot more challenging.

Re: Redis 4.0

#175
post #129

Earlier quoted context omitted.

How do you solve this problem? Can you use headless K8S services for that?

You can use a StatefulSet which gives a fixed hostname per pod. Then you can have a sidecar pod that monitors the cluster, discovers the IPs of all pods, and uses redis_trib to create and maintain the cluster. It's a hassle to make it robust though.

Don't see why you would do that, instead of a headless service.

Re: Redis 4.0

#176

"9) Active memory defragmentation. Redis is able to defragment the memory while online..." I'm so amazed that this is a thing.

Could anyone explain me why this is needed with virtual memory? Wouldn't the OS take care of handling gaps of free space?

Re: Redis 4.0

#177
post #174

Earlier quoted context omitted.

That isn't strictly true. You do not need to do garbage collection to compact memory. The data needed to do memory compaction and garbage collection largely overlaps, so you may as well do both, but you don't have to. To implement either you need to do a scan of all pointers in memory - for a garbage collection you save a currently in use list, for compaction you need to a map of where they are so you can change them…

Compaction is rather trivial with stop the world phase. Doing it without is a lot more challenging.

With forwarding pointers not. Which is only a problem with an FFI, which needs a traditional mark & sweep for its external callbacks anyway.

Re: Redis 4.0

#178

Earlier quoted context omitted.

Do you understand the phrase "technical correctness" or is that open to interpretation as well?

In this case, the "technical correctness" of your argument is up for debate.

You're debating the concept of words themselves. Which have meaning. It's the mechanism through which words work. They have both a meaning in context and out of context. They have meaning both intended and unintended. Good technical documentation should strive to minimize unintended interpretations by using the most clear and concise words possible.

Re: Redis 4.0

#179

Earlier quoted context omitted.

>What is easier having to have this conversation EVERY time the term gets used for the rest of eternity, or making the change once and being done with it? That's not very compelling. Just because certain people make a lot of noise doesn't mean we have to do what they want us to do. >For most projects it seems like a pretty easy change. You could add new keywords, alias the old methods/commands to them. You don't even…

Thank you. This argument is absurd. I'm fucking tired of social justice warriors trying to take over everything with their God damn oppression Olympics.

I'm a technical justice warrior thank you very much. I don't appreciate your tone, you snowflake.

Re: Redis 4.0

#180

Earlier quoted context omitted.

I think the m/s terminology is not technically correct. The actual behavior of a "slave" would better be described as a "follower" or a "replica". In an IRL master/slave dynamic the master does not first do the work only to be copied by a slave. The slave does all the work while the master whips them. It's better to choose a more technically correct metaphor/terminology.

You chose the wrong definition of slave to make your argument... https://en.wikipedia.org/wiki/Master/slave_(technology) In the computing world, this is what master/slave means. And has for 40 years. It doesn't matter what the words can also mean, just like it doesn't matter that the word whip can mean a kind of desert, or to stir. You need a dictionary.

"Slave" has a meaning in the non-computing world as well and the two concepts diverge. Which is my point. Why is the term "variable" good, it's because it can change, it's variable it describes the concept well. When programming specialty lingo does not diverge from non specialty lingo it makes the concepts easier to reason about and work grok.

The old term is confusing to newcomers, and changing it to something else would not break the brains of any tech oldtimers.

Post reply on HN