Subject FB1.5 RC5. Delay on commit
Author dkorotkevitch
Good afternoon!

I have 2 applications (connections). Both applications use
transactions with params: read_commited, record_version, nowait.

First application inserts a data to one table and call commit after
1000 inserts. After every 50000 insert, application sends a message
to another application, which starts own transaction and call data
processing stored procedure. Inside this procedure I have
for
select ...
from table
where ... and RecID <= :AMaxID
order by ...

where AMaxID is a value of primary key at the time, when procedure
started. I.e. first application will always insert a new data with
RecID > :AMaxID. Althrough this select has a plan based on one index,
not primary key.

At the time, when procedure is running, my first application can
insert a data without any problem, but commit call freeze until
second application commits a transaction (when procedure finished).

As I understand, it happens, because commit should rebuild an index
which uses in "for select" plan. Am I right? Is there any ways to
work-around that?

Thank you,
Dmitri