
Why I can't have conversations using Twitter - Spiritus
http://antirez.com/news/82
======
chton
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 respond to a tweet with a link to a medium that
does support your model better.

If you do get roped into a conversation where you need more tweets to explain,
here's a few simple guidelines:

\- Don't split sentences over tweets. People will only read one part.

\- If you really must, use "(cont.)" on both tweets (end of the first and
start of the second), so it's obvious there was another part. I know that
reduces your character limit, but it's worth it to be less ambiguous

\- Make each continued tweet a reply to its predecessor. You can reply to your
own tweets. It facilitates following the conversation on most clients.

\- If it's more than 2 tweets, consider using twitlonger. In general, that
should be a last resort, though.

Without trying to make it sound high-handed, there's something of an art to
smooth twitter conversations. Terseness is the key. I find them rewarding
because, when done right, they have an enormous density of information in a
short time.

~~~
Jedd
> 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 characters to describe the benefits of terseness.

~~~
chton
No pejorative was meant at all. My point about 'thinking too far' was about
the singular thought you're trying to express. It's easy to want to say too
much, 'walking the chain too far' if you will. Twitter is a far more iterative
medium than most, and expressing a complicated thought isn't a case of writing
it out in whole. Usually, you will develop the thought together with the other
party. Conversations are closer to a form of collective thinking than a long-
form debate. Thought patterns are more on display.

Aside: this conversation would have taken a very different form if we had had
it on twitter. The medium defines the form. So I don't mind being verbose here
:)

~~~
Jedd
Thank you for your thoughtful response.

The idea of iteration through (a) thought I think has been explained to me
before, but I must have suppressed it. I can see why it's necessary _within
the context and medium of twitter_ ... however I'm unconvinced (duh :) that
it's a useful constraint to apply to a communication medium. I don't expect
I'm unique in voicing this opinion.

The idea of developing a thought with another party, or as you also describe
it, 'collective thinking', is genuinely anathema to me. I'm happy to have a
discussion that involves me _adjusting_ my thinking, and, of course, a
discussion that results in the other party(/ies) adjusting their thinking.
Actually, I expect that essence of conciliation and compromise is what you're
describing. However, the idea of avoiding 'long term debate' really does
unnerve me.

Perhaps I've been debating for too many years with people that I really
wouldn't want to share a collective thought with.

~~~
chton
I would agree that iteration through thought is not necessarily a useful
constraint on a medium by itself. In the case of twitter, however, it is
merely a product of the 140-character limit for each message. If, during a
stand-up debate, your opponent was allowed to interject after every sentence,
you would get much the same. That sounds incredibly annoying and counter-
productive at first, but the form of the debate would adapt over time.

The advantage of developing a thought in tandem with somebody is that the
compromise happens more naturally. You rarely need to 'concede' a point or
prove somebody wrong, since you can influence the way the point is made in the
first place, pointing out flaws in their reasoning or facts as they happen.
Conversely, the other can do that for your reasoning. The result is that,
rather than adjust your thinking in a few big steps, you adjust it in minor
ways with every sentence. It takes time and practice to get used to this, but
it can be very productive and enlightening.

On the other hand, I would never avoid long-form debate either. Both have
advantages and disadvantages, just as both have mediums where they work and
mediums where they don't. Twitter isn't conducive to classical debate, just as
hackernews isn't conducive to the iterative thought development style.

~~~
Vendan
Hrm, what you are suggesting sounds like some kind of conversation back and
forth between 2 people. Like a chat system or something. Issue is, you are
talking in an environment where everyone can interject, and everyone has a
strongly felt opinion. Just look at any news show "interview" between 2 sides
of an argument. They tend to devolve into shouting matches of who can drown
out the other side without getting smacked down by the host.

~~~
chton
It is much like a conversation in a chat system, but the etiquette on twitter
means your conversation partner usually won't wait for you to finish a string
of messages.

It's true that it's easy for people to interject and annoy, and it happens
more and more the bigger your celebrity status. However, unlike the interview
example, it's also easy to ignore them. Twitter's reply helped a lot for that.
Replying to anybody is optional, you don't even have to read their tweets if
you don't want to. It's not perfect by any means, I don't think any platform
will ever be. But it isn't bad.

------
veidr
Yep. Incidentally this is the exact same reason why I can't have conversations
by shouting out the window of my car as I speed past people on the street.

~~~
fla
This a very good (and fun) analogy !

~~~
shangxiao
And hilarious - try imagining @antirez explaining average vs 99th percentile
to someone on the street as he drives by while keeping a straight face ;)

------
staz
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 one" etc... Which drown any constructed argument
and render any constructed debate impossible.

~~~
bhaak
I agree that this is not a problem that only affects Twitter.

Most of the current discussion platforms are way behind what was standard in
Usenet or in your average Usenet client.

No threaded discussions, no filtering (not for the one who comments and
doesn't want to read those +1 post and most often also not for the OP), not
even blocking of people you don't want to read.

~~~
ams6110
Oh I don't know, I remember plenty of people on usenet who would quote a
fragment--deliberately eliminating relevant context--to create a straw man
that they could tear into. Some people just like to argue, and the only way to
deal with them in an unmoderated forum is to ignore them. Kill files were
useful for persistent offenders.

~~~
bhaak
Of course this did also happen on usenet. Call me old but a good flamewar
beats a good shitstorm any time (and the names might even be an indicator
why).

But one design element of twitter might make it easier to stumble into the
realm of people who will wildly disagree with a poster's opinion.

Just replying to some tweet you can not know what kind of domain you are
entering. With usenet groups the name has always been a strong indicator what
people you will encounter.

If you post "Ruby sucks and is dead slow, Perl rulez!!1eleven" into
comp.lang.ruby, you shouldn't be surprised if you get flamed. With twitter
accounts, this is not that obvious.

Of course, this is a core design element of twitter that it is concerned with
accounts and not thematical groups and both have their advantages and
disadvantages but I think this is one of the reason that you can much more
easily and unintentionally anger the wrong people on twitter.

------
_yosefk
The average thing I publish on the Internet is thousands of words long. There
was never a shortage of people taking some of those words out of their
context, and arguing against what those words supposedly say. And I'm likely
to have done it myself to someone else's writing. Certainly I pay attention to
some things more than others when I read, especially if I come with some prior
knowledge and opinions. I can easily fail to notice important things when
scanning something quickly.

And the longer it is, the more likely I am to be scanning quickly, actually.
On the other hand, shorter messages and less context result in things simply
being omitted, even if you do read carefully.

Maybe Twitter is worse than average, but it's pretty bad with any medium.

~~~
personZ
_There was never a shortage of people taking some of those words out of their
context, and arguing against what those words supposedly say._

Long ago I learned that if you want to have "viral" success, even on a more
informed site like HN, avoid making more than one statement or claim in a
piece.

 _" Modern Java application servers offer surprisingly high performance"_
(followed by details of performance improvements, etc), for instance, is okay:
everyone who agrees will forward and agree and post, while those who might not
agree or care will remain ambivalent and disengaged.

Change that up slightly, though, and conversationally add _"...which might
allow you to deploy on fewer servers than a similar solution built in Ruby"_
and you'll instantly gain armies of very motivated detractors who will go
forth to denounce everything you've ever said, declare everything you've
written stupid and misinformed, etc. Not based on objective disagreements, but
based on a knee-jerk opposition that, much as with politics, can't be on a
point or issue (e.g. "agree to disagree"), but has to encompass everything.

People who might agree or yield value skip the piece after seeing endless
criticisms and complaints.

The crux being that it's very hard to gain agreement, easy to gain enemies. If
you state ten things, people who disagree with but one of them will often fall
in the latter camp.

Not that this changes how I personally write -- where I'll load pieces with
things that people can disagree with -- but I see it constantly as stories
tread the bottom of the front page, the detractors who find that one tiny
thing they disagree with and blow it up to be all-encompassing, and it gets
flagged to oblivion.

------
brazzy
This is why I could never figure out why anyone could possibly want to do
anything with Twitter...

I keep hearing how it's great to keep up to date with whatever you're
interested in - but I just can't see it.

~~~
vog
I believe that small blogs and RSS/ATOM are a good answer here. I can't and
don't want to follow high-volume streams, be it Twitter or "news" blogs.
However, if you combine 20 interesting but low-volume blogs in your feed
reader, you will always know when something interesting happened, without
having to check all those sites by hand.

(Of course I also have high-volume sites in my feed reader, but that's more
for "news" / skimming though, not for keeping in touch.)

~~~
phaer
But what's Twitters advantage over good ol' RSS or ATOM for this use case?

~~~
qznc
Non-techies understand it.

~~~
phaer
There were plenty of "non-techies" who used Google Reader before it shut down.
And at least in my circles there are plenty of non-techies who say that they
don't get the concept of twitter.

EDIT: Both, Twitter and RSS, have their own terms and concepts which need some
kind of introduction for most, especially non-tech people. For Twitter its
hashtag, TL, DM, etc for RSS its stuff like Feed, Reader, etc

------
kyro
Twitter is terrible for meaningful conversation and debate. And I say that as
an avid user.

Networking, sharing links, tidbits of insight, short messages, and Q&As all
work really well. I've learned quite a bit from the curated articles and
reports tweeted by those I follow. And if you follow the right people and
engage appropriately, Twitter can open up a lot of opportunities. But anything
beyond that is a waste of time, and can border damaging.

In fact, for all the good Twitter has facilitated (protests, revolutions,
etc), I think it's having some negative impact. It is by far the most popular
platform where individuals of all backgrounds, beliefs, and opinions
congregate and interact, but it's built in a way where it is absolutely not
conducive to meaningful debate, and so when the huge opinionated masses clash,
the bite-sized arguments volleyed by either side are taken without context and
nuance, further igniting and polarizing people. I'm seeing this happen with
issues like feminism and Islam, where someone will tweet a very distilled
version of a larger and more thorough opinion, it will be taken at face-value,
someone will retweet it with a snarky comment, it snowballs into a food fight
with enraged people retweeting/replying, and the original tweeter trying to
add context but not being able to keep up with the reactionary domino effect.
And because Twitter has almost become the official sounding board for many
people, their tweets and reactions to those tweets contribute to their public
image, reputation, and online presence, all damaged by death threats,
accusations of sexism, bigotry, racism, etc, often thrown around unwarranted
by people taking things out of context and who feel antagonized or polarized
because of the way Twitter is structured.

And that's why I avoid tweeting about religion, politics, and databases.

------
felixgallo
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.

~~~
tsantero
hi, ex-basho here. disappointed by antirez's continued, harmful anti-
intellectualism. just curious, what exactly is a non-CA database? kthxbai

------
davidw
BTW, this also brings to mind another thing I've come to believe over the
years:

> "You have clearly not understood how the math works or why tail latencies
> matter in dist sys. I think we're done here."

If, when you write something, it sounds like it's coming straight out of The
Simpsons' "Comic Book Guy", you should probably rethink it unless you really
mean to be a bit of a jerk.

------
dilap
Small elements of Twitter's design really exacerbate this problem.

In a strictly time-ordered tweet view, you'd see one or another of antirez's
tweets, be be curious, and go back into his & other respondents timelines to
see the full conversation, w/ whatever context was originally there.

But how Twitter works right now is you get what appears to be a full
conversation neatly tied together, but it's actually been selectively edited
by an algorithm maximizing (I'm educated guessing) engagement, which ends up
basically being an automated filter to create misunderstandings and
controversy.

------
Confusion
The more visible you are, the higher your standing, the likelier it is that
people try to catch you in a mistake to improve their own visibility and
standing. They are not aware that this is the motivation for their behavior.

------
ianstallings
The older I get the more I ignore. I'm not missing out on anything by not
following twitter and it's really just a distraction from my goals. I sink way
more time into HN than other social media, and I don't spend that much time
here. My goal is to be completely off in my own world a decade from now,
focusing strictly on what is important to me.

Now if I can just kick my HN habit..

------
lhnz
This is unfortunately a case of Twitter biasing technical discussions to
highly literate, careful people.

Good tweeting requires almost Orwellian control over writing.

It needs to be extremely terse and explicit.

You need to be the kind of person that will write a tweet, read it and if it
could be misunderstood in any way delete it, before rewriting it several
times.

You need to do this until you are able to fit each inalienable component fact
into 140 characters.

This kind of writer is often careful to form only one idea per tweet,
considers using mathematical notation if it requires less characters, and will
finally consider placing a [...] on the end of sentences which leave their
argument hanging. Though when you have to do a lot of these things, it's often
because you have not fully analysed the concept to a point where you
understand it well enough to say simply.

------
epaga
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](https://twitter.com/epaga/status/510316379833393152)

~~~
eksith
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.

~~~
tempestn
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.

------
geoelectric
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.

------
raverbashing
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

~~~
davidw
I can't speak to Redis, because I don't use it, and mostly see it as being
fairly distinct from Postgres, but with Mysql it's always frustrating to know
that you could be using a tool that's generally better, but can't, because
initially someone chose Mysql because they "heard it was fast" or "that's what
the hosting company provided", and now they're stuck with it.

~~~
Beltiras
You are not wedded to an SQL vendor. You actually _can_ migrate your data, as
long as your code is farily vendor-agnostic. I write Django apps and use the
ORM for everything. That frees my customers from any sort of raw sql specific
to one DB server.

~~~
jimktrains2
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.

~~~
Beltiras
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.

~~~
zaphar
I presided of over a Migration from DB2 to Oracle. All of the operations were
CRUD.

However the DB2 database had materialized views that were crucial to the
business.

Porting those over was non-trivial. Oracle returned a different value for null
fields than DB2 (empty strings for null strings vs actual null in one case)
did so various portions of the code would fail seemingly randomly.

Some of the constraints didn't map quite as cleanly as the others.

And we haven't even started on the performance tuning and how your schema
affects them.

Sure you may be able to port all or most of your schema and queries over to
another database but you'll have a _lot_ of work to do after that verifying
that nothing is broken and your performance is still acceptable.

SQL is not even close to a guarantee of portability.

~~~
pit
Word. I'm working on a SQL Server -> DB2 migration, which I expect to finish
sometime in the next decade.

------
ayrx
Like any high volume channels, you have to ruthlessly curate your Twitter
feed. Be picky about who you follow and block the trolls. Twitter is a pretty
useful source of information after that. I usually see hints of upcoming
vulnerabilities before the details get publicly released. That's pretty
useful.

------
rdtsc
I don't use Twitter. Never signed up, never read it, unless someone I know
posts a link to some insightful 140 character piece of text, which is rare.

It might be a good news headline spreading medium but not for conversations.

------
eksith
When trying to get through what appears to be a brick wall of myopia, the
liberal use of the block feature is more productive.

Seriously, I don't even try to have arguments anymore. A sane and relatively
productive one is nearly impossible with some people. I don't know if it's the
brevity of speech or the even shorter attention span, but the Online
Disinhibition Effect seems to be an order of magnitude greater when it comes
to certain topics.

------
throwawayaway
twitter is less RSS for humans and more IRC for casual users, with no
moderation.

------
marban
Just as ridiculous as companies offering support via Twitter; and its
customers expecting structured answers from it.

------
pdonis
How about this: "This issue is too complex for a tweet: <link to article/blog
post>"

------
hardwaresofton
Isn't that essentially the entire internet?

I absolutely think that you should only use twitter to post links to blog
posts and mailing lists emails. That way, people who really care will read,
others will not, and they likely won't comment without reading.

Complex thoughts don't often fit in a tweet.

------
Mc_Big_G
My 16 yr. old daughter explained to me two days ago why Twitter conversations
are broken, how to fix them and that maybe we should design products together
since we can do it better than Twitter or that maybe she should send them her
idea.

My response was, if you want to develop products together, let's do that.
Second, Twitter probably has 50 product people who have all sat around and
discussed her solution in detail and come to the conclusion that, for some
reason we won't understand but that is probably better for Twitter, they
shouldn't implement it. Most likely it has something to do with more views.

Then I welcomed her to the shitty reality that once a company gets the market
share, they stop caring about a better experience for users and more about the
bottom line OR maybe they're just stupid. After all, Twitter didn't have a
single backup for something like the first year or two of existence.

~~~
streblo
Don't just leave us hanging. What's the problem and how would she fix it?

------
nickpresta
Original source is down. Cache:
[http://webcache.googleusercontent.com/search?q=cache:http://...](http://webcache.googleusercontent.com/search?q=cache:http://antirez.com/news/82&strip=1)

------
yetanotherHNacc
If you can't have a conversation on Twitter you may be doing something wrong.
Thanks to the peers on the network we've found all sorts of interesting
things.

Things like the location of rockets associated with sarin attacks in Syria[0]
placed squarely on Mezzeh military airbase in Damascus. The rockets at the
time were thought to be Iranian Falaq but more evidence showed them to be part
of their own distinct program.

The discussion did not stay entirely on Twitter but was the main venue for it.
Without being able to rope millions of random peers you may not know you will
converse with later into one IRC channel, Twitter works for wide broadcast
fast paced discussion.

Blocking people helps sure, but I think many people's problem seems to be a
perceived lack of interesting peers.

[0] [http://wikimapia.org/29357078/Falaq-2-Launch-
Site](http://wikimapia.org/29357078/Falaq-2-Launch-Site)

~~~
jameskilton
Sure sounds like you're blaming antirez for people on Twitter taking his tweet
out of context and running with it. It's also completely unfair to say
"Twitter was awesome in this very explicit situation so you obviously did
something wrong in your situation".

~~~
yetanotherHNacc
No, that is on the people who did that. If anything I would blame antirez for
getting flustered enough about this non-Twitter specific problem to write a
blog post.

~~~
WhitneyLand
He is not to blame at all. He made a good faith effort to communicate which
did not work and openly reasoned about the challenges of a relatively new
platform that many people are still trying to make the best use of. I'm glad
he posted.

------
resca79
I think the context has important role in technological issues and it needs to
be explained. Twitter is very useful when you need some quick answer, with no
premises. While a tweet with a post link is enough, one tweet is just buzz

------
jpswade
You can't expect Twitter to work like email when it works like text messaging.

------
jegoodwin3
If only he'd called it 'the 1%' instead of the 99th percentile, he could have
founded the 'Occupy EC2 movement'. #lostopportunity

------
tmaly
it would be great if there was a resurgence in the usenet

------
hpaavola
TWTR is no good for conversations because there is no way to explain something
new or controversial in 140 chars. Yes, this fits in a tweet

~~~
phaer
I am quite skeptical about twitter myself but I never understood this
argument: What stops you from explaining your new or controversial argument in
(n * 140) chars, or multiple tweets?

~~~
ColinWright
The fact that people won't take time to piece together the separate parts, and
will take each out of context. This is the whole point of the original
submission.

------
burn
You should try out a service called Jot. It has a twitter feel, but is built
around conversations.

------
adamconroy
Correct. And because I can't have conversations on twitter I find it very
tedious.

------
moron4hire
Isn't this why twitter supports links in tweets?

------
lotsofmangos
I think part of the problem is that Twitter is optimised for machine
processing, more than it is for human conversation.

~~~
golemotron
I think it was a beautiful "what if." What happens when we limit a message to
140 chars? The character of conversation changes - so do people's use
patterns. The most wonderful thing about twitter is that you can't get lost
down the rabbit hole of a three paragraph email. And there's pressure to reply
quickly to stay part of the conversation.

It's a genius example of design thinking.

~~~
lotsofmangos
What happens when you set a message limit of 140 characters is you end up with
a database that is perfect for training computers about semantics.

It is a genius example of design thinking, I'll grant you, but twitter's
priority as a business was to build a database for analysis and that was the
design constraint which resulted in a 140 character limit to messages.

It is a communication platform, but only in as much as it fulfills its main
purpose of generating datasets.

~~~
kalleboo
> twitter's priority as a business was to build a database for analysis and
> that was the design constraint which resulted in a 140 character limit to
> messages

This is the first time I hear about this. Do you have any source or did you
make it up yourself?

Twitter's original function was group SMS messaging among friends, the 140
char limit was the 160 character SMS limit + an 18 character username.

------
baldfat
Twitter = Information.

Google+ = Conversations

------
icedchai
the problem is twitter isn't _for_ conversations.

------
jlouis
May I recommend using percentiles over the average? Reporting the 50th, 75th,
90th, 95th and 99th percentile is much better at describing the situation.
Even better is to report a histogram or a kernel density plot of the the
observed values.

Averages tend to be a notoriously bad indicator on their own because they
don't describe anything about the distribution. This is _obviously_ not a
normal distribution, and even if it was, you need to report some kind of
variance measurement as well. Otherwise it is hard to say anything about the
shape of the distribution, let alone make tests for statistical significance.

------
notacoward
Maybe if antirez doesn't want to read others simplistic responses on Twitter,
he shouldn't make simplistic statements on Twitter. It's clearly a medium that
doesn't convey nuance very well. There was a great deal of misinterpretation
and talking past one another _on all sides_ including his.

This was actually a continuation of a conversation that has been going on for
several days, starting with an issue even more serious than 99th percentile
latency - data loss due to a broken replica-repair strategy. Some very clueful
people have pointed antirez at useful literature on the topic, and made
specific suggestions to avoid the problem, only to be met with silence or
excuses for why throwing away data was actually OK. Is it any wonder that
they're frustrated with him, and ready to interpret an ambiguous statement
like "the 99% percentile is bad" in a more negative way than he intended? For
him to cherry-pick one exchange and present only one side only continues _his
own_ pattern of making constructive conversation almost impossible.

It's not a Twitter problem. It's a people problem.

~~~
antirez
Did you read the post? "the 99% percentile is bad" is something I never wrote,
it was part of a larger sentence where it was obvious it meant if the 99th
percentile figure is too big.

About pointing to relevant papers: things like pointing to timestamped
replication paper, which is a CP system for replicated state machines, in
response to the fact that Redis does not support slaves when the master disk
persistence is turned off, is actually just another instance of why it is not
possible to have decent tech conversations on Twitter.

The problem experienced at Stripe is a result of Redis replication documented
behavior, regardless of using Sentinel or not. Redis replication is a very
simple system where replicas will try to exactly mimic the master, and if the
link breaks, will try to connect with it again and again forever. There is no
builtin HA, nor failover or alike.

So before considering failover (and yet IMHO pointing to timestamped
replication is not very informative even in this context, since in distributed
systems the details matter, and you can't just give a random reference to a
completely different system which happens to have just superficially similar
issues to fix), there were _different_ useful observations to do.

Like: Hey @antirez, what about supporting master-slaves setups where the
master can be configured without persistence at all, and yet when it reboots,
it will not be considered viable for reconnections? Which is the fundamental
problem: stopping the basic Redis replication behavior from working as it
works, with slaves that always want to replicate the current master, which is
not ok if we want a system supporing the master restarted without persistence
(which wipes the dataset on restart).

However the whole problem with that is that there are a lot of people like you
that will regard linking to a paper as a great way to help, and as a very
smart thing, while there are other that are instead trying to work to really
make stuff better. Before commenting you should make the effort to understand
exactly the problem domain and its subtleness: exact details or what you say
is not relevant in a discussion which is all about details.

~~~
notacoward
See my response to seiji. Exact mimicry might be a defined behavior, but where
is it mandated who should mimic whom? Where had you said, before this, that
the node with no data _must_ be the one whose (empty) view should prevail?

As for your false dichotomy between reading the literature and getting stuff
done, or your "make the effort to understand" ad hominem - go to hell. I've
been doing this longer than you, I've been doing it better than you, and I've
been writing about it as well. _You_ make the effort to understand the problem
before you shoot yourself in the foot yet again.

~~~
antirez
"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 modified, being Redis used with HA or
not.

Now if you want to put Sentinel in the mix, the problem with this setup is not
that the returning master gets promoted with a broken data set, but that if
the restart is fast enough, the failure detection of Sentinel is not triggered
at all, so the configuration remains the same. Just what is still, and was
previous of the reboot, the current master of the system, restarted with a
wiped data set.

In distributed systems this is the process not acting as specified, since
Redis processes must reload their dataset on restart, otherwise they break
everything, per design.

Now if it is a good idea to change this design: in the future yes, but so far
we had not diskless replication, so for the replica to synchronize to write on
disk was, anyway, needed, so why turn off persistence, and why to support it
if the disk is needed anyway?

See? Arguments instead of random blabling and we can construct a reality or a
model we both agree about. Then we can debate about what we think is right or
not.

~~~
notacoward
"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.
Can you point to any, or is this really a "new style" idea?

"we can construct a reality or a model we both agree about."

I will concede that the behavior _might_ be compliant with how the system was
specified. I'm not 100% convinced yet, but at least - now - you've made a
credible case for that.

"Then we can debate about what we think is right or not."

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.

~~~
seiji
_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. :)

~~~
notacoward
"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.

