[jira] [Commented] (CASSANDRA-7796) Stop inheriting liveRatio/computedAt from previous memtables
[ https://issues.apache.org/jira/browse/CASSANDRA-7796?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14103660#comment-14103660 ] Aleksey Yeschenko commented on CASSANDRA-7796: -- Yes, I'm sure. liveRatio is inherently flawed, so what 6945 and this one are about are about handling pathological scenarios. Pre-6945 if we happened to calculate the ratio on an empty-ish memtable at a reasonable time since CF init, we'd be screwed for good, for long. Post-6945, to a lesser extent, you can still get similar bad behavior if you inherit a crazy recently calculated liveRatio with high-ish calculatedAt. IMO it's preferable to start with the default ratio, guaranteed to be non-crazy. For the same reason I'm against inheriting just the liveRatio w/out computedAt. Now, there are ways to be smarter about it, but I'm uncomfortable with experimenting at this point. I'd rather just rollback this part of 6945. And the only way to truly fix this is to upgrade to 2.1 :\ Stop inheriting liveRatio/computedAt from previous memtables Key: CASSANDRA-7796 URL: https://issues.apache.org/jira/browse/CASSANDRA-7796 Project: Cassandra Issue Type: Bug Reporter: Aleksey Yeschenko Assignee: Aleksey Yeschenko Priority: Minor Fix For: 2.0.10 Attachments: 7796.txt CASSANDRA-6945 helped to reduce the risk of calculating an outlier liveRatio value, and having to stick with it for a long time, by making liveRatio per-memtable and not per-cf. The added optimization of inheriting liveRatio/calculatedAt to minimize recalculations, however, took us a step back to before CASSANDRA-6945. I suggest we get rid of inheriting the old values altogether, but reduce the rate of recalculation by demanding 10x increase in ops to trigger recalc, instead of the previous 2x. -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Commented] (CASSANDRA-7796) Stop inheriting liveRatio/computedAt from previous memtables
[ https://issues.apache.org/jira/browse/CASSANDRA-7796?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14103665#comment-14103665 ] Benedict commented on CASSANDRA-7796: - My concern is I'm pretty certain we encountered a user on the mailing list OOMing their servers by outpacing the live ratio calculation, which is why we introduced this. Stop inheriting liveRatio/computedAt from previous memtables Key: CASSANDRA-7796 URL: https://issues.apache.org/jira/browse/CASSANDRA-7796 Project: Cassandra Issue Type: Bug Reporter: Aleksey Yeschenko Assignee: Aleksey Yeschenko Priority: Minor Fix For: 2.0.10 Attachments: 7796.txt CASSANDRA-6945 helped to reduce the risk of calculating an outlier liveRatio value, and having to stick with it for a long time, by making liveRatio per-memtable and not per-cf. The added optimization of inheriting liveRatio/calculatedAt to minimize recalculations, however, took us a step back to before CASSANDRA-6945. I suggest we get rid of inheriting the old values altogether, but reduce the rate of recalculation by demanding 10x increase in ops to trigger recalc, instead of the previous 2x. -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Commented] (CASSANDRA-7796) Stop inheriting liveRatio/computedAt from previous memtables
[ https://issues.apache.org/jira/browse/CASSANDRA-7796?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14103797#comment-14103797 ] Aleksey Yeschenko commented on CASSANDRA-7796: -- It's not why we introduced this, actually. Moving liveRatio to per-Memtable from per-CF was done to avoid getting stuck forever with an outlier liveRatio value. Inheriting them was an optimisation to reduce the number of recalculations themselves, but in retrospect it does sort of go against the very reason 6945 was introduced. That, and liveRatioComputedAt is really liveRatioScheduledToBeComputedAt. We can track the actual liveRatioComputedAt, or only inherit the previous ratio if its value is sane enough, but at this point in 2.0 cycle I'm uncomfortable with that. Rolling back the inheritance part of 6945 (what this issue is about) I am comfortable with. Stop inheriting liveRatio/computedAt from previous memtables Key: CASSANDRA-7796 URL: https://issues.apache.org/jira/browse/CASSANDRA-7796 Project: Cassandra Issue Type: Bug Reporter: Aleksey Yeschenko Assignee: Aleksey Yeschenko Priority: Minor Fix For: 2.0.10 Attachments: 7796.txt CASSANDRA-6945 helped to reduce the risk of calculating an outlier liveRatio value, and having to stick with it for a long time, by making liveRatio per-memtable and not per-cf. The added optimization of inheriting liveRatio/calculatedAt to minimize recalculations, however, took us a step back to before CASSANDRA-6945. I suggest we get rid of inheriting the old values altogether, but reduce the rate of recalculation by demanding 10x increase in ops to trigger recalc, instead of the previous 2x. -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Commented] (CASSANDRA-7796) Stop inheriting liveRatio/computedAt from previous memtables
[ https://issues.apache.org/jira/browse/CASSANDRA-7796?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14102911#comment-14102911 ] Jonathan Ellis commented on CASSANDRA-7796: --- I'm a little concerned that we're still experimenting with this in 2.0.x. Should we just back out 6945 and put this in 2.1? Stop inheriting liveRatio/computedAt from previous memtables Key: CASSANDRA-7796 URL: https://issues.apache.org/jira/browse/CASSANDRA-7796 Project: Cassandra Issue Type: Bug Reporter: Aleksey Yeschenko Assignee: Aleksey Yeschenko Priority: Minor Fix For: 2.0.10 Attachments: 7796.txt CASSANDRA-6945 helped to reduce the risk of calculating an outlier liveRatio value, and having to stick with it for a long time, by making liveRatio per-memtable and not per-cf. The added optimization of inheriting liveRatio/calculatedAt to minimize recalculations, however, took us a step back to before CASSANDRA-6945. I suggest we get rid of inheriting the old values altogether, but reduce the rate of recalculation by demanding 10x increase in ops to trigger recalc, instead of the previous 2x. -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Commented] (CASSANDRA-7796) Stop inheriting liveRatio/computedAt from previous memtables
[ https://issues.apache.org/jira/browse/CASSANDRA-7796?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14102917#comment-14102917 ] Aleksey Yeschenko commented on CASSANDRA-7796: -- There is no liveRatio in 2.1 (thank God). It's strictly 2.0. 6945 itself is fine. Even in its current form, it's better than pre-6945 situation was. This change is safe - it reduces complexity, if anything, so I feel fine putting this in 2.0. But I'll also sleep fine if we don't. Stop inheriting liveRatio/computedAt from previous memtables Key: CASSANDRA-7796 URL: https://issues.apache.org/jira/browse/CASSANDRA-7796 Project: Cassandra Issue Type: Bug Reporter: Aleksey Yeschenko Assignee: Aleksey Yeschenko Priority: Minor Fix For: 2.0.10 Attachments: 7796.txt CASSANDRA-6945 helped to reduce the risk of calculating an outlier liveRatio value, and having to stick with it for a long time, by making liveRatio per-memtable and not per-cf. The added optimization of inheriting liveRatio/calculatedAt to minimize recalculations, however, took us a step back to before CASSANDRA-6945. I suggest we get rid of inheriting the old values altogether, but reduce the rate of recalculation by demanding 10x increase in ops to trigger recalc, instead of the previous 2x. -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Commented] (CASSANDRA-7796) Stop inheriting liveRatio/computedAt from previous memtables
[ https://issues.apache.org/jira/browse/CASSANDRA-7796?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14102925#comment-14102925 ] Jonathan Ellis commented on CASSANDRA-7796: --- You're right, this is just an optimization and doesn't really affect the design again. +1 Stop inheriting liveRatio/computedAt from previous memtables Key: CASSANDRA-7796 URL: https://issues.apache.org/jira/browse/CASSANDRA-7796 Project: Cassandra Issue Type: Bug Reporter: Aleksey Yeschenko Assignee: Aleksey Yeschenko Priority: Minor Fix For: 2.0.10 Attachments: 7796.txt CASSANDRA-6945 helped to reduce the risk of calculating an outlier liveRatio value, and having to stick with it for a long time, by making liveRatio per-memtable and not per-cf. The added optimization of inheriting liveRatio/calculatedAt to minimize recalculations, however, took us a step back to before CASSANDRA-6945. I suggest we get rid of inheriting the old values altogether, but reduce the rate of recalculation by demanding 10x increase in ops to trigger recalc, instead of the previous 2x. -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Commented] (CASSANDRA-7796) Stop inheriting liveRatio/computedAt from previous memtables
[ https://issues.apache.org/jira/browse/CASSANDRA-7796?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14103213#comment-14103213 ] Benedict commented on CASSANDRA-7796: - Are you sure this is better? I think we should inherit the ratio, but not the last computed at. This patch IMO makes it easier to OOM by inserts outpacing the liveRatio calculation after memtable switch. With inheritance we are only at risk if the data shape changes; with this patch we are at risk with the same data shape which to me seems like a larger affect window. Stop inheriting liveRatio/computedAt from previous memtables Key: CASSANDRA-7796 URL: https://issues.apache.org/jira/browse/CASSANDRA-7796 Project: Cassandra Issue Type: Bug Reporter: Aleksey Yeschenko Assignee: Aleksey Yeschenko Priority: Minor Fix For: 2.0.10 Attachments: 7796.txt CASSANDRA-6945 helped to reduce the risk of calculating an outlier liveRatio value, and having to stick with it for a long time, by making liveRatio per-memtable and not per-cf. The added optimization of inheriting liveRatio/calculatedAt to minimize recalculations, however, took us a step back to before CASSANDRA-6945. I suggest we get rid of inheriting the old values altogether, but reduce the rate of recalculation by demanding 10x increase in ops to trigger recalc, instead of the previous 2x. -- This message was sent by Atlassian JIRA (v6.2#6252)