[ https://issues.apache.org/jira/browse/CASSANDRA-2158?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jonathan Ellis updated CASSANDRA-2158: -------------------------------------- Priority: Minor (was: Major) Fix Version/s: (was: 0.7.3) 0.7.4 Erik Forkalsrud commented on the mailing list, {noformat} It looks like the fix isn't entirely correct. The bug is still in 0.7.3. In Memtable.java, the line: THRESHOLD = cfs.getMemtableThroughputInMB() * 1024 * 1024; should be changed to: THRESHOLD = cfs.getMemtableThroughputInMB() * 1024L * 1024L; Here's some code that illustrates the difference: public void testMultiplication() { int memtableThroughputInMB = 2300; long thresholdA = memtableThroughputInMB * 1024 * 1024; long thresholdB = memtableThroughputInMB * 1024L * 1024L; System.out.println("a=" + thresholdA + " b=" + thresholdB); } {noformat} Made this change for 0.7.4 > memtable_throughput_in_mb can not support sizes over 2.2 gigs because of an > integer overflow. > --------------------------------------------------------------------------------------------- > > Key: CASSANDRA-2158 > URL: https://issues.apache.org/jira/browse/CASSANDRA-2158 > Project: Cassandra > Issue Type: Bug > Reporter: Eddie > Assignee: Jonathan Ellis > Priority: Minor > Fix For: 0.7.4 > > Attachments: 2158.txt > > Original Estimate: 1h > Remaining Estimate: 1h > > If memtable_throughput_in_mb is set past 2.2 gigs, no errors are thrown. > However, as soon as data starts being written it is almost immediately being > flushed. Several hundred SSTables are created in minutes. I am almost > positive that the problem is that when memtable_throughput_in_mb is being > converted into bytes the result is stored in an integer, which is overflowing. > From memtable.java: > private final int THRESHOLD; > private final int THRESHOLD_COUNT; > ... > this.THRESHOLD = cfs.getMemtableThroughputInMB() * 1024 * 1024; > this.THRESHOLD_COUNT = (int) (cfs.getMemtableOperationsInMillions() * 1024 * > 1024); > NOTE: > I also think currentThroughput also needs to be changed from an int to a > long. I'm not sure if it is as simple as this or if this also is used in > other places. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira