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

Add ability for potentially long-running IPC calls to abort if client disconnects

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 0.90.7, 0.92.1, 0.94.0, 0.95.2
    • 0.94.1, 0.95.0
    • IPC/RPC
    • None
    • Reviewed

    Description

      We recently had a cluster issue where a user was submitting scanners with a very restrictive filter, and then calling next() with a high scanner caching value. The clients would generally time out the next() call and disconnect, but the IPC kept running looking to fill the requested number of rows. Since this was in the context of MR, the tasks making the calls would retry, and the retries wuld be more likely to time out due to contention with the previous still-running scanner next() call. Eventually, the system spiraled out of control.

      We should add a hook to the IPC system so that RPC calls can check if the client has already disconnected. In such a case, the next() call could abort processing, given any further work is wasted. I imagine coprocessor endpoints, etc, could make good use of this as well.

      Attachments

        1. hbase-5973-0.94.txt
          8 kB
          Todd Lipcon
        2. hbase-5973-0.94.txt
          11 kB
          Todd Lipcon
        3. hbase-5973-0.92.txt
          12 kB
          Todd Lipcon
        4. HBASE-5973-0.90.txt
          10 kB
          David S. Wang
        5. hbase-5973.txt
          12 kB
          Todd Lipcon
        6. hbase-5973.txt
          12 kB
          Todd Lipcon
        7. hbase-5973.txt
          12 kB
          Todd Lipcon

        Issue Links

          Activity

            People

              tlipcon Todd Lipcon
              tlipcon Todd Lipcon
              Votes:
              0 Vote for this issue
              Watchers:
              8 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: