Uploaded image for project: 'Couchbase Go SDK'
  1. Couchbase Go SDK
  2. GOCBC-1136

Cache metrics attributes maps

    XMLWordPrintable

Details

    • Improvement
    • Resolution: Fixed
    • Major
    • core-10.0.0, 2.3.0
    • None
    • None
    • None
    • 1

    Description

      Benchmarking is showing that the amount of B/op is ~25-30% higher against 2.3 (what will be) vs 2.2.4. This is primarily due to the fact that we allocate a new map every operation to send attributes (service and operation name) to the meter. We should cache these maps instead, the map should remain quite small due to being limited by the number of operations we actually expose. This is further compounded by both gocb and gocbcore doing this.

      This is especially a problem when the NoopMeter is in use, as we allocate these maps before sending to the meter it means that this penalty is paid even when the user doesn't want to use a meter.

      We need to pay special attention to any perf impact in doing this, it's going to need to use some sort of concurrent datastructure or locking.

      Attachments

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

        Activity

          People

            charles.dixon Charles Dixon
            charles.dixon Charles Dixon
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes

                PagerDuty