Benedict created CASSANDRA-9834:
-----------------------------------

             Summary: Merge Hints/CommitLog/BatchLog
                 Key: CASSANDRA-9834
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-9834
             Project: Cassandra
          Issue Type: Improvement
          Components: Core
            Reporter: Benedict
             Fix For: 3.x


As discussed briefly on CASSANDRA-6230, it should be quite possible to 
construct a single log that can serve as commit log, hints log and batch log. 
The basic idea would be to write sequentially, marking messages as members of 
one or more logical logs. We have a separate efficient (possibly embedded) 
ledger for invalidation of log records. As entire log segments become 
invalidated, we simply delete them; the rest we accumulate until we hit a high 
watermark, and have segments that are at least half empty, at which point we 
begin rewriting the emptiest.

This absolutely bounds our worst case sequential IO at 2x that used by _just_ 
the commit log, with normal operation under sufficiently high watermark having 
zero overhead. The upper bound for space utilisation is the smaller of 2x the 
actual amount of data stored, and our high watermark. This gives us batch and 
hints for free, and eliminates OOMs from hints.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to