[ckan-dev] no autoflush in sqlalchemy

David Read david.read at okfn.org
Mon Jan 17 16:08:39 UTC 2011


David,

Superb! I've created and closed the ticket, and applied the patch. If
you can use a ticket number in the name of the branch that would be
perfect.

Cheers,
Dave

On 17 January 2011 15:37, David Raznick <kindly at gmail.com> wrote:
>
> On Mon, Jan 17, 2011 at 3:07 PM, David Read <david.read at okfn.org> wrote:
>>
>> It seems to me a code simplification with a marginal performance cost
>> - I'm in favour. Anyone else have a view?
>>
>> David
>
> I forgot to mention that it increased the performance on the tests by about
> 5%.  There are less flushes altogether so is faster.
>
>>
>> On 17 January 2011 14:36, David Raznick <david.raznick at okfn.org> wrote:
>> > Hello
>> >
>> > I propose we remove autoflush by default in ckan.  It caused a lot of
>> > bugs
>> > on the version upgrade due to its magical behavior.
>> >
>> > I have a patch in https://bitbucket.org/kindly/ckan/    on branch
>> > feature_switch_autoflush_off_by_default.
>> >
>> > This change simplifies code.  It only took 7 extra flushes/commits to
>> > make
>> > work and there are over 40 instances that we remove autoflush, so as not
>> > to
>> > cause error (I have not removed them in the patch yet).
>> >
>> > Things to know about using flush:
>> >
>> > * Most of the time nothing will change.   A commit implies flush.
>> > * You only need to flush if you expect a query to return an object you
>> > just
>> > saved.    i.e  if you  session.add(obj)  and you expect obj to be in a
>> > session.query.
>> > * A flush is handy when you want to get the primary key out before you
>> > do a
>> > commit.  i.e   session.add(obj);  session.flush();  obj.id  is now
>> > generated.
>> > * You can use them as a limited form of nested transaction.
>> >
>> > I do not see any downsides.
>> >
>> > Thanks
>> >
>> > David
>> >
>> >
>> >
>> >
>> >
>> > _______________________________________________
>> > ckan-dev mailing list
>> > ckan-dev at lists.okfn.org
>> > http://lists.okfn.org/mailman/listinfo/ckan-dev
>> >
>> >
>>
>> _______________________________________________
>> ckan-dev mailing list
>> ckan-dev at lists.okfn.org
>> http://lists.okfn.org/mailman/listinfo/ckan-dev
>
>
> _______________________________________________
> ckan-dev mailing list
> ckan-dev at lists.okfn.org
> http://lists.okfn.org/mailman/listinfo/ckan-dev
>
>




More information about the ckan-dev mailing list