Uploaded image for project: 'Accumulo'
  1. Accumulo
  2. ACCUMULO-2898 Lack of synchronization for childrenCache in ZooCache#getChildren()
  3. ACCUMULO-3508

Zoocache utilizes course grained locking causing unnecessary synchronization in many tserver ops

    Details

    • Type: Sub-task
    • Status: Resolved
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: 1.6.0
    • Fix Version/s: 1.8.0
    • Component/s: fate
    • Labels:
      None

      Description

      Through jstacking I have observed busy tablet server threads waiting for the Zoocache to be updated or even read. Profiling via yourkit indicates potential deadlocks when threads wait for a long period of time ( in my case my waits were 10+s ) when many scans were running against my instance.

      My patch, which is forthcoming, removes synchronization and utilizes a reentrant read/write lock (RERWL) to synchronize the maps. My initial design utilized concurrent hash maps, but the design of existence becomes simpler and changes fewer by using the RERWL.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                phrocker marco polo
                Reporter:
                phrocker marco polo
              • Votes:
                0 Vote for this issue
                Watchers:
                4 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:

                  Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 1h 10m
                  1h 10m