On Fri, 27 Oct 2000, Hans Reiser wrote:

> [...]
> 
> You could do the following syntax:
> 
> 
>/process/range/(X,Y)=>/filename/atomic/ACL/1;/process/buffer/(A,B,C)=>/filename/some_non_ACL_attribute;/process/range/(U,V)=>/filename/atomic/ACL/2

You truly seem serious about that. Yuck that's ugly!!

Honestly, we should try to keep the interface minimalistic, with very
clearly defined semantics. Those are the kind of interfaces that stand a
chance to survive. Everybody should be able to grasp the idea in a few
minutes. Anything else will lead to trouble down the road.

The extended attributes interface is not the first of this kind.
Throughout UNIX/POSIX there exist a number of interfaces that appear
almost primitive with very clear and simple semantics (files, pipes,
etc.). Together, they result in a very powerful system.

In ReiserFS it may well be best to implement extended attributes as
streams. This should _not_ be visible at the interface though. The
problems I see include:

 - Openeing/closing/keeping state is quite expensive for things like
   access control lists. This is equally true at the system call
   interface and in the kernel.

 - It is not acceptable for me to introduce locking issues here. File
   operations are interruptable, and thus you would have to deal with
   this.

 - For some attributes like ACLs, it is essential to be able to enforce
   restrictions on the acceptable values. A stream based implementation
   would need to wait until the last block of data is written to be able
   to decide whether the whole value is accepted or rejected.

 - One essential property of EAs for me is atomic update semantics. It is
   quite difficult to implement this efficiently for arbitrary-size
   attributes. On the other hand, ordinary files/streams don't have that
   requirement. Mixing those domains adds a lot of complexity. Making
   atomicity optional for extended attributes is even worse as users
   would have a harder time understanding what's going on.


Andreas.

------------------------------------------------------------------------
 You know you've achieved perfection in design, not when you have
 nothing more to add, but when you have nothing more to take away.
    -- Antoine de Saint-Exupéry.


-
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to [EMAIL PROTECTED]

Reply via email to