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

Support session (read-after-write) consistency

    Details

    • Type: New Feature
    • Status: Resolved
    • Priority: Minor
    • Resolution: Won't Fix
    • Fix Version/s: None
    • Component/s: None
    • Labels:

      Description

      In http://www.allthingsdistributed.com/2007/10/amazons_dynamo.html and http://www.allthingsdistributed.com/2008/12/eventually_consistent.html Amazon discusses the concept of "eventual consistency." Cassandra uses eventual consistency in a design similar to Dynamo.

      Supporting session consistency would be useful and relatively easy to add: we already have the concept of a Memtable (see http://wiki.apache.org/cassandra/MemtableSSTable ) to "stage" updates in before flushing to disk; if we applied mutations to a session-level memtable on the coordinator machine (that is, the machine the client is connected to), and then did a final merge from that table against query results before handing them to the client, we'd get it almost for free.

      Of course, the devil is in the details; thrift doesn't provide any hooks for session-level data out of the box, but we could do this with a threadlocal approach fairly easily. CASSANDRA-569 has some (probably out of date now) code that might be useful here.

        Attachments

        1. 876-v2.txt
          47 kB
          Jonathan Ellis
        2. CASSANDRA-876.patch
          53 kB
          Brian Palmer

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              jbellis Jonathan Ellis
              Reviewer:
              Jonathan Ellis
            • Votes:
              8 Vote for this issue
              Watchers:
              12 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: