db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "V.Narayanan (JIRA)" <j...@apache.org>
Subject [jira] Updated: (DERBY-3526) AsynchronousLogShipper#workToDo is blocked while the log shipper sends a log chunk
Date Fri, 14 Mar 2008 04:31:24 GMT

     [ https://issues.apache.org/jira/browse/DERBY-3526?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

V.Narayanan updated DERBY-3526:
-------------------------------

    Attachment: Derby3526.stat
                Derby3526.diff

Attached patch that uses a different object to synchronize
on while calling wait and notifying the log shipper thread.

I am not sure on how to add a test to the replication suite to
test this feature (Should failing the slave be a good test for this)
but then again is the complication of the 2 minute wait.

I did not run the replication suite which I hope to in the afternoon.
But I did test starting the slave, master, executing a few transactions,
failing over and it worked fine.

> AsynchronousLogShipper#workToDo is blocked while the log shipper sends a log chunk
> ----------------------------------------------------------------------------------
>
>                 Key: DERBY-3526
>                 URL: https://issues.apache.org/jira/browse/DERBY-3526
>             Project: Derby
>          Issue Type: Bug
>          Components: Replication
>    Affects Versions: 10.4.0.0, 10.5.0.0
>            Reporter: Jørgen Løland
>            Assignee: V.Narayanan
>         Attachments: Derby3526.diff, Derby3526.stat
>
>
> The replication log shipper thread synchronizes on 'this' both when shipping log records
(shipALogChunk) and when it waits between log shipments. 
> Transaction threads may try to wake up the log shipper because log has arrived that should
be shipped (i.e., through the method workToDo). These threads should not have to wait for
the monitor if the log shipper is currently busy shipping log. The solution is to have two
monitors - one for log shipment and one for waiting between log shipment.
> This may seem like a minor issue, but if the TCP connection between master and slave
is lost e.g. because a network cable has been unplugged, the log shipper will block for 2
minutes on ObjectOutputStream#writeObject.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message