robert at wittams.com
Sat Mar 5 13:05:13 EET 2005
> If you have some examples how it's usable, though, please share. I'm
> particularly interested in knowing if you found pluggable backends
> useful only because the default backends of the systems in question
> simply weren't as good as they should have been. In that case,
> pluggable backends aren't a solution to a problem, they're a hack to
> work around fixing the real problem - a suboptimal default
> implementation. That's what I'm REALLY worried about here - will
> pluggable backends just be an excuse to punt implementing a good backend
> from the start, so we end up with... oh, say... Elektra?
Ok Sean, here is one reason I consider pluggable backends essential:
File system and kernel syscall api improvements.
As much as everybody loves to rag on the performance issues of elektras
one key per file design, it does have benefits : unified namespace,
permissioning, "in the spirit of unix", etc.
And there is something on the horizon that could make most of the
performance issues go away: the reiser4 syscall in tandem with the
reiser4 fs. This promises to allow you to batch up scads of file
operations into one system call :
"Read the content of all these files into these buffers."
"Write all these files atomically from these buffers."
Of course, this may not go in the kernel as is. It may be modified to
work universally via the linux vfs, or rejected outright. It certainly
won't be available to BSD and OpenSolaris users anytime soon. We don't
know what changes might occur in the future, but we know it won't all
happen at once. We need the ability to transition to new functionality,
whatever form it may take. In this case, it means it would be necessary
to transition to a new format and backend to fully take advantage of new
kernel functionality. Why make it hard at this stage?
( In the case of D-VFS, it would be possible to take advantage of these
kinds of new apis inside whatever backend handles file: , because it
requires no format changes to realise benefits. Might need
multithreading though ;-) )
More information about the xdg