Uploaded image for project: 'Kudu'
  1. Kudu
  2. KUDU-435 Java client cleanup for release
  3. KUDU-708

Java client contention on KuduSession lock

    XMLWordPrintableJSON

    Details

    • Type: Sub-task
    • Status: Resolved
    • Priority: Critical
    • Resolution: Fixed
    • Affects Version/s: Private Beta
    • Fix Version/s: None
    • Component/s: client
    • Labels:
      None

      Description

      The client can't seem to use more than one thread very effectively when doing large writes. I see all of the threads blocked in stacks like:

      "New I/O worker #4" prio=10 tid=0x00007fee58044000 nid=0x4c0d waiting for monitor entry [0x00007fee70641000]
      java.lang.Thread.State: BLOCKED (on object monitor)
      at kudu.rpc.KuduSession.tabletInFlightDone(KuduSession.java:593)

      • waiting to lock <0x000000008b4bedc8> (a kudu.rpc.KuduSession)
        at kudu.rpc.KuduSession.access$500(KuduSession.java:67)
        at kudu.rpc.KuduSession$2.call(KuduSession.java:570)
        at kudu.rpc.KuduSession$2.call(KuduSession.java:567)
        at com.stumbleupon.async.Deferred.doCall(Deferred.java:1278)
        at com.stumbleupon.async.Deferred.runCallbacks(Deferred.java:1257)
        at com.stumbleupon.async.Deferred.callback(Deferred.java:1005)
        at kudu.rpc.KuduRpc.handleCallback(KuduRpc.java:169)
        at kudu.rpc.KuduRpc.callback(KuduRpc.java:182)
        at kudu.rpc.TabletClient.decode(TabletClient.java:413)
        at kudu.rpc.TabletClient.decode(TabletClient.java:82)

      while another thread is holding that lock while doing CPU-heavy work of request encoding. Can we drop the lock during the request encoding work?

        Attachments

          Activity

            People

            • Assignee:
              jdcryans Jean-Daniel Cryans
              Reporter:
              tlipcon Todd Lipcon
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: