HBase
  1. HBase
  2. HBASE-2673

Investigate consistency of intra-row scans

    Details

    • Type: Task Task
    • Status: Resolved
    • Priority: Major Major
    • Resolution: Won't Fix
    • Affects Version/s: 0.90.0
    • Fix Version/s: None
    • Component/s: documentation, regionserver
    • Labels:
      None

      Description

      I have an intuition that intra-row scanning probably does not provide a consistent view of the row. We should investigate how true this is, and document what the interaction of the feature is with the guarantee, etc.

        Activity

        Transition Time In Source Status Execution Times Last Executer Last Execution Date
        Open Open Resolved Resolved
        1500d 21h 4m 1 Misty Stanley-Jones 16/Jul/14 02:53
        Misty Stanley-Jones made changes -
        Field Original Value New Value
        Resolution Won't Fix [ 2 ]
        Status Open [ 1 ] Resolved [ 5 ]
        Hide
        Misty Stanley-Jones added a comment -

        Stack wanted to punt this in 2011. I am going to quietly close it. If it needs to be reopened, please do so.

        Show
        Misty Stanley-Jones added a comment - Stack wanted to punt this in 2011. I am going to quietly close it. If it needs to be reopened, please do so.
        Hide
        stack added a comment -

        I say punt on this. I already updated our acid doc. to say that intra-row scanning does not allow consistent view.

        Show
        stack added a comment - I say punt on this. I already updated our acid doc. to say that intra-row scanning does not allow consistent view.
        Hide
        Todd Lipcon added a comment -

        I thought about this a bit tonight. I think this is essentially impossible to implement unless we do the following:

        • Add logical timestamps to HFiles (a few bytes per KV if we use vints and relative to an hfile-wide meta entry)
        • Add to the scanner API so that each scan result object also returns the current logical timestamp
        • Add logical timestamps to HLog entries so that a server that replays the edits maintains the same logical timestamps of each row.

        I think these are all needed in order to maintain consistency in the face of failure or through a flush operation.

        Rather than do all of the above, I think we should simply document in Scanner.setBatch that using intra-row scanning loses the consistency guarantee. Also we'll want to augment the acid guarantees doc to state this.

        Show
        Todd Lipcon added a comment - I thought about this a bit tonight. I think this is essentially impossible to implement unless we do the following: Add logical timestamps to HFiles (a few bytes per KV if we use vints and relative to an hfile-wide meta entry) Add to the scanner API so that each scan result object also returns the current logical timestamp Add logical timestamps to HLog entries so that a server that replays the edits maintains the same logical timestamps of each row. I think these are all needed in order to maintain consistency in the face of failure or through a flush operation. Rather than do all of the above, I think we should simply document in Scanner.setBatch that using intra-row scanning loses the consistency guarantee. Also we'll want to augment the acid guarantees doc to state this.
        Hide
        ryan rawson added a comment -

        The fix for HBASE-2616 should help here actually...

        Sent from my iPad

        Show
        ryan rawson added a comment - The fix for HBASE-2616 should help here actually... Sent from my iPad
        Todd Lipcon created issue -

          People

          • Assignee:
            Todd Lipcon
            Reporter:
            Todd Lipcon
          • Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development