Live data from Hacker News

Why I can't have conversations using Twitter

antirez.com

131–140 of 161 posts

Re: Why I can't have conversations using Twitter

#131

Earlier quoted context omitted.

"but where is it mandated who should mimic whom" In Redis if you don't use any HA system like Sentinel, the map is fixed, it is an old-style replication system where there is the master IP address written in the configuration file. Since the system is not supposed to lose the data on restarts, this is fine, but as soon as you want to support a different mode of operation with persistence-less masters, this must be mo…

"it is an old-style replication system where there is the master IP address written in the configuration file." "Old style" doesn't explain it. Even if the original master has unconditional priority when it returns, that does not preclude it gathering whatever data might still exist from the others. I've been working on replication systems since '92, and I can't recall seeing any that would make such a poor choice. C…

does not preclude it gathering whatever data might still exist from the others.

It absolutely does preclude that because it's not how the system works. You've described a multi-master system while comparing it against a replication-only system. Apples and racecars.

leaving them out is unjustifiable.

Feel free to submit a pull request fixing any and all deficiencies you've found. :)

Re: Why I can't have conversations using Twitter

#132
post #128

Earlier quoted context omitted.

you're kind of missing the problem here - who should be the master? The choice of master is a static configuration set by the user. Redis itself has no failover or promotion ability. There's an additional thing called Sentinel that can failover and promote individual Redis instances, but it is designed to recover complete instance failures (without immediately restarting), so a quick restart means no failover happens…

"People are making it sound like this issue has been ignored for years." Hasn't it been? How does leaving that latent in the system for years make things better? I rather think it reflects on an inability to reason about failure modes (including user failure modes), and deal with them proactively instead of after data was lost.

Arguing about developers not being omnipotent isn't very stable.

The users intentionally configured their options and the system responded exactly as it should have, given what it was asked to do.

Re: Why I can't have conversations using Twitter

#133

Earlier quoted context omitted.

"but where is it mandated who should mimic whom" In Redis if you don't use any HA system like Sentinel, the map is fixed, it is an old-style replication system where there is the master IP address written in the configuration file. Since the system is not supposed to lose the data on restarts, this is fine, but as soon as you want to support a different mode of operation with persistence-less masters, this must be mo…

"it is an old-style replication system where there is the master IP address written in the configuration file." "Old style" doesn't explain it. Even if the original master has unconditional priority when it returns, that does not preclude it gathering whatever data might still exist from the others. I've been working on replication systems since '92, and I can't recall seeing any that would make such a poor choice. C…

> Not. The data-preserving mechanisms (e.g. view/epoch IDs) are so easy to implement in this case that leaving them out is unjustifiable. You even seem to be coming around to that view yourself when you say "in the future yes" but apparently you can't bring yourself to admit that it was always the right choice.

It's up to you to form your opinion, but here are the facts:

1) Before diskless replication: even a master with persistence turned down, had to persist on disk, in order to support slaves.

2) Because of "1", it looked like futile to support this model of operations.

3) "1" is no longer true, I merged the diskless replication stuff just this morning.

Still I don't think you can form a fully informed idea unless you consider this: if you have persistence turned on in a setup which uses replication, like in most deployments using replication, you absolutely want the old behavior of Redis, of slaves reconnecting and replicating again on master restarts.

So when I say, in the future this could change, it is just as an opt-in option in order to support this new use case, not to say, the old behavior was crazy.

Re: Why I can't have conversations using Twitter

#134
post #131

Earlier quoted context omitted.

"it is an old-style replication system where there is the master IP address written in the configuration file." "Old style" doesn't explain it. Even if the original master has unconditional priority when it returns, that does not preclude it gathering whatever data might still exist from the others. I've been working on replication systems since '92, and I can't recall seeing any that would make such a poor choice. C…

does not preclude it gathering whatever data might still exist from the others. It absolutely does preclude that because it's not how the system works. You've described a multi-master system while comparing it against a replication-only system. Apples and racecars. leaving them out is unjustifiable. Feel free to submit a pull request fixing any and all deficiencies you've found. :)

"You've described a multi-master system"

No, I haven't, unless you'd say it was already a multi-master system because it allows non-masters to continue without the master being present. What I'm suggesting is just a master being smart enough to recover its own state from where it had been replicated before. How is that even controversial? In what possible use case is it preferable to discard readily available data without an explicit user request to do so?

"Feel free to submit a pull request fixing any and all deficiencies you've found."

Give me some reason to believe it won't be torpedoed by the next bad decision or failure of diligence that comes to light, and I might. Acknowledging that this needs to be fixed would help.

Re: Why I can't have conversations using Twitter

#135
post #132

Earlier quoted context omitted.

"People are making it sound like this issue has been ignored for years." Hasn't it been? How does leaving that latent in the system for years make things better? I rather think it reflects on an inability to reason about failure modes (including user failure modes), and deal with them proactively instead of after data was lost.

Arguing about developers not being omnipotent isn't very stable. The users intentionally configured their options and the system responded exactly as it should have, given what it was asked to do.

This isn't about about omniscience (not omnipotence BTW). This is about a far lower standard of basic diligence, expected and met by most people who work on data-storage systems. If you're given some data to store, and there's an obvious way to retain/recover that data despite and intervening failure, then failing to do that is a betrayal of the most basic trust people put in data-storage systems. Congratulations, you've implemented the distributed-system equivalent of linking fsck to mkfs. Well done. Go pat yourself on the back for conforming to your specification.

Re: Why I can't have conversations using Twitter

#136
post #103

What is it with Postgres fans that "have to" prove they're better? I don't want to use Postgres. I want to use Redis. Postgres IS NOT the solution for a lot of things. Yeah, feel free to call me stupid for not knowing every nook and cranny of PGSQL. I don't care "I love to argue, but this is just a futile exercise." Very wise words

> Postgres IS NOT the solution for a lot of things Well, for a lot more than Redis.

This is a perfect example of the problem the guy you're responding to is talking about.

You are correct, but nobody chooses databases by count-of-good-use-cases. You choose databases by applicability against the use cases you have in front of you and are likely to have in front of you.

Re: Why I can't have conversations using Twitter

#137
The distributed systems community as represented on twitter is pretty shameful; discussions of any non-CA database tend to devolve into intentional misreading and jokey sarcastic pile-on bullying, with Basho folk leading the charge.

Personally I get that they've lived through some pretty gruesome use cases and wars, but jesus, glass houses and stones, guys.

Re: Why I can't have conversations using Twitter

#138

What is it with Postgres fans that "have to" prove they're better? I don't want to use Postgres. I want to use Redis. Postgres IS NOT the solution for a lot of things. Yeah, feel free to call me stupid for not knowing every nook and cranny of PGSQL. I don't care "I love to argue, but this is just a futile exercise." Very wise words

I've actually been following the "Twitter drama" around antirez, redis and everyone else - and it has little to do with "Postgres being better" and every complaining with Distrubuted Redis (Redis Sentinel/Cluster?) being terrible.

AFAIK, the arguing with Antirez with Redis has been going on for weeks now (and it hasn't been necessarily been unfounded). The exact issue the Stripe guys had, had to do with a replicated Redis setup.

Re: Why I can't have conversations using Twitter

#139
post #21

I don't think this is due to the limit of 140 characters (even if it doesn't help) but much more due to the audience of fanboys and crow cheered during a fight. There is the same problem on Google+ where there is not 140 characters limit. Any discussions with Linus or any other "celebrity" in it and the comments thread will be full of : "+1", "M. Linus you are so smart, you are my hero", "Well said, ripe him a new on…

It's really unfortunate though there there are people who can't resist the urge to shame others and enlighten the world with their sharp & intelligent wit, such as the person who wrote: "You have clearly not understood how the math works or why tail latencies matter in dist sys. I think we're done here." Was the bluntness really necessary?

It's less 'blunt' than presumptive, wrong, and a dishonest, childish way to argue.

Re: Why I can't have conversations using Twitter

#140
post #6

There are conversations that work on twitter, and ones that don't. In general, twitter conversations are quick back-and-forth affairs. If you need more than 2 tweets to express your thought, you're either using the wrong medium or thinking too far. If that conversation model doesn't fit you, that's perfectly fine, but that's not the fault of twitter. It's just a bad match-up. In that case, it's perfectly fine to resp…

What happened with antirez, though, is that he did express himself fully in one tweet, but it was misread by some people.
Post reply on HN