Uploaded image for project: 'Couchbase Java Client'
  1. Couchbase Java Client
  2. JCBC-1197

Improve visibility into completion on TimeoutException with ReplicateTo.ONE

    XMLWordPrintable

Details

    • Improvement
    • Resolution: Won't Do
    • Critical
    • 3.x-backlog
    • None
    • Core
    • None
    • 1

    Description

      When performing a mutation operation with ReplicateTo.ONE, an operation may be acknowledged at the primary, but may timeout before it is replicated. It may also timeout at the primary. Since the mitigation for these could be minorly different and the durability implementation has more information, as an improvement we should extend the TimeoutException with a custom exception that indicates if the failure is on the initial mutation operation or on replica receipt.

      The specific implementation of how the check for durability should be hidden (e.g., polling versus a future event driven approach). API Docs should be clear that the additional info may help the application understand what timed out, but this does not give any stronger guarantees on atomicity or visibility. For instance, an operation's mutation may still be visible for a period of time on the active and still time out, depending on the nature of the failure.

      We should consider backporting this to the 2.5 series (as uncommitted) after implementation.

      Attachments

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

        Activity

          People

            daschl Michael Nitschinger
            ingenthr Matt Ingenthron
            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