Uploaded image for project: 'WiredTiger'
  1. WiredTiger
  2. WT-2414

Avoid extractor calls for ordering cursor in join cursor

    • Type: Icon: Bug Bug
    • Resolution: Done
    • Priority: Icon: Major - P3 Major - P3
    • WT2.8.0
    • Affects Version/s: None
    • Component/s: None
    • None

      Hi!
      I found that during condition checks on ordering cursor in join cursor, called extractor. This greatly reduce performance of join cursor, especially if cardinality of ordering cursor is big. As I understand, for checks on ordering cursor, calling of extractor can be avoided, using for comparing with conditions current value of ordering cursor key. Attached program demonstrate the problem. It has next output:

      $ LD_LIBRARY_PATH=wt-2382-join-collator_libs/ ./jcursor_ord_extr                                                                                                                                                               
      value from jcursor: key = 8, v1 = 8, v2 = 8
      value from jcursor: key = 18, v1 = 18, v2 = 8
      value from jcursor: key = 28, v1 = 28, v2 = 8
      value from jcursor: key = 38, v1 = 38, v2 = 8
      value from jcursor: key = 48, v1 = 48, v2 = 8
      value from jcursor: key = 58, v1 = 58, v2 = 8
      value from jcursor: key = 68, v1 = 68, v2 = 8
      value from jcursor: key = 78, v1 = 78, v2 = 8
      value from jcursor: key = 88, v1 = 88, v2 = 8
      value from jcursor: key = 98, v1 = 98, v2 = 8
      Error: extractor for ordering index should not be called. s_extractor1_calls = 100
      

        1. jcurs_ordering_extractor.c
          4 kB
        2. jcursor_read_table_lt.c
          4 kB

            Assignee:
            donald.anderson@mongodb.com Donald Anderson
            Reporter:
            Denis Shkirya Denis Shkirya
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: