|Suleiman Souhlal||Jun 5, 2005 11:03 am|
|Suleiman Souhlal||Jun 5, 2005 8:07 pm|
|Maxim Sobolev||Jun 6, 2005 3:31 am|
|Suleiman Souhlal||Jun 6, 2005 4:03 am|
|Garance A Drosihn||Jun 6, 2005 4:17 am|
|Scott Long||Jun 6, 2005 4:54 am|
|Suleiman Souhlal||Jun 6, 2005 5:06 am|
|Garance A Drosihn||Jun 6, 2005 5:47 am|
|Suleiman Souhlal||Jun 6, 2005 6:27 am|
|Jim Rees||Jun 6, 2005 10:50 am|
|Bruce M Simpson||Jun 6, 2005 12:14 pm|
|Scott Long||Jun 6, 2005 1:47 pm|
|Dag-Erling Smørgrav||Jun 6, 2005 2:46 pm|
|Scott Long||Jun 6, 2005 2:56 pm|
|Dag-Erling Smørgrav||Jun 6, 2005 3:24 pm|
|Scott Long||Jun 6, 2005 3:50 pm|
|Dag-Erling Smørgrav||Jun 6, 2005 4:03 pm|
|Scott Long||Jun 6, 2005 4:12 pm|
|Brooks Davis||Jun 6, 2005 4:40 pm|
|Garance A Drosihn||Jun 6, 2005 6:11 pm|
|Don Lewis||Jun 6, 2005 8:37 pm|
|Garance A Drosihn||Jun 6, 2005 9:04 pm|
|Robert Watson||Jun 6, 2005 11:35 pm|
|Subject:||[PATCH] IFS: Inode FileSystem|
|From:||Brooks Davis (bro...@one-eyed-alien.net)|
|Date:||Jun 6, 2005 4:40:16 pm|
On Sun, Jun 05, 2005 at 02:03:10PM -0400, Suleiman Souhlal wrote:
IFS is basically FFS, minus the namespace. Files are referenced by their inode number, thus making file lookup very fast. This is very useful for things that keep the file names in their own database anyway, such as web or news caches.
Files are created by opening the "newfile" file:
fd = open("newfile", O_CREAT|O_RDWR, 0644); fstat(fd, &st); printf("new file is %d\n", (int)st.st_ino);
Once a file has been created it is possible to accessing by just opening it the file named after the inode number. For example:
fd = open("5", O_RDWR);
This filesystem was imported back in the year 2000, by Adrian Chadd (adrian@) and removed in 2002, before the introduction of UFS2 in order not to slow down the development of UFS2.
I have fixed it so that it is usable on -CURRENT. You can find the kernel bits at http://people.freebsd.org/~ssouhlal/testing/ ifs-20050605-2.diff and the userland bits at http:// people.freebsd.org/~ssouhlal/testing/ifs-20050605-userland-2.diff . (You need to copy src/sbin/fsck_ffs to src/sbin/fsck_ifs and src/sbin/ mount_ufs to src/sbin/mount_ifs, before applying the userland patch).
You can use the regular newfs(8) to create such a filesystem. You might also want to specify the -n option, so that the .snap directory is not created at newfs, since directories are useless, in IFS. If you don't you'll end up with a useless inode, which is not really a big deal. Once the filesystem is created, you can mount it with mount_ifs.
You can find additional comments in src/sys/ufs/ifs/README in the patch.
Is anyone interested in seeing this committed?
I would very much like to see this committed. The vast majority of high performance computing data management systems could strongly benefit from a system like IFS. If it's in the tree and usable in a shipping release, that gives us a powerful edge in convincing people to use FreeBSD as a backed for such a system.
-- Any statement of the form "X is the one, true Y" is FALSE. PGP fingerprint 655D 519C 26A7 82E7 2529 9BF0 5D8E 8BE9 F238 1AD4