The anonymity of the good, and the good of anonymity.

There’s a current trend in culture and politics. Or perhaps it’s not current, I merely haven’t noticed it before. Who knows?

Anyway, for reference, consider Luke 18:9-14:

To some who were confident of their own righteousness and looked down on everyone else, Jesus told this parable:10“Two men went up to the temple to pray, one a Pharisee and the other a tax collector. The Pharisee stood by himself and prayed: ‘God, I thank you that I am not like other people—robbers, evildoers, adulterers—or even like this tax collector. I fast twice a week and give a tenth of all I get.’

“But the tax collector stood at a distance. He would not even look up to heaven, but beat his breast and said, ‘God, have mercy on me, a sinner.’

“I tell you that this man, rather than the other, went home justified before God. For all those who exalt themselves will be humbled, and those who humble themselves will be exalted.”

I’m not here to talk about what kind of social or political activity is good or evil. I have my thoughts on charities, civil rights, civil liberties, separation of church and state and all of those things, but that’s not what I’m here to talk about. I’m here to talk about most of the people talking about them.

In the parable above, you can see the core idea is that, no matter how righteous you are, no matter how good you are, you shouldn’t be constantly rubbing it in others’ faces. You know how we all hate those “holier than thou” people? That extends beyond simple religious code, but to general public behavior.

Let’s say, for the sake of argument, that activity X is a good, moral thing. And let’s say you engage in activity X. Great! Good on you! And feel free to tell your friends, if it’s relevant. But don’t tell your friends if the reason you’re telling them is because you to feel good about yourself; what you’re doing is saying “I’m good for doing X, and if you don’t do X, well, you’re not so good.”

Worse, if someone doesn’t say they’re doing X, even though a bunch of people around them claim to be, that person starts to stand out. It’s not that they’re not doing X, it’s that they’re not telling anyone they’re doing X, regardless of whether or not they are.

What you wind up with are a bunch of people pressured to claim (and possibly lie) that they’re doing X, even when they’re not. And you wind up with people who are good, moral people doing X who, since they’re not saying they’re doing X, are assumed to not be doing X, and so are treated as though they’re less moral.

Frankly, that’s a tragedy; it forces the revelation of activity one might wish to be quiet about, for social or political reasons. Just because something is Good doesn’t make it socially or politically acceptable, and just because something is socially or politically acceptable doesn’t make it Good.

Write-behind, Read-ahead and Gluster

So, over on the gluster-user list, I just enjoyed giving an explanation of write-behind vs read-ahead, as it applies to a filesystem serving up VM images.

Having write-behind enabled is like juggling your data with with a partner. Having write-behind disabled is like you and your partner handing data to each other, rather than tossing it. Having read-ahead disabled is like asking your partner for a page of data, and having him give you that page of data. Having read-ahead enabled is like asking your partner for a page of data, and having him give you a fifty page report, because he thinks you may need the extra information–except you already made allowances yourself in asking for that full page of data; the only data you *knew* you needed was a single table in that page.

As another example of why you wouldn’t normally need read-ahead enabled in gluster, I could easily write a small books’ worth of theory into an email detailing the concept further, but I’ve already given sufficient information to illustrate the relevant concepts; anything further would be unnecessary detail I’m only guessing you might need. 😉

The read-ahead setting is about performance, not about data integrity. Virtual machines will be running an operating system. That operating system will be running block-device drivers and filesystem drivers. Both of those types of drivers have their own tunable concepts of read-ahead, so any further read-ahead at the gluster layer is unnecessary.

(Obviously, the remote filesystem in question was Gluster, but the same would apply with any filesystem. Discussion of risk management, flash-backed write caches and various bits of infrastructure redundancy can wait for other posts.)