Uploaded image for project: 'Lucene - Core'
  1. Lucene - Core
  2. LUCENE-4098

Efficient bulk operations for packed integer arrays

    Details

    • Type: Improvement
    • Status: Closed
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 4.0-ALPHA, 6.0
    • Component/s: core/other
    • Labels:
      None
    • Lucene Fields:
      New, Patch Available

      Description

      There are some places in Lucene code that

      {iterate over,set}

      ranges of values of a packed integer array. Because bit-packing implementations (Packed*) tend be slower than direct implementations, this can take a lot of time.

      For example, under some scenarii, GrowableWriter can take most of its (averaged) set time in resizing operations.

      However, some bit-packing schemes, such as the one that is used by Packed64SingleBlock*, allow to implement efficient bulk operations such as get/set/fill. Implementing these bulk operations in {{PackedInts.

      {Reader,Mutable}

      }} and using them across other components instead of their single-value counterpart could help improve performance.

        Attachments

        1. LUCENE-4098.patch
          31 kB
          Michael McCandless
        2. LUCENE-4098.patch
          30 kB
          Michael McCandless
        3. LUCENE-4098.patch
          27 kB
          Adrien Grand

          Activity

            People

            • Assignee:
              mikemccand Michael McCandless
              Reporter:
              jpountz Adrien Grand
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: