Re: libefs



Dietmar Maurer wrote:

> David Orme wrote:
> > Since we're reimplementing this, we have the opportunity to fix this
> > oversight by providing a separate process that manages reading/writing open
> > files on behalf of the client applications.  If a client application crashes
> > in the middle of a save, the transaction is rolled back and the user loses
> > just the work from the current session, not the entire file.
>
> You can never get an inconsistent database with the current
> implementation of libefs (due to client crashes), because I don't
> overwrite the last version. Keeping the last version is the only way to
> implement this behaviour. This also mean that it is very difficult to
> "compact" the filesystem - because if I overwrite data I can't do a
> rollback. The easiest way to "compact" the filesystem is to copy the
> whole thing to a new location and then make a (atomic) rename.

Good so far.  Are transactions maintained for an entire save session (including
embedded applications saving their data) or just on a per-application basis?
It's important that the save operation be atomic for the main application and
across all embedded objects.  But it sounds like you've probably already thought
of this?

> > While I'm on the topic of file systems within a file, we also need the
> > ability to mount external directories within our "file system within a
> > file".  Another MS Access problem is that it is hard to share an application
> > without sharing all of your data as well since the forms used to implement
> > the application are stored in the same file as the data.
>
> Please can you explain that more detailed.

Actually there are two cases:  Where you want to mount a directory (or maybe just
regular files) in your regular file system inside your filesystem-in-file.  For
example, MS Access works with Paradox and dBase files by "mounting" them inside a
native Access database file.  You also have the case where you might like to
treat two filesystem-in-a-file's as one by mounting one inside another.  If
Access allowed this it would possible to store your application code in one
filesystem-in-a-file and have it mount another filesystem-in-a-file containing
the database files.

I hope this helps...


Regards,

Dave

--
David Orme                                       LINUX...
david@coconut-palm-software.com          ...it already goes there
http://www.coconut-palm-software.com               :-)





[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]