Uploaded image for project: 'Couchbase Server'
  1. Couchbase Server
  2. MB-39065

FlexIndex: FlexQuery not returning same results consistently

    XMLWordPrintable

Details

    • Untriaged
    • 1
    • Unknown

    Description

      Build: 7.0.0-1939

      • Load dataset attached
      • Create fts index with below:

        {
          "type": "fulltext-index",
          "name": "custom_index",
          "uuid": "54b8538f8737782f",
          "sourceType": "gocbcore",
          "sourceName": "default",
          "sourceUUID": "a1e2de9aa61b2b306e6738448e25e42c",
          "planParams": {
            "maxPartitionsPerPIndex": 171
          },
          "params": {
            "doc_config": {
              "docid_prefix_delim": "",
              "docid_regexp": "",
              "mode": "type_field",
              "type_field": "type"
            },
            "mapping": {
              "analysis": {},
              "default_analyzer": "standard",
              "default_datetime_parser": "dateTimeOptional",
              "default_field": "_all",
              "default_mapping": {
                "dynamic": true,
                "enabled": false
              },
              "default_type": "_default",
              "docvalues_dynamic": true,
              "index_dynamic": true,
              "store_dynamic": false,
              "type_field": "type",
              "types": {
                "emp": {
                  "dynamic": false,
                  "enabled": true,
                  "properties": {
                    "is_manager": {
                      "dynamic": false,
                      "enabled": true,
                      "fields": [
                        {
                          "include_in_all": true,
                          "include_term_vectors": true,
                          "index": true,
                          "name": "is_manager",
                          "type": "boolean"
                        }
                      ]
                    },
                    "join_date": {
                      "dynamic": false,
                      "enabled": true,
                      "fields": [
                        {
                          "include_in_all": true,
                          "include_term_vectors": true,
                          "index": true,
                          "name": "join_date",
                          "type": "datetime"
                        }
                      ]
                    },
                    "manages": {
                      "dynamic": false,
                      "enabled": true,
                      "properties": {
                        "team_size": {
                          "dynamic": false,
                          "enabled": true,
                          "fields": [
                            {
                              "include_in_all": true,
                              "include_term_vectors": true,
                              "index": true,
                              "name": "team_size",
                              "type": "number"
                            }
                          ]
                        }
                      }
                    },
                    "mutated": {
                      "dynamic": false,
                      "enabled": true,
                      "fields": [
                        {
                          "include_in_all": true,
                          "include_term_vectors": true,
                          "index": true,
                          "name": "mutated",
                          "type": "number"
                        }
                      ]
                    },
                    "name": {
                      "dynamic": false,
                      "enabled": true,
                      "fields": [
                        {
                          "analyzer": "keyword",
                          "include_in_all": true,
                          "include_term_vectors": true,
                          "index": true,
                          "name": "name",
                          "type": "text"
                        }
                      ]
                    }
                  }
                }
              }
            },
            "store": {
              "indexType": "scorch",
              "mossStoreOptions": {}
            }
          },
          "sourceParams": {}
        }
        

      • Create GSI index with type : CREATE INDEX `gsi_index_4` ON `default`(`salary`)
      • For the below Flex query, we do not see consistent results when querying repeatedly. It returns 0 results sometimes and 17 results sometimes

        select meta().id from default USE INDEX (USING FTS, USING GSI) where type = "emp" and (salary >= 148000.0 and salary < 152262.0)
        

      • Explain plan

        {
            "#operator": "Sequence",
            "~children": [
                {
                    "#operator": "IntersectScan",
                    "scans": [
                        {
                            "#operator": "IndexScan3",
                            "index": "gsi_index_4",
                            "index_id": "b2f7c86851ae77ed",
                            "index_projection": {
                                "primary_key": true
                            },
                            "keyspace": "default",
                            "namespace": "default",
                            "spans": [
                                {
                                    "exact": true,
                                    "range": [
                                        {
                                            "high": "152262",
                                            "inclusion": 1,
                                            "low": "148000"
                                        }
                                    ]
                                }
                            ],
                            "using": "gsi"
                        },
                        {
                            "#operator": "IndexFtsSearch",
                            "index": "custom_index",
                            "index_id": "54b8538f8737782f",
                            "keyspace": "default",
                            "namespace": "default",
                            "search_info": {
                                "field": "\"\"",
                                "options": "{\"index\": \"custom_index\"}",
                                "outname": "out",
                                "query": "{\"query\": null, \"score\": \"none\"}"
                            },
                            "using": "fts"
                        }
                    ]
                },
                {
                    "#operator": "Fetch",
                    "keyspace": "default",
                    "namespace": "default"
                },
                {
                    "#operator": "Parallel",
                    "~child": {
                        "#operator": "Sequence",
                        "~children": [
                            {
                                "#operator": "Filter",
                                "condition": "(((`default`.`type`) = \"emp\") and ((148000 <= (`default`.`salary`)) and ((`default`.`salary`) < 152262)))"
                            },
                            {
                                "#operator": "InitialProject",
                                "result_terms": [
                                    {
                                        "expr": "(meta(`default`).`id`)"
                                    }
                                ]
                            }
                        ]
                    }
                }
            ]
        }
        

      • Running query repeatedly:

        wwhile :; do date;curl -v http://172.23.121.65:8093/query/service -d 'statement=select meta().id from default USE INDEX (USING FTS, USING GSI) where type = "emp" and (salary >= 148000.0 and salary < 152262.0)' -u Administrator:password 2>/dev/null | tail -n 3 | head -n 2; done
        Wed Apr 29 14:29:03 PDT 2020
        "status": "success",
        "metrics": {"elapsedTime": "12.721714ms","executionTime": "12.650357ms","resultCount": 17,"resultSize": 357}
        Wed Apr 29 14:29:03 PDT 2020
        "status": "success",
        "metrics": {"elapsedTime": "13.101702ms","executionTime": "13.01626ms","resultCount": 17,"resultSize": 357}
        Wed Apr 29 14:29:04 PDT 2020
        "status": "success",
        "metrics": {"elapsedTime": "13.554385ms","executionTime": "13.468527ms","resultCount": 17,"resultSize": 357}
        Wed Apr 29 14:29:04 PDT 2020
        "status": "success",
        "metrics": {"elapsedTime": "16.924921ms","executionTime": "16.868015ms","resultCount": 17,"resultSize": 357}
        Wed Apr 29 14:29:04 PDT 2020
        "status": "success",
        "metrics": {"elapsedTime": "12.342902ms","executionTime": "12.270088ms","resultCount": 0,"resultSize": 0}
        Wed Apr 29 14:29:04 PDT 2020
        "status": "success",
        "metrics": {"elapsedTime": "11.374295ms","executionTime": "11.304081ms","resultCount": 0,"resultSize": 0}
        Wed Apr 29 14:29:04 PDT 2020
        "status": "success",
        "metrics": {"elapsedTime": "12.823667ms","executionTime": "12.75812ms","resultCount": 0,"resultSize": 0}
        Wed Apr 29 14:29:04 PDT 2020
        "status": "success",
        "metrics": {"elapsedTime": "12.632507ms","executionTime": "12.553503ms","resultCount": 17,"resultSize": 357}
        Wed Apr 29 14:29:04 PDT 2020
        "status": "success",
        "metrics": {"elapsedTime": "10.770826ms","executionTime": "10.684137ms","resultCount": 0,"resultSize": 0}
        Wed Apr 29 14:29:04 PDT 2020
        "status": "success",
        "metrics": {"elapsedTime": "10.546449ms","executionTime": "10.487835ms","resultCount": 0,"resultSize": 0}
        Wed Apr 29 14:29:04 PDT 2020
        "status": "success",
        "metrics": {"elapsedTime": "10.834201ms","executionTime": "10.778026ms","resultCount": 0,"resultSize": 0}
        

      Attachments

        Issue Links

          No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            People

              girish.benakappa Girish Benakappa
              girish.benakappa Girish Benakappa
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes

                  PagerDuty