Since I know it was discussed in the past (but I could not find the post in the archives) I hope to be "original" by not reiterate old ideas.
BTW I start from a reply to a previous post to explain what I would need to use plan 9 for web development.
But first of all, I have to say that I'm not (yet) a Plan 9 user/developer, just a programmer who studied it and loved its potentialities.
Actually I'm thinking about how to use Plan 9 in web development (real one, I'm not talking about having a blog or a shinny flash site), and I'm proposing a structure for data access towards a dbfs interface.
The scope is to be able to query the db towards a filesystem, with no need to use different libraries for different db backend... each application would use a filesystem, while each rdbms would have it's own filesystem (all with the same structure, obviously)
Now the WHY I think such an interface matter:
On db ¡ê fs conversions:
// datas (and their relations) MUST be kept consistents.
there's two things you could mean here: either the
relations between the data fields/types or the relations
between their values.
SQL databases are interesting because they don't do anything to keep the relations
consistent, at a schema level.
there are some cases where
this is valuable, but most of the time it just puts more of
the burden on the application.
enforcing consistency between values is a whole different
matter.
and largely needs to be done in the ap anyway (say
your DB rejects a submission; are you just giong to panic,
say "try again", or try and figure out what it didn't like?).
// And MUST be updated frequently, in transaction.
just curious: what is it about "transactionality" that you care
about? atomicity, logging, roll-back (atomic roll-back)?
// Application code cannot do that, since it's too subject to
// modifications...
i'm not convinced. you can simply... not modify it!
unless you've got a database you're exposing to multiple parties
and you're worried one is going to mess things up for
others, but in that case i think exposing the database
directly is pretty risky regardless.
the application i've worked on with the most complex data
constraints had an "ontology layer" that everything that
wanted to do data access went through.
// Moreover such a dbfs should allow rapid development of
// views over data (with different permissions) by simplysomewhere around here i've got a /chan/pq for inferno that
// write the query in a file and then open the file for reading
// the XML.
makes connections to a pq database. each open is a new
logical connection; you write the query and read the result.
results were not in XML, and pq has no updates (at current).
i think you've got some very interesting ideas on sessionfs
in particular. i have more thinking to do there.
oh, probably an aside: from an application design point of
view, DO NOT empty my shopping cart just because my
session timed out. i should be able to pick up where i left
off. i'm not sure how hypothetical that example was, but
that's a common source of irritation for online shopping.