Uploaded image for project: 'Phoenix Omid'
  1. Phoenix Omid
  2. OMID-82 Integrating Omid with Phoenix
  3. OMID-102

Implement visibility filter as pure HBase Filter

VotersWatch issueWatchersLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Sub-task
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 1.0.0
    • None

    Description

      The way Omid currently filters through it's own RegionScanner won't work the way it's implemented (i.e. the way the filtering is done after the next call). The reason is that the state of HBase filters get messed up since these filters will start to see cells that it shouldn't (i.e. cells that would be filtered based on snapshot isolation). It cannot be worked around by manually running filters afterwards because filters may issue seek calls which are handled during the running of scans by HBase.
       
      Instead, the filtering needs to be implemented as a pure HBase filter and that filter needs to delegate to the other, delegate filter once it's determined that the cell is visible. See Tephra's TransactionVisibilityFilter and they way it calls the delegate filter (cellFilters) only after it's determined that the cell is visible. You may run into TEPHRA-169 without including the CellSkipFilter too. 
      Because it'll be easier if you see shadow cells before their corresponding real cells you can prefix instead of suffix the column qualifiers to guarantee that you'd see the shadow cells prior to the actual cells. Or you could buffer cells in your filter prior to omitting them. Another issue would be if the shadow cells aren't found and you need to consult the commit table - I suppose if the shadow cells are first, this logic would be easier to know when it needs to be called.
       
      To reproduce, see the Phoenix unit tests FlappingTransactionIT.testInflightUpdateNotSeen() and testInflightDeleteNotSeen().

      Attachments

        1. bug_fix.patch
          13 kB
          Yoni Gottesman

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            yonigo Yoni Gottesman
            jamestaylor James R. Taylor
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment