You see it a lot on the internet that flash memory fails, but after doing a good deal of research I just don't think it's true on a practical level. Maybe it might have been true in the 2000s but now..?
Every flash cell has a listed write limit between 1000-10,000 writes before the insulation layer builds up too many stray electrons embedded within itself to allow for the correct electron tunneling behavior flash memory relies on. I say listed write limit because it tends to be the case that the real limit is about an order of magnitude larger whenever people try to do these flash endurance tests.
Writing 100,000 times to a single block isn't that much, and so flash devices have wear algorithms that try to spread around the writes. Wear algorithms fit into either dynamic or static; the former shifts around blocks in unused space - possibly from a pool of unused blocks specifically for the purpose, the latter shifts around all blocks and manages the data on used blocks accordingly. Someone actually did an academic study on flash drive endurance 7 years ago during which time they couldn't wear out a static wear algorithm drive in the allotted study time. Link is here: https://www.usenix.org/event/fast10/tec ... oboila.pdf
7 years is a long time in tech. It's enough time for manufacturing processes to go over a generation or more, for previously high end machines to be sold off at discount, for reverse engineering to happen, and for the low end of tech to move up. I'm not sure if the controllers in use for low end brand name flash drives like PNY perform a static wear algorithm, but I highly suspect this is the case based on the technical marketing materials they have for their drives. I've also looked up some of the more common USB controllers found in other cheap drives like those used by Emtec. Their datasheets do say they have static wear capability.
So from this information at least the idea is that USB drives have a theoretical 1000x write capability if you are being extremely conservative. For example, an 8GB drive might have a 8TB write limit. If you were more optimistic and used the 100,000 write limit reported by some people you'd get a fairly high 800TB write limit assuming unattainably perfect wear leveling. We can probably assume SD card controllers have also progressed similarly.
Then why do we hear reports of failing SD cards? And why do USB drives fail sometimes?
I am of the opinion that these failures aren't actually due to the flash most of the time, but rather due to the controller. I've had multiple flash drives fail on me so far, and it seems almost every single one of these was due to some sort of controller problem. Though hardware trickles down the supplier totem pole by quality, software doesn't necessarily do so. A buggy controller that can't properly wear will easily prematurely wear out cells.
Not just on the flash device side, but there could also be some bugs on the kernel side. The Linux kernel and its drivers aren't perfect. The Raspbian kernel for sure isn't perfect, in fact just recently there were a couple of USB bugs fixed.
What does this mean practically? Personally, I think it means flash wearout just isn't something an average user should worry about. For example, I've been using a $4 PNY 8GB Attache USB drive for my root directory for about 2 years now. I've been logging all of the writing out of curiosity using a systemd service and a script that relies on iostat. My total usage at this point is 335.905GB. That means that it would take me 20x as much time to reach 6.7TB - well under the theoretical low 1000 write ideal static wear leveling limit of 8TB. That's 40 years
! Plenty of time for a critical controller bug to show up or a critical component such as the timing crystal to break.
In this sense, it just makes most sense to try to minimize chance of controller bugs being in the controller firmware by going with a vendor with a great reputation. I'd recommend the Sandisk Extreme USB 3.0 USB drive, which has been found to have an actual SSD controller inside of it. This USB drive has really good reviews, and by using a USB 3.0 drive you can max out the USB 2.0 connection and get pretty good performance.