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

Efficient bulk operations for packed integer arrays

Details

    • Improvement
    • Status: Closed
    • Minor
    • Resolution: Fixed
    • None
    • 4.0-ALPHA, 6.0
    • core/other
    • None
    • 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

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

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment