Live data from Hacker News

Data consistency is overrated

two-wrongs.com

1–10 of 72 posts

Re: Data consistency is overrated

#2
I needed to read this, but I'm not sure what to make of it yet.

The reason is I've been struggling with the idea that (bi-) temporal, consistent data is great, as it provides a ton of leverage both for users and for auditing and debugging. For some problems it's the cleanest, general solution.

What irks me that the code that validates, consumes, transforms and displays the data lives in its own time model (git).

Philosophically you're not really looking into the past. You're looking at an echo of the past that's displayed in a current form.

And more practically it's simply tough to draw the line between assuring that historical data is still handled and rendered correctly and getting rid of overhead and complexity of a growing and evolving application.

The article talks about eventual consistency, but I really don't have these kinds of problems and when I do, I fully agree with the author as long as it's very clear to the user whether something is consistent and when it will be.

Re: Data consistency is overrated

#3
Data consistency comes at a cost, but eschewing it does as well. Most of the time the performance impact of data consistency does not matter, potentially introducing heisenbugs in your system can come at a huge cost though.

Re: Data consistency is overrated

#4
Durability is also overrated.

Jokes aside, I’ve been responsible for a system that processed ~1 billion monetary transactions per day. Even with a fanatical focus on consistency and correctness it was still always off. With the philosophy promoted on the OP the chaos would have been complete… is my gut feeling at least.

Re: Data consistency is overrated

#5
I once worked on a platform producing analytics using data that, at its source, was manually typed in by people.

My product managers would insist we do distinct counts on the aggregates instead of using probabilistic algorithms, because we "needed" the absolute 100% accurate output. No matter how many times I would explain the data was never 100% accurate to begin with and that the error rate using HyperLogLog wouldn't make an ounce of difference, we never were allowed to do that. As a consequence the performance of the system when doing distinct counts on interactive queries was about 100x worse. This didn't seem to bother anyone. I never understood why.

Re: Data consistency is overrated

#7
I think there are two different kinds of consistency, and it's important to not conflate them.

There's consistency that's internal to a system. Do all of the foreign keys line up correctly? Have I lost any data that was provided to me? Here, we can aspire to be 100% correct. I don't think the examples in this article conflict with that.

Then there's consistency that's external to a system. This can be between this system and other systems, or between this system and reality. Did the operator enter the correct data for this item? Did the external system change and fail to tell me? Here there is no way to be 100% correct using only the tools that are inside the system. You need external audits, reality checks, periodic reconciliation.

Critically, all of the author's examples are about external consistency (accounting matching reality; inter-system communication), but their conclusion seems to be that because external consistency can't be fully achieved, we should be OK to abandon internal consistency within single systems. I think that's too strong a conclusion.

Re: Data consistency is overrated

#9
post #8

Data consistency is overrated if your business is ok with that. Many businessed are not ok with that. Example: airline, booking process.

Airlines are notorious for over-booking available seats and dealing with the fallout.

Which is done purposefully and not by data in-consistency at all.

Re: Data consistency is overrated

#10
post #7

I think there are two different kinds of consistency, and it's important to not conflate them. There's consistency that's internal to a system. Do all of the foreign keys line up correctly? Have I lost any data that was provided to me? Here, we can aspire to be 100% correct. I don't think the examples in this article conflict with that. Then there's consistency that's external to a system. This can be between this sy…

I think I agree with you. That said, internal and external are a touch inadequate.

Specifically, for a large enough system, internal consistency will look more like external from a smaller system's perspective.

To that end, it is all about costs. If the cost of keeping consistent is not above the budget, do so.

Post reply on HN