asterixdb-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF subversion and git services (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (ASTERIXDB-1160) Possible deadlock between LogManager and LogFlusher
Date Mon, 09 Nov 2015 06:11:10 GMT

    [ 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 <jenkins@fulliautomatix.ics.uci.edu>
Reviewed-by: abdullah alamoudi <bamousaa@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)

Mime
View raw message