Uploaded image for project: 'Java Couchbase JVM Core'
  1. Java Couchbase JVM Core
  2. JVMCBC-204

When unable to locate, request are not flushed, causing delays

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Major
    • 1.1.4, 1.2.0-dp2
    • 1.2.0-dp, 1.1.3
    • None
    • None

    Description

      ancillary to JVMCBC-202:
      the RequestHandler only send SignalFlush when the ringbuffer's batch is exhausted, at this point triggering requests to be sent by Netty. Problem is, if the Locator.locate method returns null at the last request in batch, this step is skipped. It means it will delay sending requests on the wire until next request is queued.

      In the context of JVMCBC-202, this affected testing because doing an upsert with durability factor ReplicateTo.ONE would batch four requests (set, observe master, observe rep1, observe rep2). Since one of the replicas was down (failed over), the Locator would indeed return null, and the ObserveRequest wouldn't be flushed until the whole upsert timed out and the next one was issued...

      Attachments

        Issue Links

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

          Activity

            People

              simonbasle Simon Baslé (Inactive)
              simonbasle Simon Baslé (Inactive)
              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