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

CollationController not using collectTimeOrderedData

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Low
    • Resolution: Duplicate
    • None
    • None
    • None
    • Low

    Description

      I'd appreciate some help with a Cassandra 2.1.2 issue I'm experiencing. I'm running a query which looks like this:

      CREATE TABLE single_row_fetch (id uuid PRIMARY KEY, data text)
      SELECT data FROM single_row_fetch WHERE id = ?
      

      When writing test data into this table, I disabled compaction. I then wrote data for performed a flush, and then overwrote the data, and so on. I varied the number of times the data was overwritten and flushed. This has the effect of controlling the number of SSTables. However, given that the table only has one non-key row, only a single SSTable will ever have the most recent data for this row. I confirmed that the expected number of SSTables were generated and the timestamps of the are as expected.

      However, when I run the query with tracing, I see that Cassandra still reads from ALL of the SSTables via collectAllData in CollationController. Given that this query only fetches a single column, I would expect this query to take the collectTimeOrderedData code path and then only examine the first SSTable after seeing that it contains the relevant data.

      Any insights on why this is the case and it what situations I would get the expected behaviour would be incredibly helpful!

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              mmior Michael Mior
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: