Re: Performance data points

Toby Dickenson <[email protected]>
Newsgroups gmane.comp.web.zope.zodb.dirstorage
Message-ID <[email protected]>
On Friday 05 Nov 2004 10:57, Matt Hamilton wrote:

> Changing
> from 3 disks to 4 disks for the ZODB should in theory only increase
> performance by a 25% as I don't think RAID5 and RAID1+0 would have any
> significant differences in read performance beyond the number of spindles
> you have.

DirectoryStorage (and zodb in general) only issues one read request at a time, 
so there is no good way to make use of that potential concurrency to improve 
read throughput. On zodb-dev we have occasionally discussed an object 
prefetching system that I suspect could make good use of your spindles.

> I'm not sure which part of the changes made the most significant
> difference.

I can share a guess..... 

> Copying the ZODB to another machine and back again is an interesting one.
> I don't see how this would make that much difference to UFS.  IIRC, UFS
> attempts to spread files out evenly across a disk so I don't think it
> could be anything to do with the order of files.

I dont know for sure about UFS, but many filesystems allocate space for inodes 
and file bodies so that files from one directory are nearby on disk.

All DirectoryStorage data files are initially created in one transaction 
directory, so all objects changed in one transaction will have their data 
files nearby on disk. 

They then get renamed into their final resting place, one directory per zodb 
object in the 'bushy' format. But their on-disk layout does not change. It 
retains the grouping based on transactions. The result is that a naturally 
created DirectoryStorage filesystem will have very fragmented directories. 
Thats why 'find' had so much room for improvement.

Your rsync will have effectively defragmented the directories. That improves 
'find', and also the final phase of packing, which operates similar to 'find'

The disadvantage is that you have increased fragmentation of oids that were 
written at the same time. This has the potential to slow down the earlier 
packing phases that traverse the zodb object reference tree. I have seen some 
application benchmarks where it was significant too.

> So we managed to get a 3-fold increase in
> random disk read IO.

It will be interesting to see the level of improvement you see in packing and 
catalog reindexing.



-------------------------------------------------------
This SF.Net email is sponsored by:
Sybase ASE Linux Express Edition - download now for FREE
LinuxWorld Reader's Choice Award Winner for best database on Linux.
http://ads.osdn.com/?ad_id=5588&alloc_id=12065&op=click
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.