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

[Coprocessors] Observer notifications on exceptions

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Major
    • Resolution: Won't Fix
    • None
    • None
    • Coprocessors
    • None

    Description

      Benjamin Busjaeger wrote on dev@:

      Is there a reason that RegionObservers are not notified when a get/put/delete fails? Suppose I maintain some (transient) state in my Coprocessor that is created during preGet and discarded during postGet. If the get fails, postGet is not invoked, so I cannot remove the state.

      If there is a good reason, is there any other way to achieve the same thing? If not, would it be possible to add something the snippet below to the code base?

          // pre-get CP hook
          if (withCoprocessor && (coprocessorHost != null)) {
            if (coprocessorHost.preGet(get, results)) {
              return results;
            }
          }
      +    try{
          ...
      +    } catch (Throwable t) {
      +        // failed-get CP hook
      +        if (withCoprocessor && (coprocessorHost != null)) {
      +          coprocessorHost.failedGet(get, results);
      +        }
      +        rethrow t;
      +    }
      
          // post-get CP hook
          if (withCoprocessor && (coprocessorHost != null)) {
            coprocessorHost.postGet(get, results);
          }
      

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              apurtell Andrew Kyle Purtell
              Votes:
              0 Vote for this issue
              Watchers:
              8 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: