doc/evfuse_db.txt
author Tero Marttila <terom@fixme.fi>
Tue, 18 Nov 2008 01:55:13 +0200
changeset 41 6abda2fa4579
parent 38 1fd4da071575
permissions -rw-r--r--
touch up the Makefile, define err_t as unsigned int in error.h, and add some preliminary interrupt support, although it will always deadlock due to a bug in libfuse

Just a simple pure-data filesystem stored in a SQL database. Implementation using PostgreSQL.
No weird dynamic magic.


file_tree:
    offset              serial4                     ephemeral counter used to tell one file entry from another
    ino                 int4 -> inodes.ino          the file inode
    ino_dir             int4 -> inodes.ino          the file's inode if it's a dir, NULL otherwise
    name                varchar(256)                the filename
    parent              int4 -> file_tree.ino_dir   file entry's parent dir
    
    unique(ino_dir)
    unique(name, parent)

inodes:
    ino                 serial4                 inode number
    type                char(3)
            REG                         normal file
            DIR                         directory
            LNK                         symlink
    mode                int2                    file access modes 
    data                oid                     type=REG -> file data, else NULL
    link_path           varchar(512)            type=LNK -> symlink target, else NULL