Hi Minwoo Kang Any updates here? Where you able to over come the issue with the upgrade? Or by applying the patch?
Regards Ram On Fri, Jan 10, 2020 at 11:44 AM Kang Minwoo <minwoo.k...@outlook.com> wrote: > Thanks for the reply. > It is a lot of help to me. > > Best regards, > Minwoo Kang > > ________________________________________ > 보낸 사람: ramkrishna vasudevan <ramkrishna.s.vasude...@gmail.com> > 보낸 날짜: 2020년 1월 10일 금요일 14:35 > 받는 사람: Hbase-User > 참조: Stack > 제목: Re: Extremely long flush times > > Hi > > In your case you have large compactions going on and at the same time heavy > reads happening. Since there are lot of deletes the scan is spending > sufficient time in file reads. > Since compactions/flushes happens every now and then the readers are > getting reset and that is causing the lock to be acquired and since there > are multiple threads competing your scans suffer more because they are not > able to reset themselves. > > Yes - if the above said case is true for your scenario - then HBASE-13082 > will help you out. Since it avoid scanners being reset on compactions and > only one flushes and that too it is not a hard call to reset. If the > scanner finds the boolean to be set then it resets if not the scan just > goes on . > > Regards > Ram > > On Fri, Jan 10, 2020 at 10:01 AM Kang Minwoo <minwoo.k...@outlook.com> > wrote: > > > Thank you for reply. > > > > All Regions or just the one? > > => just one > > > > Do thread dumps lock thread reading against hdfs every time you take one? > > => yes > > > > Is it always inside in updateReaders? Is there a bad file or lots of > files > > to add to the list? > > => always inside in updateReaders. > > > > ---- > > > > Sorry for the delay in reply. > > > > I had to handle this issue. > > Temporarily, I fixed my code that does not occur in that situation that > is > > read worthlessness cell. > > After that, The issue hasn't occurred. > > > > Background: > > My application deletes out of date data every day. > > And Region is extremely big. Major compaction spent a lot of time. > > tombstone cell remains a long time. > > If the client read full data. there is a lot of worthlessness cells. > > I think it is a reason for lock thread reading hdfs files. > > > > I'm looking at the HBASE-13082[1]. > > (I am not sure HBASE-13082 is related.) > > > > [1]: https://issues.apache.org/jira/browse/HBASE-13082 > > > > Best regards, > > Minwoo Kang > > > > ________________________________________ > > 보낸 사람: Stack <st...@duboce.net> > > 보낸 날짜: 2020년 1월 4일 토요일 03:40 > > 받는 사람: Hbase-User > > 제목: Re: Extremely long flush times > > > > All Regions or just the one? > > > > Do thread dumps lock thread reading against hdfs every time you take one? > > > > Is it always inside in updateReaders? Is there a bad file or lots of > files > > to add to the list? > > > > Yours, > > S > > > > > > > > On Thu, Jan 2, 2020 at 8:34 PM Kang Minwoo <minwoo.k...@outlook.com> > > wrote: > > > > > Hello Users, > > > > > > I met an issue that is flush times is too long. > > > > > > MemStoreFlusher is waiting for a lock. > > > ``` > > > "MemStoreFlusher.0" > > > java.lang.Thread.State: WAITING (parking) > > > at sun.misc.Unsafe.park(Native Method) > > > - parking to wait for <0x00007f0412bddcb8> (a > > > java.util.concurrent.locks.ReentrantLock$NonfairSync) > > > at > > > java.util.concurrent.locks.LockSupport.park(LockSupport.java:175) > > > at > > > > > > java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:836) > > > at > > > > > > java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:870) > > > at > > > > > > java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1199) > > > at > > > > > > java.util.concurrent.locks.ReentrantLock$NonfairSync.lock(ReentrantLock.java:209) > > > at > > > java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:285) > > > at > > > > > > org.apache.hadoop.hbase.regionserver.StoreScanner.updateReaders(StoreScanner.java:692) > > > at > > > > > > org.apache.hadoop.hbase.regionserver.HStore.notifyChangedReadersObservers(HStore.java:1100) > > > at > > > > > > org.apache.hadoop.hbase.regionserver.HStore.updateStorefiles(HStore.java:1079) > > > at > > > org.apache.hadoop.hbase.regionserver.HStore.access$700(HStore.java:118) > > > at > > > > > > org.apache.hadoop.hbase.regionserver.HStore$StoreFlusherImpl.commit(HStore.java:2321) > > > at > > > > > > org.apache.hadoop.hbase.regionserver.HRegion.internalFlushCacheAndCommit(HRegion.java:2430) > > > at > > > > > > org.apache.hadoop.hbase.regionserver.HRegion.internalFlushcache(HRegion.java:2153) > > > at > > > > > > org.apache.hadoop.hbase.regionserver.HRegion.internalFlushcache(HRegion.java:2115) > > > at > > > > > > org.apache.hadoop.hbase.regionserver.HRegion.flushcache(HRegion.java:2005) > > > at > > > org.apache.hadoop.hbase.regionserver.HRegion.flush(HRegion.java:1930) > > > at > > > > > > org.apache.hadoop.hbase.regionserver.MemStoreFlusher.flushRegion(MemStoreFlusher.java:514) > > > at > > > > > > org.apache.hadoop.hbase.regionserver.MemStoreFlusher.flushRegion(MemStoreFlusher.java:475) > > > at > > > > > > org.apache.hadoop.hbase.regionserver.MemStoreFlusher.access$900(MemStoreFlusher.java:75) > > > at > > > > > > org.apache.hadoop.hbase.regionserver.MemStoreFlusher$FlushHandler.run(MemStoreFlusher.java:263) > > > at java.lang.Thread.run(Thread.java:748) > > > Locked ownable synchronizers: > > > - None > > > ``` > > > > > > > > > RPC Handler had the lock. > > > ``` > > > "B.defaultRpcServer.handler" > > > java.lang.Thread.State: RUNNABLE > > > at > org.apache.log4j.Category.getEffectiveLevel(Category.java:442) > > > at org.apache.log4j.Category.isEnabledFor(Category.java:751) > > > at > > > > > > org.apache.commons.logging.impl.Log4JLogger.isTraceEnabled(Log4JLogger.java:303) > > > at > > > org.apache.hadoop.hdfs.BlockReaderLocal.skip(BlockReaderLocal.java:622) > > > - locked <0x00007f0271bcc1c0> (a > > > org.apache.hadoop.hdfs.BlockReaderLocal) > > > at > > > org.apache.hadoop.hdfs.DFSInputStream.seek(DFSInputStream.java:1534) > > > - locked <0x00007f038265f980> (a > > > org.apache.hadoop.hdfs.DFSInputStream) > > > at > > > org.apache.hadoop.fs.FSDataInputStream.seek(FSDataInputStream.java:62) > > > at org.apache.hadoop.hbase.io > > > .hfile.HFileUtil.seekOnMultipleSources(HFileUtil.java:38) > > > at org.apache.hadoop.hbase.io > > > .hfile.HFileBlock$AbstractFSReader.readAtOffset(HFileBlock.java:1431) > > > at org.apache.hadoop.hbase.io > > > > > > .hfile.HFileBlock$FSReaderImpl.readBlockDataInternal(HFileBlock.java:1654) > > > at org.apache.hadoop.hbase.io > > > .hfile.HFileBlock$FSReaderImpl.readBlockData(HFileBlock.java:1538) > > > at org.apache.hadoop.hbase.io > > > .hfile.HFileReaderV2.readBlock(HFileReaderV2.java:452) > > > at org.apache.hadoop.hbase.io > > > > > > .hfile.HFileReaderV2$AbstractScannerV2.readNextDataBlock(HFileReaderV2.java:729) > > > at org.apache.hadoop.hbase.io > > > .hfile.HFileReaderV2$ScannerV2.isNextBlock(HFileReaderV2.java:854) > > > at org.apache.hadoop.hbase.io > > > > > > .hfile.HFileReaderV2$ScannerV2.positionForNextBlock(HFileReaderV2.java:849) > > > at org.apache.hadoop.hbase.io > > > .hfile.HFileReaderV2$ScannerV2._next(HFileReaderV2.java:866) > > > at org.apache.hadoop.hbase.io > > > .hfile.HFileReaderV2$ScannerV2.next(HFileReaderV2.java:886) > > > at > > > > > > org.apache.hadoop.hbase.regionserver.StoreFileScanner.skipKVsNewerThanReadpoint(StoreFileScanner.java:247) > > > at > > > > > > org.apache.hadoop.hbase.regionserver.StoreFileScanner.seek(StoreFileScanner.java:194) > > > at > > > > > > org.apache.hadoop.hbase.regionserver.StoreScanner.seekScanners(StoreScanner.java:350) > > > at > > > > > > org.apache.hadoop.hbase.regionserver.StoreScanner.resetScannerStack(StoreScanner.java:750) > > > at > > > > > > org.apache.hadoop.hbase.regionserver.StoreScanner.checkReseek(StoreScanner.java:725) > > > at > > > > > > org.apache.hadoop.hbase.regionserver.StoreScanner.next(StoreScanner.java:475) > > > at > > > > > > org.apache.hadoop.hbase.regionserver.KeyValueHeap.next(KeyValueHeap.java:150) > > > at > > > > > > org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl.populateResult(HRegion.java:5824) > > > at > > > > > > org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl.nextInternal(HRegion.java:5994) > > > at > > > > > > org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl.nextRaw(HRegion.java:5761) > > > at > > > > > > org.apache.hadoop.hbase.regionserver.RSRpcServices.scan(RSRpcServices.java:2622) > > > - locked <0x00007f035a4df0f8> (a > > > org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl) > > > at > > > > > > org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:33770) > > > at > > org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2216) > > > at > > org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:112) > > > at > > > > > > org.apache.hadoop.hbase.ipc.RpcExecutor.consumerLoop(RpcExecutor.java:133) > > > at > > > org.apache.hadoop.hbase.ipc.RpcExecutor$1.run(RpcExecutor.java:108) > > > at java.lang.Thread.run(Thread.java:748) > > > Locked ownable synchronizers: > > > - <0x00007f02bfaf7a90> (a > > > java.util.concurrent.locks.ReentrantLock$NonfairSync) > > > - <0x00007f0412bddcb8> (a > > > java.util.concurrent.locks.ReentrantLock$NonfairSync) > > > ``` > > > > > > ``` > > > B.defaultRpcServer.handler > > > java.lang.Thread.State: RUNNABLE > > > at java.io.FilterInputStream.read(FilterInputStream.java:83) > > > at > > > > > > org.apache.hadoop.io.compress.BlockDecompressorStream.rawReadInt(BlockDecompressorStream.java:145) > > > at > > > > > > org.apache.hadoop.io.compress.BlockDecompressorStream.decompress(BlockDecompressorStream.java:74) > > > at > > > > > > org.apache.hadoop.io.compress.DecompressorStream.read(DecompressorStream.java:85) > > > at > > java.io.BufferedInputStream.read1(BufferedInputStream.java:284) > > > at > java.io.BufferedInputStream.read(BufferedInputStream.java:345) > > > - locked <0x00007f024acf0bf8> (a java.io.BufferedInputStream) > > > at org.apache.hadoop.io.IOUtils.readFully(IOUtils.java:200) > > > at org.apache.hadoop.hbase.io > > > .compress.Compression.decompress(Compression.java:453) > > > at org.apache.hadoop.hbase.io > > > > > > .encoding.HFileBlockDefaultDecodingContext.prepareDecoding(HFileBlockDefaultDecodingContext.java:90) > > > at org.apache.hadoop.hbase.io > > > .hfile.HFileBlock.unpack(HFileBlock.java:549) > > > at org.apache.hadoop.hbase.io > > > .hfile.HFileReaderV2.readBlock(HFileReaderV2.java:455) > > > at org.apache.hadoop.hbase.io > > > > > > .hfile.HFileReaderV2$AbstractScannerV2.readNextDataBlock(HFileReaderV2.java:729) > > > at org.apache.hadoop.hbase.io > > > .hfile.HFileReaderV2$ScannerV2.isNextBlock(HFileReaderV2.java:854) > > > at org.apache.hadoop.hbase.io > > > > > > .hfile.HFileReaderV2$ScannerV2.positionForNextBlock(HFileReaderV2.java:849) > > > at org.apache.hadoop.hbase.io > > > .hfile.HFileReaderV2$ScannerV2._next(HFileReaderV2.java:866) > > > at org.apache.hadoop.hbase.io > > > .hfile.HFileReaderV2$ScannerV2.next(HFileReaderV2.java:886) > > > at > > > > > > org.apache.hadoop.hbase.regionserver.StoreFileScanner.skipKVsNewerThanReadpoint(StoreFileScanner.java:247) > > > at > > > > > > org.apache.hadoop.hbase.regionserver.StoreFileScanner.seek(StoreFileScanner.java:194) > > > at > > > > > > org.apache.hadoop.hbase.regionserver.StoreScanner.seekScanners(StoreScanner.java:350) > > > at > > > > > > org.apache.hadoop.hbase.regionserver.StoreScanner.resetScannerStack(StoreScanner.java:750) > > > at > > > > > > org.apache.hadoop.hbase.regionserver.StoreScanner.checkReseek(StoreScanner.java:725) > > > at > > > > > > org.apache.hadoop.hbase.regionserver.StoreScanner.next(StoreScanner.java:475) > > > at > > > > > > org.apache.hadoop.hbase.regionserver.KeyValueHeap.next(KeyValueHeap.java:150) > > > at > > > > > > org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl.populateResult(HRegion.java:5824) > > > at > > > > > > org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl.nextInternal(HRegion.java:5994) > > > at > > > > > > org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl.nextRaw(HRegion.java:5761) > > > at > > > > > > org.apache.hadoop.hbase.regionserver.RSRpcServices.scan(RSRpcServices.java:2622) > > > - locked <0x00007f035a4df0f8> (a > > > org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl) > > > at > > > > > > org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:33770) > > > at > > org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2216) > > > at > > org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:112) > > > at > > > > > > org.apache.hadoop.hbase.ipc.RpcExecutor.consumerLoop(RpcExecutor.java:133) > > > at > > > org.apache.hadoop.hbase.ipc.RpcExecutor$1.run(RpcExecutor.java:108) > > > at java.lang.Thread.run(Thread.java:748) > > > Locked ownable synchronizers: > > > - <0x00007f0412bddcb8> (a > > > java.util.concurrent.locks.ReentrantLock$NonfairSync) > > > ``` > > > > > > Versions: > > > - HBase: 1.2.9 > > > - HDFS: 2.7.7 > > > > > > Best regards, > > > Minwoo Kang > > > > > >