Index > Scribe > Option to automatically backup the mail2 file at regular intervals?
Author/Date Option to automatically backup the mail2 file at regular intervals?
28/08/2003 3:52pm
I just read the post where someone said they'd lost emails. What about an option to automatically backup the mail2 file say every few minutes?

I'm still not convinced I like the idea of having emails stored in a single file as opposed to storing them in multiple folders on the disk. But that's just my opinion.

28/08/2003 7:39pm
An auto backup option is quite feasable. I'll have a think about how to implement it.

The reason that all the mail is stored in the same file is to overcome the limitations of the OS file system.

Simply put all the OS's file systems that Scribe runs on can't provide:

  • No wasted space between objects.
  • Abitrary file meta-data.

And because spliting the file means that moving data around means a copy rather than an indirect on a pointer you would see a big slow down with say individual files per folder.

Now ReiserFS and OpenBFS both look like they could provide such performance, but it's hard getting them to work under windows in a virtual volume in a file. Which would be ideal, they would provide stable, fast and efficient storage at the backend.

Really it comes down to portability, you can pick up a single folder file and dump it in a hostile file system and it works. Windows is the more hostile file system at the moment. Reiser4 can run natively in Linux, and it would be almost ideal.

Without Windows to worry about I could convert to a maildir approach where every object is simply a file in a directory.

I'm still toying with trying to shoehorn an existing file system in the backend of Scribe to give me a stable file system but so far it's eluding me. I may have to write my own hybrid version of Reiser / BeFS to get what I want. But thats a) a lot of work and b) probably going to be buggy as I'm not a file system guru. But I've learnt a heck of a lot about them in the last few weeks as I've been researching the problem domain.