Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
database in user-space filesystem accessing a Postgresql database
C Makefile Groff
Branch: master
Failed to load latest commit information.
debian updated copyright and email address
redhat updated copyright and email address
tests updated copyright and email address
tools updated copyright and email address
AUTHORS updated copyright and email address
BENCHMARKS fixed small size_t issue, passes the bonnie test now
BUGS -
CONTRIBUTORS added CONTRIBUTORS file
COPYING added a license
DEVELOPERS improved statfs (symlink handling, handling of default PGDATA)
Dockerfile ..
FILELIST updated some docu
INSTALL added some OIDs to path code for the blocks free operation
Makefile 0.0.2 version
PACKAGERS -
README speeling typo
TODO improved statfs (symlink handling, handling of default PGDATA)
config.h updated copyright and email address
endian.h updated copyright and email address
inc.mak added mount option blocksize, can be set when creating the filsystem
pgfuse.1 added documentation of blocksize option in man page
pgfuse.c fixed pgfuse specific options in usage
pgsql.c updated copyright and email address
pgsql.h updated copyright and email address
pool.c updated copyright and email address
pool.h updated copyright and email address
schema.sql more realistic values for free disk blocks

README

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/
Something went wrong with that request. Please try again.