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

Utilising BTree Improvements

    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

            People

              benedict Benedict Elliott Smith
              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