суббота, 22 июня 2013 г., 8:26:58 UTC+3 пользователь werner написал:
>
> On 22/06/2013 01:03, graf wrote: 
> > sweep - sort of a garbage collector which removes unused versions of 
> transaction. There is Database header page information, where you can see 
> the the current transaction state, there are two parameters: Oldest 
> transaction and Next transaction. The range from Oldest to Next - is the 
> versions of transactions. The amount of  versions slows down the database 
> speed. So SQLAlchemy is looking somewhere this "Oldest transaction" and 
> after the database works slowly. 
> I am no expert but "oldest transaction" in Firebird only gets locked if 
> a transaction is never released.  Are you doing "commit retaining" in 
> some way - not even sure you can do this via SQLalchemy. 
>
> If you haven't already seen this it might help you find the real cause. 
>
> http://www.ibphoenix.com/resources/documents/general/doc_67 
>
> Werner 
>

Thank you all guys. I found an issue - the do_commit and do_rollback 
methods (the firebird dialect) use retaining=True by default, and there is 
no option to change it. Suppose it is good solution to move this option as 
firebird specific options

    def do_rollback(self, dbapi_connection):
        # Use the retaining feature, that keeps the transaction going
        dbapi_connection.rollback(True)

    def do_commit(self, dbapi_connection):
        # Use the retaining feature, that keeps the transaction going
        dbapi_connection.commit(True)


-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to