You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@bookkeeper.apache.org by "Venkateswararao Jujjuri (JV) (JIRA)" <ji...@apache.org> on 2016/12/21 00:49:58 UTC

[jira] [Resolved] (BOOKKEEPER-986) Handle Memtable flush failure

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

Venkateswararao Jujjuri (JV) resolved BOOKKEEPER-986.
-----------------------------------------------------
       Resolution: Fixed
    Fix Version/s: 4.5.0

Issue resolved by merging pull request 92
            [https://github.com/apache/bookkeeper/pull/92]

            {noformat}
            commit 6e738d0c02ebe6710a24aad505e2fd9386bb8821
Author:     Charan Reddy Guttapalem <cg...@salesforce.com>
AuthorDate: Tue Dec 20 16:48:48 2016 -0800
Commit:     JV <vj...@salesforce.com>
CommitDate: Tue Dec 20 16:48:48 2016 -0800

    BOOKKEEPER-986: Handle memtable flush failure
    
    - If the memtable flush is failed previously then
    for the next addEntry call it will try to flush the
    existing snapshot
    
    Author: Charan Reddy Guttapalem <cg...@salesforce.com>
    
    Reviewers: Sijie Guo <si...@apache.org>
    
    Closes #92 from reddycharan/handlememtableflushfailure

            {noformat}
            

> Handle Memtable flush failure
> -----------------------------
>
>                 Key: BOOKKEEPER-986
>                 URL: https://issues.apache.org/jira/browse/BOOKKEEPER-986
>             Project: Bookkeeper
>          Issue Type: Bug
>            Reporter: Charan Reddy Guttapalem
>            Assignee: Charan Reddy Guttapalem
>            Priority: Critical
>             Fix For: 4.5.0
>
>
> Consider the following scenario
>  - currently bookie is in writemode but it is close to the diskusagethreshold and also entrymemtable is close to skipListSizeLimit
>  - it received a addentry call, and now the size of the entrymemtable is greater than skipListSizeLimit
>  - so onSizeLimitReached of SortedLedgerStorage will be called and now lets assume that memtable flush has failed because of diskusagethreshold 
>  - because of previous step, bookie would turn to readonly
>  - now lets assume after certain rounds of compaction bookie reclaimed sufficient storage and went back to writemode
>  - now bookie would be receiving addentry calls
>  - because of outstanding snapshot from previous memtable flush failure, it will never retry to flush memtable 
>  - now the memory start keep going up and up and the process memory gets bloated



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