Details
-
Bug
-
Status: Resolved
-
Minor
-
Resolution: Fixed
-
1.0.0
-
None
Description
Running YCSB with 16 threads, I see a lot of contention on the table locations cache:
"Thread-15" #36 prio=5 os_prio=0 tid=0x00007f2300391000 nid=0xfb2 waiting for monitor entry [0x00007f229a452000] java.lang.Thread.State: BLOCKED (on object monitor) at org.apache.kudu.client.TableLocationsCache.get(TableLocationsCache.java:62) - locked <0x00000001da767c78> (a java.lang.Object) at org.apache.kudu.client.AsyncKuduClient.getTableLocationEntry(AsyncKuduClient.java:1429) at org.apache.kudu.client.AsyncKuduClient.loopLocateTable(AsyncKuduClient.java:1184) at org.apache.kudu.client.AsyncKuduClient.locateTable(AsyncKuduClient.java:1240) at org.apache.kudu.client.AsyncKuduClient.getTabletLocation(AsyncKuduClient.java:1449)
Since this changes rarely, we should make it a read-write lock.