login
Header Space

 
 

Re: The argument for fs assistance in handling archives (was: silent semantic changes with reiser4)

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
Cc: Horst von Brand <vonbrand@...>, Adrian Bunk <bunk@...>, Hans Reiser <reiser@...>, <viro@...>, Christoph Hellwig <hch@...>, <linux-fsdevel@...>, <linux-kernel@...>, Alexander Lyamin aka FLX <flx@...>, ReiserFS List <reiserfs-list@...>
Date: Wednesday, September 1, 2004 - 4:50 pm

On Wed, 1 Sep 2004, Jamie Lokier wrote:

I think that's a valid thing, but there are some fundamental problems with 
it if you expect it to work on a normal filesystem (ie something that 
isn't fundamentally designed as a database).

For example, _what_ kind of coherency do you think is acceptable? Quite
frankly, using standard UNIX interfaces, absolute coherency just isn't an
option, because it's just not possible to try to atomically update a view
at the same time somebody else is writing to the "main file". "mmap()" is
the most obvious example of this, but even the _basic_ notion of multiple
"read" calls is not atomic without locking that is _way_ too expensive.

A "read()" on a file is not atomic even on the _plain_ file: if somebody 
does a concurrent "write()", the reader may see a partial update. This 
becomes a million times more confusing if the reader is seeing a 
structured view of the file the writer is modifying.

Also, it's likely impossible to write() to the view-file, again unless you 
expect all the underlying filesystems to be something really special.

So from a _practical_ standpoint, I suspect that the best you can really 
do pretty cheaply (and which gets you 90% of what you probably want) is:

 - open-close consistency: the "validity" of the cache is checked at 
   _open_ time, and no guarantees are given about the cache being 
   updated afterwards.
 - read-only access to the cache (ie you can only read the view, not write 
   to it).

and quite frankly, I think you can do the above pretty much totally in
user space with a small library and a daemon (in fact, ignoring security
issues you probably don't even need the daemon). And if you can prototype
it like that, and people actually find it useful, I suspect kernel support
for better performance might be possible.

Suggested interface:

	int open_cached_view(int base_fd, char *type, char *subname);

where "type" would be the type of the view (ie "tar" for a tar-file view,
"idtag" for a mp3 ID tag, or NULL for "autodetect default view") and
"subname" would be the cache entry name (ie the tar-file filename, or the
tag type to open).

I bet you could write a small library to test this out for a few types.  
See if it's useful to you. And only if it's useful (and would make a huge
performance difference) would it be worth putting in the kernel.

Implementation of the _user_space_ library would be something like this:

	#define MAXNAME 1024
	int open_cached_view(int base_fd, char *type, char *subname)
	{
	        struct stat st;
	        char filename[PATH_MAX];
	        char name[MAXNAME];
	        int len, cachefd;
	
	        if (fstat(base_fd, &st) < 0)
	                return -1;
	        sprintf(name, "/proc/self/fd/%d", base_fd);
	        len = readlink(name, filename, sizeof(filename)-1);
	        if (len < 0)
	                return -1;
	        filename[len] = 0;
	
	        /* FIXME! Replace '/' with '#' in "type" and "subname" */
	        len = snprintf(name, sizeof(name),
	                        "%04llx/%04llx/%s/%s/%s",
	                        (unsigned long long) st.st_dev,
	                        (unsigned long long) st.st_ino,
	                        type ? : "default",
	                        subname,
	                        filename);
	        errno = ENAMETOOLONG;
	        if (len >= sizeof(name))
	                return -1;
	        cachefd = open(name, O_RDONLY);
	        if (cachefd >= 0) {
	                /* Check mtime here - maybe we could have kernel support */
	                return cachefd;
	        }
	        if (errno != ENOENT)
	                return -1;
	        /*
	        .. try to generate cache file here ..
	         */

see what I'm aiming at? You start out with a generic "attribute cache" 
library that does some hacky things (like depending on "mtime" for 
coherency) and then if that works out you can see if it's useful.

			Linus
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
silent semantic changes with reiser4, Christoph Hellwig, (Tue Aug 24, 4:25 pm)
Re: silent semantic changes with reiser4, Hans Reiser, (Wed Aug 25, 3:53 pm)
Re: silent semantic changes with reiser4, Chris Friesen, (Wed Aug 25, 4:23 pm)
Re: silent semantic changes with reiser4, Jeremy Allison, (Wed Aug 25, 4:20 pm)
Re: silent semantic changes with reiser4, Hans Reiser, (Thu Aug 26, 4:42 am)
Re: silent semantic changes with reiser4, Rik van Riel, (Thu Aug 26, 9:27 am)
Re: silent semantic changes with reiser4, Hans Reiser, (Thu Aug 26, 7:53 pm)
Re: silent semantic changes with reiser4, Markus , (Thu Aug 26, 9:56 am)
Re: silent semantic changes with reiser4, Paul Jackson, (Thu Aug 26, 3:58 pm)
Re: silent semantic changes with reiser4, Christoph Hellwig, (Wed Aug 25, 4:08 pm)
Re: silent semantic changes with reiser4, Linus Torvalds, (Wed Aug 25, 4:22 pm)
Re: silent semantic changes with reiser4, Mikulas Patocka, (Wed Aug 25, 8:18 pm)
Re: silent semantic changes with reiser4, Linus Torvalds, (Wed Aug 25, 8:27 pm)
Re: silent semantic changes with reiser4, Mikulas Patocka, (Wed Aug 25, 8:51 pm)
Re: silent semantic changes with reiser4, Hans Reiser, (Thu Aug 26, 4:36 am)
Re: silent semantic changes with reiser4, Jamie Lokier, (Thu Aug 26, 6:53 am)
Re: silent semantic changes with reiser4, Christoph Hellwig, (Thu Aug 26, 6:59 am)
Re: silent semantic changes with reiser4, Spam, (Thu Aug 26, 7:17 am)
Re: silent semantic changes with reiser4, Jamie Lokier, (Thu Aug 26, 7:07 am)
Re: silent semantic changes with reiser4, Rik van Riel, (Wed Aug 25, 8:57 pm)
Re: silent semantic changes with reiser4, Hans Reiser, (Thu Aug 26, 4:40 am)
Re: silent semantic changes with reiser4, Lars Marowsky-Bree, (Thu Aug 26, 10:46 am)
Re: silent semantic changes with reiser4, Helge Hafting, (Thu Aug 26, 3:51 am)
Re: silent semantic changes with reiser4, Paul Jackson, (Thu Aug 26, 5:21 am)
Re: silent semantic changes with reiser4, Helge Hafting, (Fri Aug 27, 8:33 am)
Re: silent semantic changes with reiser4, Jamie Lokier, (Thu Aug 26, 6:47 am)
Re: silent semantic changes with reiser4, Paul Jackson, (Thu Aug 26, 7:19 am)
Re: silent semantic changes with reiser4, Paul Jackson, (Thu Aug 26, 5:44 am)
Re: silent semantic changes with reiser4, Hans Reiser, (Thu Aug 26, 4:43 am)
Re: silent semantic changes with reiser4, Hans Reiser, (Wed Aug 25, 4:41 pm)
Re: silent semantic changes with reiser4, Rik van Riel, (Wed Aug 25, 5:03 pm)
Re: silent semantic changes with reiser4, Hans Reiser, (Thu Aug 26, 5:00 am)
Re: silent semantic changes with reiser4, Markus T, (Wed Aug 25, 4:58 pm)
Re: silent semantic changes with reiser4, Chris Mason, (Wed Aug 25, 4:51 pm)
Re: silent semantic changes with reiser4, Michael Halcrow, (Thu Aug 26, 9:53 am)
Re: silent semantic changes with reiser4, Hans Reiser, (Thu Aug 26, 6:26 pm)
Re: silent semantic changes with reiser4, Matt Mackall, (Wed Aug 25, 5:52 pm)
Re: silent semantic changes with reiser4, Linus Torvalds, (Wed Aug 25, 6:21 pm)
Re: silent semantic changes with reiser4, Christoph Hellwig, (Wed Aug 25, 4:35 pm)
Re: silent semantic changes with reiser4, Linus Torvalds, (Wed Aug 25, 5:00 pm)
Re: silent semantic changes with reiser4, Jamie Lokier, (Wed Aug 25, 8:11 pm)
Re: silent semantic changes with reiser4, Jamie Lokier, (Wed Aug 25, 9:00 pm)
Re: silent semantic changes with reiser4, Hans Reiser, (Thu Aug 26, 4:49 am)
Re: silent semantic changes with reiser4, Joel Becker, (Thu Aug 26, 2:35 pm)
Re: silent semantic changes with reiser4, Markus T, (Fri Aug 27, 5:19 am)
Re: silent semantic changes with reiser4, Matthew Wilcox, (Fri Aug 27, 8:26 am)
Re: silent semantic changes with reiser4, Jamie Lokier, (Thu Aug 26, 3:53 pm)
Re: silent semantic changes with reiser4, Adrian Bunk, (Thu Aug 26, 10:05 am)
Re: silent semantic changes with reiser4, Jamie Lokier, (Thu Aug 26, 11:02 am)
Re: silent semantic changes with reiser4, Horst von Brand, (Sat Aug 28, 7:14 pm)
Re: The argument for fs assistance in handling archives (was..., Christer Weinigel, (Mon Sep 6, 11:55 am)
Re: The argument for fs assistance in handling archives (was..., Linus Torvalds, (Wed Sep 1, 4:50 pm)
Re: The argument for fs assistance in handling archives (was..., Frank van Maarseveen, (Thu Sep 2, 4:38 pm)
Re: The argument for fs assistance in handling archives (was..., Frank van Maarseveen, (Mon Sep 6, 4:08 am)
Re: The argument for fs assistance in handling archives (was..., Frank van Maarseveen, (Mon Sep 6, 8:54 am)
Re: The argument for fs assistance in handling archives (was..., Frank van Maarseveen, (Thu Sep 2, 7:52 pm)
Re: The argument for fs assistance in handling archives (was..., Frank van Maarseveen, (Thu Sep 2, 7:41 pm)
Re: The argument for fs assistance in handling archives (was..., Frank van Maarseveen, (Thu Sep 2, 5:48 pm)
Re: The argument for fs assistance in handling archives, Clemens Schwaighofer, (Mon Sep 6, 8:53 am)
Re: The argument for fs assistance in handling archives, Clemens Schwaighofer, (Mon Sep 6, 8:59 am)
Re: The argument for fs assistance in handling archives, Frank van Maarseveen, (Mon Sep 6, 9:01 am)
Re: The argument for fs assistance in handling archives, Clemens Schwaighofer, (Mon Sep 6, 9:17 am)
Re: The argument for fs assistance in handling archives, David Masover, (Thu Sep 2, 8:08 pm)
Re: The argument for fs assistance in handling archives, David Masover, (Thu Sep 2, 9:28 pm)
Re: The argument for fs assistance in handling archives, David Masover, (Fri Sep 3, 12:37 am)
Re: The argument for fs assistance in handling archives, Horst von Brand, (Fri Sep 3, 9:09 am)
Re: The argument for fs assistance in handling archives, Linus Torvalds, (Thu Sep 2, 8:18 pm)
Re: The argument for fs assistance in handling archives, David Masover, (Thu Sep 2, 9:25 pm)
Re: The argument for fs assistance in handling archives (was..., Frank van Maarseveen, (Thu Sep 2, 6:02 pm)
Re: The argument for fs assistance in handling archives (was..., Frank van Maarseveen, (Thu Sep 2, 6:11 pm)
Re: The argument for fs assistance in handling archives (was..., Frank van Maarseveen, (Thu Sep 2, 6:26 pm)
Re: The argument for fs assistance in handling archives (was..., Frank van Maarseveen, (Mon Sep 6, 4:41 am)
Re: The argument for fs assistance in handling archives (was..., Frank van Maarseveen, (Thu Sep 2, 6:56 pm)
Re: The argument for fs assistance in handling archives, David Masover, (Fri Sep 3, 7:55 pm)
Re: The argument for fs assistance in handling archives, Helge Hafting, (Wed Sep 8, 5:56 am)
Re: The argument for fs assistance in handling archives (was..., Frank van Maarseveen, (Fri Sep 3, 4:50 am)
Re: The argument for fs assistance in handling archives (was..., Frank van Maarseveen, (Fri Sep 3, 4:55 am)
Re: The argument for fs assistance in handling archives, Dr. Giovanni A. Orlando, (Mon Sep 6, 5:15 am)
Re: The argument for fs assistance in handling archives, Grzegorz Jaśkiewicz, (Mon Sep 6, 8:55 am)
Re: The argument for fs assistance in handling archives, David Masover, (Thu Sep 2, 8:17 pm)
Re: The argument for fs assistance in handling archives, David Masover, (Fri Sep 3, 7:45 pm)
Re: The argument for fs assistance in handling archives, David Masover, (Fri Sep 3, 8:13 pm)
Re: The argument for fs assistance in handling archives, Stephan von Krawczynski, (Sat Sep 4, 7:42 am)
Re: The argument for fs assistance in handling archives, David Masover, (Sat Sep 4, 2:27 pm)
Re: The argument for fs assistance in handling archives, David Masover, (Sat Sep 4, 1:37 am)
Re: The argument for fs assistance in handling archives, David Masover, (Thu Sep 2, 8:25 pm)
Re: The argument for fs assistance in handling archives, Dave Kleikamp, (Fri Sep 3, 8:50 am)
Re: The argument for fs assistance in handling archives, David Masover, (Fri Sep 3, 8:25 pm)
Re: The argument for fs assistance in handling archives, David Masover, (Wed Sep 1, 11:35 pm)
Re: The argument for fs assistance in handling archives, Linus Torvalds, (Wed Sep 1, 11:38 pm)
Re: The argument for fs assistance in handling archives, David Masover, (Thu Sep 2, 12:27 am)
Re: The argument for fs assistance in handling archives, Linus Torvalds, (Thu Sep 2, 2:04 am)
Re: The argument for fs assistance in handling archives, Robin Rosenberg, (Thu Sep 2, 3:55 am)
Re: The argument for fs assistance in handling archives, Linus Torvalds, (Thu Sep 2, 3:36 am)
Re: The argument for fs assistance in handling archives, David Masover, (Thu Sep 2, 9:11 pm)
Re: The argument for fs assistance in handling archives, Linus Torvalds, (Thu Sep 2, 1:50 pm)
Re: The argument for fs assistance in handling archives, Horst von Brand, (Thu Sep 2, 11:32 am)
Re: The argument for fs assistance in handling archives, Timothy Miller, (Wed Sep 15, 1:23 pm)
Re: The argument for fs assistance in handling archives, Helge Hafting, (Thu Sep 16, 4:29 am)
Re: The argument for fs assistance in handling archives, Martin J. Bligh, (Thu Sep 2, 2:22 pm)
Re: The argument for fs assistance in handling archives, David Masover, (Thu Sep 2, 8:41 pm)
Re: The argument for fs assistance in handling archives, David Masover, (Thu Sep 2, 9:34 pm)
Re: The argument for fs assistance in handling archives, Steve Bergman, (Thu Sep 2, 3:52 pm)
Re: The argument for fs assistance in handling archives, David Masover, (Thu Sep 2, 8:35 pm)
Re: The argument for fs assistance in handling archives, Horst von Brand, (Fri Sep 3, 1:26 pm)
Re: The argument for fs assistance in handling archives, Bernd Petrovitsch, (Fri Sep 3, 4:49 am)
Re: The argument for fs assistance in handling archives, Martin J. Bligh, (Thu Sep 2, 4:16 pm)
Re: The argument for fs assistance in handling archives, Christer Weinigel, (Thu Sep 2, 2:38 pm)
Re: The argument for fs assistance in handling archives, Brian Beattie, (Fri Sep 3, 9:16 am)
Re: The argument for fs assistance in handling archives, Linus Torvalds, (Thu Sep 2, 1:43 pm)
Re: The argument for fs assistance in handling archives, John Stoffel, (Thu Sep 2, 10:24 am)
Re: The argument for fs assistance in handling archives, Horst von Brand, (Thu Sep 2, 11:40 am)
Re: The argument for fs assistance in handling archives, Helge Hafting, (Fri Sep 3, 4:30 am)
Re: The argument for fs assistance in handling archives, Oliver Neukum, (Thu Sep 2, 7:09 am)
Re: The argument for fs assistance in handling archives, David Masover, (Thu Sep 2, 8:43 pm)
Re: The argument for fs assistance in handling archives, Christoph Hellwig, (Fri Sep 3, 4:13 am)
Re: The argument for fs assistance in handling archives, Oliver Neukum, (Fri Sep 3, 4:30 am)
Re: The argument for fs assistance in handling archives, David Masover, (Thu Sep 2, 9:39 pm)
Re: The argument for fs assistance in handling archives, David Masover, (Thu Sep 2, 9:36 pm)
Re: The argument for fs assistance in handling archives, John Stoffel, (Thu Sep 2, 10:35 am)
Re: The argument for fs assistance in handling archives, Helge Hafting, (Thu Sep 2, 5:26 am)
Re: The argument for fs assistance in handling archives, Helge Hafting, (Fri Sep 3, 4:22 am)
Re: The argument for fs assistance in handling archives, Horst von Brand, (Fri Sep 3, 1:41 pm)
Re: The argument for fs assistance in handling archives, Helge Hafting, (Mon Sep 6, 9:25 am)
Re: The argument for fs assistance in handling archives, Horst von Brand, (Fri Sep 3, 10:27 pm)
Re: The argument for fs assistance in handling archives, Helge Hafting, (Mon Sep 6, 9:43 am)
Re: The argument for fs assistance in handling archives, Alexander G. M. Smith, (Sat Sep 4, 9:20 am)
Re: The argument for fs assistance in handling archives, Helge Hafting, (Wed Sep 8, 5:24 am)
Re: The argument for fs assistance in handling archives, Helge Hafting, (Thu Sep 9, 7:22 am)
Re: The argument for fs assistance in handling archives, Helge Hafting, (Fri Sep 3, 4:28 am)
Re: The argument for fs assistance in handling archives, Christian Mayrhuber, (Thu Sep 2, 10:38 am)
Re: The argument for fs assistance in handling archives, David Masover, (Wed Sep 1, 11:46 pm)
Re: silent semantic changes with reiser4, Timothy Miller, (Thu Sep 9, 10:13 pm)
Re: silent semantic changes with reiser4, Hans Reiser, (Fri Sep 10, 1:22 am)
Re: silent semantic changes with reiser4, Horst von Brand, (Fri Sep 10, 11:33 am)
Re: silent semantic changes with reiser4, Alexander G. M. Smith, (Fri Sep 10, 8:16 am)
Re: silent semantic changes with reiser4, Hans Reiser, (Fri Sep 10, 12:32 pm)
Re: silent semantic changes with reiser4, Peter Foldiak, (Fri Sep 10, 2:32 am)
Re: silent semantic changes with reiser4, Hans Reiser, (Fri Sep 10, 2:57 am)
Re: silent semantic changes with reiser4, Timothy Miller, (Fri Sep 10, 11:47 am)
Re: silent semantic changes with reiser4, Hans Reiser, (Fri Sep 10, 1:51 pm)
Re: silent semantic changes with reiser4, Horst von Brand, (Fri Sep 10, 2:15 pm)
Re: silent semantic changes with reiser4, Timothy Miller, (Fri Sep 10, 8:00 pm)
Re: silent semantic changes with reiser4, Wayne Scott, (Fri Sep 10, 11:50 am)
Re: silent semantic changes with reiser4, Horst von Brand, (Fri Sep 10, 1:50 pm)
Re: silent semantic changes with reiser4, Christophe Saout, (Thu Aug 26, 10:25 am)
Re: silent semantic changes with reiser4, Jamie Lokier, (Thu Aug 26, 11:04 am)
Re: silent semantic changes with reiser4, Alex Zarochentsev, (Sun Aug 29, 8:34 am)
Re: silent semantic changes with reiser4, Jamie Lokier, (Wed Sep 1, 6:05 pm)
Re: silent semantic changes with reiser4, Shaya Potter, (Sun Aug 29, 11:52 am)
Re: silent semantic changes with reiser4, Nikita Danilov, (Thu Aug 26, 11:41 am)
Re: silent semantic changes with reiser4, Christophe Saout, (Thu Aug 26, 11:12 am)
Re: silent semantic changes with reiser4, Jamie Lokier, (Thu Aug 26, 12:00 pm)
Re: silent semantic changes with reiser4, Hans Reiser, (Thu Aug 26, 10:17 pm)
Re: silent semantic changes with reiser4, Matthew Wilcox, (Thu Aug 26, 10:45 am)
Re: silent semantic changes with reiser4, Chris Wedgwood, (Thu Aug 26, 6:05 am)
Re: silent semantic changes with reiser4, Pavel Machek, (Fri Aug 27, 5