[ZODB-Dev] RelStorage branch 1.4.0-fastimport

Shane Hathaway shane at hathawaymix.org
Tue Jan 11 14:14:51 EST 2011


On 01/11/2011 07:06 AM, David Blewett wrote:
> On Thu, Jan 6, 2011 at 11:51 PM, Shane Hathaway<shane at hathawaymix.org>  wrote:
>>> I am no zodb or relstorage expert, but the changes for the
>>> --single-transaction code look good to me.
>>
>> I looked at that branch before, but I felt like the changes were
>> complicated enough to require a comparison with simpler solutions first.
>>   In particular, Postgres has an option to disable fsync.  Set it in
>> postgresql.conf.  Disabling fsync is not normally recommended, but for a
>> large import it's obviously a good idea.  Would you compare the speed of
>> --single-transaction with disabled fsync on vanilla RelStorage?
>
> Sorry, it's been awhile since I started work on that branch. Disabling
> fsync is an option for the load, and it should help. However, using a
> single transaction is much faster in PostgreSQL. Off the top of my
> head, I can't recall if the branch also uses COPY mode. I recall
> encountering some problems trying to get COPY to work correctly.
> Single-transaction mode + COPY, however, is the fastest way to get
> data into PostgreSQL.

Right, but I want zodbconvert to remain a very generic tool.  I think of 
zodbconvert as a reference implementation.  A tool that uses PostgreSQL 
COPY is a good idea but it ought to be a different tool.

IMHO, it's actually pretty easy to write optimized ZODB conversion 
tools.  I would suggest writing conversion tools as independent 
packages, meaning they probably should not import RelStorage, but 
instead talk to the database directly.

Shane


More information about the ZODB-Dev mailing list