Re: [Dbi-interbase-devel] Deadlocks galore
Status: Beta
Brought to you by:
edpratomo
From: Mark D. A. <md...@di...> - 2000-09-25 15:23:10
|
> Commit-retaining should IMHO only be used in autocommit mode (it only > matters in autocommit mode as commits are more infrequent in normal mode, > so the performance hit from starting a new transcation is much smaller) i don't think commit_retaining should be the default behavior in either mode, as i think i've ranted about previously in this forum :). it has a very specialized use, when there is only a single writer for a table. it should be an optional behavior, set at create time or commit time. > > Not having an active transcation after a commit is important, or you will > have active transactions across requests (this may be a very long > time) and a newly started reuest will be working with a really > (really) old snapshot in stead of a new one. with commit_retaining, it'll be an old snapshot regardless. > > I would suggest that: > * commit_retaining should only be used for autocommit after queries. i disagree on this one. based on using other transaction parameters, there are other ways of improving the performance of these, without the usually disastrous semantics of commit_retaining. > * Explicit commits/rollbacks always commit_transcation / > rollback_transaction and then end the transaction, completely. > * any operation that needs a query should check to see if one is active > and start one if not. the above is how the new dbd driver works in autocommit mode, but not how it used to work, and it was definitely a problem. i haven't ranted as much about non-autocommit because i'm not using it that way. > I don't know if these changes would fix my immediate problem, but they are > correct and I expect they will fix my problem. i've been having a variety of problems with my apache/modperl/dbi system, and not using the old driver (which had a variety of problems, some in dbd and some in ibperl) has now allowed me to pay attention to some database server-side problems. are you using SS or classic? on linux? local or remote mode? it'd be nice to know there is someone else doing the same thing architecture as me -- most of the discussion on the support lists is concerning all these moribund borland fabrications like ibx/delphi/etc. -mda |