[openbeos] Re: Max number of files on BFS?

  • From: "Axel Dörfler" <axeld@xxxxxxxxxxxxxxxx>
  • To: openbeos@xxxxxxxxxxxxx
  • Date: Tue, 31 Aug 2004 21:12:50 +0200 CEST

"Mikael Jansson" <tic_khr@xxxxxxxx> wrote:
> > > They're pondering the idea of a virtual "QueryFS"
> > > on which queries could be accessed as virtual directories whose
> > > entries are the results of a search, and implementing the query 
> > > code in the kernel so the code doesn't have to be repeated in 
> > > each filesystem.
> > That last sentence is more or less the only difference to the 
> > current 
> > BeOS. And that's also why Haiku doesn't yet have any query support; 
> > because I intend to solve that differently as well :)
> Mind sharing your ideas and thoughts about it?  I'm sure there are 
> other than me who are interested in the topic!

Queries are already accessed like directories in BeOS, at least the 
Tracker gives you this impression, and also internally, it would only 
be a small change. That's not what I was aiming at :)
It's very annoying that the query code is currently completely part of 
the file system - every file system has to reimplement it, and every 
new implementation introduces some more inconsistencies and 
incompatibilities; the whole query string is given verbatim to the file 
system.
Our aim is to take the query code in BFS and divide it into several 
separate parts. When you implement a file system, you could then take 
the parts that you can use and build your query support with them. For 
example, a networking FS might want to let the server handle all the 
query work; it would not have to bother about query parsing etc.
Additionally, we think about adding a standard means to access the 
query engine at no additional costs. I.e. we could export the indices 
as (non-standard) directories and have the query engine use that 
automatically for everything - you wouldn't need to include any 
additional support.
This is an area with pretty few constants yet. We'll have to see how it 
turns out - with many tests regarding possible speed limits involved. 
The R1 file system API will probably not be a complete and public API, 
but rather a work in progress (of course, we're open source, so it's 
always available to write a file system for it).

BTW using the BDirectory(node_ref *) constructor and a hard coded 
node_ref that points to an index, you can already do that with your 
standard BeOS. You will then also notice that the original BFS has a 
bug that might lead to circular indices - they're only hiding the 
symptoms, they've never fixed that directly.

Bye,
   Axel.


Other related posts: