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

Support session (read-after-write) consistency

    XMLWordPrintableJSON

Details

    • New Feature
    • Status: Resolved
    • Low
    • Resolution: Won't Fix
    • None
    • None

    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. CASSANDRA-876.patch
          53 kB
          Brian Palmer
        2. 876-v2.txt
          47 kB
          Jonathan Ellis

        Activity

          People

            Unassigned Unassigned
            jbellis Jonathan Ellis
            Jonathan Ellis
            Votes:
            8 Vote for this issue
            Watchers:
            12 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: