diff options
Diffstat (limited to 'content/software/pgfuse.md')
-rw-r--r-- | content/software/pgfuse.md | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/content/software/pgfuse.md b/content/software/pgfuse.md new file mode 100644 index 0000000..3b848bd --- /dev/null +++ b/content/software/pgfuse.md @@ -0,0 +1,66 @@ ++++ +title = "PgFuse" +description = "FUSE filesystem for PostgreSQL" ++++ + +## Purpose + +Store files and their metadata completely in a PostgreSQL database. +Expose a standard file system with the help of the FUSE API. + +## Requirements + +- PostgreSQL 8.4 or newer +- FUSE 2.6 or newer + +## History + +Yes, I know what happens if you store files in a database (in respect to +drop of efficiency and incremental backups for instance). :-) + +Nevertheless, there are special situations, where a filesystem in a database +is useful. With FUSE this is also rather simple to write. + +The reason I wrote one was a project with lots of data on a ReiserFS (at +least in 2001, this was), which was more or less immutable and should be +efficiently stored away (almost in an archive mode). Backup is no issue +here (as the files are more or less static after an initial load), +but space efficiency is an issue. + +Most other projects try to map an existing database structure somehow as +files. This here should strictly deal withs files/dirs as the only +available model. + +## Other projects + +### Pgfs: + +Stores a filesystem in Postgres, exposes it as a NFS server, rather old +and I was unable to find the sources. + +### mysqlfs + +The blueprint I used and got inspired from. Does exactly the same for +the MySQL database. + + Also the block splitting algorithm I used more or less from this project. + +### libsqlfs + +The same for storing files in a Sqlite database. + +### curlftpfs + +Blueprint for some debugging code. + +## References + +- http://www.postgresql.org/docs/ +- http://fuse.sourceforge.net/ + +A Git repository is accessible at +**git://git.andreasbaumann.cc/pgfuse.git** +(or at http://git.andreasbaumann.cc/cgit/pgfuse/) + +In case of questions, if you want to supply a patch or if you +want to collaborate on the project contact me via email. |