Go to the FreeLists Home Page Home Signup Help Login
 



[openbeosstorage] || [Date Prev] [04-2003 Date Index] [Date Next] || [Thread Prev] [04-2003 Thread Index] [Thread Next]

[openbeosstorage] Re: DiskDevice API v2.1

  • From: "Ingo Weinhold" <bonefish@xxxxxxxxxxxxxxx>
  • To: openbeosstorage@xxxxxxxxxxxxx
  • Date: Fri, 04 Apr 2003 00:13:12 +0200 CEST
Tyler Dauwalder <tyler@xxxxxxxxxxxxx> 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. ;-)

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

[...]

CU, Ingo






[ Home | Signup | Help | Login | Archives | Lists ]

All trademarks and copyrights within the FreeLists archives are owned by their respective owners.
Everything else ©2007 Avenir Technologies, LLC.