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

Reads (get_column) miss data or return stale values if a memtable is being flushed

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Normal
    • Resolution: Fixed
    • 0.3
    • None
    • None
    • all

    • Normal

    Description

      Reads can return missing values (null/exception) or find stale copies of a column if the read happens during an SSTable flush.

      The get_column can go in, and not find the data in the current memtable. When it looks in the "historical" memtable, if that CF has already been flushed, then it gets cleared from the historical memtable. As a result, the read looks for the column in older SSTables and finds a stale value (if it exists) or returns with null.

      It can be tricky to reproduce this problem, but the reason is pretty easy to see.

      While subsequent reads might return the correct value (from disk), this behavior makes it very difficult for apps that expect to "read your writes", at least in the absence of failures.

      Attachments

        1. CASSANDRA-98.patch
          0.6 kB
          Sandeep Tata

        Activity

          People

            sandeep_tata Sandeep Tata
            sandeep_tata Sandeep Tata
            Sandeep Tata
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: