Hi, On 1/18/07, André Braga <meianoite@xxxxxxxxx> wrote:
So we're left with some options. Not to cache writes and force them to happen synchronously and kiss goodbye every hope for performance (eek); to cache writes, sync them from time to time and give the final syncing job to the unmount operation (more reasonable and every OS is doing that nowadays); or the perhaps best option which I'm yet to find implemented in ANY operating system:
Well, you could at least make it possible to specify volumes that should still have a write cache (this is possible in XP, too), so your always-connected USB HDD will always work at maximum speed.
To put a pseudo full journal (not only metadata) on top of every removable media and warn the user if there were any uncommited write jobs the moment he ejected the media, asking him to kindly reinsert it and wait for the progress meter on the dialog to complete before removing it again. It would have to be FS independent, like the gjournal GEOM layer being developed for FreeBSD 7. But we don't really need that level of sophistication to implement this idea; a relatively easy implementation is to just log all the write operations and them flush as appropriate, or maybe layering a sparse image on top of the removable media FS and commit the changes as appropriate; the latter happens to be very similar to how VMWare and QEMU 0.8.2 handle snapshots.
This is a nice idea to prevent data loss. We also have to make it very easy to unmount your volumes, though. Placing the volume icons on the desktop is IMHO accessible enough. Maybe Deskbar is the right place for volumes? Bye, Waldemar Kornewald