I read that CONSISTENCY imposes table locking even for read operations
which means that I will continue using CONCURRENCY mode.  Additionally, I
will not run both update processes at the same time to avoid the problem I
have been having.

On Sat, Dec 19, 2015 at 11:01 PM, Caroline Beltran <
caroline.d.belt...@gmail.com> wrote:

> Alan, I think you are right.  I backed up then restored my database.  Next
> I installed SuperServer and everything was going very well.  Here are my
> stats:
>
> Database header page information:
>         Flags                   0
>         Checksum                12345
>         Generation              22516
>         Page size               4096
>         ODS version             11.2
>         Oldest transaction      22474
>         Oldest active           22475
>         Oldest snapshot         22475
>         Next transaction        22476
>         Bumped transaction      1
>         Sequence number         0
>         Next attachment ID      34
>         Implementation ID       26
>         Shadow count            0
>         Page buffers            0
>         Next header page        0
>         Database dialect        3
>         Creation date           Dec 19, 2015 20:00:46
>         Attributes              force write
>
>     Variable header data:
>         Sweep interval:         0
>         *END*
>
> Then I started a secondary process that also updates the database and
> within a few minutes, my stats did not look as they did before:
>
> Database header page information:
>         Flags                   0
>         Checksum                12345
>         Generation              28442
>         Page size               4096
>         ODS version             11.2
>         Oldest transaction      25127
>         Oldest active           25128
>         Oldest snapshot         25128
>         Next transaction        28396
>         Bumped transaction      1
>         Sequence number         0
>         Next attachment ID      40
>         Implementation ID       26
>         Shadow count            0
>         Page buffers            0
>         Next header page        0
>         Database dialect        3
>         Creation date           Dec 19, 2015 20:00:46
>         Attributes              force write
>
>     Variable header data:
>         Sweep interval:         0
>         *END*
>
> This is when I noticed that things locked up.  I stopped all of the update
> processes and waited a minute or two and things went back to normal and
> everything was accessible.
>
> Database header page information:
>         Flags                   0
>         Checksum                12345
>         Generation              29520
>         Page size               4096
>         ODS version             11.2
>         Oldest transaction      29446
>         Oldest active           29447
>         Oldest snapshot         29447
>         Next transaction        29448
>         Bumped transaction      1
>         Sequence number         0
>         Next attachment ID      66
>         Implementation ID       26
>         Shadow count            0
>         Page buffers            0
>         Next header page        0
>         Database dialect        3
>         Creation date           Dec 19, 2015 20:00:46
>         Attributes              force write
>
>     Variable header data:
>         Sweep interval:         0
>         *END*
>
>
> All of my non-mutable operations (e.g. SELECTs) are read access
> transactions with isolation mode readcommitted.
>
> All of my mutable operations (INSERTs and UPDATEs) are write access
> transactions with isolation mode concurrency with wait lock resolution.
>
>
> The weird thing about this is that I can run the primary process by itself
> or the secondary process by itself and there are no issues whatsoever.  But
> if I run both concurrently, that is when this issue happens.
>
> Process 1 SELECTs from table1 and table2 to determine the INSERTs and
> UPDATEs to table1, table2, and table3.
>
> Process 2 SELECTs from table1 and UPDATES table1
>
> I am now thinking that when both processes run concurrently transactions
> may be overlapping one another.  For example, a transaction to edit record1
> may begin while another transaction begins to edit other fields belonging
> to the same record.
>
> I may try changing my mutable operations from CONCURRENCY to CONSISTENCY
> to see if this helps.
>
> On Sat, Dec 19, 2015 at 8:32 PM, 'Alan McDonald' a...@meta.com.au
> [firebird-support] <firebird-support@yahoogroups.com> wrote:
>
>>
>>
>> I can reproduce this 'stalling' behavior.  At the moment, the application
>> is importing records without delay.  CPU consumption remains very low.
>>
>> To stall FB, I will now run a query that will scan several thousands of
>> records that have just been INSERTed and UPDATEd.  Before I run this query,
>> here are my stats:
>>
>> Database header page information:
>>         Flags                   0
>>         Checksum                12345
>>         Generation              65205
>>         Page size               4096
>>         ODS version             11.2
>>         Oldest transaction      65091
>>         Oldest active           65092
>>         Oldest snapshot         65092
>>         Next transaction        65193
>>         Bumped transaction      1
>>         Sequence number         0
>>         Next attachment ID      64
>>         Implementation ID       26
>>         Shadow count            0
>>         Page buffers            0
>>         Next header page        0
>>         Database dialect        3
>>         Creation date           Dec 19, 2015 14:27:42
>>         Attributes              force write
>>
>>     Variable header data:
>>         Sweep interval:         0
>>         *END*
>>
>> The query normally takes less a few  seconds and is now stalled
>> (7:18PM).  My application's import process has also stalled and the web
>> application is not serving pages.  FB CPU consumption is at approx 1-2% and
>> Read and Write I/O is very active, there is plenty of disk activity going
>> on.
>>
>> I was using FB 2.5.4 and upgraded to 2.5.5 Superserver but the problem is
>> the same.  Running on Windows 2012.
>>
>> The FB Server is definitely doing something, 35 minutes later, here are
>> the stats:
>>
>> Database header page information:
>>         Flags                   0
>>         Checksum                12345
>>         Generation              66143
>>         Page size               4096
>>         ODS version             11.2
>>         Oldest transaction      65091
>>         Oldest active           65092
>>         Oldest snapshot         65092
>>         Next transaction        66131
>>         Bumped transaction      1
>>         Sequence number         0
>>         Next attachment ID      84
>>         Implementation ID       26
>>         Shadow count            0
>>         Page buffers            0
>>         Next header page        0
>>         Database dialect        3
>>         Creation date           Dec 19, 2015 14:27:42
>>         Attributes              force write
>>
>>     Variable header data:
>>         Sweep interval:         0
>>         *END*
>>
>> Unfortunately, this is going painfully slow and I will shut down FB
>> 2.5.5, backup and restore the database, and try with SuperClassic instead
>> of SuperServer.
>>
>>
>>
>> Sounds more like a transaction management issue to me.
>>
>> You need to tell us what component set you are using for connection and
>> the transaction settings they use.
>>
>> Your insert transactions should be committing, not commit-retaining or
>> whatever your component set describes this as.
>>
>> You should do the inset in batches and hard commit more frequently.
>>
>> Alan
>>
>>
>>
>> 
>>
>
>
  • [firebird... Caroline Beltran caroline.d.belt...@gmail.com [firebird-support]
    • [fir... Caroline Beltran caroline.d.belt...@gmail.com [firebird-support]
      • ... Caroline Beltran caroline.d.belt...@gmail.com [firebird-support]
        • ... 'Alan McDonald' a...@meta.com.au [firebird-support]
          • ... Caroline Beltran caroline.d.belt...@gmail.com [firebird-support]
            • ... Caroline Beltran caroline.d.belt...@gmail.com [firebird-support]

Reply via email to