Robert Collins: More evolution-reliability-speed
Evolution recently moved to a sqlite summary db rather than a custom summary db implementation. Its great to see such reuse of code. However, it s not really a complete transition yet as I ve had cause to find out today. I ve blogged before about performance with the sqlite summary sqlite database. Today I was greet with a crash-on-startup bug which happily has a patch upstream already. Before I looked in the bug tracker though, I did some house cleaning. I started with a 900MB folders.db. Doing a vacuum on the db dropped that to 300MB. It doesn t appear to be something that evolution does itself. Firefox too appears to lack an automatic vacuum. sqlite is an embedded database, and its wonderful at doing that, but its not as install-and-forget as (say) PostgreSQL which does autovacuum. So an additional tip is vacuum your folders, e.g. with http://www.gnome.org/~sragavan/evolution-rebuild-summarydb, a helper script that will run vacuum on all your account summary db s. Note that it *does not rebuild*, it solely vacuums, and as such does not add or delete (modulo bugs in sqlite) data to the summary database. After the housecleaning, I checked that the sqlite database was in good condition:
sqlite3 folders.db pragma integrity_check;This returned a number of indexing issues, so I reindexed:
reindex;Evolution now starts up and crashes in a fraction of a second - a big improvement. Finally, I started looking at the evolution code as I now was fairly confident it was a bug - it was in a sqlite callback function - and the column the function extracts data from (flags) is missing a NOT NULL constraint, but the code doesn't check for NULL - boom. From there to finding the bug report and existing patch was trivial. And this is where my comment on reliability turns up: Evolution doesn't anticipate NULL flag values in its code, so why does it insert them into the database at all ? I suspect its due to some aspect of the incremental conversion to using sqlite summaries. More concerning for me is the possibility that there are many other such crash bugs lurking in the new sqlite based code. There are possibly some clues as to the excessive table scans done by evolution in the use of a flags bitset rather than separate columns, but I haven't looked close enough to really say.

After
Two weeks after the



I run a
With the help of a couple of friends, we ve put a 4.5T RAID-5 machine on our network and I m trying to figure out how to share the storage with the rest of the hosts. In the past, I have used NFS and CIFS/Samba to provide access to remote hosts. This has generally worked okay so long as the server stays online.
I don t know if the results are going to be much different, but I am now trying a different approach. I plan to run an iSCSI server, and I ve already configured AoE (ATA over Ethernet). I ve exported a block device on the network segment and mounted it on a remote host. This was pretty easy to configure. There is a bit of documentation on the internet already, but I ll give another quick overview.
I gave the storage server the unoriginal name san0 . This host is running debian lenny. I am testing the configuration from my debian sid development host, which has the similarly unoriginal name dev0 . So, think server when you see san0 and client when you see dev0 .
I assume that you ve already got an LVM volume group set up. Mine is called vg0 . Correct the following examples to account for any differences. You can use disk partitions instead of LVM logical volumes.
Yes, aptitude can list packages by priority, but what I wanted was a simple list of just package names. I've got two ways of getting a bare list:
The