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

Secondary index not working after a while

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Normal
    • Resolution: Cannot Reproduce
    • None
    • Feature/2i Index
    • None
    • C* 2.1.0-rc5 with small clusters (one or two nodes)

    • Normal

    Description

      Since 2.1.0-rc2, it appears that the secondary indexes are not always working. Immediately after the INSERT of a row, the index seems to be there. But after a while (I do not know when or why), SELECT statements based on any secondary index do not return the corresponding row(s) anymore. I noticed that a restart of C* may have an impact (the data inserted before the restart may be seen through the index, even if it was not returned before the restart).

      Here is a use-case example (in order to clarify my request) :

      CREATE TABLE IF NOT EXISTS ks.cf ( k int PRIMARY KEY, ind ascii, value text);
      CREATE INDEX IF NOT EXISTS ks_cf_index ON ks.cf(ind);
      INSERT INTO ks.cf (k, ind, value) VALUES (1, 'toto', 'Hello');
      SELECT * FROM ks.cf WHERE ind = 'toto'; // Returns no result after a while
      

      The last SELECT statement may or may not return a row depending on the instant of the request. I experienced that with 2.1.0-rc5 through CQLSH with clusters of one and two nodes. Since it depends on the instant of the request, I am not able to deliver any way to reproduce that systematically (It appears to be linked with some scheduled job inside C*).

      Attachments

        1. result-failure.txt
          521 kB
          Fabrice Larcher
        2. result-success.txt
          534 kB
          Fabrice Larcher

        Activity

          People

            Unassigned Unassigned
            flarcher Fabrice Larcher
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: