While I am aware that performing writes on a USB flash drive degrades the life expectancy of the device. I have heard the quantity of writes is anywhere from 100 thousand to 10 million, but I have not heard about number of read operations. Does reading from the device count toward this total?

I am interested in writing only once to a flash drive and setting it to read-only. Then reading files from the device a thousand or more times per day, but am wondering if (at say 1,000 reads per day), the flash drive will need to be replaced within 100 days (assuming a 100,000 r/w cycle lifetime)?

  • Yes it does count, afaik. The number does not indicate atomic read writes, but the cycle in which every block has been written to and read once. – manasij7479 Jun 1 '12 at 4:32

There is, for practical purposes, no read limit. There really isn't a write limit either, it's an erase limit. (And, if you've previously written to a block, you need to erase it to write new data to it.)

| improve this answer | |
  • So, as long as you only write the one time to the drive, there will not be an issue reading (and only reading) virtually non-stop from the device for a year or more? – John Jun 1 '12 at 4:43
  • For decades even. – David Schwartz Jun 1 '12 at 5:14

It isn't so simple to answer. When you write a file, new blocks are being written. The used blocks are marked as "dirty". So, if you wrote a 10KB file on a 1MB device, it is likely that the 10 KB file will be written all across the blocks in the 1MB device. Only when there are no more "clean" blocks, the flash controller will likely then erase "dirty" blocks.

Your flash drive will last significantly longer than 100,000 writes of the 10K file on a 1MB device.

| improve this answer | |
  • Hmm... would this make defragmenting harmful for a flash drive? – thegrinner Sep 12 '12 at 15:31
  • 1
    @thegrinner yes – Thomas Dignan Oct 11 '12 at 15:00

Gaging the life of a flash drive (SSD or USB) is not as simple as stating a number or Mean time between failure (MTBF). As the issue with failure is not liner.

Hard Drives (Magnetic media) experience failures related to the (1)controller circuit board (2)the read write heads of the drive (3) Bearing Fatigue, but rarely the media its self.

Random Access Memory Drives, often called flash drives, expire because blocks of memory can only be erased/written X many times before the block will completely fail. Engineers of "flash ram" drives improve this loss by "Leveling" the use of blocks. Basically they spread the eventual loss across all of the blocks available, reducing the over use on any one block.

Here is an article on what researchers testing various flash-ram drive assemblies discovered. And as I stated earlier ... It depends on some key data and manufacturing approach.

The final word, just have an end date in mind for either your Magnetic Media drive or your RAM drive, as both are eventually going to fail. Conduct more frequent backups as the days, months, and years start to pile up.


| improve this answer | |
  • If you read the question, the author will write just once and wants to know what the read limit would be. That's totally different from the write limit. But the good news is that your article is from 2010 and tested just the technology used in thumb drives and memory cards. SSD's, which you mention, use more sophisticated controllers (and probably better quality memory), and their life is even better. The bad news is that I need to re-learn everything I knew about what makes space ships go. Apparently, FTL, in relation to drives, doesn't mean "faster than light". – fixer1234 Oct 3 '15 at 17:41

David Schwartz's answer covers all "practical purposes". This answer will focus on the "impractical purposes". There is a theoretical exception to the rule of unlimited reads, but it has a simple solution.

There is a lifetime limit on writing to flash memory, but reading also affects it. One of its weaknesses is what is called "read disturb errors" 1 Reading flash memory slightly degrades surrounding stored values, which can eventually lead to errors.

The errors are avoided by the controller keeping track of the number of reads, and copying blocks before the degradation becomes a problem. Simply copying the block to somewhere else and then erasing the original block resets everything, and the original block can be used again. Source

The rule of thumb for MLC is 100,000 reads; for SLC it's 1,000,000 reads 2 (Multi-Level Cell, or MLC, and Single-Level Cell, or SLC, are two type of flash memory). So under "normal" usage, these thresholds might not even be a problem that the controller needs to handle.

Which brings us to the impractical scenario. Suppose you were using flash memory for a purpose like in this question (write once and then read massively over a long time). As long as there is at least one free block, the controller can play musical chairs with the data. However, if you were to fill every last block with data, you could eventually reach a point where the controller has no way to avoid read disturb errors.

In this far-fetched case, the controller would likely avoid corruption by freezing the card or flash drive, so there would be no cost-effective way to read it. At the usage levels described in this question, that could happen within a few months or years, depending on the type of flash memory.

Of course, that could be handled by just having a backup drive, given how cheap they are and the fact that you haven't written any new data. Or, you could ensure that you leave at least a small amount of free space.

Note: Both of the following sources are direct download links; a PDF file will download as soon as you click on it.
1 http://users.ece.cmu.edu/~omutlu/pub/flash-read-disturb-errors_dsn15.pdf
2 http://www.dslreports.com/r0/download/1507743~59e7b9dda2c0e0a0f7ff119a7611c641/flash_mem_summit_jcooke_inconvenient_truths_nand.pdf

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.