It is an async call to the region server to request a compaction. Once the request is accepted, the call returned. There is no sync call here. The request is queued and processed by a pool of threads.
Currently, there is a metric to show the queue size. But it doesn't tell how many are for major, and how many are for minor. The queue size is the number of store files pending compact. As I know, there is no work around for now. Jimmy On Thu, May 17, 2012 at 11:42 AM, Chen Song <[email protected]> wrote: > Thanks Jimmy. Meanwhile, is there a work around for this? > > How does compact/major_compact issued from hbase shell handles this under > the hood? Is it eventually calling HBaseAdmin API or HRegion synchronous > API call? > > Thanks > Chen > > On Thu, May 17, 2012 at 2:24 PM, Jimmy Xiang <[email protected]> wrote: > > > I am thinking to add a function to check if a table or region in > compaction > > (major or minor). > > > > I filed HBASE-6033. It won't show status of a specific compaction > request. > > Will this help? > > > > Thanks, > > Jimmy > > > > On Thu, May 17, 2012 at 11:11 AM, Chen Song <[email protected]> > > wrote: > > > > > I would like to schedule major compaction on a region > programmatically. I > > > found the API call below which can properly achieve my goal. > > > > > > HBaseAdmin.majorCompact(String tableOrRegionName) > > > > > > It turns out to be an asynchronous call and there seems no call back > > > parameter that can be specified. How can I validate the compaction > result > > > (e.g., success or failure) ? > > > > > > Thanks > > > Chen > > > > > > > > > -- > Chen Song > Mobile: 518-445-5096 >
