That's the lock we take out on the server-side when you drop a view. The timeout is controlled by the hbase.rowlock.wait.duration config parameter. The default is 30 seconds which is already way more time than you'd need to drop the view (which amounts to deleting a handful of rows from the SYSTEM.CATALOG table).
Would you be able to put a standalone test case together for this to help us get to the bottom of it? - create a table - create 4000 views - drop one view Thanks, James On Mon, Jun 8, 2015 at 9:57 AM, Arun Kumaran Sabtharishi <[email protected]> wrote: > Hello James, > > Thanks for the reply. Here are the answers for the questions you have asked. > > > 1.) What's different between the two environments (i.e. the working and > not working ones)? > > The not working ones has more number of views than the working ones. > > 2.) Do you mean 1.3M views or 1.3M rows? > > I meant 1.3 Rows. > > 3.) Do you have any indexes on your views? > > No. > > 4.) Have you tried profiling it? > > No. Can you tell me or point to me how would I do profiling in phoenix? > > The below is the time out exception thrown when I tried to execute the drop > view command via java. > > Mon Jun 08 11:53:42 CDT 2015, > org.apache.hadoop.hbase.client.RpcRetryingCaller@286f66, > java.io.IOException: java.io.IOException: Timed out waiting for lock for > row: \x00\x00PHOENIX_VIEW_ARUN > at > org.apache.hadoop.hbase.regionserver.HRegion.getRowLock(HRegion.java:3580) > at > org.apache.hadoop.hbase.regionserver.HRegion.getRowLock(HRegion.java:3605) > at > org.apache.phoenix.coprocessor.MetaDataEndpointImpl.acquireLock(MetaDataEndpointImpl.java:828) > at > org.apache.phoenix.coprocessor.MetaDataEndpointImpl.dropTable(MetaDataEndpointImpl.java:939) > at > org.apache.phoenix.coprocessor.generated.MetaDataProtos$MetaDataService.callMethod(MetaDataProtos.java:7768) > at > org.apache.hadoop.hbase.regionserver.HRegion.execService(HRegion.java:5685) > at > org.apache.hadoop.hbase.regionserver.HRegionServer.execServiceOnRegion(HRegionServer.java:3421) > at > org.apache.hadoop.hbase.regionserver.HRegionServer.execService(HRegionServer.java:3403) > at > org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:29929) > at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2031) > at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:108) > at > org.apache.hadoop.hbase.ipc.RpcExecutor.consumerLoop(RpcExecutor.java:116) > at org.apache.hadoop.hbase.ipc.RpcExecutor$1.run(RpcExecutor.java:96) > at java.lang.Thread.run(Thread.java:722) > > Mon Jun 08 11:54:32 CDT 2015, > org.apache.hadoop.hbase.client.RpcRetryingCaller@286f66, > java.io.IOException: java.io.IOException: Timed out waiting for lock for > row: \x00\x00PHOENIX_VIEW_ARUN > at > org.apache.hadoop.hbase.regionserver.HRegion.getRowLock(HRegion.java:3580) > at > org.apache.hadoop.hbase.regionserver.HRegion.getRowLock(HRegion.java:3605) > at > org.apache.phoenix.coprocessor.MetaDataEndpointImpl.acquireLock(MetaDataEndpointImpl.java:828) > at > org.apache.phoenix.coprocessor.MetaDataEndpointImpl.dropTable(MetaDataEndpointImpl.java:939) > at > org.apache.phoenix.coprocessor.generated.MetaDataProtos$MetaDataService.callMethod(MetaDataProtos.java:7768) > at > org.apache.hadoop.hbase.regionserver.HRegion.execService(HRegion.java:5685) > at > org.apache.hadoop.hbase.regionserver.HRegionServer.execServiceOnRegion(HRegionServer.java:3421) > at > org.apache.hadoop.hbase.regionserver.HRegionServer.execService(HRegionServer.java:3403) > at > org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:29929) > at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2031) > at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:108) > at > org.apache.hadoop.hbase.ipc.RpcExecutor.consumerLoop(RpcExecutor.java:116) > at org.apache.hadoop.hbase.ipc.RpcExecutor$1.run(RpcExecutor.java:96) > at java.lang.Thread.run(Thread.java:722) > > Mon Jun 08 11:55:23 CDT 2015, > org.apache.hadoop.hbase.client.RpcRetryingCaller@286f66, > java.io.IOException: java.io.IOException: Timed out waiting for lock for > row: \x00\x00PHOENIX_VIEW_ARUN > at > org.apache.hadoop.hbase.regionserver.HRegion.getRowLock(HRegion.java:3580) > at > org.apache.hadoop.hbase.regionserver.HRegion.getRowLock(HRegion.java:3605) > at > org.apache.phoenix.coprocessor.MetaDataEndpointImpl.acquireLock(MetaDataEndpointImpl.java:828) > at > org.apache.phoenix.coprocessor.MetaDataEndpointImpl.dropTable(MetaDataEndpointImpl.java:939) > at > org.apache.phoenix.coprocessor.generated.MetaDataProtos$MetaDataService.callMethod(MetaDataProtos.java:7768) > at > org.apache.hadoop.hbase.regionserver.HRegion.execService(HRegion.java:5685) > at > org.apache.hadoop.hbase.regionserver.HRegionServer.execServiceOnRegion(HRegionServer.java:3421) > at > org.apache.hadoop.hbase.regionserver.HRegionServer.execService(HRegionServer.java:3403) > at > org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:29929) > at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2031) > at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:108) > at > org.apache.hadoop.hbase.ipc.RpcExecutor.consumerLoop(RpcExecutor.java:116) > at org.apache.hadoop.hbase.ipc.RpcExecutor$1.run(RpcExecutor.java:96) > at java.lang.Thread.run(Thread.java:722) > > > at > org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithRetries(RpcRetryingCaller.java:129) > at > org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithRetries(RpcRetryingCaller.java:90) > at > org.apache.hadoop.hbase.ipc.RegionCoprocessorRpcChannel.callExecService(RegionCoprocessorRpcChannel.java:96) > at > org.apache.hadoop.hbase.ipc.CoprocessorRpcChannel.callMethod(CoprocessorRpcChannel.java:57) > at > org.apache.phoenix.coprocessor.generated.MetaDataProtos$MetaDataService$Stub.dropTable(MetaDataProtos.java:7921) > at > org.apache.phoenix.query.ConnectionQueryServicesImpl$8.call(ConnectionQueryServicesImpl.java:1303) > at > org.apache.phoenix.query.ConnectionQueryServicesImpl$8.call(ConnectionQueryServicesImpl.java:1289) > at org.apache.hadoop.hbase.client.HTable$17.call(HTable.java:1571) > at java.util.concurrent.FutureTask.run(FutureTask.java:262) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) > at java.lang.Thread.run(Thread.java:745) > Caused by: java.io.IOException: java.io.IOException: Timed out waiting for > lock for row: \x00\x00PHOENIX_VIEW_ARUN > at > org.apache.hadoop.hbase.regionserver.HRegion.getRowLock(HRegion.java:3580) > at > org.apache.hadoop.hbase.regionserver.HRegion.getRowLock(HRegion.java:3605) > at > org.apache.phoenix.coprocessor.MetaDataEndpointImpl.acquireLock(MetaDataEndpointImpl.java:828) > at > org.apache.phoenix.coprocessor.MetaDataEndpointImpl.dropTable(MetaDataEndpointImpl.java:939) > at > org.apache.phoenix.coprocessor.generated.MetaDataProtos$MetaDataService.callMethod(MetaDataProtos.java:7768) > at > org.apache.hadoop.hbase.regionserver.HRegion.execService(HRegion.java:5685) > at > org.apache.hadoop.hbase.regionserver.HRegionServer.execServiceOnRegion(HRegionServer.java:3421) > at > org.apache.hadoop.hbase.regionserver.HRegionServer.execService(HRegionServer.java:3403) > at > org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:29929) > at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2031) > at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:108) > at > org.apache.hadoop.hbase.ipc.RpcExecutor.consumerLoop(RpcExecutor.java:116) > at org.apache.hadoop.hbase.ipc.RpcExecutor$1.run(RpcExecutor.java:96) > at java.lang.Thread.run(Thread.java:722) > > at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) > at > sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) > at > sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) > at java.lang.reflect.Constructor.newInstance(Constructor.java:526) > at > org.apache.hadoop.ipc.RemoteException.instantiateException(RemoteException.java:106) > at > org.apache.hadoop.ipc.RemoteException.unwrapRemoteException(RemoteException.java:95) > at > org.apache.hadoop.hbase.protobuf.ProtobufUtil.getRemoteException(ProtobufUtil.java:304) > at > org.apache.hadoop.hbase.protobuf.ProtobufUtil.execService(ProtobufUtil.java:1629) > at > org.apache.hadoop.hbase.ipc.RegionCoprocessorRpcChannel$1.call(RegionCoprocessorRpcChannel.java:93) > at > org.apache.hadoop.hbase.ipc.RegionCoprocessorRpcChannel$1.call(RegionCoprocessorRpcChannel.java:90) > at > org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithRetries(RpcRetryingCaller.java:114) > ... 11 more > Caused by: > org.apache.hadoop.hbase.ipc.RemoteWithExtrasException(java.io.IOException): > java.io.IOException: Timed out waiting for lock for row: > \x00\x00PHOENIX_VIEW_ARUN > at > org.apache.hadoop.hbase.regionserver.HRegion.getRowLock(HRegion.java:3580) > at > org.apache.hadoop.hbase.regionserver.HRegion.getRowLock(HRegion.java:3605) > at > org.apache.phoenix.coprocessor.MetaDataEndpointImpl.acquireLock(MetaDataEndpointImpl.java:828) > at > org.apache.phoenix.coprocessor.MetaDataEndpointImpl.dropTable(MetaDataEndpointImpl.java:939) > at > org.apache.phoenix.coprocessor.generated.MetaDataProtos$MetaDataService.callMethod(MetaDataProtos.java:7768) > at > org.apache.hadoop.hbase.regionserver.HRegion.execService(HRegion.java:5685) > at > org.apache.hadoop.hbase.regionserver.HRegionServer.execServiceOnRegion(HRegionServer.java:3421) > at > org.apache.hadoop.hbase.regionserver.HRegionServer.execService(HRegionServer.java:3403) > at > org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:29929) > at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2031) > at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:108) > at > org.apache.hadoop.hbase.ipc.RpcExecutor.consumerLoop(RpcExecutor.java:116) > at org.apache.hadoop.hbase.ipc.RpcExecutor$1.run(RpcExecutor.java:96) > at java.lang.Thread.run(Thread.java:722) > > at org.apache.hadoop.hbase.ipc.RpcClient.call(RpcClient.java:1457) > at > org.apache.hadoop.hbase.ipc.RpcClient.callBlockingMethod(RpcClient.java:1661) > at > org.apache.hadoop.hbase.ipc.RpcClient$BlockingRpcChannelImplementation.callBlockingMethod(RpcClient.java:1719) > at > org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$BlockingStub.execService(ClientProtos.java:30352) > at > org.apache.hadoop.hbase.protobuf.ProtobufUtil.execService(ProtobufUtil.java:1625) > ... 14 more > [2015-06-08 11:55:34,085] [INFO ] > [org.springframework.beans.factory.xml.XmlBeanDefinitionReader] [main] > Loading XML bean definitions from class path resource > [org/springframework/jdbc/support/sql-error-codes.xml] > > Thanks, > Arun
