eMMC longevity and servicing

We have some balenaFins and were wondering if the balena team has any thoughts on ensuring longevity of the eMMC flash storage.
What is the estimated lifetime of a balenaFin from the point of view of the flash storage? What happens if the flash memory wears out? Is the only option replacing the fin board?
Are there any recommended steps from the point of view of software on the device to extend the lifetime of a fin as much as possible? Does the application layer need to care about minimising wear of the flash storage, or is it handled by the OS or hardware controllers?
The obvious suggestion is not to write to disk information that can be kept in memory. Apart from that, are there any other best practices?

Hi, our Fin team is looking into getting you a thorough answer, they’ll follow up shortly! Thanks!

1 Like

Hi Maciej,

The lifetime of the balenaFin eMMC memory very much depends on your particular application, more specifically, how frequently you write/erase and what is the size of those writes. I’ll try to outline some data about our eMMC memory and general guides to improve lifetime, any extra information you can share about your use case will help us provide more accurate information.

We use an industrial grade eMMC memory (data sheet here) with up to 3000 program/erase cycles. The memory management firmware running on the eMMC has built-in wear leveling so it shouldn’t be necessary to implement wear level algorithms on the application level.
There are some things to keep in mind to increase the lifespan of the eMMC though. For example, when writing to memory, use chunks of data with a size as close as possible to a memory erase block (4M in this case). Also, using a larger eMMC than what’s absolutely needed, allows some more space to the wear leveling algorithms to distribute the load across more memory blocks.

In case the eMMC memory on the balenaFin eventually wears out, the only way forward would be to replace the balenaFin.

Cheers,
Nico

1 Like