Jim Fulton wrote:
> These benchmarks make ZEO+FS look pretty good relative to
> MySQLAdapter.  The overall performance assuming even moderate;y
> effective ZEO pr object caches is significantly better for ZEO.

This is an excellent analysis.  It pointed out some rough edges in 
RelStorage performance.  On the RelStorage trunk, I have filled in a lot 
of the performance gaps.  Specifically:

- When writing to the database, RelStorage issued a SQL statement for 
every object stored, causing a network round trip for every object 
written.  I switched it to use multi-row insert statements.

- Allocating a new OID also caused a network round trip.  RelStorage now 
allocates blocks of OIDs.

- I improved the way RelStorage uses memcache.  I reduced the number of 
memcache trips required.  The RelStorage equivalent of the ZEO cache is 
memcache, but memcache wasn't enabled in Jim's tests.  That's ok; 
memcache isn't currently as easy to set up as it should be.

I have also turned the speedtest script into a tool for comparing the 
performance of different ZODB storages with different settings.  Then I 
made a buildout.cfg that installs a copy of mysql, postgresql, memcache, 
and all the necessary adapters so people can easily run tests on their 
own.  I have not released these yet, but I will soon.

For more information about ZODB, see the ZODB Wiki:

ZODB-Dev mailing list  -  ZODB-Dev@zope.org

Reply via email to