Uploaded image for project: 'Spymemcached Java Client'
  1. Spymemcached Java Client
  2. SPY-189

Performance issue in TranscodeService asynch decode.

    XMLWordPrintable

Details

    • Improvement
    • Resolution: Unresolved
    • Minor
    • None
    • 2.12.0
    • library
    • Security Level: Public

    Description

      On my system I observed that memcached read performance was limited by the hand off to asynch decoding.

      TranscodeService.decode() invokes pool.execute(task) which offers the task to the workQueue which is instantiated as an ArrayBlockingQueue. This leads to a condition where the IO thread and all the transcoder threads compete for a single lock. This capped my reads at about 80k keys/s.

      When constructing the transcoders worker pool, replacing the ArrayBlockingQueue with a LinkedBlockingQueue (where reads do not block writes) resolved this issue and I got close to 200k keys/s and saturated the network.

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            daschl Michael Nitschinger
            andreas.holmen andreas.holmen
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:

              Gerrit Reviews

                There are no open Gerrit changes

                PagerDuty