Discuss.
Why would I need ECC memory on a HTPC. So your question is broad.
ECC if you care about your data. How about that for a short answer.
On my security camera server I have ECC. On my laptop I don't (and can't).
It don't make me feel any different.
The price is a dollar amount. I don't think there is a performance penalty, if you pay enough. The highest available memory bandwidth probably is on high-dollar server machines, which all have EDD.Well, I imagine data integrity comes at a price... either a dollar amount, a performance metric, a risk, peace of mind, etc...
Depends. How much money do you lose every time the computer crashes and you have to wait a minute or ten for rebooting? How much money do you lose if memory errors (which do exist but are rare) silently corrupt your data? That heavily depends on the usage. For a laptop that's on my lap and used to browse the web and send e-mail, a crash means I get to get up and pour another glass of wine, and continue working a minute later. My laptop has nearly no data stored on it, so the risk of corruption is very low. On the other hand, for a server at a bank, which is needed to operate thousands of ATM machines, and where the data is the content of the customer's bank account, the answer is different.Even when needed, is it worth it? Is it worth the dollar amount?
ECC does not compete with fast hard drives. It competes with RAID and good storage systems (such as ZFS): both make your computer more reliable, and make loss of data or corruption of data less likely.In what scenarios should ECC be most considered, or weighted for? You say for your security camera, is that a good example or when ECC should be used? Wouldn't fast hard drives be better? idk...
ECC does not compete with fast hard drives. It competes with RAID and good storage systems (such as ZFS): both make your computer more reliable, and make loss of data or corruption of data less likely.
ECC for memory works pretty much the same way as RAID 5 does for disks. It's slightly different but the idea is the same. You can loose one memory chip and there will be enough redundancy in the rest of the chips to keep the data intact.I don't see how ECC compares with RAID or mirrors.
Believe me when I say you will never want to deal with it. It's a royal pain trying to recover from it and there's never a guarantee the data you recovered is not corrupted in some very subtle way (a few flipped bits here and there).I just never had to deal with corrupted data before, not that I know of, or noticed... I don't really know what it's like, or what I'm/we're talking about, by the same token...
ECC for memory works pretty much the same way as RAID 5 does for disks. It's slightly different but the idea is the same. You can loose one memory chip and there will be enough redundancy in the rest of the chips to keep the data intact.
Believe me when I say you will never want to deal with it. It's a royal pain trying to recover from it and there's never a guarantee the data you recovered is not corrupted in some very subtle way (a few flipped bits here and there).
Back in the olden days on the Amiga there was this virus called "Lamer Exterminator". It was a royal pain if you where infected. It was one of the first that was memory resident (it was still active after a reboot). If it was active it hid itself when you tried to read the boot sector. But the worst part of it was that it randomly filled tracks on disk with the "LAMER" text. One track at a time at random intervals. So at first you don't notice it's active. Then you get more and more weird disk errors. Until you realize half your disk was silently overwritten by this monster and there was no way to recover from it anymore.
Same with memory errors. They can silently corrupt files in memory before the data is written to disk. And it can take a while for you to notice those files are corrupt. Now imagine you diligently backup your data every day. Your backups will be corrupted too because you're backing up bad files. If this goes unnoticed long enough all your backups will be worthless too. And then you get hired to sort this mess out. Expensive, tedious, exercise which could have been avoided if they spent just a little bit more money initially.
Oh yea it is. My server board is Gigabyte MATX and Supermicro makes plenty of boards in the MicroATX form factor that take ECC.I don't think ECC in a micro-ATX form factor is even a thing.
And when I bought my server a few years ago, I was interested in very small physical size and low power consumption; I don't think ECC in a micro-ATX form factor is even a thing. If I could get ECC the next time I upgrade, I would probably do it.
ECC, definitely. I do care about my data.
It's pity it's not widely popular on desktop boards. Especially in 2017 when there's no problem overpaying for a smartphone.
Honestly, I wonder why Non-ECC is even a thing... I think all memory should be ECC...
It is still more expensive; you end up using a few percent more RAM (in the sense of gates and silicon area, perhaps not chips or DIMMs). That costs money. For large computer users (Google, Facebook, the US government, ...) that is a tradeoff; but those large users can make informed choices. Where I agree with you: consumer computers should all have ECC, because (a) the extra cost is minimal compared to the price elasticity of consumers, and (b) end users are not capable of making those informed choices.I completely agree. Personally I think it's also a historic thing - it was more expensive to produce these modules before.
It's not quite that bad. In large systems, file system data is written to disk pretty quickly, so at least the write path (application -> disk) is only vulnerable to memory errors for about 30s or less. The read path for cache hits is obviously still a problem. And some file systems (for example ZFS, but others too) protect the data with checksums, and the checksums are also kept in memory for the data in memory. Obviously, this is not perfect: during the calculation of the checksum the data is still unprotected, but in a well-designed system, the checksum is calculated first and checked last, to keep that window as small as possible. Some kernel software products even keep light-weight checksums of other long-lived data structures in memory, to protect them against bit rot. Again, this is not perfect (the cost of protecting every data structure would be too high, it would amount to implementing ECC in software), but it covers a very large fraction of the memory in use.But just a thought that most of FS operations goes through RAM and you have no way of knowing if "data in" == "data out" ...
In two-three years of time you can find single-bit errors on considerably large amount of RAM modules. Imagine you would use non-ECC RAM -- that's like playing Russian roulette with your data.
ECC does not compete with fast hard drives. It competes with RAID and good storage systems (such as ZFS): both make your computer more reliable, and make loss of data or corruption of data less likely.
I was in that situation and had to sort that mess out, to save at least part of valuable data.Believe me when I say you will never want to deal with it. It's a royal pain trying to recover from it and there's never a guarantee the data you recovered is not corrupted in some very subtle way (a few flipped bits here and there).
[...] And it can take a while for you to notice those files are corrupt. Now imagine you diligently backup your data every day. Your backups will be corrupted too because you're backing up bad files. If this goes unnoticed long enough all your backups will be worthless too.
Not really. Up to the mid-late 1980s there was a ninth socket (parity) for each byte row. When memory modules came up then, they first were commonly ECC also in consumer grade.I completely agree. Personally I think it's also a historic thing - it was more expensive to produce these modules before.
Not really. Up to the mid-late 1980s there was a ninth socket (parity) for each byte row. When memory modules came up then, they first were commonly ECC also in consumer grade.
But the cheapo mind slowly took over. Some 8088 PC clones already had a dip switch to deactivate parity checking, so people could save 1/9th of the memory cost.
More and more memory modules were sold with the 9th chip missing. In the late 1990s it was almost impossible to find consumer grade PCs that were still able to use ECC/parity protected memory.
And the data rot age began...
In that situation, an customer user can make the deliberate tradeoff that his machine will crash occasionally (very rarely, memory errors are actually not common), and generate wrong results (also very rarely). The wrong results will usually be caught by the toolchain (since usually they create corruption which is detected by the next processing stage), and crashes can be handled transparently by rerunning jobs on remaining machines.
...they draw the non-ECC from the ECC one...
It is worse than that. 30-pin SIMMs (the 9-chip ones) often came with "logic parity" (fake parity), where the SIMM computed the expected parity value based on the data that was in the 8 memory chips (which may not have been the data that the system actually thought it was storing). There was enough of this that a number of BIOS companies skipped the parity test on power-up and instead just zeroed all of memory (they needed to write a predictable pattern to all of memory on the off chance that there was real parity memory in there, in which case the system would get an NMI if it read from uninitialized memory that happened to have the wrong parity).... That's awful... For a single chip... All that for a single, miserable, chip... it's not like they don't have the design for it, either, or have to draw a special ECC card... they draw the non-ECC from the ECC one...