The recent launch of Mountain Lion, updates to iCloud and continued proliferation of iOS devices is giving everyone a view of what a file system-less world will look like (and it looks pretty darn good to us at Caringo). Of particular interest is what Steve Jobs had to say all the way back in 2005 and how, with all of the recent software and hardware launches, Apple is rapidly removing traditional file system conventions from their product line. Why? It can be summarized in two words – simplicity and portability. The subject was discussed a bit further in Fortune Mag’s blog – Steve Jobs: “Why is the file system the face of the OS?”. Job’s exact words were:
in every user interface study we’ve ever done […], [we found] it’s pretty easy to learn how to use these things ’til you hit the file system and then the learning curve goes vertical. So you ask yourself, why is the file system the face of the OS? Wouldn’t it be better if there was a better way to find stuff?
What Job’s was really highlighting is the way files are stored and addressed. In a traditional file system you store files on a device, then a volume (C:, D:…), then in a directory or bunch directories, then with a name and file type.
File systems = complexity
What goes on behind the scenes (in a corporate filer) is even more complex with each file being split into thousands of blocks each addressed with an inode and then stored in different places on a disk. It is all this complexity that ultimately leads to what Jobs described as “learning curve going vertically”. Users need to remember where the files are, the name of the file, to back up the file and in a corporate world, it gets even more complicated. But the real issue is that file systems have limitations and in today’s “cloudy” world they lock files into a single physical location making data portability extremely difficult.
File system don’t = portability
The way that file systems address content also locks it into a particular location making it very difficult to manage content portability across devices and platforms. Think about the opposite action of retrieving a file through a file system. You need to know the entire path (\servevolumedirectory..filename.ext). Again what goes on behind the scenes is even more complex. Every inode is looked up, the blocks that represent a file are all found on the disc and stitched back together and the file is delivered. Now think about this for thousands, millions or billions of files on different devices all trying to be synchronized. It is just way too complex to do it in a practical fashion.
So… what is Apple doing?
What Apple is doing is leveraging a key/value method of storage and addressing which is the same in most object storage solutions. What this does is assign a unique value on content which is stored with meta data that can be presented to give more information on what is in the content and how it should be managed. They can then store everything in one big pool of storage and access that piece of content with only that one key/value. So the application doesn’t need to know the exact location at all times and doesn’t need to stich everything together. This also dramatically improves storage management and access. Instead of trying to manage a long directory path and thousands of inode addresses, applications only need to manage a single value and metadata which can all be synched to the same repository (like iCloud).
User-friendly storage (for end users and admins)
We leverage these principals in the Object Storage Platform and like Apple, think storage should be simplified to the extent that IT administrators don’t think about it and are free to focus on what is core to their business. So we agree with Job’s comments and want to extend it a bit to ‘why is the file system the face of the OS, and why is it the face of storage’. There is an easier and better way to store content that you are most likely already benefiting from today and it is easier than you think to setup and use throughout your organization.