All of lore.kernel.org
 help / color / mirror / Atom feed
From: Yury Umanets <umka@namesys.com>
To: Geoff Oakham <g@mbl.ca>
Cc: reiserfs-list@namesys.com
Subject: Re: libaal documentation: fact or fiction?
Date: Wed, 08 Oct 2003 23:56:55 +0400	[thread overview]
Message-ID: <3F846C07.2030707@namesys.com> (raw)
In-Reply-To: <20031008190146.GA11458@mbl.ca>

Geoff Oakham wrote:

>On Wed, Oct 08, 2003 at 10:12:27PM +0400, Yury Umanets wrote:
>  
>
>>>Is this library the userland interface applications use to write to
>>>files in atomic operations?
>>>      
>>>
>>No. It serves just for having persistent interface for working with 
>>device inside libreiser4.
>>    
>>
>
>So this is the library Lilo & friends would want to use to find out
>where a kernel image is physically located on disk?  Thanks for setting
>me straight on this one..  obviously I've guessed wrong.
>
Actually libaal is base library for libreiser4. It contains all needed 
type definitions, utils, device abstraction, and device data block 
functions, exceptions, etc. And libreiser4 along with it is supposed to 
provide reiser4 access in user space for any application, which would 
want to acess reiser4 without kernel. For instance, some repair tool 
like testdisk.

libreiser4 is able to create files, write and then delete them. The same 
about directories. It also has plugin based design and may be easyly 
expanded. For now, it contains all the code needed for working with 
reiser4 in userspace (or in so called stand alone mode, like GRUB works 
in it durring showing menu and reading kernel image).

We have a pach for GRUB, so it uses libreiser4 for provide reiser4 support.

>
>  
>
>>Ok, I see, but libreiser4 does not any things with journaling and so on. 
>>So, probably it is better to start from reading resier4 design documents 
>>on our website and then take a look to kernel code.
>>    
>>

>Although I find the design documents very interesting, I can't say I
>find them helpful for navigating the source.  Perhaps I haven't read
>them thoroughly enough.
>
That is because they descibe only main ideas, not the how these ideas 
are impelemnted in particular language or enviromnent. Be sure, if you 
ask me or someone else of our team, about reiser4 sources, we will 
answer any question.

>
>  
>
>>We will have userspace API for controlling transactions and other things 
>>latter when sys_reiser4() is finished.
>>    
>>
>
>Ah, that's good to know.  What's the status of that work?
>
Actually I'm not sure, that my information about the status is up 
to-date. Ask Hans about this.

>
>  
>
>>>Futhermore, I want to see if it's possible
>>>to implement the equivalent functionality (at least from a programmer's
>>>perspective) on a traditional UNIX filesystem using old-fasioned
>>>file-locking.
>>>
>>>      
>>>
>>Can you say more detailed about this? What do you mean speaking about 
>>old-fasioned file-locking?
>>    
>>
>
>Sure: Imagine I'm the author of 'mutt', a popular mail reader.  [I'm
>not, but for this "use case," please imagine I am.] 
>
Ok :)

> 'mutt' allows
>multiple instances of itself to run in parallel.. which means I have to
>be careful when reading and writing to the [poor] user's mailbox.
>

>Traditionally, this meant I would have to group all my file access into
>'critical sections' and obtain an appropriate file locks for the
>duration of each section.
>

>
>At the begining & end of the critical sections, I should be able to
>assert the file is in a valid, "non-corrupt" state.  Wait... this sounds
>suspiciously like a "transaction": if I wanted to modify mutt to take
>advantage of reiserfs4's data journalling, the sections would
>be the obvious place to do it.
>
Hm.. It's cool idea. There only a thing... It is needed to rewrite mutt 
and other tools to use this critical section. Also,  this should be 
system wide, I mean, that linux should support this feature in its VFS. 
I guess Hans will be interesting to discuss this more detailed.

Yet another method that comed to my mind, is to impelement ability to 
open not the whole file, but some its part and to have separated file 
descriptor for that file. It seems, that QNX is able to do so.

>
>Imagine that I've gone ahead and made these modifications.  My next
>thought would be: "ok, now without using #ifdefs, how can I continue to
>support legacy platforms [and/or filesystems] that don't support data
>journalling?"  This is where I'd hope a good userspace library could
>step in.
>
So, you propose to use some kind of crossover between applications and 
actual call to kernel? And this bridge should decide is backend 
filesystem is able to do journaling and has user space journaling 
control API? It is yet another good idea.


>
>Does that make sense, or am I completely missing the point of data
>journalling?
>
This makes sence and all the things you've described are the use of 
journaling control in user space.

>
>Thanks,
>
>Geoff
>
>  
>


-- 
umka



  reply	other threads:[~2003-10-08 19:56 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-10-07 17:22 libaal documentation: fact or fiction? Geoff Oakham
2003-10-08  6:52 ` Yury Umanets
2003-10-08 16:32   ` Geoff Oakham
2003-10-08 18:12     ` Yury Umanets
2003-10-08 19:01       ` Geoff Oakham
2003-10-08 19:56         ` Yury Umanets [this message]
2003-10-08 20:46           ` Geoff Oakham
2003-10-09  9:20             ` Yury Umanets
2003-10-09 10:19     ` Hans Reiser
2003-10-09 12:51       ` Geoff Oakham

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=3F846C07.2030707@namesys.com \
    --to=umka@namesys.com \
    --cc=g@mbl.ca \
    --cc=reiserfs-list@namesys.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.