FAQ
Always flush HLog on root or meta region updates
------------------------------------------------

Key: HBASE-1148
URL: https://issues.apache.org/jira/browse/HBASE-1148
Project: Hadoop HBase
Issue Type: Bug
Components: regionserver
Affects Versions: 0.19.0, 0.19.1, 0.20.0
Reporter: Jim Kellerman
Assignee: Jim Kellerman
Priority: Critical


Flushing an HLog does not currently guarantee that the updates will be visible (see HADOOP-4379), however in the case of root or meta region updates, this is critical.

I was able to create a situation by killing both the root and meta region servers, from which the cluster recovered, but because of the missed edits, clients found the old parent region rather than the new child regions because the fact that the parent region had split was not in the HLog of the crashed region servers (the master knew because of the MSG_REGION_SPLIT message it received) but the clients read the meta table and because that change was lost, clients were trying to find the parent region.

So, when a SequenceFile.Writer.sync() guarantees that what has been written will be visible to new readers, we need to modify HLog so that if it is writing an update to the root or meta regions, that it immediately flushes (syncs) the log file so that the changes will be visible when the log file is recovered.



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

Search Discussions

  • stack (JIRA) at Jan 23, 2009 at 7:42 pm
    [ https://issues.apache.org/jira/browse/HBASE-1148?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12666668#action_12666668 ]

    stack commented on HBASE-1148:
    ------------------------------

    I was thinking on this last night and I suppose its not going to be easy. An HRS carries the HLog. We'd have to make it so IF THE EDIT IS FOR THE CATALOG TABLE, ignore general flush settings and write out the .META. and -ROOT- edits.

    I wonder what effect this will have on performance? If it slows things down, thats probably ok since catalog edits are relatively rare but I wonder if it would bring the server hosting catalog regions to a crawl?
    Always flush HLog on root or meta region updates
    ------------------------------------------------

    Key: HBASE-1148
    URL: https://issues.apache.org/jira/browse/HBASE-1148
    Project: Hadoop HBase
    Issue Type: Bug
    Components: regionserver
    Affects Versions: 0.19.0, 0.19.1, 0.20.0
    Reporter: Jim Kellerman
    Assignee: Jim Kellerman
    Priority: Critical

    Flushing an HLog does not currently guarantee that the updates will be visible (see HADOOP-4379), however in the case of root or meta region updates, this is critical.
    I was able to create a situation by killing both the root and meta region servers, from which the cluster recovered, but because of the missed edits, clients found the old parent region rather than the new child regions because the fact that the parent region had split was not in the HLog of the crashed region servers (the master knew because of the MSG_REGION_SPLIT message it received) but the clients read the meta table and because that change was lost, clients were trying to find the parent region.
    So, when a SequenceFile.Writer.sync() guarantees that what has been written will be visible to new readers, we need to modify HLog so that if it is writing an update to the root or meta regions, that it immediately flushes (syncs) the log file so that the changes will be visible when the log file is recovered.
    --
    This message is automatically generated by JIRA.
    -
    You can reply to this email to add a comment to the issue online.
  • Jim Kellerman (JIRA) at Jan 23, 2009 at 11:12 pm
    [ https://issues.apache.org/jira/browse/HBASE-1148?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

    Jim Kellerman resolved HBASE-1148.
    ----------------------------------

    Resolution: Fixed
    Fix Version/s: 0.20.0
    0.19.1

    Committed to branch and trunk
    Always flush HLog on root or meta region updates
    ------------------------------------------------

    Key: HBASE-1148
    URL: https://issues.apache.org/jira/browse/HBASE-1148
    Project: Hadoop HBase
    Issue Type: Bug
    Components: regionserver
    Affects Versions: 0.19.0, 0.19.1, 0.20.0
    Reporter: Jim Kellerman
    Assignee: Jim Kellerman
    Priority: Critical
    Fix For: 0.19.1, 0.20.0


    Flushing an HLog does not currently guarantee that the updates will be visible (see HADOOP-4379), however in the case of root or meta region updates, this is critical.
    I was able to create a situation by killing both the root and meta region servers, from which the cluster recovered, but because of the missed edits, clients found the old parent region rather than the new child regions because the fact that the parent region had split was not in the HLog of the crashed region servers (the master knew because of the MSG_REGION_SPLIT message it received) but the clients read the meta table and because that change was lost, clients were trying to find the parent region.
    So, when a SequenceFile.Writer.sync() guarantees that what has been written will be visible to new readers, we need to modify HLog so that if it is writing an update to the root or meta regions, that it immediately flushes (syncs) the log file so that the changes will be visible when the log file is recovered.
    --
    This message is automatically generated by JIRA.
    -
    You can reply to this email to add a comment to the issue online.

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupdev @
categorieshbase, hadoop
postedJan 23, '09 at 4:39a
activeJan 23, '09 at 11:12p
posts3
users1
websitehbase.apache.org

1 user in discussion

Jim Kellerman (JIRA): 3 posts

People

Translate

site design / logo © 2022 Grokbase