Hello Jesse, I have been doing testing with sqlite on small nilfs ( not on ARM ) partitions of about 1Gig in size so maybe I can be of some help.
> Good day everyone, I do hope this has not already been asked as I had > trouble searching the archive, and nothing meaningful came up in a > search. > > My question is this: > I am using android on an ARM-based pda phone. > Android works by having a system partition and a data partition. In > our environment, everything is mounted loop, as we have everything > sitting on an SD card formatted FAT for windows mobile (our launcher > runs from windows mobile) > > How well would NILFS function as the loop data partition? We're > looking at 128MB, and it is used extensively for cache and sqlite3 > database reads/writes. Currently we're using ext2, but it has issues > with fault tolerance, and on a device that doesn't unmount on > shutdown, faults happen every time you turn it off (lots of data > corruption). > ext3 was tried, but there were so many writes that the location of the > journal on the SD card burned and the card became unusable. > > Does NILFS handle this kind of thing better? Is there a log that is > constantly written and overwritten, or does it sort of log as it goes? > My understanding of log-centric filesystems is better than a few days > ago (but still have lots to learn), it treats the whole partition as a > sequential loop for writes, with random access reads (right?). I would > think this would work better than ext2 for load leveling too. > > Any ideas or suggestions would be greatly appreciated, my co-developer > things it would be "doing unnecessary writes" and that ext2 "should > work fine"... but I don't want to burn my card, and I'd like some > better fault tolerance. > > Thanks all, > Jesse Campbell > > Well Jesse, I have been doing a lot of testing with various applications including lucene indexes, postgresql databases and also sqlite3 databases. >From watching how all of these systems write to disk in the normal usage case. ( No or limited use of in memory storage and most if not all changes written to disk in real time ) I can tell you that you will be doing a lot of writes to disk as you make changes to the sqlite db. Now if you are only using sqlite as a storage mechanism, ie reading from the db upon application startup and dumping the information back to disk upon app shutdown, you shouldn't have to worry at all. On the other hand, if you are using it as a normal db... your limited amount of space will require a lot of garbage collection to prevent the partition from being filled. An example... one of the applications that I have been testing will create a sqlite3 db of about 160M in size. The massive number of row inserts and updates to the db was causing the 1Gig ( 976M formatted ) partition to be filled long before the default setting for cleanerd got around to doing gc. Matter of fact the partition would fill in less that 10 minutes. Hopefully the above examples and information can be useful to you and anyone else thinking about using sqlite on a nilfs partition. James...
_______________________________________________ users mailing list [email protected] https://www.nilfs.org/mailman/listinfo/users
