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.

        Issue Links

          Activity

          Hide
          elserj Josh Elser added a comment -

          marco polo, I've added you as a contributor. Look forward to a patch – thanks!

          Show
          elserj Josh Elser added a comment - marco polo , I've added you as a contributor. Look forward to a patch – thanks!
          Hide
          ctubbsii Christopher Tubbs added a comment -

          What's the status of this? Is a patch available? marco polo, are you still working on this?

          Show
          ctubbsii Christopher Tubbs added a comment - What's the status of this? Is a patch available? marco polo , are you still working on this?
          Hide
          ecn Eric Newton added a comment -

          Patch applied on marco polo's behalf.

          Show
          ecn Eric Newton added a comment - Patch applied on marco polo 's behalf.
          Hide
          ctubbsii Christopher Tubbs added a comment -

          Should this be backported to 1.6.5 and/or 1.7.1, since it was originally reported against 1.6.0?

          Show
          ctubbsii Christopher Tubbs added a comment - Should this be backported to 1.6.5 and/or 1.7.1, since it was originally reported against 1.6.0?

            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

                  Development