Uploaded image for project: 'Cassandra'
  1. Cassandra
  2. CASSANDRA-18276

Paxos read throws TimeoutException instead of retrying when contending with writes when it could retry

    XMLWordPrintableJSON

Details

    • All
    • None

    Description

      Paxos.read currently copies the code to throw timeout exception if the read had side effects. This doesn’t make much sense because the empty proposal doesn’t have a side effect so it should be safe to retry the empty proposal instead of throwing timeout immediately.

      The impact of this is a little more severe because it’s also not waiting during propose to see if there wouldn’t have been side effects for its empty proposal so it will always think there were side effects and timeout immediately if there are any refusals.

      Of course this only ever happens when it thinks the read might not be linearizable because it witnessed some in progress operation during the prrepare/promise phase.

      This should be pretty easy to fix either by removing the side effect immediate timeout code entirely, or at least improved by actually waiting for side effects during propose.

      Attachments

        Activity

          People

            aweisberg Ariel Weisberg
            aweisberg Ariel Weisberg
            Ariel Weisberg
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated: