Squashed 'components/rfs/' content from commit 9808a5e
git-subtree-dir: components/rfs git-subtree-split: 9808a5e9fc768edc7d8b1dfa5b91b3f018dff0cb
This commit is contained in:
46
rfs/schema/schema.sql
Normal file
46
rfs/schema/schema.sql
Normal file
@@ -0,0 +1,46 @@
|
||||
-- inode table and main entrypoint of the schema
|
||||
CREATE TABLE IF NOT EXISTS inode (
|
||||
ino INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
parent INTEGER,
|
||||
name VARCHAR(255),
|
||||
size INTEGER,
|
||||
uid INTEGER,
|
||||
gid INTEGER,
|
||||
mode INTEGER,
|
||||
rdev INTEGER,
|
||||
ctime INTEGER,
|
||||
mtime INTEGER
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS parents ON inode (parent);
|
||||
CREATE INDEX IF NOT EXISTS names ON inode (name);
|
||||
|
||||
-- extra data for each inode for special types (say link targets)
|
||||
CREATE TABLE IF NOT EXISTS extra (
|
||||
ino INTEGER PRIMARY KEY,
|
||||
data VARCHAR(4096)
|
||||
);
|
||||
|
||||
-- blocks per file, order of insertion is important
|
||||
CREATE TABLE IF NOT EXISTS block (
|
||||
ino INTEGER,
|
||||
id VARCHAR(32),
|
||||
key VARCHAR(32)
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS block_ino ON block (ino);
|
||||
|
||||
-- global flist tags, this can include values like `version`, `description`, `block-size`, etc..
|
||||
-- it can also hold extra user-defined tags for extensions
|
||||
CREATE TABLE IF NOT EXISTS tag (
|
||||
key VARCHAR(10) PRIMARY KEY,
|
||||
value VARCHAR(255)
|
||||
);
|
||||
|
||||
-- routing table define ranges where blobs can be found. This allows "sharding" by be able to retrieve
|
||||
-- blobs from different partitions using the prefix range (hashes that are )
|
||||
CREATE TABLE IF NOT EXISTS route (
|
||||
start integer, -- one byte hash prefix
|
||||
end integer, -- one byte hash prefix
|
||||
url VARCHAR(2048)
|
||||
);
|
||||
Reference in New Issue
Block a user