{"id":141,"date":"2012-03-31T19:12:02","date_gmt":"2012-04-01T03:12:02","guid":{"rendered":"http:\/\/intr.overt.org\/blog\/?p=141"},"modified":"2012-03-31T19:12:02","modified_gmt":"2012-04-01T03:12:02","slug":"%cf%80fs-the-filesystem-of-the-future","status":"publish","type":"post","link":"https:\/\/blog.intr.overt.org\/?p=141","title":{"rendered":"\u03c0fs: The Filesystem of the Future!"},"content":{"rendered":"<p>I&#8217;m very pleased to announce that after eight years of research and development, I can present the world&#8217;s most revolutionary filesystem: <a href=\"https:\/\/github.com\/philipl\/pifs\">\u03c0fs<\/a>!<\/p>\n<h2>What is \u03c0fs?<\/h2>\n<p>\u03c0fs is a revolutionary new file system that, instead of wasting space storing your data on your hard drive, stores your data in \u03c0! You&#8217;ll never run out of space again &#8211; \u03c0 holds every file that could possibly exist, so why put your files anywhere else?! They said 100% compression was impossible? You&#8217;re looking at it!<\/p>\n<h2>What does \u03c0 have to do with my data?<\/h2>\n<p>\u03c0 (or pi) is one of the most important constants in mathematics and has a variety of interesting properties (which you can read about at <a href=\"http:\/\/en.wikipedia.org\/wiki\/Pi\">wikipedia<\/a>)<\/p>\n<p>One of the properties that \u03c0 is conjectured to have is that it is <em>normal<\/em>, which is to say that its digits are all distributed evenly, with the implication that it is a <em>disjunctive sequence<\/em>, meaning that all possible finite sequences of digits will be present somewhere in it. If we consider \u03c0 in base 16 (hexadecimal) , it is trivial to see that if this conjecture is true, then all possible finite files must exist within \u03c0. The first record of this observation dates back to <a href=\"http:\/\/www.netfunny.com\/rhf\/jokes\/01\/Jun\/pi.html\">2001<\/a>.<\/p>\n<p>From here, it is a small leap to see that if \u03c0 contains all possible files, why are we wasting exabytes of space storing those files, when we could just look them up in \u03c0!<\/p>\n<h2>Every file that could possible exist?<\/h2>\n<p>That&#8217;s right! Every file you&#8217;ve ever created, or anyone else has created or will create! Copyright infringement? It&#8217;s just a few digits of \u03c0! They were always there!<\/p>\n<h2>But how do I look up my data in \u03c0?<\/h2>\n<p>As long as you know the index into \u03c0 of your file and its length, its a simple task to extract the file using the <a href=\"http:\/\/en.wikipedia.org\/wiki\/BBP-type_formula\">Bailey\u2013Borwein\u2013Plouffe formula<\/a> Similarly, you can use the formula to initially find the index of your file<\/p>\n<p>Now, we all know that it can take a while to find a long sequence of digits in \u03c0, so for practical reasons, we should break the files up into smaller chunks that can be more readily found.<\/p>\n<p>In this implementation, to maximise performance, we consider each individual byte of the file separately, and look it up in \u03c0.<\/p>\n<h2>So I&#8217;ve looked up my bytes in \u03c0, but how do I remember where they are?<\/h2>\n<p>Well, you&#8217;ve obviously got to write them down somewhere; you could use a piece of paper, but remember all that storage space we saved by moving our data into \u03c0? Why don&#8217;t we store our file locations there!?! Even better, the location of our files in \u03c0 is metadata and as <a href=\"http:\/\/araman-consulting.co.uk\/2012\/metadata-the-importance-of-being-found\/\">we all know<\/a> metadata is becoming more and more important in everything we do. Doesn&#8217;t it feel great to have generated so much metadata? Why waste time with old fashioned data when you can just deal with metadata, and lots of it!<\/p>\n<h2>Yeah, but what happens if lose my file locations?<\/h2>\n<p>No problem, the locations are just metadata! Your files are still there, sitting in \u03c0 &#8211; they&#8217;re never going away, are they?<\/p>\n<h2>Why is this thing so slow? It took me five minutes to store a 400 line text file!<\/h2>\n<p>Well, this is just an initial prototype, and don&#8217;t worry, there&#8217;s always Moore&#8217;s law!<\/p>\n<h2>Where do we go from here?<\/h2>\n<p>There&#8217;s lots of potential for the future!<\/p>\n<ul>\n<li>Variable run length search and lookup!<\/li>\n<li>Arithmetic Coding!<\/li>\n<li>Parallelizable lookup!<\/li>\n<li>Cloud based \u03c0 lookup!<\/li>\n<li>\u03c0fs for Hadoop!<\/li>\n<\/ul>\n<h1>\u03c0fs: <a href=\"https:\/\/github.com\/philipl\/pifs\">Download<\/a> it today!<\/h1>\n","protected":false},"excerpt":{"rendered":"<p>I&#8217;m very pleased to announce that after eight years of research and development, I can present the world&#8217;s most revolutionary filesystem: \u03c0fs! What is \u03c0fs? \u03c0fs is a revolutionary new file system that, instead of wasting space storing your data on your hard drive, stores your data in \u03c0! You&#8217;ll never run out of space [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"class_list":["post-141","post","type-post","status-publish","format-standard","hentry","category-rambling"],"_links":{"self":[{"href":"https:\/\/blog.intr.overt.org\/index.php?rest_route=\/wp\/v2\/posts\/141"}],"collection":[{"href":"https:\/\/blog.intr.overt.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.intr.overt.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.intr.overt.org\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.intr.overt.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=141"}],"version-history":[{"count":0,"href":"https:\/\/blog.intr.overt.org\/index.php?rest_route=\/wp\/v2\/posts\/141\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.intr.overt.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=141"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.intr.overt.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=141"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.intr.overt.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=141"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}