[jira] [Resolved] (CASSANDRA-5673) NullPointerException on running instances
[ https://issues.apache.org/jira/browse/CASSANDRA-5673?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Sanjay resolved CASSANDRA-5673. --- Resolution: Fixed Fix Version/s: 1.2.6 After Upgrading the problem seems to be fixed. NullPointerException on running instances - Key: CASSANDRA-5673 URL: https://issues.apache.org/jira/browse/CASSANDRA-5673 Project: Cassandra Issue Type: Bug Components: Core Affects Versions: 1.2.4 Reporter: Sanjay Fix For: 1.2.6 Hallo, We are having sporadic NullPointerException in some of the cassandra nodes in cluster (See stacktrace). We are having two Datacenter, each having 15 nodes with RF = 2, OS is SLES with java-1_6_0-ibm-1.6.0_sr12.0-0.5.1. At present only workaround is to stop the application running on same node and run repair tool on cassandra. We are unable to identify the cause of error. 1) INFO|ScheduledTasks:1|org.apache.cassandra.service.GCInspector|GC for MarkSweepCompact: 347 ms for 1 collections, 138398568 used; ma x is 1051721728 2013-06-19T16:25:50:843|ERROR|ReplicateOnWriteStage:115|org.apache.cassandra.service.CassandraDaemon|Exception in thread Thread[ReplicateOnWriteStage:115,5,m ain] java.lang.RuntimeException: java.lang.NullPointerException at org.apache.cassandra.service.StorageProxy$DroppableRunnable.run(StorageProxy.java:1582) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:897) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:919) at java.lang.Thread.run(Thread.java:738) Caused by: java.lang.NullPointerException at java.util.TreeSet.iterator(TreeSet.java:230) at org.apache.cassandra.db.columniterator.SSTableNamesIterator.read(SSTableNamesIterator.java:163) at org.apache.cassandra.db.columniterator.SSTableNamesIterator.init(SSTableNamesIterator.java:64) at org.apache.cassandra.db.filter.NamesQueryFilter.getSSTableColumnIterator(NamesQueryFilter.java:81) at org.apache.cassandra.db.filter.QueryFilter.getSSTableColumnIterator(QueryFilter.java:68) at org.apache.cassandra.db.CollationController.collectAllData(CollationController.java:274) at org.apache.cassandra.db.CollationController.getTopLevelColumns(CollationController.java:65) at org.apache.cassandra.db.ColumnFamilyStore.getTopLevelColumns(ColumnFamilyStore.java:1357) at org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(ColumnFamilyStore.java:1214) at org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(ColumnFamilyStore.java:1126) at org.apache.cassandra.db.Table.getRow(Table.java:347) at org.apache.cassandra.db.SliceByNamesReadCommand.getRow(SliceByNamesReadCommand.java:64) at org.apache.cassandra.db.CounterMutation.makeReplicationMutation(CounterMutation.java:90) at org.apache.cassandra.service.StorageProxy$7$1.runMayThrow(StorageProxy.java:796) at org.apache.cassandra.service.StorageProxy$DroppableRunnable.run(StorageProxy.java:1578) ... 3 more 2013-06-19T16:26:01:001|ERROR|ReadStage:4833|org.apache.cassandra.service.CassandraDaemon|Exception in thread Thread[ReadStage:4833,5,main] java.lang.RuntimeException: java.lang.NullPointerException at org.apache.cassandra.service.StorageProxy$DroppableRunnable.run(StorageProxy.java:1582) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:897) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:919) at java.lang.Thread.run(Thread.java:738) Caused by: java.lang.NullPointerException at java.util.TreeSet.iterator(TreeSet.java:230) at org.apache.cassandra.db.columniterator.SSTableNamesIterator.read(SSTableNamesIterator.java:163) at org. 2) 2013-06-19T08:38:23:436| INFO|Thread-2447|org.apache.cassandra.service.StorageService|Starting repair command #2, repairing 1 ranges for keyspace system_auth 2013-06-19T08:58:25:685|ERROR|ReadStage:9270|org.apache.cassandra.service.CassandraDaemon|Exception in thread Thread[ReadStage:9270,5,main] java.lang.NullPointerException at java.util.TreeSet.iterator(TreeSet.java:230) at org.apache.cassandra.db.columniterator.SSTableNamesIterator.read(SSTableNamesIterator.java:163) at org.apache.cassandra.db.columniterator.SSTableNamesIterator.init(SSTableNamesIterator.java:64) at org.apache.cassandra.db.filter.NamesQueryFilter.getSSTableColumnIterator(NamesQueryFilter.java:81) at org.apache.cassandra.db.filter.QueryFilter.getSSTableColumnIterator(QueryFilter.java:68) at
[jira] [Assigned] (CASSANDRA-6007) guava dependency mismatch between datastax/driver 2.0 and cassandra 2.0
[ https://issues.apache.org/jira/browse/CASSANDRA-6007?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Yeschenko reassigned CASSANDRA-6007: Assignee: Aleksey Yeschenko guava dependency mismatch between datastax/driver 2.0 and cassandra 2.0 --- Key: CASSANDRA-6007 URL: https://issues.apache.org/jira/browse/CASSANDRA-6007 Project: Cassandra Issue Type: Bug Components: Core, Drivers Reporter: Max Penet Assignee: Aleksey Yeschenko Attempting to load datastax/java-driver 2.0 beta1 and cassandra-all 2.0 in the same jvm causes some issues mainly because of clashes between guava versions (15.0 in the driver vs 13.0.1 in c*). This makes automated testing using EmbeddedCassandraService problematic for instance. Stacktrace from https://github.com/mpenet/alia/tree/2.0 running lein test Upgrading c* 2.0 to guava 15+ should help fix this issue. {code:java} java.lang.IllegalAccessError: tried to access method com.google.common.collect.MapMaker.makeComputingMap(Lcom/google/common/base/Function;)Ljava/util/concurrent/ConcurrentMap; from class org.apache.cassandra.service.StorageProxy at org.apache.cassandra.service.StorageProxy.clinit(StorageProxy.java:87) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:190) at org.apache.cassandra.service.StorageService.initServer(StorageService.java:447) at org.apache.cassandra.service.StorageService.initServer(StorageService.java:426) at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:344) at org.apache.cassandra.service.CassandraDaemon.init(CassandraDaemon.java:377) at org.apache.cassandra.service.EmbeddedCassandraService.start(EmbeddedCassandraService.java:52) at qbits.alia.test.embedded$start_service_BANG_.invoke(embedded.clj:20) at qbits.alia.test.embedded$eval10911.invoke(embedded.clj:24) at clojure.lang.Compiler.eval(Compiler.java:6619) at clojure.lang.Compiler.load(Compiler.java:7064) at clojure.lang.RT.loadResourceScript(RT.java:370) at clojure.lang.RT.loadResourceScript(RT.java:361) at clojure.lang.RT.load(RT.java:440) at clojure.lang.RT.load(RT.java:411) at clojure.core$load$fn__5018.invoke(core.clj:5530) at clojure.core$load.doInvoke(core.clj:5529) at clojure.lang.RestFn.invoke(RestFn.java:408) at clojure.core$load_one.invoke(core.clj:5336) at clojure.core$load_lib$fn__4967.invoke(core.clj:5375) at clojure.core$load_lib.doInvoke(core.clj:5374) at clojure.lang.RestFn.applyTo(RestFn.java:142) at clojure.core$apply.invoke(core.clj:619) at clojure.core$load_libs.doInvoke(core.clj:5413) at clojure.lang.RestFn.applyTo(RestFn.java:137) at clojure.core$apply.invoke(core.clj:621) at clojure.core$use.doInvoke(core.clj:5507) at clojure.lang.RestFn.invoke(RestFn.java:703) at qbits.alia.test.core$eval161$loading__4910__auto162.invoke(core.clj:1) at qbits.alia.test.core$eval161.invoke(core.clj:1) at clojure.lang.Compiler.eval(Compiler.java:6619) at clojure.lang.Compiler.eval(Compiler.java:6608) at clojure.lang.Compiler.load(Compiler.java:7064) at clojure.lang.RT.loadResourceScript(RT.java:370) at clojure.lang.RT.loadResourceScript(RT.java:361) at clojure.lang.RT.load(RT.java:440) at clojure.lang.RT.load(RT.java:411) at clojure.core$load$fn__5018.invoke(core.clj:5530) at clojure.core$load.doInvoke(core.clj:5529) at clojure.lang.RestFn.invoke(RestFn.java:408) at clojure.core$load_one.invoke(core.clj:5336) at clojure.core$load_lib$fn__4967.invoke(core.clj:5375) at clojure.core$load_lib.doInvoke(core.clj:5374) at clojure.lang.RestFn.applyTo(RestFn.java:142) at clojure.core$apply.invoke(core.clj:619) at clojure.core$load_libs.doInvoke(core.clj:5413) at clojure.lang.RestFn.applyTo(RestFn.java:137) at clojure.core$apply.invoke(core.clj:619) at clojure.core$require.doInvoke(core.clj:5496) at clojure.lang.RestFn.applyTo(RestFn.java:137) at clojure.core$apply.invoke(core.clj:619) at user$eval85.invoke(NO_SOURCE_FILE:1) at clojure.lang.Compiler.eval(Compiler.java:6619) at clojure.lang.Compiler.eval(Compiler.java:6609) at clojure.lang.Compiler.eval(Compiler.java:6582) at clojure.core$eval.invoke(core.clj:2852) at clojure.main$eval_opt.invoke(main.clj:308) at clojure.main$initialize.invoke(main.clj:327) at clojure.main$null_opt.invoke(main.clj:362) at clojure.main$main.doInvoke(main.clj:440) at
[jira] [Created] (CASSANDRA-6009) can not get table info properly at cqlsh
koray sariteke created CASSANDRA-6009: - Summary: can not get table info properly at cqlsh Key: CASSANDRA-6009 URL: https://issues.apache.org/jira/browse/CASSANDRA-6009 Project: Cassandra Issue Type: Bug Components: Core, Tools Environment: cassandra 2.0, jdk 7 Reporter: koray sariteke upgrade cassandra from 1.2.6 to 1.2.9 first, then upgrade from 1.2.9 to 2.0.0 as documented at cassandra upgrade doc describe command is not giving table definition properly cqlsh:datadb DESCRIBE KEYSPACE demoks ; CREATE KEYSPACE demoks WITH replication = { 'class': 'SimpleStrategy', 'replication_factor': '2' }; USE demoks; CREATE TABLE demodb ( description text, symbol text, list index out of range PRIMARY KEY (cqlsh:datadb -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Resolved] (CASSANDRA-5990) Hinted Handoff: java.lang.ArithmeticException: / by zero
[ https://issues.apache.org/jira/browse/CASSANDRA-5990?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jonathan Ellis resolved CASSANDRA-5990. --- Resolution: Fixed Fix Version/s: 2.0.1 1.2.10 Assignee: Jonathan Ellis fixed in 8cc28a1477e19545bd0f6dca9180c937f9c85c8d Hinted Handoff: java.lang.ArithmeticException: / by zero Key: CASSANDRA-5990 URL: https://issues.apache.org/jira/browse/CASSANDRA-5990 Project: Cassandra Issue Type: Bug Environment: cassandra 1.2.8 Oracle Java 1.7.0_25-b15 RHEL6 Reporter: Karl Mueller Assignee: Jonathan Ellis Priority: Minor Fix For: 1.2.10, 2.0.1 This node was down for a few hours. When bringing it back up, I saw this error in the logs. I'm not sure if it's receiving or sending hinted hand-offs. INFO [HintedHandoff:1] 2013-09-09 14:41:04,020 HintedHandOffManager.java (line 292) Started hinted handoff for host: 42bba02f-3088-4be1-8cb2-748a6f15e15d with IP: /10.93.12.14 ERROR [HintedHandoff:1] 2013-09-09 14:41:04,024 CassandraDaemon.java (line 192) Exception in thread Thread[HintedHandoff:1,1,main] java.lang.ArithmeticException: / by zero at org.apache.cassandra.db.HintedHandOffManager.calculatePageSize(HintedHandOffManager.java:441) at org.apache.cassandra.db.HintedHandOffManager.doDeliverHintsToEndpoint(HintedHandOffManager.java:299) at org.apache.cassandra.db.HintedHandOffManager.deliverHintsToEndpoint(HintedHandOffManager.java:278) at org.apache.cassandra.db.HintedHandOffManager.access$300(HintedHandOffManager.java:90) at org.apache.cassandra.db.HintedHandOffManager$4.run(HintedHandOffManager.java:497) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:724) -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (CASSANDRA-6007) guava dependency mismatch between datastax/driver 2.0 and cassandra 2.0
[ https://issues.apache.org/jira/browse/CASSANDRA-6007?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Yeschenko updated CASSANDRA-6007: - Attachment: 6007.txt guava dependency mismatch between datastax/driver 2.0 and cassandra 2.0 --- Key: CASSANDRA-6007 URL: https://issues.apache.org/jira/browse/CASSANDRA-6007 Project: Cassandra Issue Type: Bug Components: Core, Drivers Reporter: Max Penet Assignee: Aleksey Yeschenko Attachments: 6007.txt Attempting to load datastax/java-driver 2.0 beta1 and cassandra-all 2.0 in the same jvm causes some issues mainly because of clashes between guava versions (15.0 in the driver vs 13.0.1 in c*). This makes automated testing using EmbeddedCassandraService problematic for instance. Stacktrace from https://github.com/mpenet/alia/tree/2.0 running lein test Upgrading c* 2.0 to guava 15+ should help fix this issue. {code:java} java.lang.IllegalAccessError: tried to access method com.google.common.collect.MapMaker.makeComputingMap(Lcom/google/common/base/Function;)Ljava/util/concurrent/ConcurrentMap; from class org.apache.cassandra.service.StorageProxy at org.apache.cassandra.service.StorageProxy.clinit(StorageProxy.java:87) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:190) at org.apache.cassandra.service.StorageService.initServer(StorageService.java:447) at org.apache.cassandra.service.StorageService.initServer(StorageService.java:426) at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:344) at org.apache.cassandra.service.CassandraDaemon.init(CassandraDaemon.java:377) at org.apache.cassandra.service.EmbeddedCassandraService.start(EmbeddedCassandraService.java:52) at qbits.alia.test.embedded$start_service_BANG_.invoke(embedded.clj:20) at qbits.alia.test.embedded$eval10911.invoke(embedded.clj:24) at clojure.lang.Compiler.eval(Compiler.java:6619) at clojure.lang.Compiler.load(Compiler.java:7064) at clojure.lang.RT.loadResourceScript(RT.java:370) at clojure.lang.RT.loadResourceScript(RT.java:361) at clojure.lang.RT.load(RT.java:440) at clojure.lang.RT.load(RT.java:411) at clojure.core$load$fn__5018.invoke(core.clj:5530) at clojure.core$load.doInvoke(core.clj:5529) at clojure.lang.RestFn.invoke(RestFn.java:408) at clojure.core$load_one.invoke(core.clj:5336) at clojure.core$load_lib$fn__4967.invoke(core.clj:5375) at clojure.core$load_lib.doInvoke(core.clj:5374) at clojure.lang.RestFn.applyTo(RestFn.java:142) at clojure.core$apply.invoke(core.clj:619) at clojure.core$load_libs.doInvoke(core.clj:5413) at clojure.lang.RestFn.applyTo(RestFn.java:137) at clojure.core$apply.invoke(core.clj:621) at clojure.core$use.doInvoke(core.clj:5507) at clojure.lang.RestFn.invoke(RestFn.java:703) at qbits.alia.test.core$eval161$loading__4910__auto162.invoke(core.clj:1) at qbits.alia.test.core$eval161.invoke(core.clj:1) at clojure.lang.Compiler.eval(Compiler.java:6619) at clojure.lang.Compiler.eval(Compiler.java:6608) at clojure.lang.Compiler.load(Compiler.java:7064) at clojure.lang.RT.loadResourceScript(RT.java:370) at clojure.lang.RT.loadResourceScript(RT.java:361) at clojure.lang.RT.load(RT.java:440) at clojure.lang.RT.load(RT.java:411) at clojure.core$load$fn__5018.invoke(core.clj:5530) at clojure.core$load.doInvoke(core.clj:5529) at clojure.lang.RestFn.invoke(RestFn.java:408) at clojure.core$load_one.invoke(core.clj:5336) at clojure.core$load_lib$fn__4967.invoke(core.clj:5375) at clojure.core$load_lib.doInvoke(core.clj:5374) at clojure.lang.RestFn.applyTo(RestFn.java:142) at clojure.core$apply.invoke(core.clj:619) at clojure.core$load_libs.doInvoke(core.clj:5413) at clojure.lang.RestFn.applyTo(RestFn.java:137) at clojure.core$apply.invoke(core.clj:619) at clojure.core$require.doInvoke(core.clj:5496) at clojure.lang.RestFn.applyTo(RestFn.java:137) at clojure.core$apply.invoke(core.clj:619) at user$eval85.invoke(NO_SOURCE_FILE:1) at clojure.lang.Compiler.eval(Compiler.java:6619) at clojure.lang.Compiler.eval(Compiler.java:6609) at clojure.lang.Compiler.eval(Compiler.java:6582) at clojure.core$eval.invoke(core.clj:2852) at clojure.main$eval_opt.invoke(main.clj:308) at clojure.main$initialize.invoke(main.clj:327) at clojure.main$null_opt.invoke(main.clj:362) at clojure.main$main.doInvoke(main.clj:440) at
[jira] [Updated] (CASSANDRA-6007) guava dependency mismatch between datastax/driver 2.0 and cassandra 2.0
[ https://issues.apache.org/jira/browse/CASSANDRA-6007?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Yeschenko updated CASSANDRA-6007: - Reviewer: jbellis Priority: Minor (was: Major) Fix Version/s: 2.0.1 1.2.10 Attaching a 1.2 based patch that replaces the deprecated MapMaker usage with CacheLoader (http://code.google.com/p/guava-libraries/wiki/MapMakerMigration) Will update the jar and build.xml separately, and only for 2.0.1. guava dependency mismatch between datastax/driver 2.0 and cassandra 2.0 --- Key: CASSANDRA-6007 URL: https://issues.apache.org/jira/browse/CASSANDRA-6007 Project: Cassandra Issue Type: Bug Components: Core, Drivers Reporter: Max Penet Assignee: Aleksey Yeschenko Priority: Minor Fix For: 1.2.10, 2.0.1 Attachments: 6007.txt Attempting to load datastax/java-driver 2.0 beta1 and cassandra-all 2.0 in the same jvm causes some issues mainly because of clashes between guava versions (15.0 in the driver vs 13.0.1 in c*). This makes automated testing using EmbeddedCassandraService problematic for instance. Stacktrace from https://github.com/mpenet/alia/tree/2.0 running lein test Upgrading c* 2.0 to guava 15+ should help fix this issue. {code:java} java.lang.IllegalAccessError: tried to access method com.google.common.collect.MapMaker.makeComputingMap(Lcom/google/common/base/Function;)Ljava/util/concurrent/ConcurrentMap; from class org.apache.cassandra.service.StorageProxy at org.apache.cassandra.service.StorageProxy.clinit(StorageProxy.java:87) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:190) at org.apache.cassandra.service.StorageService.initServer(StorageService.java:447) at org.apache.cassandra.service.StorageService.initServer(StorageService.java:426) at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:344) at org.apache.cassandra.service.CassandraDaemon.init(CassandraDaemon.java:377) at org.apache.cassandra.service.EmbeddedCassandraService.start(EmbeddedCassandraService.java:52) at qbits.alia.test.embedded$start_service_BANG_.invoke(embedded.clj:20) at qbits.alia.test.embedded$eval10911.invoke(embedded.clj:24) at clojure.lang.Compiler.eval(Compiler.java:6619) at clojure.lang.Compiler.load(Compiler.java:7064) at clojure.lang.RT.loadResourceScript(RT.java:370) at clojure.lang.RT.loadResourceScript(RT.java:361) at clojure.lang.RT.load(RT.java:440) at clojure.lang.RT.load(RT.java:411) at clojure.core$load$fn__5018.invoke(core.clj:5530) at clojure.core$load.doInvoke(core.clj:5529) at clojure.lang.RestFn.invoke(RestFn.java:408) at clojure.core$load_one.invoke(core.clj:5336) at clojure.core$load_lib$fn__4967.invoke(core.clj:5375) at clojure.core$load_lib.doInvoke(core.clj:5374) at clojure.lang.RestFn.applyTo(RestFn.java:142) at clojure.core$apply.invoke(core.clj:619) at clojure.core$load_libs.doInvoke(core.clj:5413) at clojure.lang.RestFn.applyTo(RestFn.java:137) at clojure.core$apply.invoke(core.clj:621) at clojure.core$use.doInvoke(core.clj:5507) at clojure.lang.RestFn.invoke(RestFn.java:703) at qbits.alia.test.core$eval161$loading__4910__auto162.invoke(core.clj:1) at qbits.alia.test.core$eval161.invoke(core.clj:1) at clojure.lang.Compiler.eval(Compiler.java:6619) at clojure.lang.Compiler.eval(Compiler.java:6608) at clojure.lang.Compiler.load(Compiler.java:7064) at clojure.lang.RT.loadResourceScript(RT.java:370) at clojure.lang.RT.loadResourceScript(RT.java:361) at clojure.lang.RT.load(RT.java:440) at clojure.lang.RT.load(RT.java:411) at clojure.core$load$fn__5018.invoke(core.clj:5530) at clojure.core$load.doInvoke(core.clj:5529) at clojure.lang.RestFn.invoke(RestFn.java:408) at clojure.core$load_one.invoke(core.clj:5336) at clojure.core$load_lib$fn__4967.invoke(core.clj:5375) at clojure.core$load_lib.doInvoke(core.clj:5374) at clojure.lang.RestFn.applyTo(RestFn.java:142) at clojure.core$apply.invoke(core.clj:619) at clojure.core$load_libs.doInvoke(core.clj:5413) at clojure.lang.RestFn.applyTo(RestFn.java:137) at clojure.core$apply.invoke(core.clj:619) at clojure.core$require.doInvoke(core.clj:5496) at clojure.lang.RestFn.applyTo(RestFn.java:137) at clojure.core$apply.invoke(core.clj:619) at user$eval85.invoke(NO_SOURCE_FILE:1) at clojure.lang.Compiler.eval(Compiler.java:6619) at
[jira] [Commented] (CASSANDRA-5953) Replication validation is broken
[ https://issues.apache.org/jira/browse/CASSANDRA-5953?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13765354#comment-13765354 ] Jonathan Ellis commented on CASSANDRA-5953: --- The old contract used to be, We will allow you to create it, but you promise to add the required nodes before inserting or we will reject the insert. This is the right behavior, because the hint contract is, Any dead or timing out nodes will get hinted so you don't need to run repair (as long as there is no hardware loss) if it comes back up within the hint window. We can't do this if the missing nodes simply don't exist. Replication validation is broken Key: CASSANDRA-5953 URL: https://issues.apache.org/jira/browse/CASSANDRA-5953 Project: Cassandra Issue Type: Bug Components: Core Reporter: Jonathan Ellis Assignee: Sylvain Lebresne Priority: Minor Fix For: 1.2.10 On my local, single node cluster, RF=3 inserts should not succeed: {noformat} cqlsh CREATE KEYSPACE mykeyspace WITH REPLICATION = { 'class' : 'SimpleStrategy', 'replication_factor' : 3 }; cqlsh use mykeyspace ; cqlsh:mykeyspace CREATE TABLE users ( ... user_id int PRIMARY KEY, ... fname text, ... lname text ... ); cqlsh:mykeyspace INSERT INTO users (user_id, fname, lname) ... VALUES (1745, 'john', 'smith'); cqlsh:mykeyspace select * from users; user_id | fname | lname -+---+--- 1745 | john | smith {noformat} -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (CASSANDRA-5953) Replication validation should reject RF nodes in cluster
[ https://issues.apache.org/jira/browse/CASSANDRA-5953?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jonathan Ellis updated CASSANDRA-5953: -- Summary: Replication validation should reject RF nodes in cluster (was: Replication validation is broken) Replication validation should reject RF nodes in cluster -- Key: CASSANDRA-5953 URL: https://issues.apache.org/jira/browse/CASSANDRA-5953 Project: Cassandra Issue Type: Bug Components: Core Reporter: Jonathan Ellis Assignee: Sylvain Lebresne Priority: Minor Fix For: 1.2.10 On my local, single node cluster, RF=3 inserts should not succeed: {noformat} cqlsh CREATE KEYSPACE mykeyspace WITH REPLICATION = { 'class' : 'SimpleStrategy', 'replication_factor' : 3 }; cqlsh use mykeyspace ; cqlsh:mykeyspace CREATE TABLE users ( ... user_id int PRIMARY KEY, ... fname text, ... lname text ... ); cqlsh:mykeyspace INSERT INTO users (user_id, fname, lname) ... VALUES (1745, 'john', 'smith'); cqlsh:mykeyspace select * from users; user_id | fname | lname -+---+--- 1745 | john | smith {noformat} -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (CASSANDRA-5997) -D option to change cluster name
[ https://issues.apache.org/jira/browse/CASSANDRA-5997?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13765357#comment-13765357 ] Jonathan Ellis commented on CASSANDRA-5997: --- Why not just update system.local set cluster_name = 'foo' where key = 'local'? -D option to change cluster name Key: CASSANDRA-5997 URL: https://issues.apache.org/jira/browse/CASSANDRA-5997 Project: Cassandra Issue Type: Improvement Reporter: Robert Coli Priority: Minor A steady trickle of users have a need to change the name of their cluster. Perhaps they accidentally started their cluster with the wrong name and now want to change it. http://wiki.apache.org/cassandra/FAQ#clustername_mismatch Has the old recommendation, which was to edit the cluster name in LocationInfo and then restart. http://comments.gmane.org/gmane.comp.db.cassandra.user/29753 Has the old workaround, which was to remove LocationInfo CF entirely. As this info now lives in a column called cluster_name in a row with key local in a CF called local in the keyspace system, one can no longer simply nuke LocationInfo. The only workaround remaining is to nuke the entire system Keyspace and re-coalesce the cluster, and then reload schema. The community continues to need to perform this operation and we do not want to tell them to nuke or manually modify the system keyspace (though it seems they have perms again to modify..). This ticket requests a new startup -D flag -Dcassandra.new_cluster_name which allows one to overwrite this value at startup time. This means a rolling restart will accomplish the rename my cluster task, with only the cost of split-cluster for the duration. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[10/12] git commit: Merge branch 'cassandra-1.2' into cassandra-2.0
Merge branch 'cassandra-1.2' into cassandra-2.0 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/7bde2454 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/7bde2454 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/7bde2454 Branch: refs/heads/cassandra-2.0 Commit: 7bde2454daff05a603973767fd92c531e245b404 Parents: 69c9e03 394b35e Author: Jonathan Ellis jbel...@apache.org Authored: Thu Sep 12 13:41:01 2013 +0200 Committer: Jonathan Ellis jbel...@apache.org Committed: Thu Sep 12 13:41:01 2013 +0200 -- .../org/apache/cassandra/cql3/UntypedResultSet.java | 15 ++- 1 file changed, 14 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/7bde2454/src/java/org/apache/cassandra/cql3/UntypedResultSet.java -- diff --cc src/java/org/apache/cassandra/cql3/UntypedResultSet.java index 3ef5c95,b77e727..da76f2b --- a/src/java/org/apache/cassandra/cql3/UntypedResultSet.java +++ b/src/java/org/apache/cassandra/cql3/UntypedResultSet.java @@@ -77,15 -77,12 +77,17 @@@ public class UntypedResultSet implement public static class Row { - MapString, ByteBuffer data = new HashMapString, ByteBuffer(); + final MapString, ByteBuffer data = new HashMapString, ByteBuffer(); + final ListColumnSpecification columns; +public Row(MapString, ByteBuffer data) +{ +this.data.putAll(data); +} + public Row(ListColumnSpecification names, ListByteBuffer columns) { + this.columns = names; for (int i = 0; i names.size(); i++) data.put(names.get(i).toString(), columns.get(i)); }
[12/12] git commit: Merge branch 'cassandra-2.0' into trunk
Merge branch 'cassandra-2.0' into trunk Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/03f3642b Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/03f3642b Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/03f3642b Branch: refs/heads/trunk Commit: 03f3642b1699a3c2634cbb518ff4db45bbd51ffe Parents: 115cbb1 7bde245 Author: Jonathan Ellis jbel...@apache.org Authored: Thu Sep 12 13:41:07 2013 +0200 Committer: Jonathan Ellis jbel...@apache.org Committed: Thu Sep 12 13:41:07 2013 +0200 -- .../org/apache/cassandra/cql3/UntypedResultSet.java | 15 ++- 1 file changed, 14 insertions(+), 1 deletion(-) --
[08/12] git commit: enhance UntypedResultSet patch by Ben Coverston; reviewed by jbellis for CASSANDRA-6000
enhance UntypedResultSet patch by Ben Coverston; reviewed by jbellis for CASSANDRA-6000 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/394b35ed Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/394b35ed Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/394b35ed Branch: refs/heads/trunk Commit: 394b35edf3e6fa4d83386622b438a8ca684385ad Parents: 8cc28a1 Author: Jonathan Ellis jbel...@apache.org Authored: Thu Sep 12 13:40:40 2013 +0200 Committer: Jonathan Ellis jbel...@apache.org Committed: Thu Sep 12 13:40:40 2013 +0200 -- .../org/apache/cassandra/cql3/UntypedResultSet.java | 15 ++- 1 file changed, 14 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/394b35ed/src/java/org/apache/cassandra/cql3/UntypedResultSet.java -- diff --git a/src/java/org/apache/cassandra/cql3/UntypedResultSet.java b/src/java/org/apache/cassandra/cql3/UntypedResultSet.java index 9bee563..b77e727 100644 --- a/src/java/org/apache/cassandra/cql3/UntypedResultSet.java +++ b/src/java/org/apache/cassandra/cql3/UntypedResultSet.java @@ -77,10 +77,12 @@ public class UntypedResultSet implements IterableUntypedResultSet.Row public static class Row { -MapString, ByteBuffer data = new HashMapString, ByteBuffer(); +final MapString, ByteBuffer data = new HashMapString, ByteBuffer(); +final ListColumnSpecification columns; public Row(ListColumnSpecification names, ListByteBuffer columns) { +this.columns = names; for (int i = 0; i names.size(); i++) data.put(names.get(i).toString(), columns.get(i)); } @@ -142,12 +144,23 @@ public class UntypedResultSet implements IterableUntypedResultSet.Row return raw == null ? null : SetType.getInstance(type).compose(raw); } +public T ListT getList(String column, AbstractTypeT type) +{ +ByteBuffer raw = data.get(column); +return raw == null ? null : ListType.getInstance(type).compose(raw); +} + public K, V MapK, V getMap(String column, AbstractTypeK keyType, AbstractTypeV valueType) { ByteBuffer raw = data.get(column); return raw == null ? null : MapType.getInstance(keyType, valueType).compose(raw); } +public ListColumnSpecification getColumns() +{ +return columns; +} + @Override public String toString() {
[05/12] git commit: merge from 1.2
merge from 1.2 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/69c9e031 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/69c9e031 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/69c9e031 Branch: refs/heads/trunk Commit: 69c9e031ee1aa8b96f29ac47ab5e8b79b5c2ac0f Parents: 7f117da 8cc28a1 Author: Jonathan Ellis jbel...@apache.org Authored: Thu Sep 12 13:22:00 2013 +0200 Committer: Jonathan Ellis jbel...@apache.org Committed: Thu Sep 12 13:22:00 2013 +0200 -- CHANGES.txt| 1 + src/java/org/apache/cassandra/db/HintedHandOffManager.java | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/69c9e031/CHANGES.txt -- diff --cc CHANGES.txt index 68829d8,6ece609..6807039 --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,19 -1,5 +1,20 @@@ -1.2.10 +2.0.1 + * Improve error message when yaml contains invalid properties (CASSANDRA-5958) + * Improve leveled compaction's ability to find non-overlapping L0 compactions + to work on concurrently (CASSANDRA-5921) + * Notify indexer of columns shadowed by range tombstones (CASSANDRA-5614) + * Log Merkle tree stats (CASSANDRA-2698) + * Switch from crc32 to adler32 for compressed sstable checksums (CASSANDRA-5862) + * Improve offheap memcpy performance (CASSANDRA-5884) + * Use a range aware scanner for cleanup (CASSANDRA-2524) + * Cleanup doesn't need to inspect sstables that contain only local data + (CASSANDRA-5722) + * Add ability for CQL3 to list partition keys (CASSANDRA-4536) + * Improve native protocol serialization (CASSANDRA-5664) + * Upgrade Thrift to 0.9.1 (CASSANDRA-5923) + * Require superuser status for adding triggers (CASSANDRA-5963) +Merged from 1.2: + * Fix possible divide-by-zero in HHOM (CASSANDRA-5990) * Allow local batchlog writes for CL.ANY (CASSANDRA-5967) * Optimize name query performance in wide rows (CASSANDRA-5966) * Upgrade metrics-core to version 2.2.0 (CASSANDRA-5947) http://git-wip-us.apache.org/repos/asf/cassandra/blob/69c9e031/src/java/org/apache/cassandra/db/HintedHandOffManager.java --
[04/12] git commit: merge from 1.2
merge from 1.2 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/69c9e031 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/69c9e031 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/69c9e031 Branch: refs/heads/cassandra-2.0 Commit: 69c9e031ee1aa8b96f29ac47ab5e8b79b5c2ac0f Parents: 7f117da 8cc28a1 Author: Jonathan Ellis jbel...@apache.org Authored: Thu Sep 12 13:22:00 2013 +0200 Committer: Jonathan Ellis jbel...@apache.org Committed: Thu Sep 12 13:22:00 2013 +0200 -- CHANGES.txt| 1 + src/java/org/apache/cassandra/db/HintedHandOffManager.java | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/69c9e031/CHANGES.txt -- diff --cc CHANGES.txt index 68829d8,6ece609..6807039 --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,19 -1,5 +1,20 @@@ -1.2.10 +2.0.1 + * Improve error message when yaml contains invalid properties (CASSANDRA-5958) + * Improve leveled compaction's ability to find non-overlapping L0 compactions + to work on concurrently (CASSANDRA-5921) + * Notify indexer of columns shadowed by range tombstones (CASSANDRA-5614) + * Log Merkle tree stats (CASSANDRA-2698) + * Switch from crc32 to adler32 for compressed sstable checksums (CASSANDRA-5862) + * Improve offheap memcpy performance (CASSANDRA-5884) + * Use a range aware scanner for cleanup (CASSANDRA-2524) + * Cleanup doesn't need to inspect sstables that contain only local data + (CASSANDRA-5722) + * Add ability for CQL3 to list partition keys (CASSANDRA-4536) + * Improve native protocol serialization (CASSANDRA-5664) + * Upgrade Thrift to 0.9.1 (CASSANDRA-5923) + * Require superuser status for adding triggers (CASSANDRA-5963) +Merged from 1.2: + * Fix possible divide-by-zero in HHOM (CASSANDRA-5990) * Allow local batchlog writes for CL.ANY (CASSANDRA-5967) * Optimize name query performance in wide rows (CASSANDRA-5966) * Upgrade metrics-core to version 2.2.0 (CASSANDRA-5947) http://git-wip-us.apache.org/repos/asf/cassandra/blob/69c9e031/src/java/org/apache/cassandra/db/HintedHandOffManager.java --
[06/12] git commit: Merge branch 'cassandra-2.0' into trunk
Merge branch 'cassandra-2.0' into trunk Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/115cbb19 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/115cbb19 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/115cbb19 Branch: refs/heads/trunk Commit: 115cbb19c05f7c89dee6d2cc25fc90b110db7415 Parents: 4f11934 69c9e03 Author: Jonathan Ellis jbel...@apache.org Authored: Thu Sep 12 13:22:06 2013 +0200 Committer: Jonathan Ellis jbel...@apache.org Committed: Thu Sep 12 13:22:06 2013 +0200 -- CHANGES.txt| 1 + src/java/org/apache/cassandra/db/HintedHandOffManager.java | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/115cbb19/CHANGES.txt -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/115cbb19/src/java/org/apache/cassandra/db/HintedHandOffManager.java --
[11/12] git commit: Merge branch 'cassandra-1.2' into cassandra-2.0
Merge branch 'cassandra-1.2' into cassandra-2.0 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/7bde2454 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/7bde2454 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/7bde2454 Branch: refs/heads/trunk Commit: 7bde2454daff05a603973767fd92c531e245b404 Parents: 69c9e03 394b35e Author: Jonathan Ellis jbel...@apache.org Authored: Thu Sep 12 13:41:01 2013 +0200 Committer: Jonathan Ellis jbel...@apache.org Committed: Thu Sep 12 13:41:01 2013 +0200 -- .../org/apache/cassandra/cql3/UntypedResultSet.java | 15 ++- 1 file changed, 14 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/7bde2454/src/java/org/apache/cassandra/cql3/UntypedResultSet.java -- diff --cc src/java/org/apache/cassandra/cql3/UntypedResultSet.java index 3ef5c95,b77e727..da76f2b --- a/src/java/org/apache/cassandra/cql3/UntypedResultSet.java +++ b/src/java/org/apache/cassandra/cql3/UntypedResultSet.java @@@ -77,15 -77,12 +77,17 @@@ public class UntypedResultSet implement public static class Row { - MapString, ByteBuffer data = new HashMapString, ByteBuffer(); + final MapString, ByteBuffer data = new HashMapString, ByteBuffer(); + final ListColumnSpecification columns; +public Row(MapString, ByteBuffer data) +{ +this.data.putAll(data); +} + public Row(ListColumnSpecification names, ListByteBuffer columns) { + this.columns = names; for (int i = 0; i names.size(); i++) data.put(names.get(i).toString(), columns.get(i)); }
[01/12] git commit: Fix possible divide-by-zero in HHOM patch by jbellis for CASSANDRA-5990
Updated Branches: refs/heads/cassandra-1.2 f5618e36d - 394b35edf refs/heads/cassandra-2.0 7f117da0c - 7bde2454d refs/heads/trunk 4f119341e - 03f3642b1 Fix possible divide-by-zero in HHOM patch by jbellis for CASSANDRA-5990 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/8cc28a14 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/8cc28a14 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/8cc28a14 Branch: refs/heads/cassandra-1.2 Commit: 8cc28a1477e19545bd0f6dca9180c937f9c85c8d Parents: f5618e3 Author: Jonathan Ellis jbel...@apache.org Authored: Thu Sep 12 13:21:20 2013 +0200 Committer: Jonathan Ellis jbel...@apache.org Committed: Thu Sep 12 13:21:37 2013 +0200 -- CHANGES.txt| 1 + src/java/org/apache/cassandra/db/HintedHandOffManager.java | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/8cc28a14/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index e420a7b..6ece609 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 1.2.10 + * Fix possible divide-by-zero in HHOM (CASSANDRA-5990) * Allow local batchlog writes for CL.ANY (CASSANDRA-5967) * Optimize name query performance in wide rows (CASSANDRA-5966) * Upgrade metrics-core to version 2.2.0 (CASSANDRA-5947) http://git-wip-us.apache.org/repos/asf/cassandra/blob/8cc28a14/src/java/org/apache/cassandra/db/HintedHandOffManager.java -- diff --git a/src/java/org/apache/cassandra/db/HintedHandOffManager.java b/src/java/org/apache/cassandra/db/HintedHandOffManager.java index 5ca32c3..c59 100644 --- a/src/java/org/apache/cassandra/db/HintedHandOffManager.java +++ b/src/java/org/apache/cassandra/db/HintedHandOffManager.java @@ -436,9 +436,10 @@ public class HintedHandOffManager implements HintedHandOffManagerMBean private int calculatePageSize() { // read less columns (mutations) per page if they are very large -if (hintStore.getMeanColumns() 0) +int meanColumnCount = hintStore.getMeanColumns(); +if (meanColumnCount 0) { -int averageColumnSize = (int) (hintStore.getMeanRowSize() / hintStore.getMeanColumns()); +int averageColumnSize = (int) (hintStore.getMeanRowSize() / meanColumnCount); // page size of 1 does not allow actual paging b/c of = behavior on startColumn return Math.max(2, Math.min(PAGE_SIZE, DatabaseDescriptor.getInMemoryCompactionLimit() / averageColumnSize)); }
[09/12] git commit: enhance UntypedResultSet patch by Ben Coverston; reviewed by jbellis for CASSANDRA-6000
enhance UntypedResultSet patch by Ben Coverston; reviewed by jbellis for CASSANDRA-6000 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/394b35ed Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/394b35ed Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/394b35ed Branch: refs/heads/cassandra-2.0 Commit: 394b35edf3e6fa4d83386622b438a8ca684385ad Parents: 8cc28a1 Author: Jonathan Ellis jbel...@apache.org Authored: Thu Sep 12 13:40:40 2013 +0200 Committer: Jonathan Ellis jbel...@apache.org Committed: Thu Sep 12 13:40:40 2013 +0200 -- .../org/apache/cassandra/cql3/UntypedResultSet.java | 15 ++- 1 file changed, 14 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/394b35ed/src/java/org/apache/cassandra/cql3/UntypedResultSet.java -- diff --git a/src/java/org/apache/cassandra/cql3/UntypedResultSet.java b/src/java/org/apache/cassandra/cql3/UntypedResultSet.java index 9bee563..b77e727 100644 --- a/src/java/org/apache/cassandra/cql3/UntypedResultSet.java +++ b/src/java/org/apache/cassandra/cql3/UntypedResultSet.java @@ -77,10 +77,12 @@ public class UntypedResultSet implements IterableUntypedResultSet.Row public static class Row { -MapString, ByteBuffer data = new HashMapString, ByteBuffer(); +final MapString, ByteBuffer data = new HashMapString, ByteBuffer(); +final ListColumnSpecification columns; public Row(ListColumnSpecification names, ListByteBuffer columns) { +this.columns = names; for (int i = 0; i names.size(); i++) data.put(names.get(i).toString(), columns.get(i)); } @@ -142,12 +144,23 @@ public class UntypedResultSet implements IterableUntypedResultSet.Row return raw == null ? null : SetType.getInstance(type).compose(raw); } +public T ListT getList(String column, AbstractTypeT type) +{ +ByteBuffer raw = data.get(column); +return raw == null ? null : ListType.getInstance(type).compose(raw); +} + public K, V MapK, V getMap(String column, AbstractTypeK keyType, AbstractTypeV valueType) { ByteBuffer raw = data.get(column); return raw == null ? null : MapType.getInstance(keyType, valueType).compose(raw); } +public ListColumnSpecification getColumns() +{ +return columns; +} + @Override public String toString() {
[03/12] git commit: Fix possible divide-by-zero in HHOM patch by jbellis for CASSANDRA-5990
Fix possible divide-by-zero in HHOM patch by jbellis for CASSANDRA-5990 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/8cc28a14 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/8cc28a14 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/8cc28a14 Branch: refs/heads/trunk Commit: 8cc28a1477e19545bd0f6dca9180c937f9c85c8d Parents: f5618e3 Author: Jonathan Ellis jbel...@apache.org Authored: Thu Sep 12 13:21:20 2013 +0200 Committer: Jonathan Ellis jbel...@apache.org Committed: Thu Sep 12 13:21:37 2013 +0200 -- CHANGES.txt| 1 + src/java/org/apache/cassandra/db/HintedHandOffManager.java | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/8cc28a14/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index e420a7b..6ece609 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 1.2.10 + * Fix possible divide-by-zero in HHOM (CASSANDRA-5990) * Allow local batchlog writes for CL.ANY (CASSANDRA-5967) * Optimize name query performance in wide rows (CASSANDRA-5966) * Upgrade metrics-core to version 2.2.0 (CASSANDRA-5947) http://git-wip-us.apache.org/repos/asf/cassandra/blob/8cc28a14/src/java/org/apache/cassandra/db/HintedHandOffManager.java -- diff --git a/src/java/org/apache/cassandra/db/HintedHandOffManager.java b/src/java/org/apache/cassandra/db/HintedHandOffManager.java index 5ca32c3..c59 100644 --- a/src/java/org/apache/cassandra/db/HintedHandOffManager.java +++ b/src/java/org/apache/cassandra/db/HintedHandOffManager.java @@ -436,9 +436,10 @@ public class HintedHandOffManager implements HintedHandOffManagerMBean private int calculatePageSize() { // read less columns (mutations) per page if they are very large -if (hintStore.getMeanColumns() 0) +int meanColumnCount = hintStore.getMeanColumns(); +if (meanColumnCount 0) { -int averageColumnSize = (int) (hintStore.getMeanRowSize() / hintStore.getMeanColumns()); +int averageColumnSize = (int) (hintStore.getMeanRowSize() / meanColumnCount); // page size of 1 does not allow actual paging b/c of = behavior on startColumn return Math.max(2, Math.min(PAGE_SIZE, DatabaseDescriptor.getInMemoryCompactionLimit() / averageColumnSize)); }
[02/12] git commit: Fix possible divide-by-zero in HHOM patch by jbellis for CASSANDRA-5990
Fix possible divide-by-zero in HHOM patch by jbellis for CASSANDRA-5990 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/8cc28a14 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/8cc28a14 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/8cc28a14 Branch: refs/heads/cassandra-2.0 Commit: 8cc28a1477e19545bd0f6dca9180c937f9c85c8d Parents: f5618e3 Author: Jonathan Ellis jbel...@apache.org Authored: Thu Sep 12 13:21:20 2013 +0200 Committer: Jonathan Ellis jbel...@apache.org Committed: Thu Sep 12 13:21:37 2013 +0200 -- CHANGES.txt| 1 + src/java/org/apache/cassandra/db/HintedHandOffManager.java | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/8cc28a14/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index e420a7b..6ece609 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 1.2.10 + * Fix possible divide-by-zero in HHOM (CASSANDRA-5990) * Allow local batchlog writes for CL.ANY (CASSANDRA-5967) * Optimize name query performance in wide rows (CASSANDRA-5966) * Upgrade metrics-core to version 2.2.0 (CASSANDRA-5947) http://git-wip-us.apache.org/repos/asf/cassandra/blob/8cc28a14/src/java/org/apache/cassandra/db/HintedHandOffManager.java -- diff --git a/src/java/org/apache/cassandra/db/HintedHandOffManager.java b/src/java/org/apache/cassandra/db/HintedHandOffManager.java index 5ca32c3..c59 100644 --- a/src/java/org/apache/cassandra/db/HintedHandOffManager.java +++ b/src/java/org/apache/cassandra/db/HintedHandOffManager.java @@ -436,9 +436,10 @@ public class HintedHandOffManager implements HintedHandOffManagerMBean private int calculatePageSize() { // read less columns (mutations) per page if they are very large -if (hintStore.getMeanColumns() 0) +int meanColumnCount = hintStore.getMeanColumns(); +if (meanColumnCount 0) { -int averageColumnSize = (int) (hintStore.getMeanRowSize() / hintStore.getMeanColumns()); +int averageColumnSize = (int) (hintStore.getMeanRowSize() / meanColumnCount); // page size of 1 does not allow actual paging b/c of = behavior on startColumn return Math.max(2, Math.min(PAGE_SIZE, DatabaseDescriptor.getInMemoryCompactionLimit() / averageColumnSize)); }
[07/12] git commit: enhance UntypedResultSet patch by Ben Coverston; reviewed by jbellis for CASSANDRA-6000
enhance UntypedResultSet patch by Ben Coverston; reviewed by jbellis for CASSANDRA-6000 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/394b35ed Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/394b35ed Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/394b35ed Branch: refs/heads/cassandra-1.2 Commit: 394b35edf3e6fa4d83386622b438a8ca684385ad Parents: 8cc28a1 Author: Jonathan Ellis jbel...@apache.org Authored: Thu Sep 12 13:40:40 2013 +0200 Committer: Jonathan Ellis jbel...@apache.org Committed: Thu Sep 12 13:40:40 2013 +0200 -- .../org/apache/cassandra/cql3/UntypedResultSet.java | 15 ++- 1 file changed, 14 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/394b35ed/src/java/org/apache/cassandra/cql3/UntypedResultSet.java -- diff --git a/src/java/org/apache/cassandra/cql3/UntypedResultSet.java b/src/java/org/apache/cassandra/cql3/UntypedResultSet.java index 9bee563..b77e727 100644 --- a/src/java/org/apache/cassandra/cql3/UntypedResultSet.java +++ b/src/java/org/apache/cassandra/cql3/UntypedResultSet.java @@ -77,10 +77,12 @@ public class UntypedResultSet implements IterableUntypedResultSet.Row public static class Row { -MapString, ByteBuffer data = new HashMapString, ByteBuffer(); +final MapString, ByteBuffer data = new HashMapString, ByteBuffer(); +final ListColumnSpecification columns; public Row(ListColumnSpecification names, ListByteBuffer columns) { +this.columns = names; for (int i = 0; i names.size(); i++) data.put(names.get(i).toString(), columns.get(i)); } @@ -142,12 +144,23 @@ public class UntypedResultSet implements IterableUntypedResultSet.Row return raw == null ? null : SetType.getInstance(type).compose(raw); } +public T ListT getList(String column, AbstractTypeT type) +{ +ByteBuffer raw = data.get(column); +return raw == null ? null : ListType.getInstance(type).compose(raw); +} + public K, V MapK, V getMap(String column, AbstractTypeK keyType, AbstractTypeV valueType) { ByteBuffer raw = data.get(column); return raw == null ? null : MapType.getInstance(keyType, valueType).compose(raw); } +public ListColumnSpecification getColumns() +{ +return columns; +} + @Override public String toString() {
[jira] [Commented] (CASSANDRA-6005) StandaloneScrubber assumes old-style json leveled manifest
[ https://issues.apache.org/jira/browse/CASSANDRA-6005?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13765467#comment-13765467 ] Jonathan Ellis commented on CASSANDRA-6005: --- +1 StandaloneScrubber assumes old-style json leveled manifest -- Key: CASSANDRA-6005 URL: https://issues.apache.org/jira/browse/CASSANDRA-6005 Project: Cassandra Issue Type: Bug Reporter: Marcus Eriksson Assignee: Marcus Eriksson Priority: Trivial Fix For: 2.0.1 Attachments: 0001-Make-StandaloneScrubber-handle-new-leveled-manifest.patch With standalone scrubber in 2.0 we can encounter both the old-style json manifest and the new way, StandaloneScrubber needs to handle this. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (CASSANDRA-5996) Remove leveled manifest json migration code
[ https://issues.apache.org/jira/browse/CASSANDRA-5996?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13765464#comment-13765464 ] Jonathan Ellis commented on CASSANDRA-5996: --- +1 Remove leveled manifest json migration code --- Key: CASSANDRA-5996 URL: https://issues.apache.org/jira/browse/CASSANDRA-5996 Project: Cassandra Issue Type: Improvement Reporter: Marcus Eriksson Assignee: Marcus Eriksson Priority: Minor Fix For: 2.1 Attachments: 0001-remove-old-json-manifest-migration-code.patch, 0001-remove-old-json-manifest-migration-code-v2.patch We should remove the json leveled manifest migration code from 2.1 this will require users to atleast start 2.0 before upgrading to 2.1 (manifest is migrated on startup). -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (CASSANDRA-6010) Notify before deleting SSTable
[ https://issues.apache.org/jira/browse/CASSANDRA-6010?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Yeschenko updated CASSANDRA-6010: - Reviewer: iamaleksey Notify before deleting SSTable -- Key: CASSANDRA-6010 URL: https://issues.apache.org/jira/browse/CASSANDRA-6010 Project: Cassandra Issue Type: New Feature Components: Core Reporter: Piotr Kołaczkowski Assignee: Piotr Kołaczkowski Priority: Minor Attachments: 0001-DSP-2472-Add-pre-delete-sstable-notification.patch If we register custom SSTable components, Cassandra would delete them when performing scrub. We need a notification sent right before deleting, so that any parties that registered custom SSTable components would have a chance to save those data from being permanently deleted. Right now we need it for DSE - currently scrub breaks CFS compaction which relies on custom SSTable components. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Comment Edited] (CASSANDRA-5947) Sampling bug in metrics-core-2.0.3.jar used by Cassandra
[ https://issues.apache.org/jira/browse/CASSANDRA-5947?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13765493#comment-13765493 ] Jeremiah Jordan edited comment on CASSANDRA-5947 at 9/12/13 3:29 PM: - What jconsole are you running? The 1.7u21 jconsole doesn't show the quoting. As [~cburroughs] said earlier, I think it is just cosmetic either way. Edit: Never mind, I see it now, it sorts the quoted one to the top. was (Author: jjordan): What jconsole are you running? The 1.7u21 jconsole doesn't show the quoting. As [~cburroughs] said earlier, I think it is just cosmetic either way. Sampling bug in metrics-core-2.0.3.jar used by Cassandra Key: CASSANDRA-5947 URL: https://issues.apache.org/jira/browse/CASSANDRA-5947 Project: Cassandra Issue Type: Bug Components: Tools Reporter: J.B. Langston Assignee: Jonathan Ellis Priority: Minor Fix For: 1.2.10, 2.0.1 Attachments: Screen Shot 2013-09-10 at 2.23.11 PM.png There is a sampling bug in the version of the metrics library we're using in Cassandra. See https://github.com/codahale/metrics/issues/421. ExponentiallyDecayingSample is used by the Timer's histogram that is used in stress tool, and according to [~brandon.williams] it is also in a few other places like the dynamic snitch. The statistical theory involved in this bug goes over my head so i'm not sure if this would bug would meaningfully affect its usage by Cassandra. One of the comments on the bug mentions that it affects slow sampling rates (10 samples/min was the example given). We're currently distributing metrics-core-2.0.3.jar and according to the release nodes, this bug is fixed in 2.1.3: http://metrics.codahale.com/about/release-notes/#v2-1-3-aug-06-2012 -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (CASSANDRA-6012) CAS does not always correctly replay inProgress rounds
[ https://issues.apache.org/jira/browse/CASSANDRA-6012?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Sylvain Lebresne updated CASSANDRA-6012: Since Version: 2.0 Fix Version/s: 2.0.1 CAS does not always correctly replay inProgress rounds -- Key: CASSANDRA-6012 URL: https://issues.apache.org/jira/browse/CASSANDRA-6012 Project: Cassandra Issue Type: Bug Reporter: Sylvain Lebresne Assignee: Sylvain Lebresne Fix For: 2.0.1 Attachments: 0001-Don-t-skip-paxos-old-round-replay-if-there-is-a-value-.txt Paxos says that on receiving the result of a prepare from a quorum of acceptors, the proposer should propose the value of the higher-number proposal accepted amongst the ones returned by the acceptors, and only propose his own value if no acceptor has send us back a previously accepted value. But in PrepareCallback we only keep the more recent inProgress commit regardless of whether is has an update. Which means we could ignore a value already accepted by some acceptors if any of the acceptor send us a more recent ballot than the other acceptor but with no values. The net effect is that we can mistakenly accept two different values for the same round. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Created] (CASSANDRA-6010) Notify before deleting SSTable
Piotr Kołaczkowski created CASSANDRA-6010: - Summary: Notify before deleting SSTable Key: CASSANDRA-6010 URL: https://issues.apache.org/jira/browse/CASSANDRA-6010 Project: Cassandra Issue Type: New Feature Components: Core Reporter: Piotr Kołaczkowski Assignee: Piotr Kołaczkowski Priority: Minor If we register custom SSTable components, Cassandra would delete them when performing scrub. We need a notification sent right before deleting, so that any parties that registered custom SSTable components would have a chance to save those data from being permanently deleted. Right now we need it for DSE - currently scrub breaks CFS compaction which relies on custom SSTable components. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
git commit: Fix CASSANDRA-6000 and CASSANDRA-5990 merges
Updated Branches: refs/heads/cassandra-2.0 7cb57dbcc - 349d5dbea Fix CASSANDRA-6000 and CASSANDRA-5990 merges Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/349d5dbe Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/349d5dbe Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/349d5dbe Branch: refs/heads/cassandra-2.0 Commit: 349d5dbeadfa2abca1b2d067f2e796aa41f06e8d Parents: 7cb57db Author: Aleksey Yeschenko alek...@apache.org Authored: Thu Sep 12 18:37:21 2013 +0300 Committer: Aleksey Yeschenko alek...@apache.org Committed: Thu Sep 12 18:37:21 2013 +0300 -- .../org/apache/cassandra/config/CFMetaData.java | 4 ++- .../apache/cassandra/cql3/UntypedResultSet.java | 14 +++- .../cassandra/hadoop/pig/CassandraStorage.java | 34 3 files changed, 13 insertions(+), 39 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/349d5dbe/src/java/org/apache/cassandra/config/CFMetaData.java -- diff --git a/src/java/org/apache/cassandra/config/CFMetaData.java b/src/java/org/apache/cassandra/config/CFMetaData.java index e912505..be3da21 100644 --- a/src/java/org/apache/cassandra/config/CFMetaData.java +++ b/src/java/org/apache/cassandra/config/CFMetaData.java @@ -936,7 +936,9 @@ public final class CFMetaData for (org.apache.cassandra.thrift.Column column : row.getColumns()) columns.put(ByteBufferUtil.string(column.bufferForName()), column.value); } -catch (CharacterCodingException ignore) {} +catch (CharacterCodingException ignore) +{ +} UntypedResultSet.Row cql3row = new UntypedResultSet.Row(columns); return fromSchemaNoColumnsNoTriggers(cql3row); } http://git-wip-us.apache.org/repos/asf/cassandra/blob/349d5dbe/src/java/org/apache/cassandra/cql3/UntypedResultSet.java -- diff --git a/src/java/org/apache/cassandra/cql3/UntypedResultSet.java b/src/java/org/apache/cassandra/cql3/UntypedResultSet.java index da76f2b..e5bd863 100644 --- a/src/java/org/apache/cassandra/cql3/UntypedResultSet.java +++ b/src/java/org/apache/cassandra/cql3/UntypedResultSet.java @@ -20,13 +20,7 @@ package org.apache.cassandra.cql3; import java.net.InetAddress; import java.nio.ByteBuffer; -import java.util.Date; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.UUID; +import java.util.*; import com.google.common.collect.AbstractIterator; @@ -77,8 +71,8 @@ public class UntypedResultSet implements IterableUntypedResultSet.Row public static class Row { -final MapString, ByteBuffer data = new HashMapString, ByteBuffer(); -final ListColumnSpecification columns; +private final MapString, ByteBuffer data = new HashMap(); +private final ListColumnSpecification columns = new ArrayList(); public Row(MapString, ByteBuffer data) { @@ -87,7 +81,7 @@ public class UntypedResultSet implements IterableUntypedResultSet.Row public Row(ListColumnSpecification names, ListByteBuffer columns) { -this.columns = names; +this.columns.addAll(names); for (int i = 0; i names.size(); i++) data.put(names.get(i).toString(), columns.get(i)); } http://git-wip-us.apache.org/repos/asf/cassandra/blob/349d5dbe/src/java/org/apache/cassandra/hadoop/pig/CassandraStorage.java -- diff --git a/src/java/org/apache/cassandra/hadoop/pig/CassandraStorage.java b/src/java/org/apache/cassandra/hadoop/pig/CassandraStorage.java index 577fd38..62f25cd 100644 --- a/src/java/org/apache/cassandra/hadoop/pig/CassandraStorage.java +++ b/src/java/org/apache/cassandra/hadoop/pig/CassandraStorage.java @@ -22,27 +22,15 @@ import java.nio.ByteBuffer; import java.nio.charset.CharacterCodingException; import java.util.*; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.apache.cassandra.db.Column; import org.apache.cassandra.db.marshal.*; import org.apache.cassandra.exceptions.ConfigurationException; +import org.apache.cassandra.exceptions.InvalidRequestException; import org.apache.cassandra.hadoop.*; -import org.apache.cassandra.thrift.Cassandra; -import org.apache.cassandra.thrift.CfDef; -import org.apache.cassandra.thrift.ColumnDef; -import org.apache.cassandra.thrift.ColumnOrSuperColumn; -import org.apache.cassandra.thrift.Deletion; -import org.apache.cassandra.thrift.IndexClause; -import org.apache.cassandra.thrift.IndexExpression; -import
[jira] [Created] (CASSANDRA-6012) CAS does not always correctly replay inProgress rounds
Sylvain Lebresne created CASSANDRA-6012: --- Summary: CAS does not always correctly replay inProgress rounds Key: CASSANDRA-6012 URL: https://issues.apache.org/jira/browse/CASSANDRA-6012 Project: Cassandra Issue Type: Bug Reporter: Sylvain Lebresne Assignee: Sylvain Lebresne Attachments: 0001-Don-t-skip-paxos-old-round-replay-if-there-is-a-value-.txt Paxos says that on receiving the result of a prepare from a quorum of acceptors, the proposer should propose the value of the higher-number proposal accepted amongst the ones returned by the acceptors, and only propose his own value if no acceptor has send us back a previously accepted value. But in PrepareCallback we only keep the more recent inProgress commit regardless of whether is has an update. Which means we could ignore a value already accepted by some acceptors if any of the acceptor send us a more recent ballot than the other acceptor but with no values. The net effect is that we can mistakenly accept two different values for the same round. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (CASSANDRA-5947) Sampling bug in metrics-core-2.0.3.jar used by Cassandra
[ https://issues.apache.org/jira/browse/CASSANDRA-5947?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13765540#comment-13765540 ] Yuki Morishita commented on CASSANDRA-5947: --- With this update, I see o.a.c.metrics.ColumnFamily and ThreadPools are unquoted and all others are quoted. This is because above those metrics build their own JMX object name instead of auto generating from coda metrics name. We can force JMX name as before, and I think we should to avoid confusion. Sampling bug in metrics-core-2.0.3.jar used by Cassandra Key: CASSANDRA-5947 URL: https://issues.apache.org/jira/browse/CASSANDRA-5947 Project: Cassandra Issue Type: Bug Components: Tools Reporter: J.B. Langston Assignee: Jonathan Ellis Priority: Minor Fix For: 1.2.10, 2.0.1 Attachments: Screen Shot 2013-09-10 at 2.23.11 PM.png There is a sampling bug in the version of the metrics library we're using in Cassandra. See https://github.com/codahale/metrics/issues/421. ExponentiallyDecayingSample is used by the Timer's histogram that is used in stress tool, and according to [~brandon.williams] it is also in a few other places like the dynamic snitch. The statistical theory involved in this bug goes over my head so i'm not sure if this would bug would meaningfully affect its usage by Cassandra. One of the comments on the bug mentions that it affects slow sampling rates (10 samples/min was the example given). We're currently distributing metrics-core-2.0.3.jar and according to the release nodes, this bug is fixed in 2.1.3: http://metrics.codahale.com/about/release-notes/#v2-1-3-aug-06-2012 -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (CASSANDRA-6012) CAS does not always correctly replay inProgress rounds
[ https://issues.apache.org/jira/browse/CASSANDRA-6012?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Sylvain Lebresne updated CASSANDRA-6012: Attachment: 0001-Don-t-skip-paxos-old-round-replay-if-there-is-a-value-.txt Attaching fix: as far as checking if we should finish an inProgress round, we only need to keep the most recent inProgress commit that has a value. But so as to not break the optimization of CASSANDRA-5667, the patch also keep the most recent inProgress, regardless of whether it has a value or not. CAS does not always correctly replay inProgress rounds -- Key: CASSANDRA-6012 URL: https://issues.apache.org/jira/browse/CASSANDRA-6012 Project: Cassandra Issue Type: Bug Reporter: Sylvain Lebresne Assignee: Sylvain Lebresne Attachments: 0001-Don-t-skip-paxos-old-round-replay-if-there-is-a-value-.txt Paxos says that on receiving the result of a prepare from a quorum of acceptors, the proposer should propose the value of the higher-number proposal accepted amongst the ones returned by the acceptors, and only propose his own value if no acceptor has send us back a previously accepted value. But in PrepareCallback we only keep the more recent inProgress commit regardless of whether is has an update. Which means we could ignore a value already accepted by some acceptors if any of the acceptor send us a more recent ballot than the other acceptor but with no values. The net effect is that we can mistakenly accept two different values for the same round. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Created] (CASSANDRA-6013) CAS may return false but still commit the insert
Sylvain Lebresne created CASSANDRA-6013: --- Summary: CAS may return false but still commit the insert Key: CASSANDRA-6013 URL: https://issues.apache.org/jira/browse/CASSANDRA-6013 Project: Cassandra Issue Type: Bug Reporter: Sylvain Lebresne If a Paxos proposer proposes some value/update and that propose fail, there is no guarantee on whether this value will be accepted or not ultimately. Paxos only guarantees that we'll agree on a value (for a given round in our case), but does guarantee that the proposer of the agreed upon value will know it. In particular, if for a given proposal at least one accepter has accepted it but not a quorum does, then that value might (but that's not guaranteed either) be replayed (and committed) by another proposer. Currently, if a proposer A proposes some update U but it is rejected, A will sleep a bit and retry U. But if U was accepted by at least one acceptor, some other proposer B might replay U, succeed and commit it. If A does its retry after that happens, he will prepare, check the condition, and probably find that the conditions don't apply anymore since U has been committed already. It will thus return false, even though U has been in fact committed. Unfortunately I'm not sure there is an easy way for a proposer whose propose fails to know if the update will prevail or not eventually. Which mean the only acceptable solution I can see would be to return to the user I don't know (through some exception for instance). Which is annoying because having a proposal rejected won't be an extremely rare occurrence, even with relatively light contention, and returning I don't know often is a bit unfriendly. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[1/2] git commit: Update guava to 15.0
Updated Branches: refs/heads/trunk c1c29d847 - d57ce2845 Update guava to 15.0 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/53f19c84 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/53f19c84 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/53f19c84 Branch: refs/heads/trunk Commit: 53f19c8495e37433d70bcfa19f8575b712d8b763 Parents: 349d5db Author: Aleksey Yeschenko alek...@apache.org Authored: Thu Sep 12 18:44:27 2013 +0300 Committer: Aleksey Yeschenko alek...@apache.org Committed: Thu Sep 12 18:44:27 2013 +0300 -- build.xml | 2 +- lib/guava-13.0.1.jar | Bin 1891110 - 0 bytes lib/guava-15.0.jar| Bin 0 - 2172168 bytes lib/licenses/guava-13.0.1.txt | 202 - lib/licenses/guava-15.0.txt | 202 + 5 files changed, 203 insertions(+), 203 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/53f19c84/build.xml -- diff --git a/build.xml b/build.xml index 74b3d0b..6aab42a 100644 --- a/build.xml +++ b/build.xml @@ -338,7 +338,7 @@ dependency groupId=org.xerial.snappy artifactId=snappy-java version=1.0.5/ dependency groupId=net.jpountz.lz4 artifactId=lz4 version=1.1.0/ dependency groupId=com.ning artifactId=compress-lzf version=0.8.4/ - dependency groupId=com.google.guava artifactId=guava version=13.0.1/ + dependency groupId=com.google.guava artifactId=guava version=15.0/ dependency groupId=commons-cli artifactId=commons-cli version=1.1/ dependency groupId=commons-codec artifactId=commons-codec version=1.2/ dependency groupId=org.apache.commons artifactId=commons-lang3 version=3.1/ http://git-wip-us.apache.org/repos/asf/cassandra/blob/53f19c84/lib/guava-13.0.1.jar -- diff --git a/lib/guava-13.0.1.jar b/lib/guava-13.0.1.jar deleted file mode 100644 index 09c5449..000 Binary files a/lib/guava-13.0.1.jar and /dev/null differ http://git-wip-us.apache.org/repos/asf/cassandra/blob/53f19c84/lib/guava-15.0.jar -- diff --git a/lib/guava-15.0.jar b/lib/guava-15.0.jar new file mode 100644 index 000..eb9ef8a Binary files /dev/null and b/lib/guava-15.0.jar differ http://git-wip-us.apache.org/repos/asf/cassandra/blob/53f19c84/lib/licenses/guava-13.0.1.txt -- diff --git a/lib/licenses/guava-13.0.1.txt b/lib/licenses/guava-13.0.1.txt deleted file mode 100644 index d645695..000 --- a/lib/licenses/guava-13.0.1.txt +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 -http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - License shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - Licensor shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - Legal Entity shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - control means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - You (or Your) shall mean an individual or Legal Entity - exercising permissions granted by this License. - - Source form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - Object form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - Work shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - Derivative Works shall mean any work, whether in Source or Object - form, that is based on (or derived
[2/2] git commit: Merge branch 'cassandra-2.0' into trunk
Merge branch 'cassandra-2.0' into trunk Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/d57ce284 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/d57ce284 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/d57ce284 Branch: refs/heads/trunk Commit: d57ce284505d33f6cb568fd577532f2aa4f4ddfa Parents: c1c29d8 53f19c8 Author: Aleksey Yeschenko alek...@apache.org Authored: Thu Sep 12 18:45:34 2013 +0300 Committer: Aleksey Yeschenko alek...@apache.org Committed: Thu Sep 12 18:45:34 2013 +0300 -- build.xml | 2 +- lib/guava-13.0.1.jar | Bin 1891110 - 0 bytes lib/guava-15.0.jar| Bin 0 - 2172168 bytes lib/licenses/guava-13.0.1.txt | 202 - lib/licenses/guava-15.0.txt | 202 + 5 files changed, 203 insertions(+), 203 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/d57ce284/build.xml -- diff --cc build.xml index 79a64eb,6aab42a..50a1b36 --- a/build.xml +++ b/build.xml @@@ -336,9 -336,9 +336,9 @@@ scm connection=${scm.connection} developerConnection=${scm.developerConnection} url=${scm.url}/ dependencyManagement dependency groupId=org.xerial.snappy artifactId=snappy-java version=1.0.5/ - dependency groupId=net.jpountz.lz4 artifactId=lz4 version=1.1.0/ + dependency groupId=net.jpountz.lz4 artifactId=lz4 version=1.1.2/ dependency groupId=com.ning artifactId=compress-lzf version=0.8.4/ - dependency groupId=com.google.guava artifactId=guava version=13.0.1/ + dependency groupId=com.google.guava artifactId=guava version=15.0/ dependency groupId=commons-cli artifactId=commons-cli version=1.1/ dependency groupId=commons-codec artifactId=commons-codec version=1.2/ dependency groupId=org.apache.commons artifactId=commons-lang3 version=3.1/
[jira] [Updated] (CASSANDRA-6012) CAS does not always correctly replay inProgress rounds
[ https://issues.apache.org/jira/browse/CASSANDRA-6012?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Sylvain Lebresne updated CASSANDRA-6012: Attachment: (was: 0001-Don-t-skip-paxos-old-round-replay-if-there-is-a-value-.txt) CAS does not always correctly replay inProgress rounds -- Key: CASSANDRA-6012 URL: https://issues.apache.org/jira/browse/CASSANDRA-6012 Project: Cassandra Issue Type: Bug Reporter: Sylvain Lebresne Assignee: Sylvain Lebresne Fix For: 2.0.1 Paxos says that on receiving the result of a prepare from a quorum of acceptors, the proposer should propose the value of the higher-number proposal accepted amongst the ones returned by the acceptors, and only propose his own value if no acceptor has send us back a previously accepted value. But in PrepareCallback we only keep the more recent inProgress commit regardless of whether is has an update. Which means we could ignore a value already accepted by some acceptors if any of the acceptor send us a more recent ballot than the other acceptor but with no values. The net effect is that we can mistakenly accept two different values for the same round. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Created] (CASSANDRA-6011) Race condition in snapshot repair
Nick Bailey created CASSANDRA-6011: -- Summary: Race condition in snapshot repair Key: CASSANDRA-6011 URL: https://issues.apache.org/jira/browse/CASSANDRA-6011 Project: Cassandra Issue Type: Bug Components: Core Reporter: Nick Bailey Fix For: 1.2.10, 2.0.1 When we do a snapshot/sequential repair, we use the repair session id as the snapshot name. Unfortunately in Directories.java when we delete a snapshot, we delete it for all column families, even when called on a specific cf store. So what can happen is this: Node B finishes validation compaction for CF1 and Notifies Node A Node B *starts* to delete snapshot for CF1 Node A finishes repair of CF1 and starts repair of CF2 Node B takes snapshot of CF2 and starts validation compaction, but the previous validation compaction is still deleting snapshots, so the snapshot it wants to run a validation on gets deleted out from under it. I've only reproduced on 1.2.6, but looking at the code this definitely looks like it exists in 1.2 HEAD. Not positive about 2.0. I think the fix is just to update Directories.java to not delete the snapshot from all column families. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[1/3] git commit: Replace the deprecated MapMaker with CacheLoader
Updated Branches: refs/heads/trunk 03f3642b1 - 0ec68f557 Replace the deprecated MapMaker with CacheLoader patch by Aleksey Yeschenko; reviewed by Jonathan Ellis for CASSANDRA-6007 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/53e48edc Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/53e48edc Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/53e48edc Branch: refs/heads/trunk Commit: 53e48edc3062bafb7a8b5c3c301add5cd6a2cb19 Parents: 394b35e Author: Aleksey Yeschenko alek...@apache.org Authored: Thu Sep 12 18:10:16 2013 +0300 Committer: Aleksey Yeschenko alek...@apache.org Committed: Thu Sep 12 18:10:16 2013 +0300 -- CHANGES.txt | 1 + .../apache/cassandra/service/StorageProxy.java | 26 ++-- 2 files changed, 20 insertions(+), 7 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/53e48edc/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 6ece609..1c09589 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -14,6 +14,7 @@ * Pass the updated cf to the PRSI index() method (CASSANDRA-5999) * Allow empty CQL3 batches (as no-op) (CASSANDRA-5994) * Support null in CQL3 functions (CASSANDRA-5910) + * Replace the deprecated MapMaker with CacheLoader (CASSANDRA-6007) 1.2.9 http://git-wip-us.apache.org/repos/asf/cassandra/blob/53e48edc/src/java/org/apache/cassandra/service/StorageProxy.java -- diff --git a/src/java/org/apache/cassandra/service/StorageProxy.java b/src/java/org/apache/cassandra/service/StorageProxy.java index 94db26d..23d73ec 100644 --- a/src/java/org/apache/cassandra/service/StorageProxy.java +++ b/src/java/org/apache/cassandra/service/StorageProxy.java @@ -29,7 +29,7 @@ import java.util.concurrent.atomic.AtomicLong; import javax.management.MBeanServer; import javax.management.ObjectName; -import com.google.common.base.Function; +import com.google.common.cache.CacheLoader; import com.google.common.collect.*; import org.apache.commons.lang.StringUtils; import org.slf4j.Logger; @@ -83,13 +83,13 @@ public class StorageProxy implements StorageProxyMBean private static volatile int maxHintsInProgress = 1024 * FBUtilities.getAvailableProcessors(); private static final AtomicInteger totalHintsInProgress = new AtomicInteger(); -private static final MapInetAddress, AtomicInteger hintsInProgress = new MapMaker().concurrencyLevel(1).makeComputingMap(new FunctionInetAddress, AtomicInteger() +private static final CacheLoaderInetAddress, AtomicInteger hintsInProgress = new CacheLoaderInetAddress, AtomicInteger() { -public AtomicInteger apply(InetAddress inetAddress) +public AtomicInteger load(InetAddress inetAddress) { return new AtomicInteger(0); } -}); +}; private static final AtomicLong totalHints = new AtomicLong(); private static final ClientRequestMetrics readMetrics = new ClientRequestMetrics(Read); private static final ClientRequestMetrics rangeMetrics = new ClientRequestMetrics(RangeSlice); @@ -489,7 +489,7 @@ public class StorageProxy implements StorageProxyMBean // a small number of nodes causing problems, so we should avoid shutting down writes completely to // healthy nodes. Any node with no hintsInProgress is considered healthy. if (totalHintsInProgress.get() maxHintsInProgress - (hintsInProgress.get(destination).get() 0 shouldHint(destination))) + (getHintsInProgressFor(destination).get() 0 shouldHint(destination))) { throw new OverloadedException(Too many in flight hints: + totalHintsInProgress.get()); } @@ -538,6 +538,18 @@ public class StorageProxy implements StorageProxyMBean } } +private static AtomicInteger getHintsInProgressFor(InetAddress destination) +{ +try +{ +return hintsInProgress.load(destination); +} +catch (Exception e) +{ +throw new AssertionError(e); +} +} + public static FutureVoid submitHint(final RowMutation mutation, final InetAddress target, final AbstractWriteResponseHandler responseHandler, @@ -572,7 +584,7 @@ public class StorageProxy implements StorageProxyMBean private static FutureVoid submitHint(HintRunnable runnable) { totalHintsInProgress.incrementAndGet(); -hintsInProgress.get(runnable.target).incrementAndGet(); +
[jira] [Created] (CASSANDRA-6016) Change replication factor for the trace keyspace
Jeremiah Jordan created CASSANDRA-6016: -- Summary: Change replication factor for the trace keyspace Key: CASSANDRA-6016 URL: https://issues.apache.org/jira/browse/CASSANDRA-6016 Project: Cassandra Issue Type: New Feature Components: Core Reporter: Jeremiah Jordan They trace keyspace is currently RF=1, and can't be changed. I want to be able to trace stuff when nodes are down/being stupid. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (CASSANDRA-6016) Ability to change replication factor for the trace keyspace
[ https://issues.apache.org/jira/browse/CASSANDRA-6016?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jeremiah Jordan updated CASSANDRA-6016: --- Summary: Ability to change replication factor for the trace keyspace (was: Change replication factor for the trace keyspace) Ability to change replication factor for the trace keyspace --- Key: CASSANDRA-6016 URL: https://issues.apache.org/jira/browse/CASSANDRA-6016 Project: Cassandra Issue Type: New Feature Components: Core Reporter: Jeremiah Jordan They trace keyspace is currently RF=1, and can't be changed. I want to be able to trace stuff when nodes are down/being stupid. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (CASSANDRA-5992) Add a logger.trace call to Tracing
[ https://issues.apache.org/jira/browse/CASSANDRA-5992?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jeremiah Jordan updated CASSANDRA-5992: --- Description: A bunch of stuff is now written to Tracing, and there are no logging trace calls any more. If a node is having issues on the read/write path and tracing can't actually save data, there is no way to see through logging what is going on. Would be nice if we made all Tracing messages also go out at logger.trace so that you could enable that to debug stuff. Being able to change the RF of the system_traces KS might also help here, but there would still be classes of problems that it would be good to have the logging there for. Added CASSANDRA-6016 for that. was: A bunch of stuff is now written to Tracing, and there are no logging trace calls any more. If a node is having issues on the read/write path and tracing can't actually save data, there is no way to see through logging what is going on. Would be nice if we made all Tracing messages also go out at logger.trace so that you could enable that to debug stuff. Being able to change the RF of the system_traces KS might also help here, but there would still be classes of problems that it would be good to have the logging there for. Add a logger.trace call to Tracing -- Key: CASSANDRA-5992 URL: https://issues.apache.org/jira/browse/CASSANDRA-5992 Project: Cassandra Issue Type: Bug Components: Core Reporter: Jeremiah Jordan Priority: Minor A bunch of stuff is now written to Tracing, and there are no logging trace calls any more. If a node is having issues on the read/write path and tracing can't actually save data, there is no way to see through logging what is going on. Would be nice if we made all Tracing messages also go out at logger.trace so that you could enable that to debug stuff. Being able to change the RF of the system_traces KS might also help here, but there would still be classes of problems that it would be good to have the logging there for. Added CASSANDRA-6016 for that. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Resolved] (CASSANDRA-6015) Update version in build.xml to reflect 2.1
[ https://issues.apache.org/jira/browse/CASSANDRA-6015?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Brandon Williams resolved CASSANDRA-6015. - Resolution: Fixed Assignee: Brandon Williams Done. Update version in build.xml to reflect 2.1 -- Key: CASSANDRA-6015 URL: https://issues.apache.org/jira/browse/CASSANDRA-6015 Project: Cassandra Issue Type: Bug Reporter: Ryan McGuire Assignee: Brandon Williams Priority: Trivial The build.xml still marks the base.version as 2.0.0 in trunk. This [breaks ccm|https://github.com/pcmanus/ccm/issues/73], as it's checking for this version number when it's doing things with 2.1 features (like logback logging, instead of log4j) -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (CASSANDRA-6016) Ability to change replication factor for the trace keyspace
[ https://issues.apache.org/jira/browse/CASSANDRA-6016?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jeremiah Jordan updated CASSANDRA-6016: --- Priority: Minor (was: Major) Ability to change replication factor for the trace keyspace --- Key: CASSANDRA-6016 URL: https://issues.apache.org/jira/browse/CASSANDRA-6016 Project: Cassandra Issue Type: New Feature Components: Core Reporter: Jeremiah Jordan Priority: Minor They trace keyspace is currently RF=1, and can't be changed. I want to be able to trace stuff when nodes are down/being stupid. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
git commit: update version to 2.1
Updated Branches: refs/heads/trunk d57ce2845 - 816c03218 update version to 2.1 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/816c0321 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/816c0321 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/816c0321 Branch: refs/heads/trunk Commit: 816c032186f2bd27601d51d14654064015414f12 Parents: d57ce28 Author: Brandon Williams brandonwilli...@apache.org Authored: Thu Sep 12 11:15:15 2013 -0500 Committer: Brandon Williams brandonwilli...@apache.org Committed: Thu Sep 12 11:15:15 2013 -0500 -- build.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/816c0321/build.xml -- diff --git a/build.xml b/build.xml index 50a1b36..d0bb1c5 100644 --- a/build.xml +++ b/build.xml @@ -25,7 +25,7 @@ property name=debuglevel value=source,lines,vars/ !-- default version and SCM information -- -property name=base.version value=2.0.0/ +property name=base.version value=2.1/ property name=scm.connection value=scm:git://git.apache.org/cassandra.git/ property name=scm.developerConnection value=scm:git://git.apache.org/cassandra.git/ property name=scm.url value=http://git-wip-us.apache.org/repos/asf?p=cassandra.git;a=tree/
[jira] [Updated] (CASSANDRA-6014) Client Turkish character problem
[ https://issues.apache.org/jira/browse/CASSANDRA-6014?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tarik Yilmaz updated CASSANDRA-6014: Description: i and İ characters problem. {quote} {{$ cassandra-cli}} {quote} When I create keyspace, column family, ... {quote} {{[default@votes_db] create column family answers_votes with column_type='Super' and comparator='AsciiType' and subcomparator='AsciiType' and *default_validation_class*='AsciiType';}} {quote} And result {quote} {{java.lang.IllegalArgumentException: No enum constant org.apache.cassandra.cli.CliClient.ColumnFamilyArgument.*DEFAULT_VALİDATİON_CLASS*}} {quote} It happens all the time. Since 1.0.0. I don't know before versions was: i and İ characters problem. {quote} {{$ cassandra-cli}} {quote} When I create keyspace, column family, ... {quote} {{[default@votes_db] create column family answers_votes with column_type='Super' and comparator='AsciiType' and subcomparator='AsciiType' and *default_class_validation_class*='AsciiType';}} {quote} And result {quote} {{java.lang.IllegalArgumentException: No enum constant org.apache.cassandra.cli.CliClient.ColumnFamilyArgument.*DEFAULT_CLASS_VALİDATİON_CLASS*}} {quote} It happens all the time. Since 1.0.0. I don't know before versions Client Turkish character problem Key: CASSANDRA-6014 URL: https://issues.apache.org/jira/browse/CASSANDRA-6014 Project: Cassandra Issue Type: Bug Reporter: Tarik Yilmaz i and İ characters problem. {quote} {{$ cassandra-cli}} {quote} When I create keyspace, column family, ... {quote} {{[default@votes_db] create column family answers_votes with column_type='Super' and comparator='AsciiType' and subcomparator='AsciiType' and *default_validation_class*='AsciiType';}} {quote} And result {quote} {{java.lang.IllegalArgumentException: No enum constant org.apache.cassandra.cli.CliClient.ColumnFamilyArgument.*DEFAULT_VALİDATİON_CLASS*}} {quote} It happens all the time. Since 1.0.0. I don't know before versions -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Assigned] (CASSANDRA-6011) Race condition in snapshot repair
[ https://issues.apache.org/jira/browse/CASSANDRA-6011?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Brandon Williams reassigned CASSANDRA-6011: --- Assignee: Yuki Morishita Race condition in snapshot repair - Key: CASSANDRA-6011 URL: https://issues.apache.org/jira/browse/CASSANDRA-6011 Project: Cassandra Issue Type: Bug Components: Core Reporter: Nick Bailey Assignee: Yuki Morishita Fix For: 1.2.10, 2.0.1 When we do a snapshot/sequential repair, we use the repair session id as the snapshot name. Unfortunately in Directories.java when we delete a snapshot, we delete it for all column families, even when called on a specific cf store. So what can happen is this: Node B finishes validation compaction for CF1 and Notifies Node A Node B *starts* to delete snapshot for CF1 Node A finishes repair of CF1 and starts repair of CF2 Node B takes snapshot of CF2 and starts validation compaction, but the previous validation compaction is still deleting snapshots, so the snapshot it wants to run a validation on gets deleted out from under it. I've only reproduced on 1.2.6, but looking at the code this definitely looks like it exists in 1.2 HEAD. Not positive about 2.0. I think the fix is just to update Directories.java to not delete the snapshot from all column families. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (CASSANDRA-5396) Repair process is a joke leading to a downward spiralling and eventually unusable cluster
[ https://issues.apache.org/jira/browse/CASSANDRA-5396?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13765665#comment-13765665 ] Jorge Gallegos commented on CASSANDRA-5396: --- Regardless of the tone used, the fact remains that points 1), 2), and 3) are true. An example of a repair session going AWOL (point 4): {noformat} Exception in thread main java.io.IOException: Some repair session(s) failed (see log for details). at org.apache.cassandra.service.StorageService.forceTableRepairPrimaryRange(StorageService.java:2003) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:93) at com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:27) at com.sun.jmx.mbeanserver.MBeanIntrospector.invokeM(MBeanIntrospector.java:208) at com.sun.jmx.mbeanserver.PerInterface.invoke(PerInterface.java:120) at com.sun.jmx.mbeanserver.MBeanSupport.invoke(MBeanSupport.java:262) at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:836) at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:761) at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1427) at javax.management.remote.rmi.RMIConnectionImpl.access$200(RMIConnectionImpl.java:72) at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1265) at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1360) at javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:788) at sun.reflect.GeneratedMethodAccessor335.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:305) at sun.rmi.transport.Transport$1.run(Transport.java:159) at java.security.AccessController.doPrivileged(Native Method) at sun.rmi.transport.Transport.serviceCall(Transport.java:155) at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662) {noformat} And the logs show these stack traces, which support point 5): {noformat} ERROR [GossipTasks:1] 2013-09-11 17:34:32,233 AbstractStreamSession.java (line 113) Stream failed because /10.128.9.106 died or was restarted/removed (streams may still be active in background, but further streams won't be started) ERROR [AntiEntropySessions:5] 2013-09-11 17:34:32,235 AntiEntropyService.java (line 716) [repair #fa3e3400-1b24-11e3--5f4707 e79ffb] session completed with the following error java.io.IOException: Endpoint /10.128.9.106 died at org.apache.cassandra.service.AntiEntropyService$RepairSession.failedNode(AntiEntropyService.java:787) at org.apache.cassandra.service.AntiEntropyService$RepairSession.convict(AntiEntropyService.java:821) at org.apache.cassandra.gms.FailureDetector.interpret(FailureDetector.java:193) at org.apache.cassandra.gms.Gossiper.doStatusCheck(Gossiper.java:634) at org.apache.cassandra.gms.Gossiper.access$700(Gossiper.java:61) at org.apache.cassandra.gms.Gossiper$GossipTask.run(Gossiper.java:166) at org.apache.cassandra.concurrent.DebuggableScheduledThreadPoolExecutor$UncomplainingRunnable.run(DebuggableScheduledThreadPoolExecutor.java:79) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317) at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:180) at
[jira] [Updated] (CASSANDRA-6011) Race condition in snapshot repair
[ https://issues.apache.org/jira/browse/CASSANDRA-6011?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Yuki Morishita updated CASSANDRA-6011: -- Attachment: 6011-1.2.txt Patch attached to clear snapshot only for validated CF, not entire keyspace. Race condition in snapshot repair - Key: CASSANDRA-6011 URL: https://issues.apache.org/jira/browse/CASSANDRA-6011 Project: Cassandra Issue Type: Bug Components: Core Reporter: Nick Bailey Assignee: Yuki Morishita Fix For: 1.2.10, 2.0.1 Attachments: 6011-1.2.txt When we do a snapshot/sequential repair, we use the repair session id as the snapshot name. Unfortunately in Directories.java when we delete a snapshot, we delete it for all column families, even when called on a specific cf store. So what can happen is this: Node B finishes validation compaction for CF1 and Notifies Node A Node B *starts* to delete snapshot for CF1 Node A finishes repair of CF1 and starts repair of CF2 Node B takes snapshot of CF2 and starts validation compaction, but the previous validation compaction is still deleting snapshots, so the snapshot it wants to run a validation on gets deleted out from under it. I've only reproduced on 1.2.6, but looking at the code this definitely looks like it exists in 1.2 HEAD. Not positive about 2.0. I think the fix is just to update Directories.java to not delete the snapshot from all column families. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (CASSANDRA-5947) Sampling bug in metrics-core-2.0.3.jar used by Cassandra
[ https://issues.apache.org/jira/browse/CASSANDRA-5947?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13765493#comment-13765493 ] Jeremiah Jordan commented on CASSANDRA-5947: What jconsole are you running? The 1.7u21 jconsole doesn't show the quoting. As [~cburroughs] said earlier, I think it is just cosmetic either way. Sampling bug in metrics-core-2.0.3.jar used by Cassandra Key: CASSANDRA-5947 URL: https://issues.apache.org/jira/browse/CASSANDRA-5947 Project: Cassandra Issue Type: Bug Components: Tools Reporter: J.B. Langston Assignee: Jonathan Ellis Priority: Minor Fix For: 1.2.10, 2.0.1 Attachments: Screen Shot 2013-09-10 at 2.23.11 PM.png There is a sampling bug in the version of the metrics library we're using in Cassandra. See https://github.com/codahale/metrics/issues/421. ExponentiallyDecayingSample is used by the Timer's histogram that is used in stress tool, and according to [~brandon.williams] it is also in a few other places like the dynamic snitch. The statistical theory involved in this bug goes over my head so i'm not sure if this would bug would meaningfully affect its usage by Cassandra. One of the comments on the bug mentions that it affects slow sampling rates (10 samples/min was the example given). We're currently distributing metrics-core-2.0.3.jar and according to the release nodes, this bug is fixed in 2.1.3: http://metrics.codahale.com/about/release-notes/#v2-1-3-aug-06-2012 -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Created] (CASSANDRA-6017) Move hints and exception metrics to o.a.c.metrics
Yuki Morishita created CASSANDRA-6017: - Summary: Move hints and exception metrics to o.a.c.metrics Key: CASSANDRA-6017 URL: https://issues.apache.org/jira/browse/CASSANDRA-6017 Project: Cassandra Issue Type: Improvement Reporter: Yuki Morishita Assignee: Yuki Morishita Priority: Minor Fix For: 1.2.10, 2.0.1 Hints and exception count is still exposed through Storage{Proxy|Service}MBean. Move those to o.a.c.metrics. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (CASSANDRA-6014) Client Turkish character problem
[ https://issues.apache.org/jira/browse/CASSANDRA-6014?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tarik Yilmaz updated CASSANDRA-6014: Summary: Client Turkish character problem (was: Client Turkish i and İ character problem) Client Turkish character problem Key: CASSANDRA-6014 URL: https://issues.apache.org/jira/browse/CASSANDRA-6014 Project: Cassandra Issue Type: Bug Reporter: Tarik Yilmaz Fix For: 1.2.0, 2.0 {quote} {{$ cassandra-cli}} {quote} When I create keyspace, column family, ... {quote} {{[default@votes_db] create column family answers_votes with column_type='Super' and comparator='AsciiType' and subcomparator='AsciiType' and default_class_validation_class='AsciiType';}} {quote} And result {quote} {{java.lang.IllegalArgumentException: No enum constant org.apache.cassandra.cli.CliClient.ColumnFamilyArgument.DEFAULT_CLASS_VALİDATİON_CLASS}} {quote} It happens all the time. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
git commit: Update guava to 15.0
Updated Branches: refs/heads/cassandra-2.0 349d5dbea - 53f19c849 Update guava to 15.0 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/53f19c84 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/53f19c84 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/53f19c84 Branch: refs/heads/cassandra-2.0 Commit: 53f19c8495e37433d70bcfa19f8575b712d8b763 Parents: 349d5db Author: Aleksey Yeschenko alek...@apache.org Authored: Thu Sep 12 18:44:27 2013 +0300 Committer: Aleksey Yeschenko alek...@apache.org Committed: Thu Sep 12 18:44:27 2013 +0300 -- build.xml | 2 +- lib/guava-13.0.1.jar | Bin 1891110 - 0 bytes lib/guava-15.0.jar| Bin 0 - 2172168 bytes lib/licenses/guava-13.0.1.txt | 202 - lib/licenses/guava-15.0.txt | 202 + 5 files changed, 203 insertions(+), 203 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/53f19c84/build.xml -- diff --git a/build.xml b/build.xml index 74b3d0b..6aab42a 100644 --- a/build.xml +++ b/build.xml @@ -338,7 +338,7 @@ dependency groupId=org.xerial.snappy artifactId=snappy-java version=1.0.5/ dependency groupId=net.jpountz.lz4 artifactId=lz4 version=1.1.0/ dependency groupId=com.ning artifactId=compress-lzf version=0.8.4/ - dependency groupId=com.google.guava artifactId=guava version=13.0.1/ + dependency groupId=com.google.guava artifactId=guava version=15.0/ dependency groupId=commons-cli artifactId=commons-cli version=1.1/ dependency groupId=commons-codec artifactId=commons-codec version=1.2/ dependency groupId=org.apache.commons artifactId=commons-lang3 version=3.1/ http://git-wip-us.apache.org/repos/asf/cassandra/blob/53f19c84/lib/guava-13.0.1.jar -- diff --git a/lib/guava-13.0.1.jar b/lib/guava-13.0.1.jar deleted file mode 100644 index 09c5449..000 Binary files a/lib/guava-13.0.1.jar and /dev/null differ http://git-wip-us.apache.org/repos/asf/cassandra/blob/53f19c84/lib/guava-15.0.jar -- diff --git a/lib/guava-15.0.jar b/lib/guava-15.0.jar new file mode 100644 index 000..eb9ef8a Binary files /dev/null and b/lib/guava-15.0.jar differ http://git-wip-us.apache.org/repos/asf/cassandra/blob/53f19c84/lib/licenses/guava-13.0.1.txt -- diff --git a/lib/licenses/guava-13.0.1.txt b/lib/licenses/guava-13.0.1.txt deleted file mode 100644 index d645695..000 --- a/lib/licenses/guava-13.0.1.txt +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 -http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - License shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - Licensor shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - Legal Entity shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - control means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - You (or Your) shall mean an individual or Legal Entity - exercising permissions granted by this License. - - Source form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - Object form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - Work shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - Derivative Works shall mean any work, whether in Source or Object - form, that is based
[4/6] git commit: merge from 1.2
merge from 1.2 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/c7881170 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/c7881170 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/c7881170 Branch: refs/heads/trunk Commit: c7881170b5dcbeb989926e70a4313f35b85971d1 Parents: 3e73663 2ce9327 Author: Jonathan Ellis jbel...@apache.org Authored: Thu Sep 12 20:25:18 2013 +0200 Committer: Jonathan Ellis jbel...@apache.org Committed: Thu Sep 12 20:25:18 2013 +0200 -- CHANGES.txt | 1 + 1 file changed, 1 insertion(+) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/c7881170/CHANGES.txt -- diff --cc CHANGES.txt index 63cc6d7,049544e..053eb70 --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,19 -1,5 +1,20 @@@ +2.0.1 + * Improve error message when yaml contains invalid properties (CASSANDRA-5958) + * Improve leveled compaction's ability to find non-overlapping L0 compactions + to work on concurrently (CASSANDRA-5921) + * Notify indexer of columns shadowed by range tombstones (CASSANDRA-5614) + * Log Merkle tree stats (CASSANDRA-2698) + * Switch from crc32 to adler32 for compressed sstable checksums (CASSANDRA-5862) + * Improve offheap memcpy performance (CASSANDRA-5884) + * Use a range aware scanner for cleanup (CASSANDRA-2524) + * Cleanup doesn't need to inspect sstables that contain only local data + (CASSANDRA-5722) + * Add ability for CQL3 to list partition keys (CASSANDRA-4536) + * Improve native protocol serialization (CASSANDRA-5664) + * Upgrade Thrift to 0.9.1 (CASSANDRA-5923) + * Require superuser status for adding triggers (CASSANDRA-5963) +Merged from 1.2: + 1.2.10 - * (Hadoop) Fix CQLRW for thrift tables (CASSANDRA-6002) * Fix possible divide-by-zero in HHOM (CASSANDRA-5990) * Allow local batchlog writes for CL.ANY (CASSANDRA-5967) * Optimize name query performance in wide rows (CASSANDRA-5966)
[6/6] git commit: Merge branch 'cassandra-2.0' into trunk
Merge branch 'cassandra-2.0' into trunk Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/3634eab1 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/3634eab1 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/3634eab1 Branch: refs/heads/trunk Commit: 3634eab1dec4be2e403822d3d1f3ef85907e89fe Parents: f3430d3 c788117 Author: Jonathan Ellis jbel...@apache.org Authored: Thu Sep 12 20:25:26 2013 +0200 Committer: Jonathan Ellis jbel...@apache.org Committed: Thu Sep 12 20:25:26 2013 +0200 -- CHANGES.txt | 1 + 1 file changed, 1 insertion(+) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/3634eab1/CHANGES.txt --
[jira] [Commented] (CASSANDRA-6013) CAS may return false but still commit the insert
[ https://issues.apache.org/jira/browse/CASSANDRA-6013?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13765687#comment-13765687 ] Jonathan Ellis commented on CASSANDRA-6013: --- bq. if for a given proposal at least one accepter has accepted it but not a quorum does, then that value might (but that's not guaranteed either) be replayed (and committed) by another proposer Why not have the new leader require a quorum of replicas to say I have this unfinished business before replaying it? (I'm pretty sure I had this logic in originally but you talked me out of it in the name of code simplification.) CAS may return false but still commit the insert Key: CASSANDRA-6013 URL: https://issues.apache.org/jira/browse/CASSANDRA-6013 Project: Cassandra Issue Type: Bug Reporter: Sylvain Lebresne If a Paxos proposer proposes some value/update and that propose fail, there is no guarantee on whether this value will be accepted or not ultimately. Paxos guarantees that we'll agree on a value (for a given round in our case), but does not guarantee that the proposer of the agreed upon value will know it. In particular, if for a given proposal at least one accepter has accepted it but not a quorum does, then that value might (but that's not guaranteed either) be replayed (and committed) by another proposer. Currently, if a proposer A proposes some update U but it is rejected, A will sleep a bit and retry U. But if U was accepted by at least one acceptor, some other proposer B might replay U, succeed and commit it. If A does its retry after that happens, he will prepare, check the condition, and probably find that the conditions don't apply anymore since U has been committed already. It will thus return false, even though U has been in fact committed. Unfortunately I'm not sure there is an easy way for a proposer whose propose fails to know if the update will prevail or not eventually. Which mean the only acceptable solution I can see would be to return to the user I don't know (through some exception for instance). Which is annoying because having a proposal rejected won't be an extremely rare occurrence, even with relatively light contention, and returning I don't know often is a bit unfriendly. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[5/6] git commit: merge from 1.2
merge from 1.2 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/c7881170 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/c7881170 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/c7881170 Branch: refs/heads/cassandra-2.0 Commit: c7881170b5dcbeb989926e70a4313f35b85971d1 Parents: 3e73663 2ce9327 Author: Jonathan Ellis jbel...@apache.org Authored: Thu Sep 12 20:25:18 2013 +0200 Committer: Jonathan Ellis jbel...@apache.org Committed: Thu Sep 12 20:25:18 2013 +0200 -- CHANGES.txt | 1 + 1 file changed, 1 insertion(+) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/c7881170/CHANGES.txt -- diff --cc CHANGES.txt index 63cc6d7,049544e..053eb70 --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,19 -1,5 +1,20 @@@ +2.0.1 + * Improve error message when yaml contains invalid properties (CASSANDRA-5958) + * Improve leveled compaction's ability to find non-overlapping L0 compactions + to work on concurrently (CASSANDRA-5921) + * Notify indexer of columns shadowed by range tombstones (CASSANDRA-5614) + * Log Merkle tree stats (CASSANDRA-2698) + * Switch from crc32 to adler32 for compressed sstable checksums (CASSANDRA-5862) + * Improve offheap memcpy performance (CASSANDRA-5884) + * Use a range aware scanner for cleanup (CASSANDRA-2524) + * Cleanup doesn't need to inspect sstables that contain only local data + (CASSANDRA-5722) + * Add ability for CQL3 to list partition keys (CASSANDRA-4536) + * Improve native protocol serialization (CASSANDRA-5664) + * Upgrade Thrift to 0.9.1 (CASSANDRA-5923) + * Require superuser status for adding triggers (CASSANDRA-5963) +Merged from 1.2: + 1.2.10 - * (Hadoop) Fix CQLRW for thrift tables (CASSANDRA-6002) * Fix possible divide-by-zero in HHOM (CASSANDRA-5990) * Allow local batchlog writes for CL.ANY (CASSANDRA-5967) * Optimize name query performance in wide rows (CASSANDRA-5966)
[1/6] git commit: Fix CQLRW for thrift tables patch by Alex Liu; reviewed by jbellis for CASSANDRA-6002
Updated Branches: refs/heads/cassandra-1.2 f663a996c - 2ce932761 refs/heads/cassandra-2.0 3e7366332 - c7881170b refs/heads/trunk f3430d394 - 3634eab1d Fix CQLRW for thrift tables patch by Alex Liu; reviewed by jbellis for CASSANDRA-6002 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/2ce93276 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/2ce93276 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/2ce93276 Branch: refs/heads/cassandra-1.2 Commit: 2ce932761afd9f0b0949dcd97d360927c3a2c007 Parents: f663a99 Author: Jonathan Ellis jbel...@apache.org Authored: Thu Sep 12 20:24:26 2013 +0200 Committer: Jonathan Ellis jbel...@apache.org Committed: Thu Sep 12 20:24:26 2013 +0200 -- CHANGES.txt| 1 + src/java/org/apache/cassandra/hadoop/cql3/CqlRecordWriter.java | 4 2 files changed, 5 insertions(+) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/2ce93276/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 51be09d..049544e 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 1.2.10 + * (Hadoop) Fix CQLRW for thrift tables (CASSANDRA-6002) * Fix possible divide-by-zero in HHOM (CASSANDRA-5990) * Allow local batchlog writes for CL.ANY (CASSANDRA-5967) * Optimize name query performance in wide rows (CASSANDRA-5966) http://git-wip-us.apache.org/repos/asf/cassandra/blob/2ce93276/src/java/org/apache/cassandra/hadoop/cql3/CqlRecordWriter.java -- diff --git a/src/java/org/apache/cassandra/hadoop/cql3/CqlRecordWriter.java b/src/java/org/apache/cassandra/hadoop/cql3/CqlRecordWriter.java index be178b3..d08e08a 100644 --- a/src/java/org/apache/cassandra/hadoop/cql3/CqlRecordWriter.java +++ b/src/java/org/apache/cassandra/hadoop/cql3/CqlRecordWriter.java @@ -376,11 +376,15 @@ final class CqlRecordWriter extends AbstractColumnFamilyRecordWriterMapString, CFMetaData cfMeta = CFMetaData.fromThrift(cfDef); CFDefinition cfDefinition = new CFDefinition(cfMeta); int i = 0; +partitionKeyColumns = new String[cfDefinition.keys.keySet().size()]; for (ColumnIdentifier column : cfDefinition.keys.keySet()) { partitionKeyColumns[i] = column.toString(); i++; } +clusterColumns = new ArrayListString(); +for (ColumnIdentifier column : cfDefinition.columns.keySet()) +clusterColumns.add(column.toString()); return; } }
[jira] [Commented] (CASSANDRA-6011) Race condition in snapshot repair
[ https://issues.apache.org/jira/browse/CASSANDRA-6011?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13765742#comment-13765742 ] Jonathan Ellis commented on CASSANDRA-6011: --- +1 Race condition in snapshot repair - Key: CASSANDRA-6011 URL: https://issues.apache.org/jira/browse/CASSANDRA-6011 Project: Cassandra Issue Type: Bug Components: Core Reporter: Nick Bailey Assignee: Yuki Morishita Fix For: 1.2.10, 2.0.1 Attachments: 6011-1.2.txt When we do a snapshot/sequential repair, we use the repair session id as the snapshot name. Unfortunately in Directories.java when we delete a snapshot, we delete it for all column families, even when called on a specific cf store. So what can happen is this: Node B finishes validation compaction for CF1 and Notifies Node A Node B *starts* to delete snapshot for CF1 Node A finishes repair of CF1 and starts repair of CF2 Node B takes snapshot of CF2 and starts validation compaction, but the previous validation compaction is still deleting snapshots, so the snapshot it wants to run a validation on gets deleted out from under it. I've only reproduced on 1.2.6, but looking at the code this definitely looks like it exists in 1.2 HEAD. Not positive about 2.0. I think the fix is just to update Directories.java to not delete the snapshot from all column families. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (CASSANDRA-6018) Add option to encrypt commitlog
[ https://issues.apache.org/jira/browse/CASSANDRA-6018?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jason Brown updated CASSANDRA-6018: --- Description: We are going to start using cassandra for a billing system, and while I can encrypt sstables at rest (via Datastax Enterprise), commit logs are more or less plain text. Thus, an attacker would be able to easily read, for example, credit card numbers in the clear text commit log (if the calling app does not encrypt the data itself before sending it to cassandra). I want to allow the option of encrypting the commit logs, most likely controlled by a property in the yaml. was: We are going to start using cassandra for a billing system, and while I can encrypt sstables at rest (via Datastax Enterprise), commit logs are more or less plain text. Thus, an attacker would be able to easily read, for example, credit card numbers in the clear if the calling app does not encrypt the data itself before sending it to cassandra. I want to allow the option of encrypting the commit logs, most likely controlled by a property in the yaml. Add option to encrypt commitlog Key: CASSANDRA-6018 URL: https://issues.apache.org/jira/browse/CASSANDRA-6018 Project: Cassandra Issue Type: Task Components: Core Reporter: Jason Brown Assignee: Jason Brown Labels: commit_log, encryption, security Fix For: 1.2.10, 2.0.1 We are going to start using cassandra for a billing system, and while I can encrypt sstables at rest (via Datastax Enterprise), commit logs are more or less plain text. Thus, an attacker would be able to easily read, for example, credit card numbers in the clear text commit log (if the calling app does not encrypt the data itself before sending it to cassandra). I want to allow the option of encrypting the commit logs, most likely controlled by a property in the yaml. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (CASSANDRA-5396) Repair process is a joke leading to a downward spiralling and eventually unusable cluster
[ https://issues.apache.org/jira/browse/CASSANDRA-5396?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13765743#comment-13765743 ] Jonathan Ellis commented on CASSANDRA-5396: --- CASSANDRA-5286 Repair process is a joke leading to a downward spiralling and eventually unusable cluster - Key: CASSANDRA-5396 URL: https://issues.apache.org/jira/browse/CASSANDRA-5396 Project: Cassandra Issue Type: Bug Components: Core Affects Versions: 1.2.3 Environment: all Reporter: David Berkman Priority: Critical Let's review the repair process... 1) It's mandatory to run repair. 2) Repair has a high impact and can take hours. 3) Repair provides no estimation of completion time and no progress indicator. 4) Repair is extremely fragile, and can fail to complete, or become stuck quite easily in real operating environments. 5) When repair fails it provides no feedback whatsoever of the problem or possible resolution. 6) A failed repair operation saddles the effected nodes with a huge amount of extra data (judging from node size). 7) There is no way to rid the node of the extra data associated with a failed repair short of completely rebuilding the node. 8) The extra data from a failed repair makes any subsequent repair take longer and increases the likelihood that it will simply become stuck or fail, leading to yet more node corruption. 9) Eventually no repair operation will complete successfully, and node operations will eventually become impacted leading to a failing cluster. Who would design such a system for a service meant to operate as a fault tolerant clustered data store operating on a lot of commodity hardware? Solution... 1) Repair must be robust. 2) Repair must *never* become 'stuck'. 3) Failure to complete must result in reasonable feedback. 4) Failure to complete must not result in a node whose state is worse than before the operation began. 5) Repair must provide some means of determining completion percentage. 6) It would be nice if repair could estimate its run time, even if it could do so only based upon previous runs. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (CASSANDRA-6017) Move hints and exception metrics to o.a.c.metrics
[ https://issues.apache.org/jira/browse/CASSANDRA-6017?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13765745#comment-13765745 ] Jonathan Ellis commented on CASSANDRA-6017: --- +1 Move hints and exception metrics to o.a.c.metrics - Key: CASSANDRA-6017 URL: https://issues.apache.org/jira/browse/CASSANDRA-6017 Project: Cassandra Issue Type: Improvement Reporter: Yuki Morishita Assignee: Yuki Morishita Priority: Minor Fix For: 1.2.10, 2.0.1 Attachments: 6017-1.2.txt Hints and exception count is still exposed through Storage\{Proxy|Service\}MBean. Move those to o.a.c.metrics. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Reopened] (CASSANDRA-5947) Sampling bug in metrics-core-2.0.3.jar used by Cassandra
[ https://issues.apache.org/jira/browse/CASSANDRA-5947?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jonathan Ellis reopened CASSANDRA-5947: --- Assignee: Yuki Morishita (was: Jonathan Ellis) Sampling bug in metrics-core-2.0.3.jar used by Cassandra Key: CASSANDRA-5947 URL: https://issues.apache.org/jira/browse/CASSANDRA-5947 Project: Cassandra Issue Type: Bug Components: Tools Reporter: J.B. Langston Assignee: Yuki Morishita Priority: Minor Fix For: 1.2.10, 2.0.1 Attachments: Screen Shot 2013-09-10 at 2.23.11 PM.png There is a sampling bug in the version of the metrics library we're using in Cassandra. See https://github.com/codahale/metrics/issues/421. ExponentiallyDecayingSample is used by the Timer's histogram that is used in stress tool, and according to [~brandon.williams] it is also in a few other places like the dynamic snitch. The statistical theory involved in this bug goes over my head so i'm not sure if this would bug would meaningfully affect its usage by Cassandra. One of the comments on the bug mentions that it affects slow sampling rates (10 samples/min was the example given). We're currently distributing metrics-core-2.0.3.jar and according to the release nodes, this bug is fixed in 2.1.3: http://metrics.codahale.com/about/release-notes/#v2-1-3-aug-06-2012 -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (CASSANDRA-6008) Getting 'This should never happen' error at startup due to sstables missing
[ https://issues.apache.org/jira/browse/CASSANDRA-6008?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Yuki Morishita updated CASSANDRA-6008: -- Assignee: Yuki Morishita Getting 'This should never happen' error at startup due to sstables missing --- Key: CASSANDRA-6008 URL: https://issues.apache.org/jira/browse/CASSANDRA-6008 Project: Cassandra Issue Type: Bug Components: Core Reporter: John Carrino Assignee: Yuki Morishita Fix For: 2.0.1 Exception encountered during startup: Unfinished compactions reference missing sstables. This should never happen since compactions are marked finished before we start removing the old sstables This happens when sstables that have been compacted away are removed, but they still have entries in the system.compactions_in_progress table. Normally this should not happen because the entries in system.compactions_in_progress are deleted before the old sstables are deleted. However at startup recovery time, old sstables are deleted (NOT BEFORE they are removed from the compactions_in_progress table) and then after that is done it does a truncate using SystemKeyspace.discardCompactionsInProgress We ran into a case where the disk filled up and the node died and was bounced and then failed to truncate this table on startup, and then got stuck hitting this exception in ColumnFamilyStore.removeUnfinishedCompactionLeftovers. Maybe on startup we can delete from this table incrementally as we clean stuff up in the same way that compactions delete from this table before they delete old sstables. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Created] (CASSANDRA-6015) Update version in build.xml to reflect 2.1
Ryan McGuire created CASSANDRA-6015: --- Summary: Update version in build.xml to reflect 2.1 Key: CASSANDRA-6015 URL: https://issues.apache.org/jira/browse/CASSANDRA-6015 Project: Cassandra Issue Type: Bug Reporter: Ryan McGuire Priority: Trivial The build.xml still marks the base.version as 2.0.0 in trunk. This breaks ccm, as it's checking for this version number when it's doing things with 2.1 features (like logback logging, instead of log4j) -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (CASSANDRA-5858) Add a shuffle dtest
[ https://issues.apache.org/jira/browse/CASSANDRA-5858?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13765558#comment-13765558 ] Daniel Meyer commented on CASSANDRA-5858: - Just added a shuffle step to upgrade_through_versions_test when vnodes are enabled. Going to leave this open for a bit as I am not convinced this is enough (though at least it gets some important coverage for shuffle). https://github.com/riptano/cassandra-dtest/commit/e7a37a228936a1bf6e199435767c787c1bc2c1be Add a shuffle dtest --- Key: CASSANDRA-5858 URL: https://issues.apache.org/jira/browse/CASSANDRA-5858 Project: Cassandra Issue Type: Test Components: Tests Reporter: Jonathan Ellis Assignee: Daniel Meyer Priority: Minor -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (CASSANDRA-6010) Notify before deleting SSTable
[ https://issues.apache.org/jira/browse/CASSANDRA-6010?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Piotr Kołaczkowski updated CASSANDRA-6010: -- Attachment: 0001-DSP-2472-Add-pre-delete-sstable-notification.patch Notify before deleting SSTable -- Key: CASSANDRA-6010 URL: https://issues.apache.org/jira/browse/CASSANDRA-6010 Project: Cassandra Issue Type: New Feature Components: Core Reporter: Piotr Kołaczkowski Assignee: Piotr Kołaczkowski Priority: Minor Attachments: 0001-DSP-2472-Add-pre-delete-sstable-notification.patch If we register custom SSTable components, Cassandra would delete them when performing scrub. We need a notification sent right before deleting, so that any parties that registered custom SSTable components would have a chance to save those data from being permanently deleted. Right now we need it for DSE - currently scrub breaks CFS compaction which relies on custom SSTable components. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Assigned] (CASSANDRA-6009) can not get table info properly at cqlsh
[ https://issues.apache.org/jira/browse/CASSANDRA-6009?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jonathan Ellis reassigned CASSANDRA-6009: - Assignee: Aleksey Yeschenko can not get table info properly at cqlsh Key: CASSANDRA-6009 URL: https://issues.apache.org/jira/browse/CASSANDRA-6009 Project: Cassandra Issue Type: Bug Components: Core, Tools Environment: cassandra 2.0, jdk 7 Reporter: koray sariteke Assignee: Aleksey Yeschenko upgrade cassandra from 1.2.6 to 1.2.9 first, then upgrade from 1.2.9 to 2.0.0 as documented at cassandra upgrade doc describe command is not giving table definition properly cqlsh:datadb DESCRIBE KEYSPACE demoks ; CREATE KEYSPACE demoks WITH replication = { 'class': 'SimpleStrategy', 'replication_factor': '2' }; USE demoks; CREATE TABLE demodb ( description text, symbol text, list index out of range PRIMARY KEY (cqlsh:datadb -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[2/2] git commit: Merge branch 'cassandra-1.2' into cassandra-2.0
Merge branch 'cassandra-1.2' into cassandra-2.0 Conflicts: src/java/org/apache/cassandra/service/StorageProxy.java Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/7cb57dbc Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/7cb57dbc Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/7cb57dbc Branch: refs/heads/cassandra-2.0 Commit: 7cb57dbcc028fdc178d9bbbd28ca5156ecbc7985 Parents: 7bde245 53e48ed Author: Aleksey Yeschenko alek...@apache.org Authored: Thu Sep 12 18:18:27 2013 +0300 Committer: Aleksey Yeschenko alek...@apache.org Committed: Thu Sep 12 18:18:27 2013 +0300 -- CHANGES.txt | 1 + .../apache/cassandra/service/StorageProxy.java | 28 +--- 2 files changed, 20 insertions(+), 9 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/7cb57dbc/CHANGES.txt -- diff --cc CHANGES.txt index 6807039,1c09589..c0f5d57 --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -30,54 -14,14 +30,55 @@@ Merged from 1.2 * Pass the updated cf to the PRSI index() method (CASSANDRA-5999) * Allow empty CQL3 batches (as no-op) (CASSANDRA-5994) * Support null in CQL3 functions (CASSANDRA-5910) + * Replace the deprecated MapMaker with CacheLoader (CASSANDRA-6007) -1.2.9 +2.0.0 + * Fix thrift validation when inserting into CQL3 tables (CASSANDRA-5138) + * Fix periodic memtable flushing behavior with clean memtables (CASSANDRA-5931) + * Fix dateOf() function for pre-2.0 timestamp columns (CASSANDRA-5928) + * Fix SSTable unintentionally loads BF when opened for batch (CASSANDRA-5938) + * Add stream session progress to JMX (CASSANDRA-4757) + * Fix NPE during CAS operation (CASSANDRA-5925) +Merged from 1.2: * Fix getBloomFilterDiskSpaceUsed for AlwaysPresentFilter (CASSANDRA-5900) - * migrate 1.1 schema_columnfamilies.key_alias column to key_aliases - (CASSANDRA-5800) - * add --migrate option to sstableupgrade and sstablescrub (CASSANDRA-5831) + * Don't announce schema version until we've loaded the changes locally + (CASSANDRA-5904) + * Fix to support off heap bloom filters size greater than 2 GB (CASSANDRA-5903) + * Properly handle parsing huge map and set literals (CASSANDRA-5893) + + +2.0.0-rc2 + * enable vnodes by default (CASSANDRA-5869) + * fix CAS contention timeout (CASSANDRA-5830) + * fix HsHa to respect max frame size (CASSANDRA-4573) + * Fix (some) 2i on composite components omissions (CASSANDRA-5851) + * cqlsh: add DESCRIBE FULL SCHEMA variant (CASSANDRA-5880) +Merged from 1.2: + * Correctly validate sparse composite cells in scrub (CASSANDRA-5855) + * Add KeyCacheHitRate metric to CF metrics (CASSANDRA-5868) + * cqlsh: add support for multiline comments (CASSANDRA-5798) + * Handle CQL3 SELECT duplicate IN restrictions on clustering columns + (CASSANDRA-5856) + + +2.0.0-rc1 + * improve DecimalSerializer performance (CASSANDRA-5837) + * fix potential spurious wakeup in AsyncOneResponse (CASSANDRA-5690) + * fix schema-related trigger issues (CASSANDRA-5774) + * Better validation when accessing CQL3 table from thrift (CASSANDRA-5138) + * Fix assertion error during repair (CASSANDRA-5801) + * Fix range tombstone bug (CASSANDRA-5805) + * DC-local CAS (CASSANDRA-5797) + * Add a native_protocol_version column to the system.local table (CASSANRDA-5819) + * Use index_interval from cassandra.yaml when upgraded (CASSANDRA-5822) + * Fix buffer underflow on socket close (CASSANDRA-5792) +Merged from 1.2: + * Fix reading DeletionTime from 1.1-format sstables (CASSANDRA-5814) + * cqlsh: add collections support to COPY (CASSANDRA-5698) + * retry important messages for any IOException (CASSANDRA-5804) + * Allow empty IN relations in SELECT/UPDATE/DELETE statements (CASSANDRA-5626) + * cqlsh: fix crashing on Windows due to libedit detection (CASSANDRA-5812) * fix bulk-loading compressed sstables (CASSANDRA-5820) * (Hadoop) fix quoting in CqlPagingRecordReader and CqlRecordWriter (CASSANDRA-5824) http://git-wip-us.apache.org/repos/asf/cassandra/blob/7cb57dbc/src/java/org/apache/cassandra/service/StorageProxy.java -- diff --cc src/java/org/apache/cassandra/service/StorageProxy.java index 50dfd07,23d73ec..1184bb5 --- a/src/java/org/apache/cassandra/service/StorageProxy.java +++ b/src/java/org/apache/cassandra/service/StorageProxy.java @@@ -28,11 -29,9 +28,11 @@@ import java.util.concurrent.atomic.Atom import javax.management.MBeanServer; import javax.management.ObjectName; - import com.google.common.base.Function; +import com.google.common.base.Predicate; + import com.google.common.cache.CacheLoader; import
[1/2] git commit: Replace the deprecated MapMaker with CacheLoader
Updated Branches: refs/heads/cassandra-2.0 7bde2454d - 7cb57dbcc Replace the deprecated MapMaker with CacheLoader patch by Aleksey Yeschenko; reviewed by Jonathan Ellis for CASSANDRA-6007 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/53e48edc Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/53e48edc Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/53e48edc Branch: refs/heads/cassandra-2.0 Commit: 53e48edc3062bafb7a8b5c3c301add5cd6a2cb19 Parents: 394b35e Author: Aleksey Yeschenko alek...@apache.org Authored: Thu Sep 12 18:10:16 2013 +0300 Committer: Aleksey Yeschenko alek...@apache.org Committed: Thu Sep 12 18:10:16 2013 +0300 -- CHANGES.txt | 1 + .../apache/cassandra/service/StorageProxy.java | 26 ++-- 2 files changed, 20 insertions(+), 7 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/53e48edc/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 6ece609..1c09589 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -14,6 +14,7 @@ * Pass the updated cf to the PRSI index() method (CASSANDRA-5999) * Allow empty CQL3 batches (as no-op) (CASSANDRA-5994) * Support null in CQL3 functions (CASSANDRA-5910) + * Replace the deprecated MapMaker with CacheLoader (CASSANDRA-6007) 1.2.9 http://git-wip-us.apache.org/repos/asf/cassandra/blob/53e48edc/src/java/org/apache/cassandra/service/StorageProxy.java -- diff --git a/src/java/org/apache/cassandra/service/StorageProxy.java b/src/java/org/apache/cassandra/service/StorageProxy.java index 94db26d..23d73ec 100644 --- a/src/java/org/apache/cassandra/service/StorageProxy.java +++ b/src/java/org/apache/cassandra/service/StorageProxy.java @@ -29,7 +29,7 @@ import java.util.concurrent.atomic.AtomicLong; import javax.management.MBeanServer; import javax.management.ObjectName; -import com.google.common.base.Function; +import com.google.common.cache.CacheLoader; import com.google.common.collect.*; import org.apache.commons.lang.StringUtils; import org.slf4j.Logger; @@ -83,13 +83,13 @@ public class StorageProxy implements StorageProxyMBean private static volatile int maxHintsInProgress = 1024 * FBUtilities.getAvailableProcessors(); private static final AtomicInteger totalHintsInProgress = new AtomicInteger(); -private static final MapInetAddress, AtomicInteger hintsInProgress = new MapMaker().concurrencyLevel(1).makeComputingMap(new FunctionInetAddress, AtomicInteger() +private static final CacheLoaderInetAddress, AtomicInteger hintsInProgress = new CacheLoaderInetAddress, AtomicInteger() { -public AtomicInteger apply(InetAddress inetAddress) +public AtomicInteger load(InetAddress inetAddress) { return new AtomicInteger(0); } -}); +}; private static final AtomicLong totalHints = new AtomicLong(); private static final ClientRequestMetrics readMetrics = new ClientRequestMetrics(Read); private static final ClientRequestMetrics rangeMetrics = new ClientRequestMetrics(RangeSlice); @@ -489,7 +489,7 @@ public class StorageProxy implements StorageProxyMBean // a small number of nodes causing problems, so we should avoid shutting down writes completely to // healthy nodes. Any node with no hintsInProgress is considered healthy. if (totalHintsInProgress.get() maxHintsInProgress - (hintsInProgress.get(destination).get() 0 shouldHint(destination))) + (getHintsInProgressFor(destination).get() 0 shouldHint(destination))) { throw new OverloadedException(Too many in flight hints: + totalHintsInProgress.get()); } @@ -538,6 +538,18 @@ public class StorageProxy implements StorageProxyMBean } } +private static AtomicInteger getHintsInProgressFor(InetAddress destination) +{ +try +{ +return hintsInProgress.load(destination); +} +catch (Exception e) +{ +throw new AssertionError(e); +} +} + public static FutureVoid submitHint(final RowMutation mutation, final InetAddress target, final AbstractWriteResponseHandler responseHandler, @@ -572,7 +584,7 @@ public class StorageProxy implements StorageProxyMBean private static FutureVoid submitHint(HintRunnable runnable) { totalHintsInProgress.incrementAndGet(); -hintsInProgress.get(runnable.target).incrementAndGet(); +
[jira] [Commented] (CASSANDRA-5988) Make hint TTL customizable
[ https://issues.apache.org/jira/browse/CASSANDRA-5988?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13765765#comment-13765765 ] Oleg Kibirev commented on CASSANDRA-5988: - Referencing the above JIRA, there is no harm in having smaller hint TTL. As for optimistic locking, the only other form (CAS) is not available until cassandra 2.0 and even then does not provide performance for very high volume operations. If the objective is to do a user facing operation and a background operation simultaneously and without external locking, and to have background operation lose if there is an intervening user operation, backdating the background operation by a certain amount is a good compromise between consistency and performance. This feature will safeguard against user operation failing, being only stored as a hint and then confusing the background process as to ultimate success or failure of the backdated operation. Make hint TTL customizable -- Key: CASSANDRA-5988 URL: https://issues.apache.org/jira/browse/CASSANDRA-5988 Project: Cassandra Issue Type: Bug Components: Core Reporter: Oleg Kibirev Currently time to live for stored hints is hardcoded to be gc_grace_seconds. This causes problems for applications using backdated deletes as a form of optimistic locking. Hints for updates made to the same data on which delete was attempted can persist for days, making it impossible to determine if delete succeeded by doing read(ALL) after a reasonable delay. We need a way to explicitly configure hint TTL, either through schema parameter or through a yaml file. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Resolved] (CASSANDRA-6014) Client Turkish character problem
[ https://issues.apache.org/jira/browse/CASSANDRA-6014?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Yeschenko resolved CASSANDRA-6014. -- Resolution: Won't Fix Please try doing the analogous thing in cqlsh. If it's still a problem there, open an issue for cqlsh. CLI is in the process of deprecation. Client Turkish character problem Key: CASSANDRA-6014 URL: https://issues.apache.org/jira/browse/CASSANDRA-6014 Project: Cassandra Issue Type: Bug Reporter: Tarik Yilmaz i and İ characters problem. {quote} {{$ cassandra-cli}} {quote} When I create keyspace, column family, ... {quote} {{[default@votes_db] create column family answers_votes with column_type='Super' and comparator='AsciiType' and subcomparator='AsciiType' and *default_validation_class*='AsciiType';}} {quote} And result {quote} {{java.lang.IllegalArgumentException: No enum constant org.apache.cassandra.cli.CliClient.ColumnFamilyArgument.*DEFAULT_VALİDATİON_CLASS*}} {quote} It happens all the time. Since 1.0.0. I don't know before versions -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[2/2] git commit: Merge branch 'cassandra-1.2' into cassandra-2.0
Merge branch 'cassandra-1.2' into cassandra-2.0 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/3e736633 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/3e736633 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/3e736633 Branch: refs/heads/cassandra-2.0 Commit: 3e7366332c3e3d429882db18cc225943658968d5 Parents: 53f19c8 f663a99 Author: Aleksey Yeschenko alek...@apache.org Authored: Thu Sep 12 20:38:14 2013 +0300 Committer: Aleksey Yeschenko alek...@apache.org Committed: Thu Sep 12 20:38:14 2013 +0300 -- CHANGES.txt | 1 + .../org/apache/cassandra/db/DataTracker.java| 12 +-- .../io/sstable/SSTableDeletingTask.java | 8 +++-- .../SSTableDeletingNotification.java| 33 4 files changed, 49 insertions(+), 5 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/3e736633/CHANGES.txt -- diff --cc CHANGES.txt index c0f5d57,51be09d..63cc6d7 --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -31,54 -15,14 +31,55 @@@ Merged from 1.2 * Allow empty CQL3 batches (as no-op) (CASSANDRA-5994) * Support null in CQL3 functions (CASSANDRA-5910) * Replace the deprecated MapMaker with CacheLoader (CASSANDRA-6007) + * Add SSTableDeletingNotification to DataTracker (CASSANDRA-6010) -1.2.9 +2.0.0 + * Fix thrift validation when inserting into CQL3 tables (CASSANDRA-5138) + * Fix periodic memtable flushing behavior with clean memtables (CASSANDRA-5931) + * Fix dateOf() function for pre-2.0 timestamp columns (CASSANDRA-5928) + * Fix SSTable unintentionally loads BF when opened for batch (CASSANDRA-5938) + * Add stream session progress to JMX (CASSANDRA-4757) + * Fix NPE during CAS operation (CASSANDRA-5925) +Merged from 1.2: * Fix getBloomFilterDiskSpaceUsed for AlwaysPresentFilter (CASSANDRA-5900) - * migrate 1.1 schema_columnfamilies.key_alias column to key_aliases - (CASSANDRA-5800) - * add --migrate option to sstableupgrade and sstablescrub (CASSANDRA-5831) + * Don't announce schema version until we've loaded the changes locally + (CASSANDRA-5904) + * Fix to support off heap bloom filters size greater than 2 GB (CASSANDRA-5903) + * Properly handle parsing huge map and set literals (CASSANDRA-5893) + + +2.0.0-rc2 + * enable vnodes by default (CASSANDRA-5869) + * fix CAS contention timeout (CASSANDRA-5830) + * fix HsHa to respect max frame size (CASSANDRA-4573) + * Fix (some) 2i on composite components omissions (CASSANDRA-5851) + * cqlsh: add DESCRIBE FULL SCHEMA variant (CASSANDRA-5880) +Merged from 1.2: + * Correctly validate sparse composite cells in scrub (CASSANDRA-5855) + * Add KeyCacheHitRate metric to CF metrics (CASSANDRA-5868) + * cqlsh: add support for multiline comments (CASSANDRA-5798) + * Handle CQL3 SELECT duplicate IN restrictions on clustering columns + (CASSANDRA-5856) + + +2.0.0-rc1 + * improve DecimalSerializer performance (CASSANDRA-5837) + * fix potential spurious wakeup in AsyncOneResponse (CASSANDRA-5690) + * fix schema-related trigger issues (CASSANDRA-5774) + * Better validation when accessing CQL3 table from thrift (CASSANDRA-5138) + * Fix assertion error during repair (CASSANDRA-5801) + * Fix range tombstone bug (CASSANDRA-5805) + * DC-local CAS (CASSANDRA-5797) + * Add a native_protocol_version column to the system.local table (CASSANRDA-5819) + * Use index_interval from cassandra.yaml when upgraded (CASSANDRA-5822) + * Fix buffer underflow on socket close (CASSANDRA-5792) +Merged from 1.2: + * Fix reading DeletionTime from 1.1-format sstables (CASSANDRA-5814) + * cqlsh: add collections support to COPY (CASSANDRA-5698) + * retry important messages for any IOException (CASSANDRA-5804) + * Allow empty IN relations in SELECT/UPDATE/DELETE statements (CASSANDRA-5626) + * cqlsh: fix crashing on Windows due to libedit detection (CASSANDRA-5812) * fix bulk-loading compressed sstables (CASSANDRA-5820) * (Hadoop) fix quoting in CqlPagingRecordReader and CqlRecordWriter (CASSANDRA-5824) http://git-wip-us.apache.org/repos/asf/cassandra/blob/3e736633/src/java/org/apache/cassandra/db/DataTracker.java -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/3e736633/src/java/org/apache/cassandra/io/sstable/SSTableDeletingTask.java --
[1/2] git commit: Add SSTableDeletingNotification to DataTracker
Updated Branches: refs/heads/cassandra-2.0 53f19c849 - 3e7366332 Add SSTableDeletingNotification to DataTracker patch by Piotr KoÅaczkowski; reviewed by Aleksey Yeschenko for CASSANDRA-6010 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/f663a996 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/f663a996 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/f663a996 Branch: refs/heads/cassandra-2.0 Commit: f663a996c799bd93963a50b418ed5fcde2e48a40 Parents: 53e48ed Author: Aleksey Yeschenko alek...@apache.org Authored: Thu Sep 12 20:35:31 2013 +0300 Committer: Aleksey Yeschenko alek...@apache.org Committed: Thu Sep 12 20:35:31 2013 +0300 -- CHANGES.txt | 1 + .../org/apache/cassandra/db/DataTracker.java| 12 +-- .../io/sstable/SSTableDeletingTask.java | 8 +++-- .../SSTableDeletingNotification.java| 33 4 files changed, 49 insertions(+), 5 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/f663a996/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 1c09589..51be09d 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -15,6 +15,7 @@ * Allow empty CQL3 batches (as no-op) (CASSANDRA-5994) * Support null in CQL3 functions (CASSANDRA-5910) * Replace the deprecated MapMaker with CacheLoader (CASSANDRA-6007) + * Add SSTableDeletingNotification to DataTracker (CASSANDRA-6010) 1.2.9 http://git-wip-us.apache.org/repos/asf/cassandra/blob/f663a996/src/java/org/apache/cassandra/db/DataTracker.java -- diff --git a/src/java/org/apache/cassandra/db/DataTracker.java b/src/java/org/apache/cassandra/db/DataTracker.java index 7f6e94c..b2f52a9 100644 --- a/src/java/org/apache/cassandra/db/DataTracker.java +++ b/src/java/org/apache/cassandra/db/DataTracker.java @@ -34,6 +34,7 @@ import org.apache.cassandra.metrics.StorageMetrics; import org.apache.cassandra.notifications.INotification; import org.apache.cassandra.notifications.INotificationConsumer; import org.apache.cassandra.notifications.SSTableAddedNotification; +import org.apache.cassandra.notifications.SSTableDeletingNotification; import org.apache.cassandra.notifications.SSTableListChangedNotification; import org.apache.cassandra.utils.Interval; import org.apache.cassandra.utils.IntervalTree; @@ -412,11 +413,16 @@ public class DataTracker public void notifyAdded(SSTableReader added) { +INotification notification = new SSTableAddedNotification(added); +for (INotificationConsumer subscriber : subscribers) +subscriber.handleNotification(notification, this); +} + +public void notifyDeleting(SSTableReader deleting) +{ +INotification notification = new SSTableDeletingNotification(deleting); for (INotificationConsumer subscriber : subscribers) -{ -INotification notification = new SSTableAddedNotification(added); subscriber.handleNotification(notification, this); -} } public void subscribe(INotificationConsumer consumer) http://git-wip-us.apache.org/repos/asf/cassandra/blob/f663a996/src/java/org/apache/cassandra/io/sstable/SSTableDeletingTask.java -- diff --git a/src/java/org/apache/cassandra/io/sstable/SSTableDeletingTask.java b/src/java/org/apache/cassandra/io/sstable/SSTableDeletingTask.java index 2335b7d..8bdc733 100644 --- a/src/java/org/apache/cassandra/io/sstable/SSTableDeletingTask.java +++ b/src/java/org/apache/cassandra/io/sstable/SSTableDeletingTask.java @@ -41,13 +41,15 @@ public class SSTableDeletingTask implements Runnable // will be recognized as GCable. private static final SetSSTableDeletingTask failedTasks = new CopyOnWriteArraySetSSTableDeletingTask(); -public final Descriptor desc; -public final SetComponent components; +private final SSTableReader referent; +private final Descriptor desc; +private final SetComponent components; private DataTracker tracker; private final long size; public SSTableDeletingTask(SSTableReader referent) { +this.referent = referent; this.desc = referent.descriptor; this.components = referent.components; this.size = referent.bytesOnDisk(); @@ -65,6 +67,8 @@ public class SSTableDeletingTask implements Runnable public void run() { +tracker.notifyDeleting(referent); + // If we can't successfully delete the DATA component, set the task to be retried later: see above File datafile = new File(desc.filenameFor(Component.DATA));
[jira] [Created] (CASSANDRA-6019) CQL identifier regex in documentation is wrong, (or cqlsh doesn't implement correctly)
Ryan McGuire created CASSANDRA-6019: --- Summary: CQL identifier regex in documentation is wrong, (or cqlsh doesn't implement correctly) Key: CASSANDRA-6019 URL: https://issues.apache.org/jira/browse/CASSANDRA-6019 Project: Cassandra Issue Type: Bug Components: Documentation website Reporter: Ryan McGuire Priority: Minor The [CQL docs|http://cassandra.apache.org/doc/cql3/CQL.html#identifiers] state that a CQL identifier can be any characters [a-zA-Z0-9_]*. ,but in fact, they cannot start with an '_' or a number. Empirically, it looks like the regex should be [a-zA-Z][a-zA-Z0-9_].* -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (CASSANDRA-5988) Make hint TTL customizable
[ https://issues.apache.org/jira/browse/CASSANDRA-5988?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13765737#comment-13765737 ] Jonathan Ellis commented on CASSANDRA-5988: --- Hint TTL will be exactly gc grace for the reasons documented in CASSANDRA-5314. using backdated deletes as a form of optimistic locking sounds like a bad idea, would you care to defend it? :) Make hint TTL customizable -- Key: CASSANDRA-5988 URL: https://issues.apache.org/jira/browse/CASSANDRA-5988 Project: Cassandra Issue Type: Bug Components: Core Reporter: Oleg Kibirev Currently time to live for stored hints is hardcoded to be gc_grace_seconds. This causes problems for applications using backdated deletes as a form of optimistic locking. Hints for updates made to the same data on which delete was attempted can persist for days, making it impossible to determine if delete succeeded by doing read(ALL) after a reasonable delay. We need a way to explicitly configure hint TTL, either through schema parameter or through a yaml file. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (CASSANDRA-6007) Replace the deprecated MapMaker with CacheLoader for compatibility with Guava 15.0+
[ https://issues.apache.org/jira/browse/CASSANDRA-6007?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Yeschenko updated CASSANDRA-6007: - Fix Version/s: (was: 2.0.1) Summary: Replace the deprecated MapMaker with CacheLoader for compatibility with Guava 15.0+ (was: guava dependency mismatch between datastax/driver 2.0 and cassandra 2.0) Replace the deprecated MapMaker with CacheLoader for compatibility with Guava 15.0+ --- Key: CASSANDRA-6007 URL: https://issues.apache.org/jira/browse/CASSANDRA-6007 Project: Cassandra Issue Type: Bug Components: Core, Drivers Reporter: Max Penet Assignee: Aleksey Yeschenko Priority: Minor Fix For: 1.2.10 Attachments: 6007.txt Attempting to load datastax/java-driver 2.0 beta1 and cassandra-all 2.0 in the same jvm causes some issues mainly because of clashes between guava versions (15.0 in the driver vs 13.0.1 in c*). This makes automated testing using EmbeddedCassandraService problematic for instance. Stacktrace from https://github.com/mpenet/alia/tree/2.0 running lein test Upgrading c* 2.0 to guava 15+ should help fix this issue. {code:java} java.lang.IllegalAccessError: tried to access method com.google.common.collect.MapMaker.makeComputingMap(Lcom/google/common/base/Function;)Ljava/util/concurrent/ConcurrentMap; from class org.apache.cassandra.service.StorageProxy at org.apache.cassandra.service.StorageProxy.clinit(StorageProxy.java:87) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:190) at org.apache.cassandra.service.StorageService.initServer(StorageService.java:447) at org.apache.cassandra.service.StorageService.initServer(StorageService.java:426) at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:344) at org.apache.cassandra.service.CassandraDaemon.init(CassandraDaemon.java:377) at org.apache.cassandra.service.EmbeddedCassandraService.start(EmbeddedCassandraService.java:52) at qbits.alia.test.embedded$start_service_BANG_.invoke(embedded.clj:20) at qbits.alia.test.embedded$eval10911.invoke(embedded.clj:24) at clojure.lang.Compiler.eval(Compiler.java:6619) at clojure.lang.Compiler.load(Compiler.java:7064) at clojure.lang.RT.loadResourceScript(RT.java:370) at clojure.lang.RT.loadResourceScript(RT.java:361) at clojure.lang.RT.load(RT.java:440) at clojure.lang.RT.load(RT.java:411) at clojure.core$load$fn__5018.invoke(core.clj:5530) at clojure.core$load.doInvoke(core.clj:5529) at clojure.lang.RestFn.invoke(RestFn.java:408) at clojure.core$load_one.invoke(core.clj:5336) at clojure.core$load_lib$fn__4967.invoke(core.clj:5375) at clojure.core$load_lib.doInvoke(core.clj:5374) at clojure.lang.RestFn.applyTo(RestFn.java:142) at clojure.core$apply.invoke(core.clj:619) at clojure.core$load_libs.doInvoke(core.clj:5413) at clojure.lang.RestFn.applyTo(RestFn.java:137) at clojure.core$apply.invoke(core.clj:621) at clojure.core$use.doInvoke(core.clj:5507) at clojure.lang.RestFn.invoke(RestFn.java:703) at qbits.alia.test.core$eval161$loading__4910__auto162.invoke(core.clj:1) at qbits.alia.test.core$eval161.invoke(core.clj:1) at clojure.lang.Compiler.eval(Compiler.java:6619) at clojure.lang.Compiler.eval(Compiler.java:6608) at clojure.lang.Compiler.load(Compiler.java:7064) at clojure.lang.RT.loadResourceScript(RT.java:370) at clojure.lang.RT.loadResourceScript(RT.java:361) at clojure.lang.RT.load(RT.java:440) at clojure.lang.RT.load(RT.java:411) at clojure.core$load$fn__5018.invoke(core.clj:5530) at clojure.core$load.doInvoke(core.clj:5529) at clojure.lang.RestFn.invoke(RestFn.java:408) at clojure.core$load_one.invoke(core.clj:5336) at clojure.core$load_lib$fn__4967.invoke(core.clj:5375) at clojure.core$load_lib.doInvoke(core.clj:5374) at clojure.lang.RestFn.applyTo(RestFn.java:142) at clojure.core$apply.invoke(core.clj:619) at clojure.core$load_libs.doInvoke(core.clj:5413) at clojure.lang.RestFn.applyTo(RestFn.java:137) at clojure.core$apply.invoke(core.clj:619) at clojure.core$require.doInvoke(core.clj:5496) at clojure.lang.RestFn.applyTo(RestFn.java:137) at clojure.core$apply.invoke(core.clj:619) at user$eval85.invoke(NO_SOURCE_FILE:1) at clojure.lang.Compiler.eval(Compiler.java:6619) at clojure.lang.Compiler.eval(Compiler.java:6609) at clojure.lang.Compiler.eval(Compiler.java:6582) at
[3/3] git commit: Merge branch 'cassandra-2.0' into trunk
Merge branch 'cassandra-2.0' into trunk Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/f3430d39 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/f3430d39 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/f3430d39 Branch: refs/heads/trunk Commit: f3430d3944e89ba3240aef1dd7f499000418d8a7 Parents: 816c032 3e73663 Author: Aleksey Yeschenko alek...@apache.org Authored: Thu Sep 12 20:38:53 2013 +0300 Committer: Aleksey Yeschenko alek...@apache.org Committed: Thu Sep 12 20:38:53 2013 +0300 -- CHANGES.txt | 1 + .../org/apache/cassandra/db/DataTracker.java| 12 +-- .../io/sstable/SSTableDeletingTask.java | 8 +++-- .../SSTableDeletingNotification.java| 33 4 files changed, 49 insertions(+), 5 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/f3430d39/CHANGES.txt --
[1/3] git commit: Add SSTableDeletingNotification to DataTracker
Updated Branches: refs/heads/trunk 816c03218 - f3430d394 Add SSTableDeletingNotification to DataTracker patch by Piotr KoÅaczkowski; reviewed by Aleksey Yeschenko for CASSANDRA-6010 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/f663a996 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/f663a996 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/f663a996 Branch: refs/heads/trunk Commit: f663a996c799bd93963a50b418ed5fcde2e48a40 Parents: 53e48ed Author: Aleksey Yeschenko alek...@apache.org Authored: Thu Sep 12 20:35:31 2013 +0300 Committer: Aleksey Yeschenko alek...@apache.org Committed: Thu Sep 12 20:35:31 2013 +0300 -- CHANGES.txt | 1 + .../org/apache/cassandra/db/DataTracker.java| 12 +-- .../io/sstable/SSTableDeletingTask.java | 8 +++-- .../SSTableDeletingNotification.java| 33 4 files changed, 49 insertions(+), 5 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/f663a996/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 1c09589..51be09d 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -15,6 +15,7 @@ * Allow empty CQL3 batches (as no-op) (CASSANDRA-5994) * Support null in CQL3 functions (CASSANDRA-5910) * Replace the deprecated MapMaker with CacheLoader (CASSANDRA-6007) + * Add SSTableDeletingNotification to DataTracker (CASSANDRA-6010) 1.2.9 http://git-wip-us.apache.org/repos/asf/cassandra/blob/f663a996/src/java/org/apache/cassandra/db/DataTracker.java -- diff --git a/src/java/org/apache/cassandra/db/DataTracker.java b/src/java/org/apache/cassandra/db/DataTracker.java index 7f6e94c..b2f52a9 100644 --- a/src/java/org/apache/cassandra/db/DataTracker.java +++ b/src/java/org/apache/cassandra/db/DataTracker.java @@ -34,6 +34,7 @@ import org.apache.cassandra.metrics.StorageMetrics; import org.apache.cassandra.notifications.INotification; import org.apache.cassandra.notifications.INotificationConsumer; import org.apache.cassandra.notifications.SSTableAddedNotification; +import org.apache.cassandra.notifications.SSTableDeletingNotification; import org.apache.cassandra.notifications.SSTableListChangedNotification; import org.apache.cassandra.utils.Interval; import org.apache.cassandra.utils.IntervalTree; @@ -412,11 +413,16 @@ public class DataTracker public void notifyAdded(SSTableReader added) { +INotification notification = new SSTableAddedNotification(added); +for (INotificationConsumer subscriber : subscribers) +subscriber.handleNotification(notification, this); +} + +public void notifyDeleting(SSTableReader deleting) +{ +INotification notification = new SSTableDeletingNotification(deleting); for (INotificationConsumer subscriber : subscribers) -{ -INotification notification = new SSTableAddedNotification(added); subscriber.handleNotification(notification, this); -} } public void subscribe(INotificationConsumer consumer) http://git-wip-us.apache.org/repos/asf/cassandra/blob/f663a996/src/java/org/apache/cassandra/io/sstable/SSTableDeletingTask.java -- diff --git a/src/java/org/apache/cassandra/io/sstable/SSTableDeletingTask.java b/src/java/org/apache/cassandra/io/sstable/SSTableDeletingTask.java index 2335b7d..8bdc733 100644 --- a/src/java/org/apache/cassandra/io/sstable/SSTableDeletingTask.java +++ b/src/java/org/apache/cassandra/io/sstable/SSTableDeletingTask.java @@ -41,13 +41,15 @@ public class SSTableDeletingTask implements Runnable // will be recognized as GCable. private static final SetSSTableDeletingTask failedTasks = new CopyOnWriteArraySetSSTableDeletingTask(); -public final Descriptor desc; -public final SetComponent components; +private final SSTableReader referent; +private final Descriptor desc; +private final SetComponent components; private DataTracker tracker; private final long size; public SSTableDeletingTask(SSTableReader referent) { +this.referent = referent; this.desc = referent.descriptor; this.components = referent.components; this.size = referent.bytesOnDisk(); @@ -65,6 +67,8 @@ public class SSTableDeletingTask implements Runnable public void run() { +tracker.notifyDeleting(referent); + // If we can't successfully delete the DATA component, set the task to be retried later: see above File datafile = new File(desc.filenameFor(Component.DATA)); if
[jira] [Updated] (CASSANDRA-6012) CAS does not always correctly replay inProgress rounds
[ https://issues.apache.org/jira/browse/CASSANDRA-6012?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Sylvain Lebresne updated CASSANDRA-6012: Attachment: 0001-Don-t-skip-paxos-old-round-replay-if-there-is-a-value-.txt CAS does not always correctly replay inProgress rounds -- Key: CASSANDRA-6012 URL: https://issues.apache.org/jira/browse/CASSANDRA-6012 Project: Cassandra Issue Type: Bug Reporter: Sylvain Lebresne Assignee: Sylvain Lebresne Fix For: 2.0.1 Attachments: 0001-Don-t-skip-paxos-old-round-replay-if-there-is-a-value-.txt Paxos says that on receiving the result of a prepare from a quorum of acceptors, the proposer should propose the value of the higher-number proposal accepted amongst the ones returned by the acceptors, and only propose his own value if no acceptor has send us back a previously accepted value. But in PrepareCallback we only keep the more recent inProgress commit regardless of whether is has an update. Which means we could ignore a value already accepted by some acceptors if any of the acceptor send us a more recent ballot than the other acceptor but with no values. The net effect is that we can mistakenly accept two different values for the same round. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[1/2] git commit: Fix CASSANDRA-6000 and CASSANDRA-5990 merges
Updated Branches: refs/heads/trunk 0ec68f557 - c1c29d847 Fix CASSANDRA-6000 and CASSANDRA-5990 merges Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/349d5dbe Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/349d5dbe Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/349d5dbe Branch: refs/heads/trunk Commit: 349d5dbeadfa2abca1b2d067f2e796aa41f06e8d Parents: 7cb57db Author: Aleksey Yeschenko alek...@apache.org Authored: Thu Sep 12 18:37:21 2013 +0300 Committer: Aleksey Yeschenko alek...@apache.org Committed: Thu Sep 12 18:37:21 2013 +0300 -- .../org/apache/cassandra/config/CFMetaData.java | 4 ++- .../apache/cassandra/cql3/UntypedResultSet.java | 14 +++- .../cassandra/hadoop/pig/CassandraStorage.java | 34 3 files changed, 13 insertions(+), 39 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/349d5dbe/src/java/org/apache/cassandra/config/CFMetaData.java -- diff --git a/src/java/org/apache/cassandra/config/CFMetaData.java b/src/java/org/apache/cassandra/config/CFMetaData.java index e912505..be3da21 100644 --- a/src/java/org/apache/cassandra/config/CFMetaData.java +++ b/src/java/org/apache/cassandra/config/CFMetaData.java @@ -936,7 +936,9 @@ public final class CFMetaData for (org.apache.cassandra.thrift.Column column : row.getColumns()) columns.put(ByteBufferUtil.string(column.bufferForName()), column.value); } -catch (CharacterCodingException ignore) {} +catch (CharacterCodingException ignore) +{ +} UntypedResultSet.Row cql3row = new UntypedResultSet.Row(columns); return fromSchemaNoColumnsNoTriggers(cql3row); } http://git-wip-us.apache.org/repos/asf/cassandra/blob/349d5dbe/src/java/org/apache/cassandra/cql3/UntypedResultSet.java -- diff --git a/src/java/org/apache/cassandra/cql3/UntypedResultSet.java b/src/java/org/apache/cassandra/cql3/UntypedResultSet.java index da76f2b..e5bd863 100644 --- a/src/java/org/apache/cassandra/cql3/UntypedResultSet.java +++ b/src/java/org/apache/cassandra/cql3/UntypedResultSet.java @@ -20,13 +20,7 @@ package org.apache.cassandra.cql3; import java.net.InetAddress; import java.nio.ByteBuffer; -import java.util.Date; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.UUID; +import java.util.*; import com.google.common.collect.AbstractIterator; @@ -77,8 +71,8 @@ public class UntypedResultSet implements IterableUntypedResultSet.Row public static class Row { -final MapString, ByteBuffer data = new HashMapString, ByteBuffer(); -final ListColumnSpecification columns; +private final MapString, ByteBuffer data = new HashMap(); +private final ListColumnSpecification columns = new ArrayList(); public Row(MapString, ByteBuffer data) { @@ -87,7 +81,7 @@ public class UntypedResultSet implements IterableUntypedResultSet.Row public Row(ListColumnSpecification names, ListByteBuffer columns) { -this.columns = names; +this.columns.addAll(names); for (int i = 0; i names.size(); i++) data.put(names.get(i).toString(), columns.get(i)); } http://git-wip-us.apache.org/repos/asf/cassandra/blob/349d5dbe/src/java/org/apache/cassandra/hadoop/pig/CassandraStorage.java -- diff --git a/src/java/org/apache/cassandra/hadoop/pig/CassandraStorage.java b/src/java/org/apache/cassandra/hadoop/pig/CassandraStorage.java index 577fd38..62f25cd 100644 --- a/src/java/org/apache/cassandra/hadoop/pig/CassandraStorage.java +++ b/src/java/org/apache/cassandra/hadoop/pig/CassandraStorage.java @@ -22,27 +22,15 @@ import java.nio.ByteBuffer; import java.nio.charset.CharacterCodingException; import java.util.*; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.apache.cassandra.db.Column; import org.apache.cassandra.db.marshal.*; import org.apache.cassandra.exceptions.ConfigurationException; +import org.apache.cassandra.exceptions.InvalidRequestException; import org.apache.cassandra.hadoop.*; -import org.apache.cassandra.thrift.Cassandra; -import org.apache.cassandra.thrift.CfDef; -import org.apache.cassandra.thrift.ColumnDef; -import org.apache.cassandra.thrift.ColumnOrSuperColumn; -import org.apache.cassandra.thrift.Deletion; -import org.apache.cassandra.thrift.IndexClause; -import org.apache.cassandra.thrift.IndexExpression; -import
[jira] [Updated] (CASSANDRA-6014) Client Turkish i and İ character problem
[ https://issues.apache.org/jira/browse/CASSANDRA-6014?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tarik Yilmaz updated CASSANDRA-6014: Summary: Client Turkish i and İ character problem (was: Client Turkish character problem) Client Turkish i and İ character problem Key: CASSANDRA-6014 URL: https://issues.apache.org/jira/browse/CASSANDRA-6014 Project: Cassandra Issue Type: Bug Reporter: Tarik Yilmaz Fix For: 1.2.0, 2.0 {quote} {{$ cassandra-cli}} {quote} When I create keyspace, column family, ... {quote} {{[default@votes_db] create column family answers_votes with column_type='Super' and comparator='AsciiType' and subcomparator='AsciiType' and default_class_validation_class='AsciiType';}} {quote} And result {quote} {{java.lang.IllegalArgumentException: No enum constant org.apache.cassandra.cli.CliClient.ColumnFamilyArgument.DEFAULT_CLASS_VALİDATİON_CLASS}} {quote} It happens all the time. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[2/2] git commit: Merge branch 'cassandra-2.0' into trunk
Merge branch 'cassandra-2.0' into trunk Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/c1c29d84 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/c1c29d84 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/c1c29d84 Branch: refs/heads/trunk Commit: c1c29d847abb129a71034a078150e13680d460f9 Parents: 0ec68f5 349d5db Author: Aleksey Yeschenko alek...@apache.org Authored: Thu Sep 12 18:38:02 2013 +0300 Committer: Aleksey Yeschenko alek...@apache.org Committed: Thu Sep 12 18:38:02 2013 +0300 -- .../org/apache/cassandra/config/CFMetaData.java| 4 +++- .../apache/cassandra/cql3/UntypedResultSet.java| 14 -- .../cassandra/hadoop/pig/CassandraStorage.java | 17 + 3 files changed, 12 insertions(+), 23 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/c1c29d84/src/java/org/apache/cassandra/config/CFMetaData.java --
[jira] [Updated] (CASSANDRA-6017) Move hints and exception metrics to o.a.c.metrics
[ https://issues.apache.org/jira/browse/CASSANDRA-6017?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Yuki Morishita updated CASSANDRA-6017: -- Attachment: 6017-1.2.txt Move hints and exception metrics to o.a.c.metrics - Key: CASSANDRA-6017 URL: https://issues.apache.org/jira/browse/CASSANDRA-6017 Project: Cassandra Issue Type: Improvement Reporter: Yuki Morishita Assignee: Yuki Morishita Priority: Minor Fix For: 1.2.10, 2.0.1 Attachments: 6017-1.2.txt Hints and exception count is still exposed through Storage\{Proxy|Service\}MBean. Move those to o.a.c.metrics. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (CASSANDRA-6017) Move hints and exception metrics to o.a.c.metrics
[ https://issues.apache.org/jira/browse/CASSANDRA-6017?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Yuki Morishita updated CASSANDRA-6017: -- Description: Hints and exception count is still exposed through Storage\{Proxy|Service\}MBean. Move those to o.a.c.metrics. was: Hints and exception count is still exposed through Storage{Proxy|Service}MBean. Move those to o.a.c.metrics. Move hints and exception metrics to o.a.c.metrics - Key: CASSANDRA-6017 URL: https://issues.apache.org/jira/browse/CASSANDRA-6017 Project: Cassandra Issue Type: Improvement Reporter: Yuki Morishita Assignee: Yuki Morishita Priority: Minor Fix For: 1.2.10, 2.0.1 Attachments: 6017-1.2.txt Hints and exception count is still exposed through Storage\{Proxy|Service\}MBean. Move those to o.a.c.metrics. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (CASSANDRA-6014) Client Turkish character problem
[ https://issues.apache.org/jira/browse/CASSANDRA-6014?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tarik Yilmaz updated CASSANDRA-6014: Description: i and İ characters problem. {quote} {{$ cassandra-cli}} {quote} When I create keyspace, column family, ... {quote} {{[default@votes_db] create column family answers_votes with column_type='Super' and comparator='AsciiType' and subcomparator='AsciiType' and default_class_validation_class='AsciiType';}} {quote} And result {quote} {{java.lang.IllegalArgumentException: No enum constant org.apache.cassandra.cli.CliClient.ColumnFamilyArgument.DEFAULT_CLASS_VALİDATİON_CLASS}} {quote} It happens all the time. was: {quote} {{$ cassandra-cli}} {quote} When I create keyspace, column family, ... {quote} {{[default@votes_db] create column family answers_votes with column_type='Super' and comparator='AsciiType' and subcomparator='AsciiType' and default_class_validation_class='AsciiType';}} {quote} And result {quote} {{java.lang.IllegalArgumentException: No enum constant org.apache.cassandra.cli.CliClient.ColumnFamilyArgument.DEFAULT_CLASS_VALİDATİON_CLASS}} {quote} It happens all the time. Client Turkish character problem Key: CASSANDRA-6014 URL: https://issues.apache.org/jira/browse/CASSANDRA-6014 Project: Cassandra Issue Type: Bug Reporter: Tarik Yilmaz Fix For: 1.2.0, 2.0 i and İ characters problem. {quote} {{$ cassandra-cli}} {quote} When I create keyspace, column family, ... {quote} {{[default@votes_db] create column family answers_votes with column_type='Super' and comparator='AsciiType' and subcomparator='AsciiType' and default_class_validation_class='AsciiType';}} {quote} And result {quote} {{java.lang.IllegalArgumentException: No enum constant org.apache.cassandra.cli.CliClient.ColumnFamilyArgument.DEFAULT_CLASS_VALİDATİON_CLASS}} {quote} It happens all the time. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (CASSANDRA-6014) Client Turkish character problem
[ https://issues.apache.org/jira/browse/CASSANDRA-6014?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tarik Yilmaz updated CASSANDRA-6014: Description: i and İ characters problem. {quote} {{$ cassandra-cli}} {quote} When I create keyspace, column family, ... {quote} {{[default@votes_db] create column family answers_votes with column_type='Super' and comparator='AsciiType' and subcomparator='AsciiType' and *default_class_validation_class*='AsciiType';}} {quote} And result {quote} {{java.lang.IllegalArgumentException: No enum constant org.apache.cassandra.cli.CliClient.ColumnFamilyArgument.*DEFAULT_CLASS_VALİDATİON_CLASS*}} {quote} It happens all the time. was: i and İ characters problem. {quote} {{$ cassandra-cli}} {quote} When I create keyspace, column family, ... {quote} {{[default@votes_db] create column family answers_votes with column_type='Super' and comparator='AsciiType' and subcomparator='AsciiType' and default_class_validation_class='AsciiType';}} {quote} And result {quote} {{java.lang.IllegalArgumentException: No enum constant org.apache.cassandra.cli.CliClient.ColumnFamilyArgument.DEFAULT_CLASS_VALİDATİON_CLASS}} {quote} It happens all the time. Client Turkish character problem Key: CASSANDRA-6014 URL: https://issues.apache.org/jira/browse/CASSANDRA-6014 Project: Cassandra Issue Type: Bug Reporter: Tarik Yilmaz Fix For: 1.2.0, 2.0 i and İ characters problem. {quote} {{$ cassandra-cli}} {quote} When I create keyspace, column family, ... {quote} {{[default@votes_db] create column family answers_votes with column_type='Super' and comparator='AsciiType' and subcomparator='AsciiType' and *default_class_validation_class*='AsciiType';}} {quote} And result {quote} {{java.lang.IllegalArgumentException: No enum constant org.apache.cassandra.cli.CliClient.ColumnFamilyArgument.*DEFAULT_CLASS_VALİDATİON_CLASS*}} {quote} It happens all the time. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (CASSANDRA-6013) CAS may return false but still commit the insert
[ https://issues.apache.org/jira/browse/CASSANDRA-6013?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jonathan Ellis updated CASSANDRA-6013: -- Description: If a Paxos proposer proposes some value/update and that propose fail, there is no guarantee on whether this value will be accepted or not ultimately. Paxos guarantees that we'll agree on a value (for a given round in our case), but does not guarantee that the proposer of the agreed upon value will know it. In particular, if for a given proposal at least one accepter has accepted it but not a quorum does, then that value might (but that's not guaranteed either) be replayed (and committed) by another proposer. Currently, if a proposer A proposes some update U but it is rejected, A will sleep a bit and retry U. But if U was accepted by at least one acceptor, some other proposer B might replay U, succeed and commit it. If A does its retry after that happens, he will prepare, check the condition, and probably find that the conditions don't apply anymore since U has been committed already. It will thus return false, even though U has been in fact committed. Unfortunately I'm not sure there is an easy way for a proposer whose propose fails to know if the update will prevail or not eventually. Which mean the only acceptable solution I can see would be to return to the user I don't know (through some exception for instance). Which is annoying because having a proposal rejected won't be an extremely rare occurrence, even with relatively light contention, and returning I don't know often is a bit unfriendly. was: If a Paxos proposer proposes some value/update and that propose fail, there is no guarantee on whether this value will be accepted or not ultimately. Paxos only guarantees that we'll agree on a value (for a given round in our case), but does guarantee that the proposer of the agreed upon value will know it. In particular, if for a given proposal at least one accepter has accepted it but not a quorum does, then that value might (but that's not guaranteed either) be replayed (and committed) by another proposer. Currently, if a proposer A proposes some update U but it is rejected, A will sleep a bit and retry U. But if U was accepted by at least one acceptor, some other proposer B might replay U, succeed and commit it. If A does its retry after that happens, he will prepare, check the condition, and probably find that the conditions don't apply anymore since U has been committed already. It will thus return false, even though U has been in fact committed. Unfortunately I'm not sure there is an easy way for a proposer whose propose fails to know if the update will prevail or not eventually. Which mean the only acceptable solution I can see would be to return to the user I don't know (through some exception for instance). Which is annoying because having a proposal rejected won't be an extremely rare occurrence, even with relatively light contention, and returning I don't know often is a bit unfriendly. CAS may return false but still commit the insert Key: CASSANDRA-6013 URL: https://issues.apache.org/jira/browse/CASSANDRA-6013 Project: Cassandra Issue Type: Bug Reporter: Sylvain Lebresne If a Paxos proposer proposes some value/update and that propose fail, there is no guarantee on whether this value will be accepted or not ultimately. Paxos guarantees that we'll agree on a value (for a given round in our case), but does not guarantee that the proposer of the agreed upon value will know it. In particular, if for a given proposal at least one accepter has accepted it but not a quorum does, then that value might (but that's not guaranteed either) be replayed (and committed) by another proposer. Currently, if a proposer A proposes some update U but it is rejected, A will sleep a bit and retry U. But if U was accepted by at least one acceptor, some other proposer B might replay U, succeed and commit it. If A does its retry after that happens, he will prepare, check the condition, and probably find that the conditions don't apply anymore since U has been committed already. It will thus return false, even though U has been in fact committed. Unfortunately I'm not sure there is an easy way for a proposer whose propose fails to know if the update will prevail or not eventually. Which mean the only acceptable solution I can see would be to return to the user I don't know (through some exception for instance). Which is annoying because having a proposal rejected won't be an extremely rare occurrence, even with relatively light contention, and returning I don't know often is a bit unfriendly. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please
[jira] [Commented] (CASSANDRA-6007) guava dependency mismatch between datastax/driver 2.0 and cassandra 2.0
[ https://issues.apache.org/jira/browse/CASSANDRA-6007?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13765501#comment-13765501 ] Jonathan Ellis commented on CASSANDRA-6007: --- +1 guava dependency mismatch between datastax/driver 2.0 and cassandra 2.0 --- Key: CASSANDRA-6007 URL: https://issues.apache.org/jira/browse/CASSANDRA-6007 Project: Cassandra Issue Type: Bug Components: Core, Drivers Reporter: Max Penet Assignee: Aleksey Yeschenko Priority: Minor Fix For: 1.2.10, 2.0.1 Attachments: 6007.txt Attempting to load datastax/java-driver 2.0 beta1 and cassandra-all 2.0 in the same jvm causes some issues mainly because of clashes between guava versions (15.0 in the driver vs 13.0.1 in c*). This makes automated testing using EmbeddedCassandraService problematic for instance. Stacktrace from https://github.com/mpenet/alia/tree/2.0 running lein test Upgrading c* 2.0 to guava 15+ should help fix this issue. {code:java} java.lang.IllegalAccessError: tried to access method com.google.common.collect.MapMaker.makeComputingMap(Lcom/google/common/base/Function;)Ljava/util/concurrent/ConcurrentMap; from class org.apache.cassandra.service.StorageProxy at org.apache.cassandra.service.StorageProxy.clinit(StorageProxy.java:87) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:190) at org.apache.cassandra.service.StorageService.initServer(StorageService.java:447) at org.apache.cassandra.service.StorageService.initServer(StorageService.java:426) at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:344) at org.apache.cassandra.service.CassandraDaemon.init(CassandraDaemon.java:377) at org.apache.cassandra.service.EmbeddedCassandraService.start(EmbeddedCassandraService.java:52) at qbits.alia.test.embedded$start_service_BANG_.invoke(embedded.clj:20) at qbits.alia.test.embedded$eval10911.invoke(embedded.clj:24) at clojure.lang.Compiler.eval(Compiler.java:6619) at clojure.lang.Compiler.load(Compiler.java:7064) at clojure.lang.RT.loadResourceScript(RT.java:370) at clojure.lang.RT.loadResourceScript(RT.java:361) at clojure.lang.RT.load(RT.java:440) at clojure.lang.RT.load(RT.java:411) at clojure.core$load$fn__5018.invoke(core.clj:5530) at clojure.core$load.doInvoke(core.clj:5529) at clojure.lang.RestFn.invoke(RestFn.java:408) at clojure.core$load_one.invoke(core.clj:5336) at clojure.core$load_lib$fn__4967.invoke(core.clj:5375) at clojure.core$load_lib.doInvoke(core.clj:5374) at clojure.lang.RestFn.applyTo(RestFn.java:142) at clojure.core$apply.invoke(core.clj:619) at clojure.core$load_libs.doInvoke(core.clj:5413) at clojure.lang.RestFn.applyTo(RestFn.java:137) at clojure.core$apply.invoke(core.clj:621) at clojure.core$use.doInvoke(core.clj:5507) at clojure.lang.RestFn.invoke(RestFn.java:703) at qbits.alia.test.core$eval161$loading__4910__auto162.invoke(core.clj:1) at qbits.alia.test.core$eval161.invoke(core.clj:1) at clojure.lang.Compiler.eval(Compiler.java:6619) at clojure.lang.Compiler.eval(Compiler.java:6608) at clojure.lang.Compiler.load(Compiler.java:7064) at clojure.lang.RT.loadResourceScript(RT.java:370) at clojure.lang.RT.loadResourceScript(RT.java:361) at clojure.lang.RT.load(RT.java:440) at clojure.lang.RT.load(RT.java:411) at clojure.core$load$fn__5018.invoke(core.clj:5530) at clojure.core$load.doInvoke(core.clj:5529) at clojure.lang.RestFn.invoke(RestFn.java:408) at clojure.core$load_one.invoke(core.clj:5336) at clojure.core$load_lib$fn__4967.invoke(core.clj:5375) at clojure.core$load_lib.doInvoke(core.clj:5374) at clojure.lang.RestFn.applyTo(RestFn.java:142) at clojure.core$apply.invoke(core.clj:619) at clojure.core$load_libs.doInvoke(core.clj:5413) at clojure.lang.RestFn.applyTo(RestFn.java:137) at clojure.core$apply.invoke(core.clj:619) at clojure.core$require.doInvoke(core.clj:5496) at clojure.lang.RestFn.applyTo(RestFn.java:137) at clojure.core$apply.invoke(core.clj:619) at user$eval85.invoke(NO_SOURCE_FILE:1) at clojure.lang.Compiler.eval(Compiler.java:6619) at clojure.lang.Compiler.eval(Compiler.java:6609) at clojure.lang.Compiler.eval(Compiler.java:6582) at clojure.core$eval.invoke(core.clj:2852) at clojure.main$eval_opt.invoke(main.clj:308) at clojure.main$initialize.invoke(main.clj:327) at
[jira] [Commented] (CASSANDRA-6012) CAS does not always correctly replay inProgress rounds
[ https://issues.apache.org/jira/browse/CASSANDRA-6012?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13765928#comment-13765928 ] Jonathan Ellis commented on CASSANDRA-6012: --- +1 CAS does not always correctly replay inProgress rounds -- Key: CASSANDRA-6012 URL: https://issues.apache.org/jira/browse/CASSANDRA-6012 Project: Cassandra Issue Type: Bug Reporter: Sylvain Lebresne Assignee: Sylvain Lebresne Fix For: 2.0.1 Attachments: 0001-Don-t-skip-paxos-old-round-replay-if-there-is-a-value-.txt Paxos says that on receiving the result of a prepare from a quorum of acceptors, the proposer should propose the value of the higher-number proposal accepted amongst the ones returned by the acceptors, and only propose his own value if no acceptor has send us back a previously accepted value. But in PrepareCallback we only keep the more recent inProgress commit regardless of whether is has an update. Which means we could ignore a value already accepted by some acceptors if any of the acceptor send us a more recent ballot than the other acceptor but with no values. The net effect is that we can mistakenly accept two different values for the same round. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (CASSANDRA-5997) -D option to change cluster name
[ https://issues.apache.org/jira/browse/CASSANDRA-5997?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13765937#comment-13765937 ] Robert Coli commented on CASSANDRA-5997: My thinking is that we do not want a FAQ advising users to modify system keyspace manually. If we, as a project, have made the decision that it is ok for users to do this, then ok. I know that we have historically gone back and forth on even *allowing* them to do so. My understanding is we now allow them to do so, except for certain columnfamilies, but I'm not clear on why? It seems really quite dangerous as a general concept, and I personally am uncomfortable with advising average users to do so. However if the project goes on record as being explicitly ok with this, both generally and in specific, I'm fine with it from a practical perspective. -D option to change cluster name Key: CASSANDRA-5997 URL: https://issues.apache.org/jira/browse/CASSANDRA-5997 Project: Cassandra Issue Type: Improvement Reporter: Robert Coli Priority: Minor A steady trickle of users have a need to change the name of their cluster. Perhaps they accidentally started their cluster with the wrong name and now want to change it. http://wiki.apache.org/cassandra/FAQ#clustername_mismatch Has the old recommendation, which was to edit the cluster name in LocationInfo and then restart. http://comments.gmane.org/gmane.comp.db.cassandra.user/29753 Has the old workaround, which was to remove LocationInfo CF entirely. As this info now lives in a column called cluster_name in a row with key local in a CF called local in the keyspace system, one can no longer simply nuke LocationInfo. The only workaround remaining is to nuke the entire system Keyspace and re-coalesce the cluster, and then reload schema. The community continues to need to perform this operation and we do not want to tell them to nuke or manually modify the system keyspace (though it seems they have perms again to modify..). This ticket requests a new startup -D flag -Dcassandra.new_cluster_name which allows one to overwrite this value at startup time. This means a rolling restart will accomplish the rename my cluster task, with only the cost of split-cluster for the duration. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Resolved] (CASSANDRA-6020) Cassandra 2.0 distribution errors on default YAML configuration
[ https://issues.apache.org/jira/browse/CASSANDRA-6020?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Brandon Williams resolved CASSANDRA-6020. - Resolution: Invalid You have probably used the wrong yaml somehow, because it's definitely there: https://github.com/apache/cassandra/blob/cassandra-2.0.0/conf/cassandra.yaml#L462 Cassandra 2.0 distribution errors on default YAML configuration --- Key: CASSANDRA-6020 URL: https://issues.apache.org/jira/browse/CASSANDRA-6020 Project: Cassandra Issue Type: Bug Components: Config Environment: Windows 8 x64 Reporter: Thomas Atwood Priority: Critical Fix For: 2.0 The default Cassandra 2.0.0 YAML configuration does not allow for a user to use out of the box due to faulty YAML configuration. Specifically, the server notes Unable to find property 'cas_contention_timeout_in_ms' on class: org.apache.cassandra.config.Config in 'reader', line 10, column 1: cluster_name: 'DEV' YAML configuration should be reviewed and adjusted. Detailed server output below: Microsoft Windows [Version 6.2.9200] (c) 2012 Microsoft Corporation. All rights reserved. C:\Users\Thomascassandra Starting Cassandra Server INFO 17:14:20,336 Logging initialized INFO 17:14:20,372 JVM vendor/version: Java HotSpot(TM) 64-Bit Server VM/1.6.0_31 WARN 17:14:20,378 Your JVM is out of date. Please upgrade to the newest Oracle Java 6. INFO 17:14:20,380 Heap size: 1060372480/1060372480 INFO 17:14:20,380 Classpath: C:\Cassandra\\conf;C:\Cassandra\\lib\antlr-3.2.jar;C:\Cassandra\\lib\apache-cassandra-1.2.9.jar;C:\Cassandra\\lib\apache-cassandra -2.0.0.jar;C:\Cassandra\\lib\apache-cassandra-clientutil-1.2.9.jar;C:\Cassandra\\lib\apache-cassandra-clientutil-2.0.0.jar;C:\Cassandra\\lib\apache-cassandra-th rift-1.2.9.jar;C:\Cassandra\\lib\apache-cassandra-thrift-2.0.0.jar;C:\Cassandra\\lib\avro-1.4.0-fixes.jar;C:\Cassandra\\lib\avro-1.4.0-sources-fixes.jar;C:\Cass andra\\lib\commons-cli-1.1.jar;C:\Cassandra\\lib\commons-codec-1.2.jar;C:\Cassandra\\lib\commons-lang-2.6.jar;C:\Cassandra\\lib\compress-lzf-0.8.4.jar;C:\Cassan dra\\lib\concurrentlinkedhashmap-lru-1.3.jar;C:\Cassandra\\lib\disruptor-3.0.1.jar;C:\Cassandra\\lib\guava-13.0.1.jar;C:\Cassandra\\lib\high-scale-lib-1.1.2.jar ;C:\Cassandra\\lib\jackson-core-asl-1.9.2.jar;C:\Cassandra\\lib\jackson-mapper-asl-1.9.2.jar;C:\Cassandra\\lib\jamm-0.2.5.jar;C:\Cassandra\\lib\jbcrypt-0.3m.jar ;C:\Cassandra\\lib\jline-1.0.jar;C:\Cassandra\\lib\json-simple-1.1.jar;C:\Cassandra\\lib\libthrift-0.7.0.jar;C:\Cassandra\\lib\libthrift-0.9.0.jar;C:\Cassandra\ \lib\log4j-1.2.16.jar;C:\Cassandra\\lib\lz4-1.1.0.jar;C:\Cassandra\\lib\metrics-core-2.0.3.jar;C:\Cassandra\\lib\netty-3.5.9.Final.jar;C:\Cassandra\\lib\servlet -api-2.5-20081211.jar;C:\Cassandra\\lib\slf4j-api-1.7.2.jar;C:\Cassandra\\lib\slf4j-log4j12-1.7.2.jar;C:\Cassandra\\lib\snakeyaml-1.11.jar;C:\Cassandra\\lib\sna keyaml-1.6.jar;C:\Cassandra\\lib\snappy-java-1.0.5.jar;C:\Cassandra\\lib\snaptree-0.1.jar;C:\Cassandra\\lib\thrift-server-0.3.0.jar;C:\Cassandra\\build\classes\ main;C:\Cassandra\\build\classes\thrift;C:\Cassandra\\lib\jamm-0.2.5.jar INFO 17:14:20,390 JNA not found. Native methods will be disabled. INFO 17:14:20,420 Loading settings from file:/C:/Cassandra/conf/cassandra.yaml ERROR 17:14:20,805 Fatal configuration error error Can't construct a java object for tag:yaml.org,2002:org.apache.cassandra.config.Config; exception=Cannot create property=cas_contention_timeout_in_ms for JavaBe an=org.apache.cassandra.config.Config@2e716cb7; Unable to find property 'cas_contention_timeout_in_ms' on class: org.apache.cassandra.config.Config in 'reader', line 10, column 1: cluster_name: 'DEV' ^ at org.yaml.snakeyaml.constructor.Constructor$ConstructYamlObject.construct(Constructor.java:333) at org.yaml.snakeyaml.constructor.BaseConstructor.constructObject(BaseConstructor.java:182) at org.yaml.snakeyaml.constructor.BaseConstructor.constructDocument(BaseConstructor.java:141) at org.yaml.snakeyaml.constructor.BaseConstructor.getSingleData(BaseConstructor.java:127) at org.yaml.snakeyaml.Yaml.loadFromReader(Yaml.java:481) at org.yaml.snakeyaml.Yaml.load(Yaml.java:412) at org.apache.cassandra.config.DatabaseDescriptor.loadYaml(DatabaseDescriptor.java:148) at org.apache.cassandra.config.DatabaseDescriptor.clinit(DatabaseDescriptor.java:123) at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:217) at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:447) at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:490)
[jira] [Commented] (CASSANDRA-5997) -D option to change cluster name
[ https://issues.apache.org/jira/browse/CASSANDRA-5997?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13766007#comment-13766007 ] Aleksey Yeschenko commented on CASSANDRA-5997: -- Is it a common thing to want to do, to warrant a special -D setting? Given that it's rare-ish, it makes sense to me to just tell people 'do update system.local', at least while it works. -D option to change cluster name Key: CASSANDRA-5997 URL: https://issues.apache.org/jira/browse/CASSANDRA-5997 Project: Cassandra Issue Type: Improvement Reporter: Robert Coli Priority: Minor A steady trickle of users have a need to change the name of their cluster. Perhaps they accidentally started their cluster with the wrong name and now want to change it. http://wiki.apache.org/cassandra/FAQ#clustername_mismatch Has the old recommendation, which was to edit the cluster name in LocationInfo and then restart. http://comments.gmane.org/gmane.comp.db.cassandra.user/29753 Has the old workaround, which was to remove LocationInfo CF entirely. As this info now lives in a column called cluster_name in a row with key local in a CF called local in the keyspace system, one can no longer simply nuke LocationInfo. The only workaround remaining is to nuke the entire system Keyspace and re-coalesce the cluster, and then reload schema. The community continues to need to perform this operation and we do not want to tell them to nuke or manually modify the system keyspace (though it seems they have perms again to modify..). This ticket requests a new startup -D flag -Dcassandra.new_cluster_name which allows one to overwrite this value at startup time. This means a rolling restart will accomplish the rename my cluster task, with only the cost of split-cluster for the duration. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[3/3] git commit: Merge branch 'cassandra-2.0' into trunk
Merge branch 'cassandra-2.0' into trunk Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/0ec68f55 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/0ec68f55 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/0ec68f55 Branch: refs/heads/trunk Commit: 0ec68f557536e00500ba8b7530760261454cc7bb Parents: 03f3642 7cb57db Author: Aleksey Yeschenko alek...@apache.org Authored: Thu Sep 12 18:19:17 2013 +0300 Committer: Aleksey Yeschenko alek...@apache.org Committed: Thu Sep 12 18:19:17 2013 +0300 -- CHANGES.txt | 1 + .../apache/cassandra/service/StorageProxy.java | 28 +--- 2 files changed, 20 insertions(+), 9 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/0ec68f55/CHANGES.txt -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/0ec68f55/src/java/org/apache/cassandra/service/StorageProxy.java --
[2/3] git commit: Merge branch 'cassandra-1.2' into cassandra-2.0
Merge branch 'cassandra-1.2' into cassandra-2.0 Conflicts: src/java/org/apache/cassandra/service/StorageProxy.java Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/7cb57dbc Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/7cb57dbc Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/7cb57dbc Branch: refs/heads/trunk Commit: 7cb57dbcc028fdc178d9bbbd28ca5156ecbc7985 Parents: 7bde245 53e48ed Author: Aleksey Yeschenko alek...@apache.org Authored: Thu Sep 12 18:18:27 2013 +0300 Committer: Aleksey Yeschenko alek...@apache.org Committed: Thu Sep 12 18:18:27 2013 +0300 -- CHANGES.txt | 1 + .../apache/cassandra/service/StorageProxy.java | 28 +--- 2 files changed, 20 insertions(+), 9 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/7cb57dbc/CHANGES.txt -- diff --cc CHANGES.txt index 6807039,1c09589..c0f5d57 --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -30,54 -14,14 +30,55 @@@ Merged from 1.2 * Pass the updated cf to the PRSI index() method (CASSANDRA-5999) * Allow empty CQL3 batches (as no-op) (CASSANDRA-5994) * Support null in CQL3 functions (CASSANDRA-5910) + * Replace the deprecated MapMaker with CacheLoader (CASSANDRA-6007) -1.2.9 +2.0.0 + * Fix thrift validation when inserting into CQL3 tables (CASSANDRA-5138) + * Fix periodic memtable flushing behavior with clean memtables (CASSANDRA-5931) + * Fix dateOf() function for pre-2.0 timestamp columns (CASSANDRA-5928) + * Fix SSTable unintentionally loads BF when opened for batch (CASSANDRA-5938) + * Add stream session progress to JMX (CASSANDRA-4757) + * Fix NPE during CAS operation (CASSANDRA-5925) +Merged from 1.2: * Fix getBloomFilterDiskSpaceUsed for AlwaysPresentFilter (CASSANDRA-5900) - * migrate 1.1 schema_columnfamilies.key_alias column to key_aliases - (CASSANDRA-5800) - * add --migrate option to sstableupgrade and sstablescrub (CASSANDRA-5831) + * Don't announce schema version until we've loaded the changes locally + (CASSANDRA-5904) + * Fix to support off heap bloom filters size greater than 2 GB (CASSANDRA-5903) + * Properly handle parsing huge map and set literals (CASSANDRA-5893) + + +2.0.0-rc2 + * enable vnodes by default (CASSANDRA-5869) + * fix CAS contention timeout (CASSANDRA-5830) + * fix HsHa to respect max frame size (CASSANDRA-4573) + * Fix (some) 2i on composite components omissions (CASSANDRA-5851) + * cqlsh: add DESCRIBE FULL SCHEMA variant (CASSANDRA-5880) +Merged from 1.2: + * Correctly validate sparse composite cells in scrub (CASSANDRA-5855) + * Add KeyCacheHitRate metric to CF metrics (CASSANDRA-5868) + * cqlsh: add support for multiline comments (CASSANDRA-5798) + * Handle CQL3 SELECT duplicate IN restrictions on clustering columns + (CASSANDRA-5856) + + +2.0.0-rc1 + * improve DecimalSerializer performance (CASSANDRA-5837) + * fix potential spurious wakeup in AsyncOneResponse (CASSANDRA-5690) + * fix schema-related trigger issues (CASSANDRA-5774) + * Better validation when accessing CQL3 table from thrift (CASSANDRA-5138) + * Fix assertion error during repair (CASSANDRA-5801) + * Fix range tombstone bug (CASSANDRA-5805) + * DC-local CAS (CASSANDRA-5797) + * Add a native_protocol_version column to the system.local table (CASSANRDA-5819) + * Use index_interval from cassandra.yaml when upgraded (CASSANDRA-5822) + * Fix buffer underflow on socket close (CASSANDRA-5792) +Merged from 1.2: + * Fix reading DeletionTime from 1.1-format sstables (CASSANDRA-5814) + * cqlsh: add collections support to COPY (CASSANDRA-5698) + * retry important messages for any IOException (CASSANDRA-5804) + * Allow empty IN relations in SELECT/UPDATE/DELETE statements (CASSANDRA-5626) + * cqlsh: fix crashing on Windows due to libedit detection (CASSANDRA-5812) * fix bulk-loading compressed sstables (CASSANDRA-5820) * (Hadoop) fix quoting in CqlPagingRecordReader and CqlRecordWriter (CASSANDRA-5824) http://git-wip-us.apache.org/repos/asf/cassandra/blob/7cb57dbc/src/java/org/apache/cassandra/service/StorageProxy.java -- diff --cc src/java/org/apache/cassandra/service/StorageProxy.java index 50dfd07,23d73ec..1184bb5 --- a/src/java/org/apache/cassandra/service/StorageProxy.java +++ b/src/java/org/apache/cassandra/service/StorageProxy.java @@@ -28,11 -29,9 +28,11 @@@ import java.util.concurrent.atomic.Atom import javax.management.MBeanServer; import javax.management.ObjectName; - import com.google.common.base.Function; +import com.google.common.base.Predicate; + import com.google.common.cache.CacheLoader; import