Time for a bit of futurism. I would like to propose a technology, and I will call it Memory Sand, you heard it here first!
This is an idea I had quite a while ago, and maybe you or other people have had the same idea or are working on it already, but in the event it’s at least a moderately original concept, I figured I’d throw it out there.
Computer memory is getting smaller and smaller (or in the case of your typical stick of RAM, we’re packing more and more capacity into the same size device). SD cards and the like in particular are mostly plastic cases and giant metal contacts wrapped around a tiny chip.
Similarly, data storage has come a long way, we have fancy things like Peer-to-peer protocols, and distributed redundant data storage formats.
Let’s say you took the wrapper off the memory chip and just had the chip, and you let that chip talk to other chips it was in contact with around it, and you have some peer-to-peer software running on each chip, talking to all of the chips around it, and power distribution going on between them all (or provided by the container). The chips aren’t so much chips any more as they are grains. Then you pour a few million of them into a jar that provides the power and external interface to whatever computer system is using the memory. Voila, a jar of memory sand.
Need more storage capacity? Pour in more sand.
Some of your memory sand failing? Pour in more sand.
Need to copy the data? Pour half of it out into another jar, and re-fill both jars with blank sand, the redundancy software in the chips will re-replicate the data out into what is hopefully a complete set in both, assuming you have a high degree of redundancy and error correction to begin with (which of course you do).
Working The Kinks Out
So that’s my great idea. Now somebody just has to work out a few minor details, like how do you power all of the grains, and how do you make sure all of the grains have a good chance of having a communications link to their surrounding grains, and then you’re set.