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

relax the mandatory array index-key, to create covering array-index

    XMLWordPrintable

Details

    • Improvement
    • Resolution: Fixed
    • Major
    • 4.6.2, 5.0.0
    • 4.5.0, 4.6.0
    • query
    • None

    Description

      Creating covering array index requires the whole-array field itself as one of the index-keys to the CREATE INDEX. This restriction has following issues:

      1) index keys are limited to 4K in size. So, covering array indexes can't be created with larger arrays. This limits the size of the array or size of array elements.

      2) CREATE INDEX hits following error because of exceeding default max_array_seckey_size value. With large arrays (see user example below), this value reaches big numbers which may lead to unexplored territories (with no clear guidelines etc).
      — Encoded array key too long. Length of key = 33240, Limit = 30978

      Following lists few use cases hurt by the current limitation:
      1)https://forums.couchbase.com/t/encoded-array-key-too-long-30978-skipped/9596
      User quotes:
      Largest array is going to be 2000 entries max. I've done some work to shorten
      the length of array entries, so rather than:

      _"members": [
      "IDaaS_ESTAB-3924027_PL-6600",
      "IDaaS_ESTAB-3924027_PL-6601",
      "IDaaS_ESTAB-3924027_PL-6602",
      ...
      ]
      _
      2) Internal UNNEST testcase hits hard limit to test with larger arrays (with 1000 elements): https://issues.couchbase.com/browse/MB-21619

      3) https://forums.couchbase.com/t/different-result-set-when-using-the-use-index-hint/10273

      Attachments

        Issue Links

          Activity

            People

              Prerna.Manaktala Prerna Manaktala (Inactive)
              Prasad.Varakur Prasad Varakur
              Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                PagerDuty