pifs

πfs - the data-free filesystem!

  • Owner: philipl/pifs
  • Platform:
  • License:: GNU General Public License v3.0
  • Category::
  • Topic:
  • Like:
    0
      Compare:

Github stars Tracking Chart

πfs: Never worry about data again!

πfs is a revolutionary new file system that, instead of wasting space storing
your data on your hard drive, stores your data in π! You'll never run out of
space again - π holds every file that could possibly exist! They said 100%
compression was impossible? You're looking at it!

πfs is dead simple to build:

Firstly, you must install autoconf, automake, libfuse packages in your system.
For example, if you have Debian try:

sudo apt-get install autotools-dev
sudo apt-get install automake
sudo apt-get install libfuse-dev
./autogen.sh
./configure
make
make install

πfs is dead simple to use:

πfs -o mdd=<metadata directory> <mountpoint>

where the metadata directory is where πfs should store its metadata (such
as filenames or the locations of your files in π) and mountpoint is your
usual filesystem mountpoint.

What does π have to do with my data?

π (or pi) is one of the most important constants in mathematics and has a
variety of interesting properties (which you can read about at wikipedia)

One of the properties that π is conjectured to have is that it is normal,
which is to say that its digits are all distributed evenly, with the
implication that it is a disjunctive sequence, meaning that all possible
finite sequences of digits will be present somewhere in it. If we consider
π in base 16 (hexadecimal) , it is trivial to see that if this conjecture
is true, then all possible finite files must exist within π. The first
record of this observation dates back to 2001.

From here, it is a small leap to see that if π contains all possible files,
why are we wasting exabytes of space storing those files, when we could just
look them up in π!

Every file that could possibly exist?

That's right! Every file you've ever created, or anyone else has created or
will create! Copyright infringement? It's just a few digits of π! They were
always there!

But how do I look up my data in π?

As long as you know the index into π of your file and its length, its a
simple task to extract the file using the Bailey–Borwein–Plouffe formula
Similarly, you can use the formula to initially find the index of your file

Now, we all know that it can take a while to find a long sequence of digits
in π, so for practical reasons, we should break the files up into smaller
chunks that can be more readily found.

In this implementation, to maximise performance, we consider each individual byte
of the file separately, and look it up in π.

So I've looked up my bytes in π, but how do I remember where they are?

Well, you'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 π? Why
don't we store our file locations there!?! Even better, the location of our files in
π is metadata and as we all know
metadata is becoming more and more important in everything we do. Doesn'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!

Yeah, but what happens if lose my file locations?

No problem, the locations are just metadata! Your files are still there, sitting
in π - they're never going away, are they?

Why is this thing so slow? It took me five minutes to store a 400 line text file!

Well, this is just an initial prototype, and don't worry, there's always Moore's law!

Where do we go from here?

There's lots of potential for the future!

  • Variable run length search and lookup!
  • Arithmetic Coding!
  • Parallelizable lookup!
  • Cloud based π lookup!
  • πfs for Hadoop!

Main metrics

Overview
Name With Ownerphilipl/pifs
Primary LanguageC
Program languageShell (Language Count: 4)
Platform
License:GNU General Public License v3.0
所有者活动
Created At2012-04-01 02:56:52
Pushed At2019-12-31 10:43:46
Last Commit At2016-09-22 22:10:50
Release Count0
用户参与
Stargazers Count6.8k
Watchers Count193
Fork Count293
Commits Count21
Has Issues Enabled
Issues Count66
Issue Open Count50
Pull Requests Count2
Pull Requests Open Count6
Pull Requests Close Count2
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private