9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
From: Enrico Weigelt <weigelt@metux.de>
To: Fans of the OS Plan 9 from Bell Labs <9fans@9fans.net>
Subject: Re: [9fans] dbfs and web framework for plan 9 (was: web-based plan 9?)
Date: Sun, 23 Nov 2008 23:06:54 +0100	[thread overview]
Message-ID: <20081123220653.GA25062@nibiru.local> (raw)
In-Reply-To: <e1d437a40811231058g21e50ac5ocfccf67bc784569@mail.gmail.com>

* Giacomo Tesio <giacomo@tesio.it> wrote:

Hi,

> 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)

That's a really good idea. But there's still one problem to solve:
filesystem hierachies and relational algebra are fundamentally
different concepts. So, if you don't want to just the fs as some
universal sql-transport, data has to be modeled differently.

Actually, in many webapps, the real underlying models are neither
relational nor hierachic, but most times just happen to be
modelled relatiolally, because rdmbs'es are the tool of choice
for most people.

So what we have to do here is to get back to the original problems
to solve and think about how they could fit into an hierachy
instead of relation.

Simple example: a web-forum.

Just look at how things were done in "good old" usenet times:
boards/newsgroups are directories, postings are files. Maybe split
off a single posting into several files, eg. to access single header
lines or body parts (attachments, etc) separately. Now we're almost
at mailfs ;)

Okay, we've got some more data, eg. profile information, maybe all
the other "web-2.0" stuff (user galleries, friend relations, etc),
but IMHO this all easily fits in hierachies if we start thinking
afresh with a blank paper.

With hierachies we can do a lot of other fine things here, eg.
server side threading (= postings ordered in a mail thread) or
various kind of filtering/ordering - the client doesn't have to
this all on its own anymore. Using symlinks (w/ 9P2k) might make
it even more efficient. If we know certain objects/files won't
be changed, caching can be come almost trivial, and the average
traffic of some "web-2.0" application drops down to a very small
percentage ...

That's all possible, if we just can imagine it :)

> Both are really important.
>
> When a product change its code (aka pk) for business' reasons, I need have
> it changed automatically in any place its referred in the database.
> Or if a dumb employee try to delete a product category (supposing he's
> allowed) I have to be sure that the remaining data don't loose meaning.

That's exactly what constraints, rules in SQL etc are for.
Maybe some similar ruling system for filesystems would be fine :)
(any suggestions ?)

> Application should HANDLE data.
> But datas are a rapresentation of a reality which have a meaning!
> A relational database don't have to know how datas are collected or used.
> But it has to keep meaningfull the rappresentation.

Right. But the database has to know rules which data has to comply,
so a wide range of errors becomes impossible, mathematically provable.

Imagine a forum where each posting belongs into a board and is assiocated
with the author. If the constraints are defined properly, the database
won't ever allow postings w/o valid board or author. You could also define
some rule which automatically removes all postings when the board gets
deleted, at the same point of time. (of course, we're talking about real
databases, cardfiles like mysql don't count here)

> I need to be able to atomically save related tuples in different tables,
> since (for example) those different tables could be simply modelling ONE
> real entity (say an order or a family).

CREATE RULE .. AS ON INSERT TO ...


Again, a rule system for filesystems would be really cool :)

cu
--
----------------------------------------------------------------------
 Enrico Weigelt, metux IT service -- http://www.metux.de/

 cellphone: +49 174 7066481   email: info@metux.de   skype: nekrad666
----------------------------------------------------------------------
 Embedded-Linux / Portierung / Opensource-QM / Verteilte Systeme
----------------------------------------------------------------------



  reply	other threads:[~2008-11-23 22:06 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-11-23 18:58 Giacomo Tesio
2008-11-23 22:06 ` Enrico Weigelt [this message]
2008-11-23 22:26   ` Francisco J Ballesteros
2008-11-23 22:50     ` Enrico Weigelt
2008-11-24  9:27   ` Giacomo Tesio
2008-11-24  9:30     ` Giacomo Tesio
2008-11-24 10:58   ` [9fans] dbfs and web framework for plan 9 matt
2008-11-24 14:13     ` Giacomo Tesio

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20081123220653.GA25062@nibiru.local \
    --to=weigelt@metux.de \
    --cc=9fans@9fans.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).