Uploaded image for project: 'Couchbase Server'
  1. Couchbase Server
  2. MB-15155

Query engine makes a blocking bulkget

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Critical
    • 4.5.0
    • 4.5.0
    • query
    • Security Level: Public
    • Untriaged
    • Unknown

    Description

      From Manik:

      From my findings, the Q2-Q7 tests are hitting the bottlenecks due to the fetches.

      Time (ms) Time (ms) Time (ms)
      Clients 1 2 5
      q1 1.23 1.54 2.172
      q2 48.46 68.92 139.3
      q3 91.86 99.72 125.2208294
      q4 125.22 429.145 728.564
      q5 16.77 22.86 44.7
      q6 29.29 34.06 50.73
      q7 99.5 108.03 135.22

      The time spent doing fetches due to multi-get is the dominant factor. I tried to optimize the multiGet but it seems that this a problem that other people have complained in the past. See :

      https://forums.couchbase.com/t/how-to-perform-real-multi-get/2499
      https://forums.couchbase.com/t/golang-real-multi-get/1236

      I know that at Zynga we used to use a real multi-get where the client would send out all the keys in one request, e.g.

      GET k1 k2 k3 k4 ….Kn

      The response from the server would be streamed back to the client. The go-couchbase client that we use pipelines all the keys and waits for all of them to come back before returning to the server. This is going to increase the latency of the system.

      What we would need to do is to change the implementation so that bulkGet (read multiGet) will stream keys back the application as soon as they are available.

      I am trying to talk to the client guys and seek their opinion.

      Attachments

        For Gerrit Dashboard: MB-15155
        # Subject Branch Project Status CR V

        Activity

          People

            Sitaram.Vemulapalli Sitaram Vemulapalli
            keshav Keshav Murthy
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes

                PagerDuty