Uploaded image for project: 'HBase'
  1. HBase
  2. HBASE-18169 Coprocessor fix and cleanup before 2.0.0 release
  3. HBASE-18905

Allow CPs to request flush on Region and know the completion of the requested flush

    XMLWordPrintableJSON

Details

    • Sub-task
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 2.0.0-alpha-4, 2.0.0
    • Coprocessors
    • None
    • Incompatible change, Reviewed
    • Hide
      Add a FlushLifeCycleTracker which is similiar to CompactionLifeCycleTracker for tracking flush.
      Add a requestFlush method in Region interface to let CP users request flush on a region. The operation is asynchronous, you need to use the FlushLifeCycleTracker to track the flush.
      The difference with CompactionLifeCycleTracker is that, flush is per region so we do not use Store as a parameter of the methods. And also, notExecuted means the whole flush has not been executed, and afterExecution means the whole flush has been finished, so we do not have a separated completed method. A flush will be ended either by notExecuted or afterExecution.
      Show
      Add a FlushLifeCycleTracker which is similiar to CompactionLifeCycleTracker for tracking flush. Add a requestFlush method in Region interface to let CP users request flush on a region. The operation is asynchronous, you need to use the FlushLifeCycleTracker to track the flush. The difference with CompactionLifeCycleTracker is that, flush is per region so we do not use Store as a parameter of the methods. And also, notExecuted means the whole flush has not been executed, and afterExecution means the whole flush has been finished, so we do not have a separated completed method. A flush will be ended either by notExecuted or afterExecution.

    Description

      Follow up for HBASE-18183
      As per that Jira, we keep only requestCompaction API in Region. We did not have any such for flush in Region. Only API which was there is a flush which will block the callee unless flush is done. This issue has to tacke
      1. Decide whether we need a requestFlush in Region and if so add
      2. Whether the requestCompaction (And requestFlush too) should return a Future? Right now the former do not return any but allow to pass a CompactionLifeCycleTracker which will get notified on start and end of compaction.

      Attachments

        1. HBASE-18905.patch
          97 kB
          Duo Zhang
        2. HBASE-18905.patch
          97 kB
          Duo Zhang
        3. HBASE-18905-addendum.patch
          2 kB
          Duo Zhang
        4. HBASE-18905-v1.patch
          98 kB
          Duo Zhang

        Issue Links

          Activity

            People

              zhangduo Duo Zhang
              anoop.hbase Anoop Sam John
              Votes:
              0 Vote for this issue
              Watchers:
              8 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: