Uploaded image for project: 'Cassandra'
  1. Cassandra
  2. CASSANDRA-15215

VIntCoding should read and write more efficiently

    XMLWordPrintableJSON

Details

    • Degradation - Performance Bug/Regression
    • Normal
    • Normal
    • Code Inspection
    • All
    • None
    • 4.1
    • Hide

      Added unit tests for new methods and benchmarks to show performance improvements.

      Show
      Added unit tests for new methods and benchmarks to show performance improvements.

    Description

      Most vints occupy significantly fewer than 8 bytes, and most buffers have >= 8 bytes spare, in which case we can construct the relevant bytes in a register and memcpy them to the correct position. Since we read and write a lot of vints, this waste is probably measurable, particularly during compaction and flush, and can probably be considered a performance bug.

      Attachments

        1. writeUnsignedVInt_megamorphic_DOP.png
          126 kB
          Alex Sorokoumov
        2. writeUnsignedVInt_megamorphic_BB.png
          121 kB
          Alex Sorokoumov
        3. testWriteRandomLongDOP_final.png
          83 kB
          Alex Sorokoumov

        Activity

          People

            Gerrrr Alex Sorokoumov
            benedict Benedict Elliott Smith
            Alex Sorokoumov
            Benedict Elliott Smith, Branimir Lambov
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Time Tracking

                Estimated:
                Original Estimate - Not Specified
                Not Specified
                Remaining:
                Remaining Estimate - 0h
                0h
                Logged:
                Time Spent - 1h 20m
                1h 20m