Hi all,
In compactsplitthread.java, the requestCompactionInternal method is like this:
private synchronized CompactionRequest requestCompactionInternal(final
HRegion r, final Store s,
...
ThreadPoolExecutor pool = (!selectNow s.throttleCompaction(size))
? largeCompactions :
In CompactionRunner#run(), we have:
// Now see if we are in correct pool for the size; if not, go to
the correct one.
// We might end up waiting for a while, so cancel the selection.
assert this.compaction.hasSelection();
ThreadPoolExecutor pool =
I think it is a bug. According to the comment above, they just want to put
system compactions(selectNow == false) to the small pool, so the code
should like this
ThreadPoolExecutor pool;
if (selectNow) {
pool = s.throttleCompaction(compaction.getRequest().getSize())
? longCompactions :
: A compact bug?
These code is wrapped by a 'if (this.compaction == null)', so the code will
only be executed when selectNow == false.
2015-04-21 22:49 GMT+08:00 Ted Yu yuzhih...@gmail.com:
In CompactionRunner#run(), we have:
// Now see if we are in correct pool for the size; if not, go
These code is wrapped by a 'if (this.compaction == null)', so the code will
only be executed when selectNow == false.
2015-04-21 22:49 GMT+08:00 Ted Yu yuzhih...@gmail.com:
In CompactionRunner#run(), we have:
// Now see if we are in correct pool for the size; if not, go to
the