Uploaded image for project: 'HBase'
  1. HBase
  2. HBASE-9915

Performance: isSeeked() in EncodedScannerV2 always returns false

VotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Reviewed
    • Phoenix

    Description

      While debugging why reseek is so slow I found that it is quite broken for encoded scanners.
      The problem is this:
      AbstractScannerV2.reseekTo(...) calls isSeeked() to check whether scanner was seeked or not. If it was it checks whether the KV we want to seek to is in the current block, if not it always consults the index blocks again.
      isSeeked checks the blockBuffer member, which is not used by EncodedScannerV2 and thus always returns false, which in turns causes an index lookup for each reseek.

      Attachments

        1. 9915-0.94.txt
          0.8 kB
          Lars Hofhansl
        2. 9915-trunk.txt
          1 kB
          Lars Hofhansl
        3. 9915-trunk-v2.txt
          1.0 kB
          Lars Hofhansl
        4. 9915-trunk-v2.txt
          1.0 kB
          Lars Hofhansl
        5. profile.png
          57 kB
          Lars Hofhansl

        Issue Links

        Activity

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

          People

            larsh Lars Hofhansl
            larsh Lars Hofhansl
            Votes:
            0 Vote for this issue
            Watchers:
            10 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment