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

Indexed static column returns inconsistent results

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Normal
    • Resolution: Fixed
    • Fix Version/s: 3.0.21, 3.11.7, 4.0, 4.0-beta1
    • Component/s: Feature/2i Index
    • Labels:
      None
    • Environment:

      Cassandra 3.11.2

      Java driver 3.4.0

      Ubuntu - 4.4.0-112-generic

      Description

      I am using Cassandra 3.11.2, and the Java driver 3.4.0

      I have a table that has a static column, where the static column has a secondary index.
      When querying the table I get incomplete or duplicated results, depending on the fetch size.

      e.g.

      CREATE KEYSPACE hack WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 1};
      CREATE TABLE hack.stuff (id int, kind text, chunk int static, val1 int, PRIMARY KEY (id, kind));
      CREATE INDEX stuff_chunk_index ON hack.stuff (chunk);

      – repeat with thousands of values for id =>

        INSERT INTO hack.stuff (id, chunk, kind, val1 ) VALUES (${id}, 777, 'A', 123);

      Querying from Java:

          final SimpleStatement statement = new SimpleStatement("SELECT id, kind, val1 FROM hack.stuff WHERE chunk = " + chunk); 
          statement.setFetchSize(fetchSize);
          statement.setConsistencyLevel(ConsistencyLevel.ALL);
          final ResultSet resultSet = connection.getSession().execute(statement);
          for (Row row : resultSet) {
              final int id = row.getInt("id");
          }

      The number of results returned depends on the fetch-size.

      e.g. For 30k values inserted, I get the following:

      fetch-size result-size
      40000 30000
      20000 30001
      5000 30006
      100 30303

      In production, I have a much larger table where the correct result size for a specific chunk is 20019, but some fetch sizes will return significantly fewer results.

      fetch-size result-size  
      25000 20019  
      5000 9999 <== this one is has far fewer results
      5001 20026  

      (so far been unable to reproduce this with the simpler test table)

      Thanks,
      Ross

        Attachments

          Activity

            People

            • Assignee:
              adelapena Andres de la Peña
              Reporter:
              ross.black Ross Black
              Authors:
              Andres de la Peña
              Reviewers:
              Benjamin Lerer
            • Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Time Tracking

                Estimated:
                Original Estimate - Not Specified
                Not Specified
                Remaining:
                Remaining Estimate - 0h
                0h
                Logged:
                Time Spent - 0.5h
                0.5h