Re: DiskDevice API v2.1

Tyler Dauwalder <tyler-cyCl/[email protected]>
Newsgroups gmane.os.openbeos.storage
Message-ID <[email protected]>

On 2003-04-03 at 22:32:36 [-0800], Ingo Weinhold wrote:
> 
> Tyler Dauwalder <tyler-cyCl/[email protected]> wrote:
> > 
> > > > I am not sure if it's worth the effort to provide partition-
> > > > granular
> > > > locking - perhaps it's better to be able to add jobs to the
> > > > current
> > > > update task=3D3D3F AFAICT all partition changes have to be
> > > > sequential
> > > > anyway.
> > > 
> > > Changes to a single partition. Yes. But I actually don't see the
> > > reason
> > > for a sequence of changes to one partition. If requested by one
> > > application, it can as well be bundled to one action. And if the
> > > requests is issued by another application, it may operate with
> > > obsolete
> > > data anyway (imagine one app resizing the partition to occupy all
> > > free
> > > space, while the second one wants to move it) and should be
> > > forbidden.
> > > That's why I'd prefer a locking mechanism -- be it for individual
> > > partitions or for the whole device.
> > 
> > I think in general, the whole device will end up getting locked in
> > most
> > cases we'd have now, but with a partitioning system that supported
> > many
> > levels of hierarchy (and maybe even with intel extended partitions, 
> > I
> > don't know... Ingo=3F)
> 
> Yes, it should be fine, to lock an extended partition, if the logical
> partitions on it are going to be manipulated.
> 
> > one could get away with only locking a portion of
> > the drive during a task, and thus let the user muck around with the
> > rest of it if desired. So it might be useful to support fine grained
> > locking. However, is it worth the overhead (1 lock per partition)=3F
> 
> I think, non-blocking locking should be sufficient, or maybe even the
> better choice. Anyway, even if blocking only one semaphore per 
> actually
> waiting thread would be required. By accident I almost finished 
> writing
> a newsletter article on a quite similar locking problem during my off
> time. :-)
> 
> [...]
> > > > > > class BPartition {
> > > > > > public:
> > > > > >     BEmptySpace* EmptySpaceAt(int32 index) const;
> > > > > >
> > > > > > // I have resize and move separated because move could be
> > > > > > filesystem
> > > > > > // independent, whereas resize could not
> > > > > I hope, you're right regarding move. The absolute addressing
> > > > > you
> > > > > found in
> > > > > ISO9660 disk scares me a bit. Maybe we can ignore that.
> > > > 
> > > > Well, it depends on us if we want to support resizing/moving of
> > > > file
> > > > systems that require absolute block addressing. It would sure be
> > > > possible, but also much more complicated to do. Doing that 
> > > > online
> > > > (while the partition can still be accessed) might be very
> > > > complicated
> > > > (for both, the kernel and the file system).
> > > > The only file system that require this feature is iso9660 - and
> > > > there,
> > > > resizing/moving doesn't make any sense. But then, I don't have
> > > > any
> > > > idea
> > > > about UDF
> > 
> > UDF also uses absolute addresses per "volume" (i.e. physical 
> > medium).
> 
> *sigh*
> Those people don't learn. ;-)

Nope. :-) 

> > > > If
> > > > that
> > > > would require absolute blocks, we should go back to the drawing
> > > > board
> > > > :)
> > > 
> > > If UDF does, I would vote for omitting support for it out of
> > > principle
> > > (if necessary, locking Tyler into some basement without 
> > > computers).
> > > ;-)
> > 
> > :-P That's a really bad idea all around. :-)
> > 
> > Seriously, with no UDF support, you have no DVD support. And iso9660
> > is
> > no better, and we sure aren't dropping CD support. How about
> > BDiskSystem::UsesAbsoluteAddressing()=3F
> 
> Won't be needed, I think. BDiskSystem::SupportsMoving() could also be
> used for FSs.

I was thinking it would be needed to support a generic moving system 
for relatively addressed systems while still allowing each system to 
provide its own moving implementation.

-Tyler
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.