You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@asterixdb.apache.org by "ASF subversion and git services (JIRA)" <ji...@apache.org> on 2015/11/09 07:11:10 UTC

[jira] [Commented] (ASTERIXDB-1160) Possible deadlock between LogManager and LogFlusher

    [ https://issues.apache.org/jira/browse/ASTERIXDB-1160?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14996077#comment-14996077 ] 

ASF subversion and git services commented on ASTERIXDB-1160:
------------------------------------------------------------

Commit eacff78183c3f647205e5768d51488ef6a6dae8a in incubator-asterixdb's branch refs/heads/master from [~mhubail]
[ https://git-wip-us.apache.org/repos/asf?p=incubator-asterixdb.git;h=eacff78 ]

ASTERIXDB-1160: Break deadlock between LogManager and LogFlusher

This change introduces a new thread in LogManager to log FLUSH logs.
This will prevent LogFlusher thread from waiting on itself until FLUSH logs are flushed to disk.

Change-Id: I0b414f5ab92e1c68c8aafbaab859c644ba399dcb
Reviewed-on: https://asterix-gerrit.ics.uci.edu/475
Tested-by: Jenkins <je...@fulliautomatix.ics.uci.edu>
Reviewed-by: abdullah alamoudi <ba...@gmail.com>


> Possible deadlock between LogManager and LogFlusher
> ---------------------------------------------------
>
>                 Key: ASTERIXDB-1160
>                 URL: https://issues.apache.org/jira/browse/ASTERIXDB-1160
>             Project: Apache AsterixDB
>          Issue Type: Bug
>          Components: Transactions
>            Reporter: Murtadha Hubail
>            Assignee: Murtadha Hubail
>
> Currently when LogFlusher thread flushes a full log tail buffer, it calls PrimaryIndexOpeartionTracker.completeOperation. If the completeOperation call results in generating a FLUSH log type and the LogManager has no empty log buffers available to log it, a deadlock happens.
> To reproduce the deadlock with high probabilty, set the number of log pages in the asterix configuration to 1 and a small size, then load some data to the system.
> The proposed solution is to have a different thread responsible for logging FLUSH logs. This way logging FLUSH logs will have to wait until an empty log buffer becomes available to the LogManager on a different thread than the LogFlusher.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)