hbase-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ted Yu <yuzhih...@gmail.com>
Subject Re: Best way to compact a region after a move?
Date Sun, 30 Dec 2012 17:25:55 GMT
balancerCluster() executes on master. Compaction is region server activity.
So they don't pair naturally.

I answered first part of the question in the thread titled 'How to know
it's time for a major compaction?':

In RegionObserver, we already have the following hook:

  /**
   * Called after the region is reported as open to the master.
   * @param c the environment provided by the region server
   */
  void postOpen(final ObserverContext<
RegionCoprocessorEnvironment> c);

Auto-compaction logic can be triggered through the above hook.

Take a look at the following hook for the second part of your question:

  void postCompact(final ObserverContext<RegionCoprocessorEnvironment> c,
final HStore store,
      StoreFile resultFile) throws IOException;

Cheers

On Sun, Dec 30, 2012 at 8:25 AM, Jean-Marc Spaggiari <
jean-marc@spaggiari.org> wrote:

> Hi,
>
> When I'm balancing manually the regions on my cluster, and I want to
> make sure they are local, so I want to major_compact them each time
> I'm moving them.
>
> On the balanceCluster method, we are returning a list of region to
> move. Which mean they are not yet moved, so I can't compact them
> there.
>
> Is there a place where I shoud hook to compact those regions?
>
> So far, the only idea I found was to start a thread on the
> balancerCluster, wait 1 minute, and compact all the regions I
> returned. But I'm wondering if there is a better way to achieve that?
> Is there a queue where I should place those regions to compact
> instead? Also, I need to know (even if it's just in the logs) when
> those compactions are done.
>
> Thanks,
>
> JM
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message