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

Wrong memtable size estimation: liveRatio is not honored in edge cases

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Low
    • Resolution: Fixed
    • 1.2.11, 2.0.2
    • None
    • None
    • Low

    Description

      Memtable.getLiveSize does not honours liveRatio the correct way:
      allocator.get**Size() return sizes allocated only by name and columns data (i.e. no liveRatio applied); but conditions, which cap estimated size, compare it with estimatedSize, already multiplied by liveRatio.
      If liveRatio is big enough (i've seen >11 on our dataset), this leads to huge estimation errors and even to OutOfMemory, because MeteredFlusher underestimates memtables sizes.

      Attachments

        1. Memtable-getLiveSize.diff
          1 kB
          Oleg Anastasyev
        2. 6078-v2.txt
          2 kB
          Jonathan Ellis

        Activity

          People

            jbellis Jonathan Ellis
            m0nstermind Oleg Anastasyev
            Jonathan Ellis
            Jason Brown
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: