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

Utilising BTree Improvements

Agile BoardAttach filesAttach ScreenshotBulk Copy AttachmentsBulk Move AttachmentsVotersWatch issueWatchersCreate sub-taskConvert to sub-taskMoveLinkCloneLabelsUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Normal
    • Resolution: Fixed
    • 4.0.5, 4.1-alpha1, 4.1
    • Local/Other
    • None

    Description

      This patch utilises CASSANDRA-15510 to improve throughput and reduce garbage produced by a number of common operations, by employing transformAndFilter, transform and FastBuilder

      • Row, Cell and ComplexColumnData cloning are implemented with BTree.transform, so no special builders are necessary;
        • Rows.copy removed
      • Rows.merge implemented using BTree.update and a ColumnData reconciler
        • Zero-allocations if result of merge is same as existing
        • Fewer comparisons
      • ColumnData reconciler implemented in same manner
        • Cells.reconcileComplex is retired
        • ComplexColumnData reconciliation now
          • Garbage-free if the merge has no effect
          • Always fewer allocations
          • Fewer comparisons
      • FastBuilder employed widely:
        • ClusteringIndexNamesFilter deserialization
        • Columns deserialization
        • PartitionUpdate deserialization
        • AbstractBTreePartition construction
        • Misc others

      The upshot of this work when combined with the proposed patch for CASSANDRA-15367 has a dramatic impact on operations over collection types - under contention, as much as 100x improved throughput, and hundreds of megabytes of reduced allocations. For all operations, allocations under contention and no contention are significantly reduced and throughput improved.

      Attachments

        1. atomicbtreepartition.ods
          831 kB
          Benedict Elliott Smith
        2. atomicbtreepartition.xlsx.zip
          863 kB
          Benedict Elliott Smith
        3. perfsh.tar.gz
          2 kB
          Benedict Elliott Smith

        Issue Links

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            benedict Benedict Elliott Smith Assign to me
            benedict Benedict Elliott Smith
            Benedict Elliott Smith
            Benjamin Lerer, Branimir Lambov
            Votes:
            0 Vote for this issue
            Watchers:
            12 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 - 0.5h
                0.5h

                Slack

                  Issue deployment