Live data from Hacker News

Why I can't have conversations using Twitter

antirez.com

141–150 of 161 posts

Re: Why I can't have conversations using Twitter

#141
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 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

Amusingly this has now happened in another thread in these comments.

The meaning of a post has been overshadowed by a conversation on how the author used word A when they really should have used word B, and then they were berated for trying to explain why they thought word A was acceptable in the context.

Re: Why I can't have conversations using Twitter

#142
post #132

Earlier quoted context omitted.

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, yo…

I don't think you're understanding redis or this problem correctly.

Redis lets you have slaves which mirror the master. Hundreds of thousands of redis installations use this pattern to provide read scaling and offline master-loss persistence, and in the normal case, this works great. I myself have implemented systems with hundreds of redis instances which have gracefully survived the loss of the primary.

In this particular instance, the user turned off persistence, didn't understand the ramifications, and then brought the master back up with an empty database after a hard kill without thinking things through.

Fortunately, the user was savvy enough to have kept backups off the slaves, as is the usual pattern, and so was able to continue service.

This is not a normal pattern and goes against the general practice.

Does that help?

Re: Why I can't have conversations using Twitter

#143
post #63
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…

> 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. Hmmm. I'm not sure how to respond to the suggestion that people who can't fully express their thoughts in around 300 characters are thinking too far ... or the subtly implied pejorative of 'too-far-thinking'. Aside: I note you used 1386…

Wow, you really, really nitpicked OPs argument and completely ignored things to make your point. The comment was "you're either using the wrong medium or thinking too far". Assuming the false dichotomy here (notably, of a quick comment on HN...), maybe, just maybe, it's not that people who can't fully express their thoughts in around 300 characters are thinking too far, maybe it's the other part -- that they're using the wrong medium?

The only portion of OPs comment I can find to "describe the benefits of terseness" would be the last paragraph. If I shorten that paragraph to the last two sentences, it fits in a tweet.

Re: Why I can't have conversations using Twitter

#144
post #53
post #10

When I want to write something over multiple tweets, I use a simple syntax to make it clear that each individual tweet is meant to be read in context with the others: I simply suffix all tweets except the last one with ">" and prefix all tweets except the first one with " Additionally, I make sure each tweet is a reply to its predecessor. Here's an example: https://twitter.com/epaga/status/510316379833393152

It's not often I write long, connected replies, but I prefer the (1/4) method after writing the whole thing out in notepad or something.

Agreed; this seems like the most explicit way to do it. Of course it means you have to actually take the time to form the whole argument before firing the first tweet out there, but that's almost certainly a good thing.

Re: Why I can't have conversations using Twitter

#145
Re: the original convo, they're stuck on the fact that arithmetic mean isn't terribly valid on a skewed distribution (and response/completion distributions are generally positive-skewed because of the firm/hard lower bound on task completion).

However, I do get what you're trying to do re: identify whether the problem is related to outliers. But in general, comparing to median has a lot more validity. Median isn't as sensitive to skew, and will be closer to the peak. For your purposes it probably wouldn't be a lot different but you wouldn't have pushed the "it's wrong" button.

All said, though, even comparing 50th (median) to 99th is pretty coarse. I'd probably be looking somewhere closer to 75th percentile for a comparison. Basically, you'd want to guess what percent might reasonably be affected by performance spikes and compare from there.

Re: Why I can't have conversations using Twitter

#146

Earlier quoted context omitted.

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, yo…

I don't think you're understanding redis or this problem correctly. Redis lets you have slaves which mirror the master. Hundreds of thousands of redis installations use this pattern to provide read scaling and offline master-loss persistence, and in the normal case, this works great. I myself have implemented systems with hundreds of redis instances which have gracefully survived the loss of the primary. In this part…

I understand what you're saying, but I don't think it's a sufficient reason to throw away data. I've seen hundreds of cases where a GlusterFS user went against our advice and did something that ended up making things worse. Sometimes they even lost data. Of course, they always blame us. I'm pretty sure people who have worked on every single data-storage system ever have had similar experiences. Sometimes the user is just wrong and it's their own fault. Sometimes they're right because we made it far easier for them to make things worse than to make things better. In those cases we have to stop making excuses like "user error" or "RTFM" or "against general practice" or whatever. We need to help the user by not handing them bags of explosives. Which do you think is a better choice here?

* Default to preserving already-replicated data, provide "clean start" as an option.

* Default to throwing away data, maybe-someday implement an option to use data that's already present in the system.

Blaming the user won't prevent another user from making the same mistake with the same result. Saner defaults, and an implementation to support them, will. Who's going to complain that you saved too much of their data?

Re: Why I can't have conversations using Twitter

#147

Earlier quoted context omitted.

I don't think you're understanding redis or this problem correctly. Redis lets you have slaves which mirror the master. Hundreds of thousands of redis installations use this pattern to provide read scaling and offline master-loss persistence, and in the normal case, this works great. I myself have implemented systems with hundreds of redis instances which have gracefully survived the loss of the primary. In this part…

I understand what you're saying, but I don't think it's a sufficient reason to throw away data. I've seen hundreds of cases where a GlusterFS user went against our advice and did something that ended up making things worse. Sometimes they even lost data. Of course, they always blame us. I'm pretty sure people who have worked on every single data-storage system ever have had similar experiences. Sometimes the user is…

The defaults are sane, and in fact the user here had to explicitly turn them off in order to do the thing they wanted to do. Once you reach into a configuration file and change a setting, I can't think of a software system in the world that protects you from your choice. Could you maybe name a few?

Re: Why I can't have conversations using Twitter

#148

Earlier quoted context omitted.

I understand what you're saying, but I don't think it's a sufficient reason to throw away data. I've seen hundreds of cases where a GlusterFS user went against our advice and did something that ended up making things worse. Sometimes they even lost data. Of course, they always blame us. I'm pretty sure people who have worked on every single data-storage system ever have had similar experiences. Sometimes the user is…

The defaults are sane, and in fact the user here had to explicitly turn them off in order to do the thing they wanted to do. Once you reach into a configuration file and change a setting, I can't think of a software system in the world that protects you from your choice. Could you maybe name a few?

The user turned off persistence. There's no reason for a normal person to suppose that also means ignoring data that's in the system when the master comes up. The fact that the two are inextricably tied to one another in the Redis implementation is not the user's mistake.

Re: Why I can't have conversations using Twitter

#149

Earlier quoted context omitted.

The defaults are sane, and in fact the user here had to explicitly turn them off in order to do the thing they wanted to do. Once you reach into a configuration file and change a setting, I can't think of a software system in the world that protects you from your choice. Could you maybe name a few?

The user turned off persistence. There's no reason for a normal person to suppose that also means ignoring data that's in the system when the master comes up. The fact that the two are inextricably tied to one another in the Redis implementation is not the user's mistake.

What do you think a slave should do if it is told to replace its state with empty state? How about half-empty state? There's really no answer that's satisfying for every possible use case (certainly I don't want my slaves to refuse if I tell them to clear the database completely on purpose). And indeed you haven't given any examples of databases that try to do 'better'. I think that's because there aren't any.

Re: Why I can't have conversations using Twitter

#150

Earlier quoted context omitted.

If everything you do is CRUD, sure. Often there are non-CRUD, more advanced queries that need to be run. These, and other issues, are normally what gets you. For instance, pgsql will error if you attempt to write 5 chars to a 2 chat field, mysql will silently truncate.

Which is why I never use MySQL ;) I'm trying for the life of me to think of queries I could make that are non-CRUD. Maybe I am just stuck in my current tools to think flexibly about it.

Using CTEs, including writable CTEs is not something I'd want to do in an ORM. Also, whenever I find myself having to have more than a few expression fields, I find ORMS clunky.

Trying to load more than one record from a a single row is supported in some, but not all ORMs as well.

Aggregate queries, especially more advanced ones than just min, max, sum, avg, stddev, &c, are not always supported by ORMs either, or you need to use expressions or extend parts of the ORM. It's just a mess sometimes and I'd rather query and then load.

Post reply on HN