On Wed, Jun 09, 2010 at 01:40:30PM +0100, Simon Slavin scratched on the wall: > > On 9 Jun 2010, at 9:48am, Wei Kai wrote: > > > I have a problem here. As we know sqlite creates a journal every time a > > write transaction happens. On a flash file system, when a write to database > > failed because of the lack of enough disk spac > > Sorry, but if your program crashes because you ran out of disk space, > you're out of luck. There's no way to have a program recover from > the situation because you have no space to put the recovered > information in. You need an intelligent human to decide what can > be deleted.
I think the point he was making is that a developer cannot assume writing data to the middle of an existing file will not return an out-of-space error. I'd be very surprised if SQLite makes any such assumptions, however. This condition is hardly unique to flash filesystems. Journaled filesystems can have the same issue, as do sparse files (although I doubt SQLite would ever create a sparse file). Reallocation of blocks and automatic defragmentation can also contribute to similar issues. > If you are concerned about this situation, make a file called > 'wasteofspace' which takes up 10 kilobytes of space. When you > need emergency space to recover from a crash, delete this file. That's not necessarily useful. See above. -j -- Jay A. Kreibich < J A Y @ K R E I B I.C H > "Intelligence is like underwear: it is important that you have it, but showing it to the wrong people has the tendency to make them feel uncomfortable." -- Angela Johnson _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users