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

Compressed commit log has no backpressure and can OOM

    XMLWordPrintableJSON

Details

    • Normal

    Description

      I validated this via a unit test that slowed the ability of the log to drain to the filesystem. The compressed commit log will keep allocating buffers pending compression until it OOMs.

      I have a fix that am not very happy with because the whole signal a thread to allocate a segment that depends on a resource that may not be available results in some obtuse usage of CompleatableFuture to rendezvous available buffers with CommitLogSegmentManager thread waiting to finish constructing a new segment. The CLSM thread is in turn signaled by the thread(s) that actually wants to write to the next segment, but aren't able to do it themselves.

      Attachments

        1. 10971-3.0.txt
          13 kB
          Benjamin Lerer
        2. 10971-3.5.txt
          23 kB
          Benjamin Lerer

        Activity

          People

            aweisberg Ariel Weisberg
            aweisberg Ariel Weisberg
            Ariel Weisberg
            Benjamin Lerer
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: