[jira] [Commented] (CASSANDRA-7304) Ability to distinguish between NULL and UNSET values in Prepared Statements
[ https://issues.apache.org/jira/browse/CASSANDRA-7304?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14038504#comment-14038504 ] Oded Peer commented on CASSANDRA-7304: -- +1 I like {{IGNORE NULLS}} at the end as well Ability to distinguish between NULL and UNSET values in Prepared Statements --- Key: CASSANDRA-7304 URL: https://issues.apache.org/jira/browse/CASSANDRA-7304 Project: Cassandra Issue Type: Improvement Reporter: Drew Kutcharian Currently Cassandra inserts tombstones when a value of a column is bound to NULL in a prepared statement. At higher insert rates managing all these tombstones becomes an unnecessary overhead. This limits the usefulness of the prepared statements since developers have to either create multiple prepared statements (each with a different combination of column names, which at times is just unfeasible because of the sheer number of possible combinations) or fall back to using regular (non-prepared) statements. This JIRA is here to explore the possibility of either: A. Have a flag on prepared statements that once set, tells Cassandra to ignore null columns or B. Have an UNSET value which makes Cassandra skip the null columns and not tombstone them Basically, in the context of a prepared statement, a null value means delete, but we don’t have anything that means ignore (besides creating a new prepared statement without the ignored column). Please refer to the original conversation on DataStax Java Driver mailing list for more background: https://groups.google.com/a/lists.datastax.com/d/topic/java-driver-user/cHE3OOSIXBU/discussion -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Commented] (CASSANDRA-7275) Errors in FlushRunnable may leave threads hung
[ https://issues.apache.org/jira/browse/CASSANDRA-7275?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14038506#comment-14038506 ] Mikhail Stepura commented on CASSANDRA-7275: {code} [javac] Compiling 865 source files to /Users/mikhail/Documents/workspace/cassandra/build/classes/main [javac] /Users/mikhail/Documents/workspace/cassandra/src/java/org/apache/cassandra/db/ColumnFamilyStore.java:29: error: cannot find symbol [javac] import javax.annotation.Nullable; [javac]^ [javac] symbol: class Nullable [javac] location: package javax.annotation [javac] /Users/mikhail/Documents/workspace/cassandra/src/java/org/apache/cassandra/db/ColumnFamilyStore.java:807: error: cannot find symbol [javac] public void onSuccess(@Nullable Object result) [javac]^ [javac] symbol: class Nullable {code} Otherwise +1 Errors in FlushRunnable may leave threads hung -- Key: CASSANDRA-7275 URL: https://issues.apache.org/jira/browse/CASSANDRA-7275 Project: Cassandra Issue Type: Bug Components: Core Reporter: Tyler Hobbs Assignee: Yuki Morishita Priority: Minor Fix For: 1.2.17, 2.0.9 Attachments: 0001-Move-latch.countDown-into-finally-block.patch, 7252-2.0-v2.txt In Memtable.FlushRunnable, the CountDownLatch will never be counted down if there are errors, which results in hanging any threads that are waiting for the flush to complete. For example, an error like this causes the problem: {noformat} ERROR [FlushWriter:474] 2014-05-20 12:10:31,137 CassandraDaemon.java (line 198) Exception in thread Thread[FlushWriter:474,5,main] java.lang.IllegalArgumentException at java.nio.Buffer.position(Unknown Source) at org.apache.cassandra.db.marshal.AbstractCompositeType.getBytes(AbstractCompositeType.java:64) at org.apache.cassandra.db.marshal.AbstractCompositeType.getWithShortLength(AbstractCompositeType.java:72) at org.apache.cassandra.db.marshal.AbstractCompositeType.split(AbstractCompositeType.java:138) at org.apache.cassandra.io.sstable.ColumnNameHelper.minComponents(ColumnNameHelper.java:103) at org.apache.cassandra.db.ColumnFamily.getColumnStats(ColumnFamily.java:439) at org.apache.cassandra.io.sstable.SSTableWriter.append(SSTableWriter.java:194) at org.apache.cassandra.db.Memtable$FlushRunnable.writeSortedContents(Memtable.java:397) at org.apache.cassandra.db.Memtable$FlushRunnable.runWith(Memtable.java:350) at org.apache.cassandra.io.util.DiskAwareRunnable.runMayThrow(DiskAwareRunnable.java:48) at org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:28) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) {noformat} -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Updated] (CASSANDRA-7421) CompoundSparseCellName/WithCollection report smaller heap sizes then actual
[ https://issues.apache.org/jira/browse/CASSANDRA-7421?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Sylvain Lebresne updated CASSANDRA-7421: Reviewer: Benedict CompoundSparseCellName/WithCollection report smaller heap sizes then actual Key: CASSANDRA-7421 URL: https://issues.apache.org/jira/browse/CASSANDRA-7421 Project: Cassandra Issue Type: Bug Components: Core Reporter: Dave Brosius Assignee: Dave Brosius Priority: Trivial Fix For: 2.1 rc2 Attachments: 7421.txt Class relies on sizing of super class, which doesn't take into consideration it's own foot print, along with it's excess fields. -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Updated] (CASSANDRA-7337) Protocol batches wrongly ignores conditions
[ https://issues.apache.org/jira/browse/CASSANDRA-7337?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Sylvain Lebresne updated CASSANDRA-7337: Fix Version/s: 2.0.9 Protocol batches wrongly ignores conditions --- Key: CASSANDRA-7337 URL: https://issues.apache.org/jira/browse/CASSANDRA-7337 Project: Cassandra Issue Type: Bug Reporter: Sylvain Lebresne Assignee: Sylvain Lebresne Fix For: 2.0.9, 2.1 rc2 Attachments: 7337.txt When using protocol batches, we ignore the fact that statements may have conditions and subsequently call the wrong code path. The batches ends up being executed has if there was no conditions (but the ResultSet is empty which should make it clear something is wrong). -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Commented] (CASSANDRA-7275) Errors in FlushRunnable may leave threads hung
[ https://issues.apache.org/jira/browse/CASSANDRA-7275?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14038635#comment-14038635 ] Benedict commented on CASSANDRA-7275: - This will break the commit log, by causing records to be discarded out of order. The future does not get placed on the executor until the onSuccess is called now, so run order is simply in order of flush completion and no longer in order of submission, but the only point of separating the work onto the postFlush is to ensure it is run in submission order (but not before the flush is finished - see the comment that is now attached to onSuccess). The simplest correct solution is probably to annotate the post flush runnable with a state variable indicating success/failure, which is set before the latch is triggered. If you're modifying these parts of the code where correctness is paramount and not always obvious, it would be great if you could explicitly run it past a third set of eyes, as I only happened to spot this in the commits@ feeds, and as it's a concurrency bug could easily have not been spotted. Although we could no doubt craft a specific test to look for this scenario, and perhaps we should. Errors in FlushRunnable may leave threads hung -- Key: CASSANDRA-7275 URL: https://issues.apache.org/jira/browse/CASSANDRA-7275 Project: Cassandra Issue Type: Bug Components: Core Reporter: Tyler Hobbs Assignee: Yuki Morishita Priority: Minor Fix For: 1.2.17, 2.0.9 Attachments: 0001-Move-latch.countDown-into-finally-block.patch, 7252-2.0-v2.txt In Memtable.FlushRunnable, the CountDownLatch will never be counted down if there are errors, which results in hanging any threads that are waiting for the flush to complete. For example, an error like this causes the problem: {noformat} ERROR [FlushWriter:474] 2014-05-20 12:10:31,137 CassandraDaemon.java (line 198) Exception in thread Thread[FlushWriter:474,5,main] java.lang.IllegalArgumentException at java.nio.Buffer.position(Unknown Source) at org.apache.cassandra.db.marshal.AbstractCompositeType.getBytes(AbstractCompositeType.java:64) at org.apache.cassandra.db.marshal.AbstractCompositeType.getWithShortLength(AbstractCompositeType.java:72) at org.apache.cassandra.db.marshal.AbstractCompositeType.split(AbstractCompositeType.java:138) at org.apache.cassandra.io.sstable.ColumnNameHelper.minComponents(ColumnNameHelper.java:103) at org.apache.cassandra.db.ColumnFamily.getColumnStats(ColumnFamily.java:439) at org.apache.cassandra.io.sstable.SSTableWriter.append(SSTableWriter.java:194) at org.apache.cassandra.db.Memtable$FlushRunnable.writeSortedContents(Memtable.java:397) at org.apache.cassandra.db.Memtable$FlushRunnable.runWith(Memtable.java:350) at org.apache.cassandra.io.util.DiskAwareRunnable.runMayThrow(DiskAwareRunnable.java:48) at org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:28) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) {noformat} -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Updated] (CASSANDRA-7421) CompoundSparseCellName/WithCollection report smaller heap sizes then actual
[ https://issues.apache.org/jira/browse/CASSANDRA-7421?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Benedict updated CASSANDRA-7421: Attachment: 7421v2.patch Does need tidying up, but we should avoid using ObjectSizes.measure() for two reasons: # The ColumnIdentifier for compound sparse tables are always shared / declared (to my knowledge - only sparse tables permit dynamic column names) # It's very expensive, so even if they weren't we should prefer columnName.unsharedHeapSize() I've taken this opportunity to finally tidy up the mismatched naming of unshared vs excess heap size methods (some were renamed as part of bikeshedding their first commit, but some were missed) CompoundSparseCellName/WithCollection report smaller heap sizes then actual Key: CASSANDRA-7421 URL: https://issues.apache.org/jira/browse/CASSANDRA-7421 Project: Cassandra Issue Type: Bug Components: Core Reporter: Dave Brosius Assignee: Dave Brosius Priority: Trivial Fix For: 2.1 rc2 Attachments: 7421.txt, 7421v2.patch Class relies on sizing of super class, which doesn't take into consideration it's own foot print, along with it's excess fields. -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Updated] (CASSANDRA-7398) Using the -Dcassandra.config VM param needs a file:/// prefix for the supplied URL
[ https://issues.apache.org/jira/browse/CASSANDRA-7398?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Marco Tulio Avila Cerón updated CASSANDRA-7398: --- Attachment: trunk-7398_v6.txt Validates the path as described by Ala' Using the -Dcassandra.config VM param needs a file:/// prefix for the supplied URL Key: CASSANDRA-7398 URL: https://issues.apache.org/jira/browse/CASSANDRA-7398 Project: Cassandra Issue Type: Bug Components: Core Environment: Cassandra 2.1.0-rc1-SNAPSHOT, Win 7 Reporter: Marco Tulio Avila Cerón Assignee: Marco Tulio Avila Cerón Priority: Minor Labels: lhf, patch Fix For: 2.1 rc2 Attachments: CASSANDRA-7398_prefix_v2.patch, CASSANDRA-7398_prefix_v3.patch, CASSANDRA-7398_prefix_v4.patch, trunk-7398_v5.txt, trunk-7398_v6.txt Original Estimate: 2h Remaining Estimate: 2h The parameter in the VM options -Dcassandra.config= needs file:/// Allow the user to have optional file:/// when loading the config file from the filesystem -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Updated] (CASSANDRA-7398) Using the -Dcassandra.config VM param needs a file:/// prefix for the supplied URL
[ https://issues.apache.org/jira/browse/CASSANDRA-7398?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Marco Tulio Avila Cerón updated CASSANDRA-7398: --- Attachment: trunk-7398_v7.txt Handles case where the user will type something like file:/// (only that) or file:///something Using the -Dcassandra.config VM param needs a file:/// prefix for the supplied URL Key: CASSANDRA-7398 URL: https://issues.apache.org/jira/browse/CASSANDRA-7398 Project: Cassandra Issue Type: Bug Components: Core Environment: Cassandra 2.1.0-rc1-SNAPSHOT, Win 7 Reporter: Marco Tulio Avila Cerón Assignee: Marco Tulio Avila Cerón Priority: Minor Labels: lhf, patch Fix For: 2.1 rc2 Attachments: CASSANDRA-7398_prefix_v2.patch, CASSANDRA-7398_prefix_v3.patch, CASSANDRA-7398_prefix_v4.patch, trunk-7398_v5.txt, trunk-7398_v6.txt, trunk-7398_v7.txt Original Estimate: 2h Remaining Estimate: 2h The parameter in the VM options -Dcassandra.config= needs file:/// Allow the user to have optional file:/// when loading the config file from the filesystem -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Commented] (CASSANDRA-7311) Enable incremental backup on a per-keyspace level
[ https://issues.apache.org/jira/browse/CASSANDRA-7311?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14038752#comment-14038752 ] pankaj mishra commented on CASSANDRA-7311: -- I think giving option for incremental backup on table level will definitely give user more flexibility. But there are some application, for example when using cassandra with titan graph, tables in keyspace are depended on each other. They refer other table through ids. In that case it does not make sense to have incremental backup on table level. How much users of cassandra has such setup of cassandra is something that, i think, will decide whether this option should be on table level or keyspace level. If you guys suggest then i can go ahead with creating this option for table level as well. Enable incremental backup on a per-keyspace level - Key: CASSANDRA-7311 URL: https://issues.apache.org/jira/browse/CASSANDRA-7311 Project: Cassandra Issue Type: Improvement Reporter: Johnny Miller Priority: Minor Labels: lhf Attachments: CASSANDRA-7311-formated.patch, cassandra.patch, cassandra_incremental.patch, cassandra_incremental_latest.patch Currently incremental backups are globally defined, however this is not always appropriate or required for all keyspaces in a cluster. As this is quite expensive, it would be preferred to either specify the keyspaces that need this (or exclude the ones that don't). -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Comment Edited] (CASSANDRA-7311) Enable incremental backup on a per-keyspace level
[ https://issues.apache.org/jira/browse/CASSANDRA-7311?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14038757#comment-14038757 ] Jonathan Ellis edited comment on CASSANDRA-7311 at 6/20/14 1:02 PM: Let's go with just table level then. We prefer to avoid options hierarchies. was (Author: jbellis): Let's go with just table level then. We prefer to avoid options heirarchies. Enable incremental backup on a per-keyspace level - Key: CASSANDRA-7311 URL: https://issues.apache.org/jira/browse/CASSANDRA-7311 Project: Cassandra Issue Type: Improvement Reporter: Johnny Miller Priority: Minor Labels: lhf Attachments: CASSANDRA-7311-formated.patch, cassandra.patch, cassandra_incremental.patch, cassandra_incremental_latest.patch Currently incremental backups are globally defined, however this is not always appropriate or required for all keyspaces in a cluster. As this is quite expensive, it would be preferred to either specify the keyspaces that need this (or exclude the ones that don't). -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Commented] (CASSANDRA-7311) Enable incremental backup on a per-keyspace level
[ https://issues.apache.org/jira/browse/CASSANDRA-7311?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14038757#comment-14038757 ] Jonathan Ellis commented on CASSANDRA-7311: --- Let's go with just table level then. We prefer to avoid options heirarchies. Enable incremental backup on a per-keyspace level - Key: CASSANDRA-7311 URL: https://issues.apache.org/jira/browse/CASSANDRA-7311 Project: Cassandra Issue Type: Improvement Reporter: Johnny Miller Priority: Minor Labels: lhf Attachments: CASSANDRA-7311-formated.patch, cassandra.patch, cassandra_incremental.patch, cassandra_incremental_latest.patch Currently incremental backups are globally defined, however this is not always appropriate or required for all keyspaces in a cluster. As this is quite expensive, it would be preferred to either specify the keyspaces that need this (or exclude the ones that don't). -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Commented] (CASSANDRA-7079) allow filtering within wide row
[ https://issues.apache.org/jira/browse/CASSANDRA-7079?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14038767#comment-14038767 ] Ashot Golovenko commented on CASSANDRA-7079: Any comments? allow filtering within wide row --- Key: CASSANDRA-7079 URL: https://issues.apache.org/jira/browse/CASSANDRA-7079 Project: Cassandra Issue Type: Bug Components: Core Reporter: Ashot Golovenko Let's say I have a table with wide rows. CREATE TABLE relation ( u1 bigint, u2 bigint, f boolean, PRIMARY KEY (u1, u2)); Usually I need to retrieve the whole row: select * from relation where u1 = ?; But sometimes I just need the relations within u1 with f = true. By now I can't perform the following without creating an index which will degrade write performance: select * from relation where u1 = ? and f=true allow filtering; So now I filter rows on server side which means more network traffic and I don't know how much more server resources. Filtering rows in this case on a server side looks like nothing hard. -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Commented] (CASSANDRA-6766) allow now() - uuid compatibility
[ https://issues.apache.org/jira/browse/CASSANDRA-6766?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14038771#comment-14038771 ] Sylvain Lebresne commented on CASSANDRA-6766: - +1 allow now() - uuid compatibility - Key: CASSANDRA-6766 URL: https://issues.apache.org/jira/browse/CASSANDRA-6766 Project: Cassandra Issue Type: Bug Components: API Reporter: Jonathan Ellis Assignee: Tyler Hobbs Priority: Minor Labels: cql Fix For: 2.0.9 Attachments: 6766-v2.txt, 6766.txt Bad Request: Type error: cannot assign result of function now (type timeuuid) to id (type uuid) -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Commented] (CASSANDRA-7311) Enable incremental backup on a per-keyspace level
[ https://issues.apache.org/jira/browse/CASSANDRA-7311?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14038780#comment-14038780 ] pankaj mishra commented on CASSANDRA-7311: -- So finally going for following implementation. - If table is created without incremental_backup option then by default this value will be saved as false in table metadata. This value will be alterable by user. - For all those tables in which this value is not there (as null) we will pick incremental_backup options from cassandra.yaml and save it into table metadata while initializing the cassandra server. -- hence one who is using this option in cassandra.yaml file will be taken care of. Enable incremental backup on a per-keyspace level - Key: CASSANDRA-7311 URL: https://issues.apache.org/jira/browse/CASSANDRA-7311 Project: Cassandra Issue Type: Improvement Reporter: Johnny Miller Priority: Minor Labels: lhf Attachments: CASSANDRA-7311-formated.patch, cassandra.patch, cassandra_incremental.patch, cassandra_incremental_latest.patch Currently incremental backups are globally defined, however this is not always appropriate or required for all keyspaces in a cluster. As this is quite expensive, it would be preferred to either specify the keyspaces that need this (or exclude the ones that don't). -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Commented] (CASSANDRA-7344) Read at SERIAL can lead to unnecessary contention
[ https://issues.apache.org/jira/browse/CASSANDRA-7344?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14038799#comment-14038799 ] Sylvain Lebresne commented on CASSANDRA-7344: - I see what you mean and I do think this should work. I think we'd need a new Paxos message (which means this would have to target 3.0) that requests the current paxos state without asking for a promise. Read at SERIAL can lead to unnecessary contention -- Key: CASSANDRA-7344 URL: https://issues.apache.org/jira/browse/CASSANDRA-7344 Project: Cassandra Issue Type: Improvement Reporter: sankalp kohli Assignee: sankalp kohli Priority: Minor If two clients are doing a read at serial on the same row, it does a full prepare step to figure out whether there is any updates or cas in flight or uncompleted. This can cause contention between then leading to waste of time in retrying. One of the request will not get a promise and will need to sleep. Instead they can check whether there is anything to finish and if not continue. If there is something to be done, then they can do the full prepare. -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Commented] (CASSANDRA-7413) Native Protocol V3 CREATE Response
[ https://issues.apache.org/jira/browse/CASSANDRA-7413?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14038803#comment-14038803 ] Sylvain Lebresne commented on CASSANDRA-7413: - bq. With this patch, the type name in the type-related events is now ksname.typename. It should just be typename. Why is that? Types are keyspace scoped and you need the keyspace name to identify a type properly. Or am I misunderstanding what you are suggesting? (I'll fix the 2 minor points upon commit if there is nothing else) Native Protocol V3 CREATE Response -- Key: CASSANDRA-7413 URL: https://issues.apache.org/jira/browse/CASSANDRA-7413 Project: Cassandra Issue Type: Task Reporter: Robert Stupp Assignee: Sylvain Lebresne Labels: protocol Fix For: 2.1 rc2 Attachments: 7413.txt Native protocol v3 changes the EVENT (opcode 12) SCHEMA_CHANGE to include the target type that changed : changetargetkeyspacename. The RESULT (opcode 8) SCHEMA_CHANGE has the old layout (changekeyspacetable. Is this difference intentional or does the protocol spec needs change for RESULT/SCHEMA_CHANGE? -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Commented] (CASSANDRA-7413) Native Protocol V3 CREATE Response
[ https://issues.apache.org/jira/browse/CASSANDRA-7413?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14038866#comment-14038866 ] Tyler Hobbs commented on CASSANDRA-7413: bq. Why is that? Types are keyspace scoped and you need the keyspace name to identify a type properly. Or am I misunderstanding what you are suggesting? The keyspace is already specified earlier in the message (in the same {{options}}, in fact). So, it's redundant and it means you have to split the string. It also doesn't match the spec. Native Protocol V3 CREATE Response -- Key: CASSANDRA-7413 URL: https://issues.apache.org/jira/browse/CASSANDRA-7413 Project: Cassandra Issue Type: Task Reporter: Robert Stupp Assignee: Sylvain Lebresne Labels: protocol Fix For: 2.1 rc2 Attachments: 7413.txt Native protocol v3 changes the EVENT (opcode 12) SCHEMA_CHANGE to include the target type that changed : changetargetkeyspacename. The RESULT (opcode 8) SCHEMA_CHANGE has the old layout (changekeyspacetable. Is this difference intentional or does the protocol spec needs change for RESULT/SCHEMA_CHANGE? -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Commented] (CASSANDRA-7311) Enable incremental backup on a per-keyspace level
[ https://issues.apache.org/jira/browse/CASSANDRA-7311?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14038876#comment-14038876 ] Jonathan Ellis commented on CASSANDRA-7311: --- Sounds good. (And then we can remove the .yaml option for the next major release.) Enable incremental backup on a per-keyspace level - Key: CASSANDRA-7311 URL: https://issues.apache.org/jira/browse/CASSANDRA-7311 Project: Cassandra Issue Type: Improvement Reporter: Johnny Miller Priority: Minor Labels: lhf Attachments: CASSANDRA-7311-formated.patch, cassandra.patch, cassandra_incremental.patch, cassandra_incremental_latest.patch Currently incremental backups are globally defined, however this is not always appropriate or required for all keyspaces in a cluster. As this is quite expensive, it would be preferred to either specify the keyspaces that need this (or exclude the ones that don't). -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Created] (CASSANDRA-7422) Logging for Authentication and Authorization
Adam Holmberg created CASSANDRA-7422: Summary: Logging for Authentication and Authorization Key: CASSANDRA-7422 URL: https://issues.apache.org/jira/browse/CASSANDRA-7422 Project: Cassandra Issue Type: New Feature Components: Core Reporter: Adam Holmberg Priority: Trivial Fix For: 1.2.17 We would like to enable Cassandra to log authentication and authorization change events. This facilitates audits on access to certain data. As a side effect it would also make it easier to notice ill-behaved clients connecting repeatedly. -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Updated] (CASSANDRA-7422) Logging for Authentication and Authorization
[ https://issues.apache.org/jira/browse/CASSANDRA-7422?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Adam Holmberg updated CASSANDRA-7422: - Attachment: auth_logging_remote_host.patch.20140201020 auth_logging_remote_host.patch.20140201020 Possible generalized solution that tags ClientState with remote host, and logs authentication and authorization changes. Logging enabled by changing log level for the affected classes: {noformat} log4j.logger.org.apache.cassandra.auth.AbstractAuthorizer=TRACE log4j.logger.org.apache.cassandra.service.ClientState=TRACE {noformat} Emits messages like this: {noformat} TRACE 14:06:14,606 “cassandra authenticated from /127.0.0.1:53264 TRACE 14:06:49,243 cassandra (/127.0.0.1:53264) REVOKES [CREATE, ALTER, DROP, SELECT, MODIFY, AUTHORIZE] on data from “user TRACE 14:07:01,540 cassandra (/127.0.0.1:53264) GRANTS [SELECT] on data/system_traces/events to user TRACE 14:07:08,263 cassandra (/127.0.0.1:53264) REVOKES ALL from user (user drop) {noformat} I welcome any feedback. Logging for Authentication and Authorization Key: CASSANDRA-7422 URL: https://issues.apache.org/jira/browse/CASSANDRA-7422 Project: Cassandra Issue Type: New Feature Components: Core Reporter: Adam Holmberg Priority: Trivial Fix For: 1.2.17 Attachments: auth_logging_remote_host.patch.20140201020 We would like to enable Cassandra to log authentication and authorization change events. This facilitates audits on access to certain data. As a side effect it would also make it easier to notice ill-behaved clients connecting repeatedly. -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Updated] (CASSANDRA-7413) Native Protocol V3 CREATE Response
[ https://issues.apache.org/jira/browse/CASSANDRA-7413?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Sylvain Lebresne updated CASSANDRA-7413: Attachment: 7413-v2.txt Oh, you're referring to the call to {{name.toString()}} including the keyspace name for type events. Good catch, attaching v2 that fixes that as well as the 2 other minor comments. Native Protocol V3 CREATE Response -- Key: CASSANDRA-7413 URL: https://issues.apache.org/jira/browse/CASSANDRA-7413 Project: Cassandra Issue Type: Task Reporter: Robert Stupp Assignee: Sylvain Lebresne Labels: protocol Fix For: 2.1 rc2 Attachments: 7413-v2.txt, 7413.txt Native protocol v3 changes the EVENT (opcode 12) SCHEMA_CHANGE to include the target type that changed : changetargetkeyspacename. The RESULT (opcode 8) SCHEMA_CHANGE has the old layout (changekeyspacetable. Is this difference intentional or does the protocol spec needs change for RESULT/SCHEMA_CHANGE? -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Commented] (CASSANDRA-6755) Optimise CellName/Composite comparisons for NativeCell
[ https://issues.apache.org/jira/browse/CASSANDRA-6755?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14038950#comment-14038950 ] Sylvain Lebresne commented on CASSANDRA-6755: - When this goes in, if the committer could remember to update the NOTICE.txt file (and add the license for in lib/license) for the new dependency, that would be much appreciated. Optimise CellName/Composite comparisons for NativeCell -- Key: CASSANDRA-6755 URL: https://issues.apache.org/jira/browse/CASSANDRA-6755 Project: Cassandra Issue Type: Improvement Reporter: Benedict Assignee: T Jake Luciani Priority: Minor Labels: performance Fix For: 2.1 rc2 Attachments: 6755.txt, 6755v2.txt As discussed in CASSANDRA-6694, to reduce temporary garbage generation we should minimise the incidence of CellName component extraction. The biggest win will be to perform comparisons on Cell where possible, instead of CellName, so that Native*Cell can use its extra information to avoid creating any ByteBuffer objects -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Commented] (CASSANDRA-6755) Optimise CellName/Composite comparisons for NativeCell
[ https://issues.apache.org/jira/browse/CASSANDRA-6755?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14038959#comment-14038959 ] T Jake Luciani commented on CASSANDRA-6755: --- This is a compile time only dependency. It's not in the /lib dir so I don't think we need todo this Optimise CellName/Composite comparisons for NativeCell -- Key: CASSANDRA-6755 URL: https://issues.apache.org/jira/browse/CASSANDRA-6755 Project: Cassandra Issue Type: Improvement Reporter: Benedict Assignee: T Jake Luciani Priority: Minor Labels: performance Fix For: 2.1 rc2 Attachments: 6755.txt, 6755v2.txt As discussed in CASSANDRA-6694, to reduce temporary garbage generation we should minimise the incidence of CellName component extraction. The biggest win will be to perform comparisons on Cell where possible, instead of CellName, so that Native*Cell can use its extra information to avoid creating any ByteBuffer objects -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Commented] (CASSANDRA-7413) Native Protocol V3 CREATE Response
[ https://issues.apache.org/jira/browse/CASSANDRA-7413?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14038969#comment-14038969 ] Tyler Hobbs commented on CASSANDRA-7413: +1 Native Protocol V3 CREATE Response -- Key: CASSANDRA-7413 URL: https://issues.apache.org/jira/browse/CASSANDRA-7413 Project: Cassandra Issue Type: Task Reporter: Robert Stupp Assignee: Sylvain Lebresne Labels: protocol Fix For: 2.1 rc2 Attachments: 7413-v2.txt, 7413.txt Native protocol v3 changes the EVENT (opcode 12) SCHEMA_CHANGE to include the target type that changed : changetargetkeyspacename. The RESULT (opcode 8) SCHEMA_CHANGE has the old layout (changekeyspacetable. Is this difference intentional or does the protocol spec needs change for RESULT/SCHEMA_CHANGE? -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Commented] (CASSANDRA-6755) Optimise CellName/Composite comparisons for NativeCell
[ https://issues.apache.org/jira/browse/CASSANDRA-6755?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14038973#comment-14038973 ] Sylvain Lebresne commented on CASSANDRA-6755: - bq. This is a compile time only dependency. It's not in the /lib dir so I don't think we need todo this You're probably right though tbh I'm not 100% sure that's true. How confident are you about that? Optimise CellName/Composite comparisons for NativeCell -- Key: CASSANDRA-6755 URL: https://issues.apache.org/jira/browse/CASSANDRA-6755 Project: Cassandra Issue Type: Improvement Reporter: Benedict Assignee: T Jake Luciani Priority: Minor Labels: performance Fix For: 2.1 rc2 Attachments: 6755.txt, 6755v2.txt As discussed in CASSANDRA-6694, to reduce temporary garbage generation we should minimise the incidence of CellName component extraction. The biggest win will be to perform comparisons on Cell where possible, instead of CellName, so that Native*Cell can use its extra information to avoid creating any ByteBuffer objects -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Commented] (CASSANDRA-6962) examine shortening path length post-5202
[ https://issues.apache.org/jira/browse/CASSANDRA-6962?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14038980#comment-14038980 ] Joshua McKenzie commented on CASSANDRA-6962: [~yukim] - could I get a rebase to trunk instead of 2.1-beta2? There's a variety of file access issues in beta2 (on Windows) that are making testing this a bit of a headache. I'll continue testing on linux but want to verify on both platforms, though I don't expect any platform-specific differences. examine shortening path length post-5202 Key: CASSANDRA-6962 URL: https://issues.apache.org/jira/browse/CASSANDRA-6962 Project: Cassandra Issue Type: Improvement Components: Core Reporter: Brandon Williams Assignee: Yuki Morishita Fix For: 3.0 Attachments: 6962-2.1.txt From CASSANDRA-5202 discussion: {quote} Did we give up on this? Could we clean up the redundancy a little by moving the ID into the directory name? e.g., ks/cf-uuid/version-generation-component.db I'm worried about path length, which is limited on Windows. Edit: to give a specific example, for KS foo Table bar we now have /var/lib/cassandra/flush/foo/bar-2fbb89709a6911e3b7dc4d7d4e3ca4b4/foo-bar-ka-1-Data.db I'm proposing /var/lib/cassandra/flush/foo/bar-2fbb89709a6911e3b7dc4d7d4e3ca4b4/ka-1-Data.db {quote} -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Reopened] (CASSANDRA-7226) get code coverage working again (cobertura or other)
[ https://issues.apache.org/jira/browse/CASSANDRA-7226?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Russ Hatch reopened CASSANDRA-7226: --- get code coverage working again (cobertura or other) Key: CASSANDRA-7226 URL: https://issues.apache.org/jira/browse/CASSANDRA-7226 Project: Cassandra Issue Type: Test Reporter: Russ Hatch Assignee: Russ Hatch Fix For: 3.0 Attachments: coverage.png, trunk-7226.txt We need to sort out code coverage again, for unit and cassandra-dtest tests. Preferably the same tool for both. Seems like cobertura project activity has dwindled. Jacoco might be a viable alternative to cobertura. Jacoco can can instrument running bytecode so I think it could also work for dtests (does require an agent, not sure if that's a problem yet). If using an agent is problematic looks like it can also work with offline bytecode though I don't see how that could benefit dtests. Project seems pretty active, with a release just last week. -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Updated] (CASSANDRA-7226) get code coverage working again (cobertura or other)
[ https://issues.apache.org/jira/browse/CASSANDRA-7226?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Russ Hatch updated CASSANDRA-7226: -- Attachment: trunk-7226-2.txt Adding one more small patch. The reporting was not allowing code browsing before, so it would not actually be possible to browse source and see coverage data. Pretty minor change to the jacoco-report task to enable this. get code coverage working again (cobertura or other) Key: CASSANDRA-7226 URL: https://issues.apache.org/jira/browse/CASSANDRA-7226 Project: Cassandra Issue Type: Test Reporter: Russ Hatch Assignee: Russ Hatch Fix For: 3.0 Attachments: coverage.png, trunk-7226-2.txt, trunk-7226.txt We need to sort out code coverage again, for unit and cassandra-dtest tests. Preferably the same tool for both. Seems like cobertura project activity has dwindled. Jacoco might be a viable alternative to cobertura. Jacoco can can instrument running bytecode so I think it could also work for dtests (does require an agent, not sure if that's a problem yet). If using an agent is problematic looks like it can also work with offline bytecode though I don't see how that could benefit dtests. Project seems pretty active, with a release just last week. -- This message was sent by Atlassian JIRA (v6.2#6252)
git commit: Change schema change response in native protocol v3
Repository: cassandra Updated Branches: refs/heads/cassandra-2.1 9a6298e29 - 2fe6de6a1 Change schema change response in native protocol v3 patch by slebresne; reviewed by thobbs for CASSANDRA-7413 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/2fe6de6a Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/2fe6de6a Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/2fe6de6a Branch: refs/heads/cassandra-2.1 Commit: 2fe6de6a11850f2b92c5364d8b78625f297c7f55 Parents: 9a6298e Author: Sylvain Lebresne sylv...@datastax.com Authored: Fri Jun 20 18:32:45 2014 +0200 Committer: Sylvain Lebresne sylv...@datastax.com Committed: Fri Jun 20 18:32:45 2014 +0200 -- CHANGES.txt | 3 +- doc/native_protocol_v3.spec | 29 ++-- src/java/org/apache/cassandra/cql3/UTName.java | 5 +++ .../cql3/statements/AlterKeyspaceStatement.java | 6 ++-- .../cql3/statements/AlterTableStatement.java| 6 ++-- .../cql3/statements/AlterTypeStatement.java | 6 ++-- .../cql3/statements/CreateIndexStatement.java | 6 ++-- .../statements/CreateKeyspaceStatement.java | 6 ++-- .../cql3/statements/CreateTableStatement.java | 6 ++-- .../cql3/statements/CreateTriggerStatement.java | 6 ++-- .../cql3/statements/CreateTypeStatement.java| 6 ++-- .../cql3/statements/DropIndexStatement.java | 6 ++-- .../cql3/statements/DropKeyspaceStatement.java | 6 ++-- .../cql3/statements/DropTableStatement.java | 6 ++-- .../cql3/statements/DropTriggerStatement.java | 6 ++-- .../cql3/statements/DropTypeStatement.java | 6 ++-- .../statements/SchemaAlteringStatement.java | 9 +++-- .../org/apache/cassandra/transport/Event.java | 6 ++-- .../transport/messages/ResultMessage.java | 35 19 files changed, 70 insertions(+), 95 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/2fe6de6a/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 4298c37..7288de6 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,4 @@ -2.1.0 +2.1.0-rc2 * Modify reconcile logic to always pick a tombstone over a counter cell (CASSANDRA-7346) * Avoid incremental compaction on Windows (CASSANDRA-7365) @@ -16,6 +16,7 @@ * RefCount native frames from netty (CASSANDRA-7245) * Use tarball dir instead of /var for default paths (CASSANDRA-7136) * Remove rows_per_partition_to_cache keyword (CASSANDRA-7193) + * Fix schema change response in native protocol v3 (CASSANDRA-7413) Merged from 2.0: * Fix assertion error in CL.ANY timeout handling (CASSANDRA-7364) * Add per-CF range read request latency metrics (CASSANDRA-7338) http://git-wip-us.apache.org/repos/asf/cassandra/blob/2fe6de6a/doc/native_protocol_v3.spec -- diff --git a/doc/native_protocol_v3.spec b/doc/native_protocol_v3.spec index 5e9f439..c26feeb 100644 --- a/doc/native_protocol_v3.spec +++ b/doc/native_protocol_v3.spec @@ -639,17 +639,10 @@ Table of Contents 4.2.5.5. Schema_change The result to a schema altering query (creation/update/drop of a - keyspace/table/index). The body (after the kind [int]) is composed of 3 - [string]: -changekeyspacetable - where: -- change describe the type of change that has occured. It can be one of - CREATED, UPDATED or DROPPED. -- keyspace is the name of the affected keyspace or the keyspace of the - affected table. -- table is the name of the affected table. table will be empty (i.e. - the empty string ) if the change was affecting a keyspace and not a - table. + keyspace/table/index). The body (after the kind [int]) is the same + as the body for a SCHEMA_CHANGE event, so 3 strings: +change_typetargetoptions + Please refer to the section 4.2.6 below for the meaning of those fields. Note that queries to create and drop an index are considered as change updating the table the index is on. @@ -674,11 +667,11 @@ Table of Contents concerned node. - SCHEMA_CHANGE: events related to schema change. After the event type, the rest of the message will be change_typetargetoptions where: -- change_type is the type of changed involved. It will be one of - CREATED, UPDATED or DROPPED. -- target can be one of KEYSPACE, TABLE or TYPE and describes - what has been modified (TYPE stands for modifications related to - user types). +- change_type is a [string] representing the type of changed involved. + It will be one of CREATED, UPDATED or DROPPED. +- target is a [string] that can be one of KEYSPACE, TABLE or TYPE +
[2/2] git commit: Merge branch 'cassandra-2.1' into trunk
Merge branch 'cassandra-2.1' into trunk Conflicts: CHANGES.txt Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/51db18cf Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/51db18cf Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/51db18cf Branch: refs/heads/trunk Commit: 51db18cf03d9c56ee311154038abaab753ddb770 Parents: eb56b49 2fe6de6 Author: Sylvain Lebresne sylv...@datastax.com Authored: Fri Jun 20 18:34:46 2014 +0200 Committer: Sylvain Lebresne sylv...@datastax.com Committed: Fri Jun 20 18:34:46 2014 +0200 -- CHANGES.txt | 3 +- doc/native_protocol_v3.spec | 29 ++-- src/java/org/apache/cassandra/cql3/UTName.java | 5 +++ .../cql3/statements/AlterKeyspaceStatement.java | 6 ++-- .../cql3/statements/AlterTableStatement.java| 6 ++-- .../cql3/statements/AlterTypeStatement.java | 6 ++-- .../cql3/statements/CreateIndexStatement.java | 6 ++-- .../statements/CreateKeyspaceStatement.java | 6 ++-- .../cql3/statements/CreateTableStatement.java | 6 ++-- .../cql3/statements/CreateTriggerStatement.java | 6 ++-- .../cql3/statements/CreateTypeStatement.java| 6 ++-- .../cql3/statements/DropIndexStatement.java | 6 ++-- .../cql3/statements/DropKeyspaceStatement.java | 6 ++-- .../cql3/statements/DropTableStatement.java | 6 ++-- .../cql3/statements/DropTriggerStatement.java | 6 ++-- .../cql3/statements/DropTypeStatement.java | 6 ++-- .../statements/SchemaAlteringStatement.java | 9 +++-- .../org/apache/cassandra/transport/Event.java | 6 ++-- .../transport/messages/ResultMessage.java | 35 19 files changed, 70 insertions(+), 95 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/51db18cf/CHANGES.txt -- diff --cc CHANGES.txt index ad325a5,7288de6..2912060 --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,17 -1,4 +1,17 @@@ +3.0 + * Move sstable RandomAccessReader to nio2, which allows using the + FILE_SHARE_DELETE flag on Windows (CASSANDRA-4050) + * Remove CQL2 (CASSANDRA-5918) + * Add Thrift get_multi_slice call (CASSANDRA-6757) + * Optimize fetching multiple cells by name (CASSANDRA-6933) + * Allow compilation in java 8 (CASSANDRA-7208) + * Make incremental repair default (CASSANDRA-7250) + * Enable code coverage thru JaCoCo (CASSANDRA-7226) + * Switch external naming of 'column families' to 'tables' (CASSANDRA-4369) + + + - 2.1.0 + 2.1.0-rc2 * Modify reconcile logic to always pick a tombstone over a counter cell (CASSANDRA-7346) * Avoid incremental compaction on Windows (CASSANDRA-7365) http://git-wip-us.apache.org/repos/asf/cassandra/blob/51db18cf/src/java/org/apache/cassandra/cql3/statements/AlterTableStatement.java -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/51db18cf/src/java/org/apache/cassandra/cql3/statements/CreateTableStatement.java --
[1/2] git commit: Change schema change response in native protocol v3
Repository: cassandra Updated Branches: refs/heads/trunk eb56b490b - 51db18cf0 Change schema change response in native protocol v3 patch by slebresne; reviewed by thobbs for CASSANDRA-7413 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/2fe6de6a Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/2fe6de6a Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/2fe6de6a Branch: refs/heads/trunk Commit: 2fe6de6a11850f2b92c5364d8b78625f297c7f55 Parents: 9a6298e Author: Sylvain Lebresne sylv...@datastax.com Authored: Fri Jun 20 18:32:45 2014 +0200 Committer: Sylvain Lebresne sylv...@datastax.com Committed: Fri Jun 20 18:32:45 2014 +0200 -- CHANGES.txt | 3 +- doc/native_protocol_v3.spec | 29 ++-- src/java/org/apache/cassandra/cql3/UTName.java | 5 +++ .../cql3/statements/AlterKeyspaceStatement.java | 6 ++-- .../cql3/statements/AlterTableStatement.java| 6 ++-- .../cql3/statements/AlterTypeStatement.java | 6 ++-- .../cql3/statements/CreateIndexStatement.java | 6 ++-- .../statements/CreateKeyspaceStatement.java | 6 ++-- .../cql3/statements/CreateTableStatement.java | 6 ++-- .../cql3/statements/CreateTriggerStatement.java | 6 ++-- .../cql3/statements/CreateTypeStatement.java| 6 ++-- .../cql3/statements/DropIndexStatement.java | 6 ++-- .../cql3/statements/DropKeyspaceStatement.java | 6 ++-- .../cql3/statements/DropTableStatement.java | 6 ++-- .../cql3/statements/DropTriggerStatement.java | 6 ++-- .../cql3/statements/DropTypeStatement.java | 6 ++-- .../statements/SchemaAlteringStatement.java | 9 +++-- .../org/apache/cassandra/transport/Event.java | 6 ++-- .../transport/messages/ResultMessage.java | 35 19 files changed, 70 insertions(+), 95 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/2fe6de6a/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 4298c37..7288de6 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,4 @@ -2.1.0 +2.1.0-rc2 * Modify reconcile logic to always pick a tombstone over a counter cell (CASSANDRA-7346) * Avoid incremental compaction on Windows (CASSANDRA-7365) @@ -16,6 +16,7 @@ * RefCount native frames from netty (CASSANDRA-7245) * Use tarball dir instead of /var for default paths (CASSANDRA-7136) * Remove rows_per_partition_to_cache keyword (CASSANDRA-7193) + * Fix schema change response in native protocol v3 (CASSANDRA-7413) Merged from 2.0: * Fix assertion error in CL.ANY timeout handling (CASSANDRA-7364) * Add per-CF range read request latency metrics (CASSANDRA-7338) http://git-wip-us.apache.org/repos/asf/cassandra/blob/2fe6de6a/doc/native_protocol_v3.spec -- diff --git a/doc/native_protocol_v3.spec b/doc/native_protocol_v3.spec index 5e9f439..c26feeb 100644 --- a/doc/native_protocol_v3.spec +++ b/doc/native_protocol_v3.spec @@ -639,17 +639,10 @@ Table of Contents 4.2.5.5. Schema_change The result to a schema altering query (creation/update/drop of a - keyspace/table/index). The body (after the kind [int]) is composed of 3 - [string]: -changekeyspacetable - where: -- change describe the type of change that has occured. It can be one of - CREATED, UPDATED or DROPPED. -- keyspace is the name of the affected keyspace or the keyspace of the - affected table. -- table is the name of the affected table. table will be empty (i.e. - the empty string ) if the change was affecting a keyspace and not a - table. + keyspace/table/index). The body (after the kind [int]) is the same + as the body for a SCHEMA_CHANGE event, so 3 strings: +change_typetargetoptions + Please refer to the section 4.2.6 below for the meaning of those fields. Note that queries to create and drop an index are considered as change updating the table the index is on. @@ -674,11 +667,11 @@ Table of Contents concerned node. - SCHEMA_CHANGE: events related to schema change. After the event type, the rest of the message will be change_typetargetoptions where: -- change_type is the type of changed involved. It will be one of - CREATED, UPDATED or DROPPED. -- target can be one of KEYSPACE, TABLE or TYPE and describes - what has been modified (TYPE stands for modifications related to - user types). +- change_type is a [string] representing the type of changed involved. + It will be one of CREATED, UPDATED or DROPPED. +- target is a [string] that can be one of KEYSPACE, TABLE or TYPE + and
git commit: Allow browsing in jacoco-report
Repository: cassandra Updated Branches: refs/heads/trunk 51db18cf0 - e77b70eec Allow browsing in jacoco-report Patch by Russ Hatch, reviewed by brandonwilliams for CASSANDRA-7226 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/e77b70ee Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/e77b70ee Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/e77b70ee Branch: refs/heads/trunk Commit: e77b70eecce36250ecbe4a4fd977813d0096b859 Parents: 51db18c Author: Brandon Williams brandonwilli...@apache.org Authored: Fri Jun 20 11:37:22 2014 -0500 Committer: Brandon Williams brandonwilli...@apache.org Committed: Fri Jun 20 11:37:22 2014 -0500 -- build.xml | 5 - 1 file changed, 4 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/e77b70ee/build.xml -- diff --git a/build.xml b/build.xml index 8595fa9..02e1f98 100644 --- a/build.xml +++ b/build.xml @@ -1299,7 +1299,10 @@ /fileset /classfiles sourcefiles encoding=UTF-8 - fileset dir=${build.src} / + dirset dir=${build.src} +include name=java/ +include name=gen-java/ + /dirset /sourcefiles /structure !-- to produce reports in different formats. --
[jira] [Resolved] (CASSANDRA-7226) get code coverage working again (cobertura or other)
[ https://issues.apache.org/jira/browse/CASSANDRA-7226?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Brandon Williams resolved CASSANDRA-7226. - Resolution: Fixed Committed. get code coverage working again (cobertura or other) Key: CASSANDRA-7226 URL: https://issues.apache.org/jira/browse/CASSANDRA-7226 Project: Cassandra Issue Type: Test Reporter: Russ Hatch Assignee: Russ Hatch Fix For: 3.0 Attachments: coverage.png, trunk-7226-2.txt, trunk-7226.txt We need to sort out code coverage again, for unit and cassandra-dtest tests. Preferably the same tool for both. Seems like cobertura project activity has dwindled. Jacoco might be a viable alternative to cobertura. Jacoco can can instrument running bytecode so I think it could also work for dtests (does require an agent, not sure if that's a problem yet). If using an agent is problematic looks like it can also work with offline bytecode though I don't see how that could benefit dtests. Project seems pretty active, with a release just last week. -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Commented] (CASSANDRA-7399) cqlsh: describe table shows wrong data type for CompositeType
[ https://issues.apache.org/jira/browse/CASSANDRA-7399?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14039007#comment-14039007 ] Tyler Hobbs commented on CASSANDRA-7399: The 2.1 patch looks good. With the 1.2 patch, DynamicCompositeType can't be parsed (it doesn't like the = bits). I'm not sure if we care enough about DynamicComposite type to fix this for 1.2 and 2.0, but if so, we need to patch the bundled cqltypes.py to change: {code} casstype_scanner = re.Scanner(( (r'[()]', lambda s, t: t), (r'[a-zA-Z0-9_.:]+', lambda s, t: t), (r'[\s,]', None), )) {code} to {code} casstype_scanner = re.Scanner(( (r'[()]', lambda s, t: t), (r'[a-zA-Z0-9_.:=]+', lambda s, t: t), (r'[\s,]', None), )) {code} cqlsh: describe table shows wrong data type for CompositeType - Key: CASSANDRA-7399 URL: https://issues.apache.org/jira/browse/CASSANDRA-7399 Project: Cassandra Issue Type: Bug Components: Tools Reporter: Robert Stupp Assignee: Mikhail Stepura Fix For: 1.2.17, 2.0.9, 2.1 rc2 Attachments: CASSANDRA-1.2-7399.patch, CASSANDRA-2.1-7399.patch {{DESCRIBE}} for {{CompositeType}} produces wrong output. Currently: {noformat} CREATE TABLE compo.comp ( id int PRIMARY KEY, comp 'org.apache.cassandra.db.marshal.CompositeType'int, text )... {noformat} Correct: {noformat} CREATE TABLE compo.comp ( id int PRIMARY KEY, comp 'org.apache.cassandra.db.marshal.CompositeType(Int32Type,UTF8Type)' )... {noformat} Means: 1. use normal brackets instead of {{}} 1. use C* type names instead of CQL3 names 1. move types inside quoted -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Created] (CASSANDRA-7423) make user defined types useful for non-trivial use cases
Tupshin Harper created CASSANDRA-7423: - Summary: make user defined types useful for non-trivial use cases Key: CASSANDRA-7423 URL: https://issues.apache.org/jira/browse/CASSANDRA-7423 Project: Cassandra Issue Type: Improvement Components: API, Core Reporter: Tupshin Harper Since user defined types were implemented in CASSANDRA-5590 as blobs (you have to rewrite the entire type in order to make any modifications), they can't be safely used without LWT for any operation that wants to modify a subset of the UDT's fields by any client process that is not authoritative for the entire blob. When trying to use UDTs to model complex records (particularly with nesting), this is not an exceptional circumstance, this is the totally expected normal situation. The use of UDTs for anything non-trivial is harmful to either performance or consistency or both. -- This message was sent by Atlassian JIRA (v6.2#6252)
git commit: Accept subtypes for function results, type casts
Repository: cassandra Updated Branches: refs/heads/cassandra-2.0 f6c5e020a - 9da742d5f Accept subtypes for function results, type casts Patch by Tyler Hobbs; reviewed by Sylvain Lebresne for CASSANDRA-6766 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/9da742d5 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/9da742d5 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/9da742d5 Branch: refs/heads/cassandra-2.0 Commit: 9da742d5f83e1b2563be1c0d45a0e3d65a38ec44 Parents: f6c5e02 Author: Tyler Hobbs ty...@datastax.com Authored: Fri Jun 20 11:48:04 2014 -0500 Committer: Tyler Hobbs ty...@datastax.com Committed: Fri Jun 20 11:48:04 2014 -0500 -- CHANGES.txt | 1 + .../org/apache/cassandra/cql3/TypeCast.java | 2 +- .../cassandra/cql3/functions/FunctionCall.java | 2 +- .../cassandra/cql3/functions/Functions.java | 4 +- .../cassandra/cql3/statements/Selection.java| 6 +- .../cassandra/db/marshal/AbstractType.java | 23 ++- .../apache/cassandra/db/marshal/BytesType.java | 2 +- .../cassandra/db/marshal/CompositeType.java | 8 +- .../apache/cassandra/db/marshal/DateType.java | 6 + .../cassandra/db/marshal/IntegerType.java | 6 + .../apache/cassandra/db/marshal/LongType.java | 6 + .../cassandra/db/marshal/ReversedType.java | 6 + .../cassandra/db/marshal/TimestampType.java | 6 + .../apache/cassandra/db/marshal/TupleType.java | 6 +- .../apache/cassandra/db/marshal/UUIDType.java | 6 + .../org/apache/cassandra/cql3/TypeTest.java | 144 +++ 16 files changed, 214 insertions(+), 20 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/9da742d5/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 69cc46b..dac254e 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -19,6 +19,7 @@ * Reference sstables before populating key cache (CASSANDRA-7234) * Account for range tombstones in min/max column names (CASSANDRA-7235) * Improve sub range repair validation (CASSANDRA-7317) + * Accept subtypes for function results, type casts (CASSANDRA-6766) Merged from 1.2: * Handle possible integer overflow in FastByteArrayOutputStream (CASSANDRA-7373) * cqlsh: 'ascii' values weren't formatted as text (CASSANDRA-7407) http://git-wip-us.apache.org/repos/asf/cassandra/blob/9da742d5/src/java/org/apache/cassandra/cql3/TypeCast.java -- diff --git a/src/java/org/apache/cassandra/cql3/TypeCast.java b/src/java/org/apache/cassandra/cql3/TypeCast.java index 66b5300..64261fa 100644 --- a/src/java/org/apache/cassandra/cql3/TypeCast.java +++ b/src/java/org/apache/cassandra/cql3/TypeCast.java @@ -48,7 +48,7 @@ public class TypeCast implements Term.Raw public boolean isAssignableTo(ColumnSpecification receiver) { -return receiver.type.asCQL3Type().equals(type); +return receiver.type.isValueCompatibleWith(type.getType()); } @Override http://git-wip-us.apache.org/repos/asf/cassandra/blob/9da742d5/src/java/org/apache/cassandra/cql3/functions/FunctionCall.java -- diff --git a/src/java/org/apache/cassandra/cql3/functions/FunctionCall.java b/src/java/org/apache/cassandra/cql3/functions/FunctionCall.java index 8db03e6..3abf65e 100644 --- a/src/java/org/apache/cassandra/cql3/functions/FunctionCall.java +++ b/src/java/org/apache/cassandra/cql3/functions/FunctionCall.java @@ -142,7 +142,7 @@ public class FunctionCall extends Term.NonTerminal // is used as argument of another, existing, function. In that case, we return true here because we'll catch // the fact that the method is undefined latter anyway and with a more helpful error message that if we were // to return false here. -return returnType == null || receiver.type.asCQL3Type().equals(returnType.asCQL3Type()); +return returnType == null || receiver.type.isValueCompatibleWith(returnType); } @Override http://git-wip-us.apache.org/repos/asf/cassandra/blob/9da742d5/src/java/org/apache/cassandra/cql3/functions/Functions.java -- diff --git a/src/java/org/apache/cassandra/cql3/functions/Functions.java b/src/java/org/apache/cassandra/cql3/functions/Functions.java index 5f4201d..4f108cb 100644 --- a/src/java/org/apache/cassandra/cql3/functions/Functions.java +++ b/src/java/org/apache/cassandra/cql3/functions/Functions.java @@ -111,7 +111,7 @@ public abstract class Functions private static void
[1/2] git commit: Accept subtypes for function results, type casts
Repository: cassandra Updated Branches: refs/heads/cassandra-2.1 2fe6de6a1 - 9dcdb8b0b Accept subtypes for function results, type casts Patch by Tyler Hobbs; reviewed by Sylvain Lebresne for CASSANDRA-6766 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/9da742d5 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/9da742d5 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/9da742d5 Branch: refs/heads/cassandra-2.1 Commit: 9da742d5f83e1b2563be1c0d45a0e3d65a38ec44 Parents: f6c5e02 Author: Tyler Hobbs ty...@datastax.com Authored: Fri Jun 20 11:48:04 2014 -0500 Committer: Tyler Hobbs ty...@datastax.com Committed: Fri Jun 20 11:48:04 2014 -0500 -- CHANGES.txt | 1 + .../org/apache/cassandra/cql3/TypeCast.java | 2 +- .../cassandra/cql3/functions/FunctionCall.java | 2 +- .../cassandra/cql3/functions/Functions.java | 4 +- .../cassandra/cql3/statements/Selection.java| 6 +- .../cassandra/db/marshal/AbstractType.java | 23 ++- .../apache/cassandra/db/marshal/BytesType.java | 2 +- .../cassandra/db/marshal/CompositeType.java | 8 +- .../apache/cassandra/db/marshal/DateType.java | 6 + .../cassandra/db/marshal/IntegerType.java | 6 + .../apache/cassandra/db/marshal/LongType.java | 6 + .../cassandra/db/marshal/ReversedType.java | 6 + .../cassandra/db/marshal/TimestampType.java | 6 + .../apache/cassandra/db/marshal/TupleType.java | 6 +- .../apache/cassandra/db/marshal/UUIDType.java | 6 + .../org/apache/cassandra/cql3/TypeTest.java | 144 +++ 16 files changed, 214 insertions(+), 20 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/9da742d5/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 69cc46b..dac254e 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -19,6 +19,7 @@ * Reference sstables before populating key cache (CASSANDRA-7234) * Account for range tombstones in min/max column names (CASSANDRA-7235) * Improve sub range repair validation (CASSANDRA-7317) + * Accept subtypes for function results, type casts (CASSANDRA-6766) Merged from 1.2: * Handle possible integer overflow in FastByteArrayOutputStream (CASSANDRA-7373) * cqlsh: 'ascii' values weren't formatted as text (CASSANDRA-7407) http://git-wip-us.apache.org/repos/asf/cassandra/blob/9da742d5/src/java/org/apache/cassandra/cql3/TypeCast.java -- diff --git a/src/java/org/apache/cassandra/cql3/TypeCast.java b/src/java/org/apache/cassandra/cql3/TypeCast.java index 66b5300..64261fa 100644 --- a/src/java/org/apache/cassandra/cql3/TypeCast.java +++ b/src/java/org/apache/cassandra/cql3/TypeCast.java @@ -48,7 +48,7 @@ public class TypeCast implements Term.Raw public boolean isAssignableTo(ColumnSpecification receiver) { -return receiver.type.asCQL3Type().equals(type); +return receiver.type.isValueCompatibleWith(type.getType()); } @Override http://git-wip-us.apache.org/repos/asf/cassandra/blob/9da742d5/src/java/org/apache/cassandra/cql3/functions/FunctionCall.java -- diff --git a/src/java/org/apache/cassandra/cql3/functions/FunctionCall.java b/src/java/org/apache/cassandra/cql3/functions/FunctionCall.java index 8db03e6..3abf65e 100644 --- a/src/java/org/apache/cassandra/cql3/functions/FunctionCall.java +++ b/src/java/org/apache/cassandra/cql3/functions/FunctionCall.java @@ -142,7 +142,7 @@ public class FunctionCall extends Term.NonTerminal // is used as argument of another, existing, function. In that case, we return true here because we'll catch // the fact that the method is undefined latter anyway and with a more helpful error message that if we were // to return false here. -return returnType == null || receiver.type.asCQL3Type().equals(returnType.asCQL3Type()); +return returnType == null || receiver.type.isValueCompatibleWith(returnType); } @Override http://git-wip-us.apache.org/repos/asf/cassandra/blob/9da742d5/src/java/org/apache/cassandra/cql3/functions/Functions.java -- diff --git a/src/java/org/apache/cassandra/cql3/functions/Functions.java b/src/java/org/apache/cassandra/cql3/functions/Functions.java index 5f4201d..4f108cb 100644 --- a/src/java/org/apache/cassandra/cql3/functions/Functions.java +++ b/src/java/org/apache/cassandra/cql3/functions/Functions.java @@ -111,7 +111,7 @@ public abstract class Functions private static void
[2/2] git commit: Merge branch 'cassandra-2.0' into cassandra-2.1
Merge branch 'cassandra-2.0' into cassandra-2.1 Conflicts: src/java/org/apache/cassandra/cql3/TypeCast.java src/java/org/apache/cassandra/cql3/statements/Selection.java Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/9dcdb8b0 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/9dcdb8b0 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/9dcdb8b0 Branch: refs/heads/cassandra-2.1 Commit: 9dcdb8b0b5bb5c92986b16380d650373c7f819d6 Parents: 2fe6de6 9da742d Author: Tyler Hobbs ty...@datastax.com Authored: Fri Jun 20 12:00:20 2014 -0500 Committer: Tyler Hobbs ty...@datastax.com Committed: Fri Jun 20 12:00:20 2014 -0500 -- CHANGES.txt | 1 + .../org/apache/cassandra/cql3/TypeCast.java | 2 +- .../cassandra/cql3/functions/FunctionCall.java | 2 +- .../cassandra/cql3/functions/Functions.java | 4 +- .../cassandra/cql3/statements/Selection.java| 2 +- .../cassandra/db/marshal/AbstractType.java | 23 +++-- .../apache/cassandra/db/marshal/BytesType.java | 2 +- .../cassandra/db/marshal/CompositeType.java | 8 +-- .../apache/cassandra/db/marshal/DateType.java | 6 +++ .../cassandra/db/marshal/IntegerType.java | 6 +++ .../apache/cassandra/db/marshal/LongType.java | 6 +++ .../cassandra/db/marshal/ReversedType.java | 6 +++ .../cassandra/db/marshal/TimestampType.java | 6 +++ .../apache/cassandra/db/marshal/TupleType.java | 6 +-- .../apache/cassandra/db/marshal/UUIDType.java | 6 +++ .../org/apache/cassandra/cql3/TypeTest.java | 51 16 files changed, 119 insertions(+), 18 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/9dcdb8b0/CHANGES.txt -- diff --cc CHANGES.txt index 7288de6,dac254e..d7cb9ee --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,30 -1,25 +1,31 @@@ -2.0.9 - * Fix assertion error in CL.ANY timeout handling (CASSANDRA-7364) - * Handle empty CFs in Memtable#maybeUpdateLiveRatio() (CASSANDRA-7401) +2.1.0-rc2 + * Modify reconcile logic to always pick a tombstone over a counter cell + (CASSANDRA-7346) + * Avoid incremental compaction on Windows (CASSANDRA-7365) + * Fix exception when querying a composite-keyed table with a collection index + (CASSANDRA-7372) + * Use node's host id in place of counter ids (CASSANDRA-7366) * Fix native protocol CAS batches (CASSANDRA-7337) + * Reduce likelihood of contention on local paxos locking (CASSANDRA-7359) + * Upgrade to Pig 0.12.1 (CASSANDRA-6556) + * Make sure we clear out repair sessions from netstats (CASSANDRA-7329) + * Don't fail streams on failure detector downs (CASSANDRA-3569) + * Add optional keyspace to DROP INDEX statement (CASSANDRA-7314) + * Reduce run time for CQL tests (CASSANDRA-7327) + * Fix heap size calculation on Windows (CASSANDRA-7352, 7353) + * RefCount native frames from netty (CASSANDRA-7245) + * Use tarball dir instead of /var for default paths (CASSANDRA-7136) + * Remove rows_per_partition_to_cache keyword (CASSANDRA-7193) + * Fix schema change response in native protocol v3 (CASSANDRA-7413) +Merged from 2.0: + * Fix assertion error in CL.ANY timeout handling (CASSANDRA-7364) * Add per-CF range read request latency metrics (CASSANDRA-7338) * Fix NPE in StreamTransferTask.createMessageForRetry() (CASSANDRA-7323) - * Add conditional CREATE/DROP USER support (CASSANDRA-7264) - * Swap local and global default read repair chances (CASSANDRA-7320) - * Add missing iso8601 patterns for date strings (CASSANDRA-6973) - * Support selecting multiple rows in a partition using IN (CASSANDRA-6875) - * cqlsh: always emphasize the partition key in DESC output (CASSANDRA-7274) - * Copy compaction options to make sure they are reloaded (CASSANDRA-7290) - * Add option to do more aggressive tombstone compactions (CASSANDRA-6563) - * Don't try to compact already-compacting files in HHOM (CASSANDRA-7288) - * Add authentication support to shuffle (CASSANDRA-6484) - * Cqlsh counts non-empty lines for Blank lines warning (CASSANDRA-7325) * Make StreamSession#closeSession() idempotent (CASSANDRA-7262) * Fix infinite loop on exception while streaming (CASSANDRA-7330) - * Reference sstables before populating key cache (CASSANDRA-7234) * Account for range tombstones in min/max column names (CASSANDRA-7235) * Improve sub range repair validation (CASSANDRA-7317) + * Accept subtypes for function results, type casts (CASSANDRA-6766) Merged from 1.2: * Handle possible integer overflow in FastByteArrayOutputStream (CASSANDRA-7373) * cqlsh: 'ascii' values weren't formatted as text (CASSANDRA-7407)
[3/3] git commit: Merge branch 'cassandra-2.1' into trunk
Merge branch 'cassandra-2.1' into trunk Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/51016876 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/51016876 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/51016876 Branch: refs/heads/trunk Commit: 51016876ab7015a3c6f3747943c0387b14cc1322 Parents: e77b70e 9dcdb8b Author: Tyler Hobbs ty...@datastax.com Authored: Fri Jun 20 12:00:48 2014 -0500 Committer: Tyler Hobbs ty...@datastax.com Committed: Fri Jun 20 12:00:48 2014 -0500 -- CHANGES.txt | 1 + .../org/apache/cassandra/cql3/TypeCast.java | 2 +- .../cassandra/cql3/functions/FunctionCall.java | 2 +- .../cassandra/cql3/functions/Functions.java | 4 +- .../cassandra/cql3/statements/Selection.java| 2 +- .../cassandra/db/marshal/AbstractType.java | 23 +++-- .../apache/cassandra/db/marshal/BytesType.java | 2 +- .../cassandra/db/marshal/CompositeType.java | 8 +-- .../apache/cassandra/db/marshal/DateType.java | 6 +++ .../cassandra/db/marshal/IntegerType.java | 6 +++ .../apache/cassandra/db/marshal/LongType.java | 6 +++ .../cassandra/db/marshal/ReversedType.java | 6 +++ .../cassandra/db/marshal/TimestampType.java | 6 +++ .../apache/cassandra/db/marshal/TupleType.java | 6 +-- .../apache/cassandra/db/marshal/UUIDType.java | 6 +++ .../org/apache/cassandra/cql3/TypeTest.java | 51 16 files changed, 119 insertions(+), 18 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/51016876/CHANGES.txt -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/51016876/src/java/org/apache/cassandra/db/marshal/AbstractType.java -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/51016876/src/java/org/apache/cassandra/db/marshal/DateType.java -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/51016876/src/java/org/apache/cassandra/db/marshal/TupleType.java -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/51016876/src/java/org/apache/cassandra/db/marshal/UUIDType.java -- diff --cc src/java/org/apache/cassandra/db/marshal/UUIDType.java index e988a58,c4ce1d1..83fa2ba --- a/src/java/org/apache/cassandra/db/marshal/UUIDType.java +++ b/src/java/org/apache/cassandra/db/marshal/UUIDType.java @@@ -173,9 -179,22 +173,15 @@@ public class UUIDType extends AbstractT } } -try -{ -return ByteBuffer.wrap(UUIDGen.getTimeUUIDBytes(TimestampSerializer.dateStringToTimestamp(source))); -} -catch (MarshalException e) -{ -throw new MarshalException(String.format(unable to make version 1 UUID from '%s', source), e); -} +throw new MarshalException(String.format(unable to coerce '%s' to version 1 UUID, source)); } + @Override + public boolean isValueCompatibleWithInternal(AbstractType? otherType) + { + return this == otherType || otherType == TimeUUIDType.instance; + } + public CQL3Type asCQL3Type() { return CQL3Type.Native.UUID;
[1/3] git commit: Accept subtypes for function results, type casts
Repository: cassandra Updated Branches: refs/heads/trunk e77b70eec - 51016876a Accept subtypes for function results, type casts Patch by Tyler Hobbs; reviewed by Sylvain Lebresne for CASSANDRA-6766 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/9da742d5 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/9da742d5 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/9da742d5 Branch: refs/heads/trunk Commit: 9da742d5f83e1b2563be1c0d45a0e3d65a38ec44 Parents: f6c5e02 Author: Tyler Hobbs ty...@datastax.com Authored: Fri Jun 20 11:48:04 2014 -0500 Committer: Tyler Hobbs ty...@datastax.com Committed: Fri Jun 20 11:48:04 2014 -0500 -- CHANGES.txt | 1 + .../org/apache/cassandra/cql3/TypeCast.java | 2 +- .../cassandra/cql3/functions/FunctionCall.java | 2 +- .../cassandra/cql3/functions/Functions.java | 4 +- .../cassandra/cql3/statements/Selection.java| 6 +- .../cassandra/db/marshal/AbstractType.java | 23 ++- .../apache/cassandra/db/marshal/BytesType.java | 2 +- .../cassandra/db/marshal/CompositeType.java | 8 +- .../apache/cassandra/db/marshal/DateType.java | 6 + .../cassandra/db/marshal/IntegerType.java | 6 + .../apache/cassandra/db/marshal/LongType.java | 6 + .../cassandra/db/marshal/ReversedType.java | 6 + .../cassandra/db/marshal/TimestampType.java | 6 + .../apache/cassandra/db/marshal/TupleType.java | 6 +- .../apache/cassandra/db/marshal/UUIDType.java | 6 + .../org/apache/cassandra/cql3/TypeTest.java | 144 +++ 16 files changed, 214 insertions(+), 20 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/9da742d5/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 69cc46b..dac254e 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -19,6 +19,7 @@ * Reference sstables before populating key cache (CASSANDRA-7234) * Account for range tombstones in min/max column names (CASSANDRA-7235) * Improve sub range repair validation (CASSANDRA-7317) + * Accept subtypes for function results, type casts (CASSANDRA-6766) Merged from 1.2: * Handle possible integer overflow in FastByteArrayOutputStream (CASSANDRA-7373) * cqlsh: 'ascii' values weren't formatted as text (CASSANDRA-7407) http://git-wip-us.apache.org/repos/asf/cassandra/blob/9da742d5/src/java/org/apache/cassandra/cql3/TypeCast.java -- diff --git a/src/java/org/apache/cassandra/cql3/TypeCast.java b/src/java/org/apache/cassandra/cql3/TypeCast.java index 66b5300..64261fa 100644 --- a/src/java/org/apache/cassandra/cql3/TypeCast.java +++ b/src/java/org/apache/cassandra/cql3/TypeCast.java @@ -48,7 +48,7 @@ public class TypeCast implements Term.Raw public boolean isAssignableTo(ColumnSpecification receiver) { -return receiver.type.asCQL3Type().equals(type); +return receiver.type.isValueCompatibleWith(type.getType()); } @Override http://git-wip-us.apache.org/repos/asf/cassandra/blob/9da742d5/src/java/org/apache/cassandra/cql3/functions/FunctionCall.java -- diff --git a/src/java/org/apache/cassandra/cql3/functions/FunctionCall.java b/src/java/org/apache/cassandra/cql3/functions/FunctionCall.java index 8db03e6..3abf65e 100644 --- a/src/java/org/apache/cassandra/cql3/functions/FunctionCall.java +++ b/src/java/org/apache/cassandra/cql3/functions/FunctionCall.java @@ -142,7 +142,7 @@ public class FunctionCall extends Term.NonTerminal // is used as argument of another, existing, function. In that case, we return true here because we'll catch // the fact that the method is undefined latter anyway and with a more helpful error message that if we were // to return false here. -return returnType == null || receiver.type.asCQL3Type().equals(returnType.asCQL3Type()); +return returnType == null || receiver.type.isValueCompatibleWith(returnType); } @Override http://git-wip-us.apache.org/repos/asf/cassandra/blob/9da742d5/src/java/org/apache/cassandra/cql3/functions/Functions.java -- diff --git a/src/java/org/apache/cassandra/cql3/functions/Functions.java b/src/java/org/apache/cassandra/cql3/functions/Functions.java index 5f4201d..4f108cb 100644 --- a/src/java/org/apache/cassandra/cql3/functions/Functions.java +++ b/src/java/org/apache/cassandra/cql3/functions/Functions.java @@ -111,7 +111,7 @@ public abstract class Functions private static void validateTypes(Function fun,
[2/3] git commit: Merge branch 'cassandra-2.0' into cassandra-2.1
Merge branch 'cassandra-2.0' into cassandra-2.1 Conflicts: src/java/org/apache/cassandra/cql3/TypeCast.java src/java/org/apache/cassandra/cql3/statements/Selection.java Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/9dcdb8b0 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/9dcdb8b0 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/9dcdb8b0 Branch: refs/heads/trunk Commit: 9dcdb8b0b5bb5c92986b16380d650373c7f819d6 Parents: 2fe6de6 9da742d Author: Tyler Hobbs ty...@datastax.com Authored: Fri Jun 20 12:00:20 2014 -0500 Committer: Tyler Hobbs ty...@datastax.com Committed: Fri Jun 20 12:00:20 2014 -0500 -- CHANGES.txt | 1 + .../org/apache/cassandra/cql3/TypeCast.java | 2 +- .../cassandra/cql3/functions/FunctionCall.java | 2 +- .../cassandra/cql3/functions/Functions.java | 4 +- .../cassandra/cql3/statements/Selection.java| 2 +- .../cassandra/db/marshal/AbstractType.java | 23 +++-- .../apache/cassandra/db/marshal/BytesType.java | 2 +- .../cassandra/db/marshal/CompositeType.java | 8 +-- .../apache/cassandra/db/marshal/DateType.java | 6 +++ .../cassandra/db/marshal/IntegerType.java | 6 +++ .../apache/cassandra/db/marshal/LongType.java | 6 +++ .../cassandra/db/marshal/ReversedType.java | 6 +++ .../cassandra/db/marshal/TimestampType.java | 6 +++ .../apache/cassandra/db/marshal/TupleType.java | 6 +-- .../apache/cassandra/db/marshal/UUIDType.java | 6 +++ .../org/apache/cassandra/cql3/TypeTest.java | 51 16 files changed, 119 insertions(+), 18 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/9dcdb8b0/CHANGES.txt -- diff --cc CHANGES.txt index 7288de6,dac254e..d7cb9ee --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,30 -1,25 +1,31 @@@ -2.0.9 - * Fix assertion error in CL.ANY timeout handling (CASSANDRA-7364) - * Handle empty CFs in Memtable#maybeUpdateLiveRatio() (CASSANDRA-7401) +2.1.0-rc2 + * Modify reconcile logic to always pick a tombstone over a counter cell + (CASSANDRA-7346) + * Avoid incremental compaction on Windows (CASSANDRA-7365) + * Fix exception when querying a composite-keyed table with a collection index + (CASSANDRA-7372) + * Use node's host id in place of counter ids (CASSANDRA-7366) * Fix native protocol CAS batches (CASSANDRA-7337) + * Reduce likelihood of contention on local paxos locking (CASSANDRA-7359) + * Upgrade to Pig 0.12.1 (CASSANDRA-6556) + * Make sure we clear out repair sessions from netstats (CASSANDRA-7329) + * Don't fail streams on failure detector downs (CASSANDRA-3569) + * Add optional keyspace to DROP INDEX statement (CASSANDRA-7314) + * Reduce run time for CQL tests (CASSANDRA-7327) + * Fix heap size calculation on Windows (CASSANDRA-7352, 7353) + * RefCount native frames from netty (CASSANDRA-7245) + * Use tarball dir instead of /var for default paths (CASSANDRA-7136) + * Remove rows_per_partition_to_cache keyword (CASSANDRA-7193) + * Fix schema change response in native protocol v3 (CASSANDRA-7413) +Merged from 2.0: + * Fix assertion error in CL.ANY timeout handling (CASSANDRA-7364) * Add per-CF range read request latency metrics (CASSANDRA-7338) * Fix NPE in StreamTransferTask.createMessageForRetry() (CASSANDRA-7323) - * Add conditional CREATE/DROP USER support (CASSANDRA-7264) - * Swap local and global default read repair chances (CASSANDRA-7320) - * Add missing iso8601 patterns for date strings (CASSANDRA-6973) - * Support selecting multiple rows in a partition using IN (CASSANDRA-6875) - * cqlsh: always emphasize the partition key in DESC output (CASSANDRA-7274) - * Copy compaction options to make sure they are reloaded (CASSANDRA-7290) - * Add option to do more aggressive tombstone compactions (CASSANDRA-6563) - * Don't try to compact already-compacting files in HHOM (CASSANDRA-7288) - * Add authentication support to shuffle (CASSANDRA-6484) - * Cqlsh counts non-empty lines for Blank lines warning (CASSANDRA-7325) * Make StreamSession#closeSession() idempotent (CASSANDRA-7262) * Fix infinite loop on exception while streaming (CASSANDRA-7330) - * Reference sstables before populating key cache (CASSANDRA-7234) * Account for range tombstones in min/max column names (CASSANDRA-7235) * Improve sub range repair validation (CASSANDRA-7317) + * Accept subtypes for function results, type casts (CASSANDRA-6766) Merged from 1.2: * Handle possible integer overflow in FastByteArrayOutputStream (CASSANDRA-7373) * cqlsh: 'ascii' values weren't formatted as text (CASSANDRA-7407)
[jira] [Created] (CASSANDRA-7424) cassandra authentication failure 1.2.11
Paul Makkar created CASSANDRA-7424: -- Summary: cassandra authentication failure 1.2.11 Key: CASSANDRA-7424 URL: https://issues.apache.org/jira/browse/CASSANDRA-7424 Project: Cassandra Issue Type: Bug Components: Core Environment: linux 2.6.18-371.6.1.el5 x86_64, cassandra 1.2.11. 6 Node cluster, 3 in DC1 and 3 in DC2. Reporter: Paul Makkar I am having issues enabling authentication. On my 6 node cluster, I took one node and followed the instruction in the cassandra 1.2 guide, i.e. set authenticator: PasswordAuthenticator in the cassandra.yaml and restart cassandra. However, when I restart cassandra and try logging in, it hangs for a few seconds followed by the following error message: cassandra-cli -username cassandra -password cassandra Exception during authentication to the cassandra node, Verify the keyspace exists, and that you are using the correct credentials. The system_auth keyspace does exist: $ find system_auth/ system_auth/ system_auth/users system_auth/credentials system_auth/permissions I then tried setting the authoriser in the cassandra.yaml: authorizer: org.apache.cassandra.auth.CassandraAuthorizer But I get the same error. Then I disabled authentication and increased the replication factor of system_auth keyspace: update keyspace system_auth with placement_strategy = 'NetworkTopologyStrategy' and strategy_options = {DC1 : 3, DC2 : 3} and durable_writes = true; I reenabled authentication, but get the same error. I then shutdown cassandra and deleted the system, system_auth, system_traces data directories and restarted. I get the same error. Trying to log on with the cqlsh client gives this error: cql.cassandra.ttypes.AuthenticationException: AuthenticationException(why='org.apache.cassandra.exceptions.ReadTimeoutException: Operation timed out - received only 1 responses.') Can any advise what is going wrong here? Thanks in advance. -- This message was sent by Atlassian JIRA (v6.2#6252)
buildbot success in ASF Buildbot on cassandra-2.0
The Buildbot has detected a restored build on builder cassandra-2.0 while building cassandra. Full details are available at: http://ci.apache.org/builders/cassandra-2.0/builds/91 Buildbot URL: http://ci.apache.org/ Buildslave for this Build: portunus_ubuntu Build Reason: scheduler Build Source Stamp: [branch cassandra-2.0] 9da742d5f83e1b2563be1c0d45a0e3d65a38ec44 Blamelist: Tyler Hobbs ty...@datastax.com Build succeeded! sincerely, -The Buildbot
[jira] [Commented] (CASSANDRA-6755) Optimise CellName/Composite comparisons for NativeCell
[ https://issues.apache.org/jira/browse/CASSANDRA-6755?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14039066#comment-14039066 ] T Jake Luciani commented on CASSANDRA-6755: --- I'll add it to notice.txt on commit Optimise CellName/Composite comparisons for NativeCell -- Key: CASSANDRA-6755 URL: https://issues.apache.org/jira/browse/CASSANDRA-6755 Project: Cassandra Issue Type: Improvement Reporter: Benedict Assignee: T Jake Luciani Priority: Minor Labels: performance Fix For: 2.1 rc2 Attachments: 6755.txt, 6755v2.txt As discussed in CASSANDRA-6694, to reduce temporary garbage generation we should minimise the incidence of CellName component extraction. The biggest win will be to perform comparisons on Cell where possible, instead of CellName, so that Native*Cell can use its extra information to avoid creating any ByteBuffer objects -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Created] (CASSANDRA-7425) AssertionError when local writes at CL.ANY do not complete due to timeout
Sergio Bossa created CASSANDRA-7425: --- Summary: AssertionError when local writes at CL.ANY do not complete due to timeout Key: CASSANDRA-7425 URL: https://issues.apache.org/jira/browse/CASSANDRA-7425 Project: Cassandra Issue Type: Bug Components: Core Reporter: Sergio Bossa When the local node is overloaded, if local writes at CL.ANY do not complete due to a timeout, an hint is sent to the local node, breaking the following assertion in StorageProxy#submitHint: {code} assert !target.equals(FBUtilities.getBroadcastAddress()) : target; {code} Cassandra tracing is also affected by this bug: {noformat} ERROR [TracingStage:20] 2014-06-18 08:00:44,215 CassandraDaemon.java (line 199) Exception in thread Thread[TracingStage:20,5,main] java.lang.AssertionError: hostname at org.apache.cassandra.service.StorageProxy.submitHint(StorageProxy.java:859) at org.apache.cassandra.service.StorageProxy.mutate(StorageProxy.java:490) at org.apache.cassandra.tracing.Tracing.mutateWithCatch(Tracing.java:291) at org.apache.cassandra.tracing.TraceState$1.runMayThrow(TraceState.java:104) at org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:28) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) {noformat} -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Updated] (CASSANDRA-7351) Make BEGIN COUNTER BATCH syntax optional
[ https://issues.apache.org/jira/browse/CASSANDRA-7351?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] T Jake Luciani updated CASSANDRA-7351: -- Attachment: 7351v3.txt v3 refactors the checks into a single validate() call and I added a unit test to check the native cql path. It doesn't allow counter and non counter statements in the same batch. Make BEGIN COUNTER BATCH syntax optional Key: CASSANDRA-7351 URL: https://issues.apache.org/jira/browse/CASSANDRA-7351 Project: Cassandra Issue Type: Improvement Reporter: T Jake Luciani Assignee: T Jake Luciani Priority: Trivial Labels: cql3 Fix For: 2.1 rc2 Attachments: 7351-rebase.txt, 7351.txt, 7351v2.txt, 7351v3.txt AFAIK there is no need to supply COUNTER in Batch statements. The server should just throw an syntax error if you try to mix counter and non counter statements in the same batch. What value does this keyword add? -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Resolved] (CASSANDRA-7420) BATCH with multiple CAS operations should return add information which DML failed
[ https://issues.apache.org/jira/browse/CASSANDRA-7420?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Robert Stupp resolved CASSANDRA-7420. - Resolution: Invalid cannot work due to batch w/ cas semantics please close this one BATCH with multiple CAS operations should return add information which DML failed - Key: CASSANDRA-7420 URL: https://issues.apache.org/jira/browse/CASSANDRA-7420 Project: Cassandra Issue Type: Improvement Reporter: Robert Stupp A {{BATCH}} like this {noformat} BEGIN BATCH INSERT INTO foo (id, num) VALUES (42, 11); INSERT INTO bar (id, num) VALUES (42, 11); APPLY BATCH; {noformat} Should not only return {{[applied]=false, id=42, num=11}} but also for example the index of the failed statement in the batch. This allows better error handling on the client. -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Commented] (CASSANDRA-6755) Optimise CellName/Composite comparisons for NativeCell
[ https://issues.apache.org/jira/browse/CASSANDRA-6755?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14039079#comment-14039079 ] Brandon Williams commented on CASSANDRA-6755: - FWIW, I don't see any other build-only deps in NOTICE.TXT, such as hadoop or pig, or even ant and maven for that matter. Optimise CellName/Composite comparisons for NativeCell -- Key: CASSANDRA-6755 URL: https://issues.apache.org/jira/browse/CASSANDRA-6755 Project: Cassandra Issue Type: Improvement Reporter: Benedict Assignee: T Jake Luciani Priority: Minor Labels: performance Fix For: 2.1 rc2 Attachments: 6755.txt, 6755v2.txt As discussed in CASSANDRA-6694, to reduce temporary garbage generation we should minimise the incidence of CellName component extraction. The biggest win will be to perform comparisons on Cell where possible, instead of CellName, so that Native*Cell can use its extra information to avoid creating any ByteBuffer objects -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Updated] (CASSANDRA-5853) Write dtests that use json2sstable
[ https://issues.apache.org/jira/browse/CASSANDRA-5853?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Ryan McGuire updated CASSANDRA-5853: Assignee: Kishan Karunaratne (was: Ryan McGuire) Write dtests that use json2sstable -- Key: CASSANDRA-5853 URL: https://issues.apache.org/jira/browse/CASSANDRA-5853 Project: Cassandra Issue Type: Test Reporter: Ryan McGuire Assignee: Kishan Karunaratne Currently in dtest we test sstableloader for import/export. With the bug found in CASSANDRA-5852 there appears to be a need to test the json tools as well. -- This message was sent by Atlassian JIRA (v6.2#6252)
[1/6] Reduce unit test times due to schema loading
Repository: cassandra Updated Branches: refs/heads/trunk 51016876a - d2a3827a6 http://git-wip-us.apache.org/repos/asf/cassandra/blob/d2a3827a/test/unit/org/apache/cassandra/streaming/StreamingTransferTest.java -- diff --git a/test/unit/org/apache/cassandra/streaming/StreamingTransferTest.java b/test/unit/org/apache/cassandra/streaming/StreamingTransferTest.java index 47136a0..52b2236 100644 --- a/test/unit/org/apache/cassandra/streaming/StreamingTransferTest.java +++ b/test/unit/org/apache/cassandra/streaming/StreamingTransferTest.java @@ -35,17 +35,23 @@ import org.slf4j.LoggerFactory; import org.apache.cassandra.OrderedJUnit4ClassRunner; import org.apache.cassandra.SchemaLoader; import org.apache.cassandra.Util; +import org.apache.cassandra.config.CFMetaData; import org.apache.cassandra.config.DatabaseDescriptor; +import org.apache.cassandra.config.KSMetaData; import org.apache.cassandra.db.*; import org.apache.cassandra.db.columniterator.IdentityQueryFilter; import org.apache.cassandra.db.context.CounterContext; import org.apache.cassandra.db.filter.IDiskAtomFilter; import org.apache.cassandra.db.filter.QueryFilter; +import org.apache.cassandra.db.marshal.BytesType; +import org.apache.cassandra.db.marshal.CounterColumnType; +import org.apache.cassandra.db.marshal.IntegerType; import org.apache.cassandra.dht.IPartitioner; import org.apache.cassandra.dht.Range; import org.apache.cassandra.dht.Token; import org.apache.cassandra.io.sstable.SSTableReader; import org.apache.cassandra.io.sstable.SSTableUtils; +import org.apache.cassandra.locator.SimpleStrategy; import org.apache.cassandra.service.StorageService; import org.apache.cassandra.utils.ByteBufferUtil; import org.apache.cassandra.utils.CounterId; @@ -57,16 +63,42 @@ import static org.apache.cassandra.Util.cellname; import static org.apache.cassandra.Util.column; @RunWith(OrderedJUnit4ClassRunner.class) -public class StreamingTransferTest extends SchemaLoader +public class StreamingTransferTest { private static final Logger logger = LoggerFactory.getLogger(StreamingTransferTest.class); public static final InetAddress LOCAL = FBUtilities.getBroadcastAddress(); +public static final String KEYSPACE1 = StreamingTransferTest1; +public static final String CF_STANDARD = Standard1; +public static final String CF_COUNTER = Counter1; +public static final String CF_STANDARDINT = StandardInteger1; +public static final String CF_INDEX = Indexed1; +public static final String KEYSPACE_CACHEKEY = KeyStreamingTransferTestSpace; +public static final String CF_STANDARD2 = Standard2; +public static final String CF_STANDARD3 = Standard3; +public static final String KEYSPACE2 = StreamingTransferTest2; @BeforeClass -public static void setup() throws Exception +public static void defineSchema() throws Exception { +SchemaLoader.prepareServer(); StorageService.instance.initServer(); +SchemaLoader.createKeyspace(KEYSPACE1, +SimpleStrategy.class, +KSMetaData.optsWithRF(1), +SchemaLoader.standardCFMD(KEYSPACE1, CF_STANDARD), +CFMetaData.denseCFMetaData(KEYSPACE1, CF_COUNTER, BytesType.instance).defaultValidator(CounterColumnType.instance), +CFMetaData.denseCFMetaData(KEYSPACE1, CF_STANDARDINT, IntegerType.instance), +SchemaLoader.indexCFMD(KEYSPACE1, CF_INDEX, true)); +SchemaLoader.createKeyspace(KEYSPACE2, +SimpleStrategy.class, +KSMetaData.optsWithRF(1)); +SchemaLoader.createKeyspace(KEYSPACE_CACHEKEY, +SimpleStrategy.class, +KSMetaData.optsWithRF(1), + SchemaLoader.standardCFMD(KEYSPACE_CACHEKEY, CF_STANDARD), + SchemaLoader.standardCFMD(KEYSPACE_CACHEKEY, CF_STANDARD2), + SchemaLoader.standardCFMD(KEYSPACE_CACHEKEY, CF_STANDARD3)); } /** @@ -105,7 +137,7 @@ public class StreamingTransferTest extends SchemaLoader ranges.add(new Range(p.getToken(ByteBufferUtil.bytes(key2)), p.getMinimumToken())); StreamResultFuture futureResult = new StreamPlan(StreamingTransferTest) - .requestRanges(LOCAL, Keyspace2, ranges) + .requestRanges(LOCAL, KEYSPACE2, ranges) .execute(); UUID planId = futureResult.planId; @@ -219,7 +251,7 @@ public class StreamingTransferTest extends SchemaLoader private void doTransferTable(boolean
[jira] [Resolved] (CASSANDRA-7424) cassandra authentication failure 1.2.11
[ https://issues.apache.org/jira/browse/CASSANDRA-7424?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jonathan Ellis resolved CASSANDRA-7424. --- Resolution: Invalid The users list is the right forum for this. cassandra authentication failure 1.2.11 --- Key: CASSANDRA-7424 URL: https://issues.apache.org/jira/browse/CASSANDRA-7424 Project: Cassandra Issue Type: Bug Components: Core Environment: linux 2.6.18-371.6.1.el5 x86_64, cassandra 1.2.11. 6 Node cluster, 3 in DC1 and 3 in DC2. Reporter: Paul Makkar I am having issues enabling authentication. On my 6 node cluster, I took one node and followed the instruction in the cassandra 1.2 guide, i.e. set authenticator: PasswordAuthenticator in the cassandra.yaml and restart cassandra. However, when I restart cassandra and try logging in, it hangs for a few seconds followed by the following error message: cassandra-cli -username cassandra -password cassandra Exception during authentication to the cassandra node, Verify the keyspace exists, and that you are using the correct credentials. The system_auth keyspace does exist: $ find system_auth/ system_auth/ system_auth/users system_auth/credentials system_auth/permissions I then tried setting the authoriser in the cassandra.yaml: authorizer: org.apache.cassandra.auth.CassandraAuthorizer But I get the same error. Then I disabled authentication and increased the replication factor of system_auth keyspace: update keyspace system_auth with placement_strategy = 'NetworkTopologyStrategy' and strategy_options = {DC1 : 3, DC2 : 3} and durable_writes = true; I reenabled authentication, but get the same error. I then shutdown cassandra and deleted the system, system_auth, system_traces data directories and restarted. I get the same error. Trying to log on with the cqlsh client gives this error: cql.cassandra.ttypes.AuthenticationException: AuthenticationException(why='org.apache.cassandra.exceptions.ReadTimeoutException: Operation timed out - received only 1 responses.') Can any advise what is going wrong here? Thanks in advance. -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Commented] (CASSANDRA-6755) Optimise CellName/Composite comparisons for NativeCell
[ https://issues.apache.org/jira/browse/CASSANDRA-6755?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14039117#comment-14039117 ] Jonathan Ellis commented on CASSANDRA-6755: --- We only need NOTICE for libraries we ship. Optimise CellName/Composite comparisons for NativeCell -- Key: CASSANDRA-6755 URL: https://issues.apache.org/jira/browse/CASSANDRA-6755 Project: Cassandra Issue Type: Improvement Reporter: Benedict Assignee: T Jake Luciani Priority: Minor Labels: performance Fix For: 2.1 rc2 Attachments: 6755.txt, 6755v2.txt As discussed in CASSANDRA-6694, to reduce temporary garbage generation we should minimise the incidence of CellName component extraction. The biggest win will be to perform comparisons on Cell where possible, instead of CellName, so that Native*Cell can use its extra information to avoid creating any ByteBuffer objects -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Commented] (CASSANDRA-7370) Create a new system table node_config to load cassandra.yaml config data.
[ https://issues.apache.org/jira/browse/CASSANDRA-7370?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14039151#comment-14039151 ] Robert Stupp commented on CASSANDRA-7370: - I want to give this a try. The table schema would be generated by using Java reflection to get the column names and types. PK would be 'node' as partition key and a startup timestamp column (order desc) - so the table gets some configuration change history. One row would be inserted for each node startup. Would this be a post-2.1 or trunk (3.0) task? Create a new system table node_config to load cassandra.yaml config data. --- Key: CASSANDRA-7370 URL: https://issues.apache.org/jira/browse/CASSANDRA-7370 Project: Cassandra Issue Type: Wish Components: Config Reporter: Hayato Shimizu Priority: Minor Labels: ponies Currently the node configuration information specified in cassandra.yaml can only be viewed via JMX or by looking at the file on individual machines. As an administrator, it would be extremely useful to be able to execute queries like the following example; select concurrent_reads from system.node_config; which will list all the concurrent_reads value from all of the nodes in a cluster. This will require a new table in the system keyspace and the data to be loaded (if required) during the bootstrap, and updated when MBeans attribute value updates are performed. The data from other nodes in the cluster is also required in the table. -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Commented] (CASSANDRA-7299) Cluster.Builder throws UnknownHostException when adding not existing host
[ https://issues.apache.org/jira/browse/CASSANDRA-7299?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14039167#comment-14039167 ] Robert Stupp commented on CASSANDRA-7299: - [~alexander_radzin] You're posting in the wrong JIRA. What you describe belongs to the Java driver (client) and not Cassandra (server). The JIRA you're looking for is at https://datastax-oss.atlassian.net/browse/JAVA Cluster.Builder throws UnknownHostException when adding not existing host - Key: CASSANDRA-7299 URL: https://issues.apache.org/jira/browse/CASSANDRA-7299 Project: Cassandra Issue Type: Bug Components: API Reporter: Alexander Radzin Priority: Trivial Connection to Cassandra cluster from client side is typically done using {{Cluster.Builder}} class that allows to configure the connection and then build cluster by invocation of method {{build()}}. Not all contact points must be available at creation time. If some of them start after the connection has been established they client continue its work using the newly connected endpoints. However if specific hostname is not available at the moment when builder is being created {{UnknownHostException}} is thrown. IMHO Typically applications tend to create builder on start-up when reading configuration parameters and then connect to Cassandra. For example in Spring based applications this happens during context creation. This issue prevents the application to start. This does not happen when using IP address even if it is not available at the moment. The problem is that {{Builder.addContactPoint()}} invokes {{InetAddress.getByName()}} when creating the builder. {noformat} public Builder addContactPoint(String address) { try { this.addresses.add(InetAddress.getByName(address)); return this; } catch (UnknownHostException e) { throw new IllegalArgumentException(e.getMessage()); } } {noformat} IMHO it should do this only when building the cluster. My current work around is to extend {{Cluster.Builder}} (fortunately it is public and not final) and store addresses in their textual for transforming the to instances of {{InetAddress}} only when {{build()}} is called. This is however not full solution because the {{Cluster}} itself also requires list of {{InetAddress}}. The point here is that we can create builder and cluster with unavailable contact points if string representation of IP address is supplied but cannot use symbolic computer name. This is because {{InetAddress.getByName()}} throws {{UnknownHostException}} only if host identified by name is not available: {quote} If a literal IP address is supplied, only the validity of the address format is checked. {quote} (from Javadoc of {{InetAddress.getByName()}}. -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Commented] (CASSANDRA-7283) Cassandra tar.gz builds should be pushed to a Maven repo
[ https://issues.apache.org/jira/browse/CASSANDRA-7283?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14039176#comment-14039176 ] Robert Stupp commented on CASSANDRA-7283: - Take a look at [search.maven.org|http://search.maven.org] and post a query for {{g:org.apache.cassandra AND a:apache-cassandra}} - bin.tar.gz and src.tar.gz are there since version 0.7.0 Cassandra tar.gz builds should be pushed to a Maven repo Key: CASSANDRA-7283 URL: https://issues.apache.org/jira/browse/CASSANDRA-7283 Project: Cassandra Issue Type: Wish Components: Packaging Reporter: Clinton Kelly Priority: Minor Such a feature would allow folks to package a Cassandra build in an archive created with the Maven assembly plugin. -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Commented] (CASSANDRA-6917) enum data type
[ https://issues.apache.org/jira/browse/CASSANDRA-6917?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14039213#comment-14039213 ] Robert Stupp commented on CASSANDRA-6917: - Such a type should also be usable in collections (set, map) And it would be great not to copy Java enum semantics. Means: not just use an incrementing ordinal but let the user decide how the mapping should be ; allow spares. For example a column type like this: {{enum foo1='foo', 3='bar', 42='baz'}}. To make it really complex: what about an enum that maps a ByteBuffer to a ByteBuffer internally? This makes type definition really complicated: {{enum fooint, text(1='foo', 3='bar', 42='baz')}} It needs to be bi-directional to be usable for 4175. enum data type -- Key: CASSANDRA-6917 URL: https://issues.apache.org/jira/browse/CASSANDRA-6917 Project: Cassandra Issue Type: Improvement Components: Core Reporter: Benedict Priority: Minor Labels: performance It seems like it would be useful to support an enum data type, that automatically converts string data from the user into a fixed-width data type with guaranteed uniqueness across the cluster. This data would be replicated to all nodes for lookup, but ideally would use only the keyspace RF to determine nodes for coordinating quorum writes/consistency. This would not only permit improved local disk and inter-node network IO for symbology information (e.g. stock tickers, ISINs, etc), but also potentially for column identifiers also, which are currently stored as their full string representation. It should be possible then with later updates to propagate the enum map (lazily) to clients through the native protocol, reducing network IO further. -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Commented] (CASSANDRA-7370) Create a new system table node_config to load cassandra.yaml config data.
[ https://issues.apache.org/jira/browse/CASSANDRA-7370?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14039221#comment-14039221 ] Brandon Williams commented on CASSANDRA-7370: - 3.0. I'm not too crazy about this, however. I can almost guarantee we're going to add some mbean and forget to update this table at some point, and it seems to me an administrator is going to need JMX anyway to perform any operation that nodetool does. Unless they also want INSERT into gossip set ip = null where ip = 192.168.0.1 to remove a node. Perhaps a more reasonable approach would be to have a nodetool getconfig item operation instead of abusing the storage system with phantom tables. Create a new system table node_config to load cassandra.yaml config data. --- Key: CASSANDRA-7370 URL: https://issues.apache.org/jira/browse/CASSANDRA-7370 Project: Cassandra Issue Type: Wish Components: Config Reporter: Hayato Shimizu Priority: Minor Labels: ponies Currently the node configuration information specified in cassandra.yaml can only be viewed via JMX or by looking at the file on individual machines. As an administrator, it would be extremely useful to be able to execute queries like the following example; select concurrent_reads from system.node_config; which will list all the concurrent_reads value from all of the nodes in a cluster. This will require a new table in the system keyspace and the data to be loaded (if required) during the bootstrap, and updated when MBeans attribute value updates are performed. The data from other nodes in the cluster is also required in the table. -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Commented] (CASSANDRA-6795) Forceful restart of C* during compaction on windows leads to exceptions on startup in scrubDataDirectories
[ https://issues.apache.org/jira/browse/CASSANDRA-6795?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14039226#comment-14039226 ] Joshua McKenzie commented on CASSANDRA-6795: Ironically, I'm having a hard time reproducing this problem now. With I/O changes in 3.x these types of problems should be gone, so my primary concern is to make sure the 2.0.X releases are safe. [~ala.alkhaldi] - have you had this exception pop up during any of your Windows work thus far? Forceful restart of C* during compaction on windows leads to exceptions on startup in scrubDataDirectories -- Key: CASSANDRA-6795 URL: https://issues.apache.org/jira/browse/CASSANDRA-6795 Project: Cassandra Issue Type: Bug Environment: Windows 7, quad core, 8GB RAM, single Cassandra node, Cassandra 2.0.5 with leakdetect patch from CASSANDRA-6283 Reporter: Joshua McKenzie Assignee: Joshua McKenzie Priority: Minor Labels: Windows From comments on CASSANDRA-6736 (Bill Mitchell): Trying to be polite, I started using Drain to shutdown Cassandra before rebooting the machine. In one case, this provoked numerous ThreadPoolExecutor has shutdown messages underneath the compactor: INFO [RMI TCP Connection(2095)-127.0.0.1] 2014-02-24 08:34:23,743 StorageService.java (line 947) DRAINING: starting drain process INFO [RMI TCP Connection(2095)-127.0.0.1] 2014-02-24 08:34:23,783 ThriftServer.java (line 141) Stop listening to thrift clients INFO [RMI TCP Connection(2095)-127.0.0.1] 2014-02-24 08:34:24,980 Server.java (line 181) Stop listening for CQL clients INFO [RMI TCP Connection(2095)-127.0.0.1] 2014-02-24 08:34:24,980 Gossiper.java (line 1251) Announcing shutdown INFO [RMI TCP Connection(2095)-127.0.0.1] 2014-02-24 08:34:27,001 MessagingService.java (line 665) Waiting for messaging service to quiesce INFO [RMI TCP Connection(2095)-127.0.0.1] 2014-02-24 08:34:27,040 ColumnFamilyStore.java (line 784) Enqueuing flush of Memtable-sr@1217138300(1825983/4411193 serialized/live bytes, 29946 ops) INFO [RMI TCP Connection(2095)-127.0.0.1] 2014-02-24 08:34:27,040 ColumnFamilyStore.java (line 784) Enqueuing flush of Memtable-etol@703118381(2963818/46129889 serialized/live bytes, 68926 ops) INFO [FlushWriter:272] 2014-02-24 08:34:27,040 Memtable.java (line 333) Writing Memtable-sr@1217138300(1825983/4411193 serialized/live bytes, 29946 ops) INFO [RMI TCP Connection(2095)-127.0.0.1] 2014-02-24 08:34:27,054 ColumnFamilyStore.java (line 784) Enqueuing flush of Memtable-events@899982591(188/1880 serialized/live bytes, 7 ops) INFO [RMI TCP Connection(2095)-127.0.0.1] 2014-02-24 08:34:27,075 ColumnFamilyStore.java (line 784) Enqueuing flush of Memtable-events_timeline@1379706298(16/160 serialized/live bytes, 1 ops) INFO [FlushWriter:273] 2014-02-24 08:34:27,075 Memtable.java (line 333) Writing Memtable-etol@703118381(2963818/46129889 serialized/live bytes, 68926 ops) INFO [ACCEPT-localhost/127.0.0.1] 2014-02-24 08:34:27,144 MessagingService.java (line 875) MessagingService has terminated the accept() thread INFO [FlushWriter:272] 2014-02-24 08:34:27,411 Memtable.java (line 373) Completed flushing C:\Program Files\DataStax Community\data\data\testdb_1393207231382\sr\testdb_1393207231382-sr-jb-473-Data.db (428854 bytes) for commitlog position ReplayPosition(segmentId=1393178353775, position=18771262) INFO [FlushWriter:272] 2014-02-24 08:34:27,411 Memtable.java (line 333) Writing Memtable-events@899982591(188/1880 serialized/live bytes, 7 ops) INFO [FlushWriter:273] 2014-02-24 08:34:27,932 Memtable.java (line 373) Completed flushing C:\Program Files\DataStax Community\data\data\testdb_1393207231382\etol\testdb_1393207231382-etol-jb-1563-Data.db (1012805 bytes) for commitlog position ReplayPosition(segmentId=1393178353775, position=18771262) INFO [FlushWriter:273] 2014-02-24 08:34:27,933 Memtable.java (line 333) Writing Memtable-events_timeline@1379706298(16/160 serialized/live bytes, 1 ops) INFO [FlushWriter:272] 2014-02-24 08:34:28,366 Memtable.java (line 373) Completed flushing C:\Program Files\DataStax Community\data\data\OpsCenter\events\OpsCenter-events-jb-32-Data.db (184 bytes) for commitlog position ReplayPosition(segmentId=1393178353775, position=18771262) INFO [FlushWriter:273] 2014-02-24 08:34:28,456 Memtable.java (line 373) Completed flushing C:\Program Files\DataStax Community\data\data\OpsCenter\events_timeline\OpsCenter-events_timeline-jb-39-Data.db (47 bytes) for commitlog position ReplayPosition(segmentId=1393178353775, position=18771262) INFO [RMI TCP Connection(2095)-127.0.0.1] 2014-02-24 08:34:28,457 ColumnFamilyStore.java (line 784)
[jira] [Resolved] (CASSANDRA-7299) Cluster.Builder throws UnknownHostException when adding not existing host
[ https://issues.apache.org/jira/browse/CASSANDRA-7299?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tyler Hobbs resolved CASSANDRA-7299. Resolution: Invalid Cluster.Builder throws UnknownHostException when adding not existing host - Key: CASSANDRA-7299 URL: https://issues.apache.org/jira/browse/CASSANDRA-7299 Project: Cassandra Issue Type: Bug Components: API Reporter: Alexander Radzin Priority: Trivial Connection to Cassandra cluster from client side is typically done using {{Cluster.Builder}} class that allows to configure the connection and then build cluster by invocation of method {{build()}}. Not all contact points must be available at creation time. If some of them start after the connection has been established they client continue its work using the newly connected endpoints. However if specific hostname is not available at the moment when builder is being created {{UnknownHostException}} is thrown. IMHO Typically applications tend to create builder on start-up when reading configuration parameters and then connect to Cassandra. For example in Spring based applications this happens during context creation. This issue prevents the application to start. This does not happen when using IP address even if it is not available at the moment. The problem is that {{Builder.addContactPoint()}} invokes {{InetAddress.getByName()}} when creating the builder. {noformat} public Builder addContactPoint(String address) { try { this.addresses.add(InetAddress.getByName(address)); return this; } catch (UnknownHostException e) { throw new IllegalArgumentException(e.getMessage()); } } {noformat} IMHO it should do this only when building the cluster. My current work around is to extend {{Cluster.Builder}} (fortunately it is public and not final) and store addresses in their textual for transforming the to instances of {{InetAddress}} only when {{build()}} is called. This is however not full solution because the {{Cluster}} itself also requires list of {{InetAddress}}. The point here is that we can create builder and cluster with unavailable contact points if string representation of IP address is supplied but cannot use symbolic computer name. This is because {{InetAddress.getByName()}} throws {{UnknownHostException}} only if host identified by name is not available: {quote} If a literal IP address is supplied, only the validity of the address format is checked. {quote} (from Javadoc of {{InetAddress.getByName()}}. -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Commented] (CASSANDRA-7370) Create a new system table node_config to load cassandra.yaml config data.
[ https://issues.apache.org/jira/browse/CASSANDRA-7370?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14039248#comment-14039248 ] Tupshin Harper commented on CASSANDRA-7370: --- i'm +1 on abusing the system with virtual/phantom tables. they are a well established rdbms pattern that is conceptually simple (albeit not particularly elegant) and well understood. reflection could be leveraged to eliminate the need to keep an up to date list Create a new system table node_config to load cassandra.yaml config data. --- Key: CASSANDRA-7370 URL: https://issues.apache.org/jira/browse/CASSANDRA-7370 Project: Cassandra Issue Type: Wish Components: Config Reporter: Hayato Shimizu Priority: Minor Labels: ponies Currently the node configuration information specified in cassandra.yaml can only be viewed via JMX or by looking at the file on individual machines. As an administrator, it would be extremely useful to be able to execute queries like the following example; select concurrent_reads from system.node_config; which will list all the concurrent_reads value from all of the nodes in a cluster. This will require a new table in the system keyspace and the data to be loaded (if required) during the bootstrap, and updated when MBeans attribute value updates are performed. The data from other nodes in the cluster is also required in the table. -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Commented] (CASSANDRA-6917) enum data type
[ https://issues.apache.org/jira/browse/CASSANDRA-6917?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14039250#comment-14039250 ] Benedict commented on CASSANDRA-6917: - My main goal with enums is only uniquely representing a string value efficiently. Supporting custom orderings on the data might be a possibility for enums defined _up front_, however in this case I want to support denormalising arbitrary string data, the universe of which could be moderately large (certainly 100k+) and is not necessarily known in advance. An enum that must be defined up front with a predetermined ordering is frankly just as easy to implement client-side, so whilst it might be a nice feature to support eventually, I consider it out of scope for this ticket, and I think guaranteeing any specific order may be undesirable for write performance. enum data type -- Key: CASSANDRA-6917 URL: https://issues.apache.org/jira/browse/CASSANDRA-6917 Project: Cassandra Issue Type: Improvement Components: Core Reporter: Benedict Priority: Minor Labels: performance It seems like it would be useful to support an enum data type, that automatically converts string data from the user into a fixed-width data type with guaranteed uniqueness across the cluster. This data would be replicated to all nodes for lookup, but ideally would use only the keyspace RF to determine nodes for coordinating quorum writes/consistency. This would not only permit improved local disk and inter-node network IO for symbology information (e.g. stock tickers, ISINs, etc), but also potentially for column identifiers also, which are currently stored as their full string representation. It should be possible then with later updates to propagate the enum map (lazily) to clients through the native protocol, reducing network IO further. -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Updated] (CASSANDRA-7423) make user defined types useful for non-trivial use cases
[ https://issues.apache.org/jira/browse/CASSANDRA-7423?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tupshin Harper updated CASSANDRA-7423: -- Description: Since user defined types were implemented in CASSANDRA-5590 as blobs (you have to rewrite the entire type in order to make any modifications), they can't be safely used without LWT for any operation that wants to modify a subset of the UDT's fields by any client process that is not authoritative for the entire blob. When trying to use UDTs to model complex records (particularly with nesting), this is not an exceptional circumstance, this is the totally expected normal situation. The use of UDTs for anything non-trivial is harmful to either performance or consistency or both. edit: to clarify, i believe that most potential uses of UDTs should be considered anti-patterns until/unless we have field-level r/w access to individual elements of the UDT, with individual timestamps and standard LWW semantics was: Since user defined types were implemented in CASSANDRA-5590 as blobs (you have to rewrite the entire type in order to make any modifications), they can't be safely used without LWT for any operation that wants to modify a subset of the UDT's fields by any client process that is not authoritative for the entire blob. When trying to use UDTs to model complex records (particularly with nesting), this is not an exceptional circumstance, this is the totally expected normal situation. The use of UDTs for anything non-trivial is harmful to either performance or consistency or both. make user defined types useful for non-trivial use cases Key: CASSANDRA-7423 URL: https://issues.apache.org/jira/browse/CASSANDRA-7423 Project: Cassandra Issue Type: Improvement Components: API, Core Reporter: Tupshin Harper Since user defined types were implemented in CASSANDRA-5590 as blobs (you have to rewrite the entire type in order to make any modifications), they can't be safely used without LWT for any operation that wants to modify a subset of the UDT's fields by any client process that is not authoritative for the entire blob. When trying to use UDTs to model complex records (particularly with nesting), this is not an exceptional circumstance, this is the totally expected normal situation. The use of UDTs for anything non-trivial is harmful to either performance or consistency or both. edit: to clarify, i believe that most potential uses of UDTs should be considered anti-patterns until/unless we have field-level r/w access to individual elements of the UDT, with individual timestamps and standard LWW semantics -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Commented] (CASSANDRA-7370) Create a new system table node_config to load cassandra.yaml config data.
[ https://issues.apache.org/jira/browse/CASSANDRA-7370?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14039277#comment-14039277 ] Robert Stupp commented on CASSANDRA-7370: - OK - the table should reflect configuration changes if for example someone changes the compaction throughput. From a quick view I see that {{DatabaseDescriptor}} performs updates in {{Config}} - is {{DatabaseDescriptor}} the only immediate source where Config is modified or would it be better to search for all accessors of the fields in Config? If the stuff intended by this issue should be complete, it would make sense to also add the fields of {{DatabaseDescriptor}} (or put them into a separate table). But I do not know if the {{system}} keyspace is a good place for these view config tables due to its 'LocalStratecy'. If an admin wants to view the configuration, he issues the query against 'any' node and does not want to explicitly connect to that node. So maybe 'system_traces' if not even a completely new KS should be used. But this has no direct influence to the implementation. Using persistent tables has the benefit that anyone can track configuration changes of any node - whereas JMX only shows the current status of a particular node. Such a KS could also be used to log really important status changes like node bootstrapped, node startup, node shutdown. It should however not be a storage for metrics or log data in general (high write rates). But in any way it must be clear, that such tables are read only - not something that magically changes system config via DML. This should be, if requested and required, done by special CQL statements. I'll open a separate ticket not to lose the idea of nodetool set config foo=bar or ALTER SYSTEM SET CONFIG foo=bar. Create a new system table node_config to load cassandra.yaml config data. --- Key: CASSANDRA-7370 URL: https://issues.apache.org/jira/browse/CASSANDRA-7370 Project: Cassandra Issue Type: Wish Components: Config Reporter: Hayato Shimizu Priority: Minor Labels: ponies Currently the node configuration information specified in cassandra.yaml can only be viewed via JMX or by looking at the file on individual machines. As an administrator, it would be extremely useful to be able to execute queries like the following example; select concurrent_reads from system.node_config; which will list all the concurrent_reads value from all of the nodes in a cluster. This will require a new table in the system keyspace and the data to be loaded (if required) during the bootstrap, and updated when MBeans attribute value updates are performed. The data from other nodes in the cluster is also required in the table. -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Created] (CASSANDRA-7426) ALTER SYSTEM / nodetool enhancements
Robert Stupp created CASSANDRA-7426: --- Summary: ALTER SYSTEM / nodetool enhancements Key: CASSANDRA-7426 URL: https://issues.apache.org/jira/browse/CASSANDRA-7426 Project: Cassandra Issue Type: Improvement Reporter: Robert Stupp CASSANDRA-7370 mentions the idea to enhance nodetool to do something like {{nodetool set config foo='bar'}}. This could also be done via a special CQL {{ALTER SYSTEM SET foo='bar';}}. In general this ticket is just meant not keep in mind that there should be some option to change configuration using a generic approach. Either implementation (nodetool via JMX or CQL statement) should internally end at the same code. -- This message was sent by Atlassian JIRA (v6.2#6252)
[3/6] git commit: revert #7275
revert #7275 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/93f54fc4 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/93f54fc4 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/93f54fc4 Branch: refs/heads/cassandra-2.1 Commit: 93f54fc44461c995ff30d42f284c78d1a9a02723 Parents: cccdcb5 Author: Jonathan Ellis jbel...@apache.org Authored: Fri Jun 20 15:31:52 2014 -0500 Committer: Jonathan Ellis jbel...@apache.org Committed: Fri Jun 20 15:31:52 2014 -0500 -- CHANGES.txt| 1 - src/java/org/apache/cassandra/db/Memtable.java | 14 -- 2 files changed, 4 insertions(+), 11 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/93f54fc4/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 186b4a1..d84f267 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -2,7 +2,6 @@ * Handle possible integer overflow in FastByteArrayOutputStream (CASSANDRA-7373) * cqlsh: 'ascii' values weren't formatted as text (CASSANDRA-7407) * cqlsh: ignore .cassandra permission errors (CASSANDRA-7266) - * Errors in FlushRunnable may leave threads hung (CASSANDRA-7275) * reduce failure detector initial value to 2s (CASSANDRA-7307) * Fix problem truncating on a node that was previously in a dead state (CASSANDRA-7318) * Don't insert tombstones that hide indexed values into 2i (CASSANDRA-7268) http://git-wip-us.apache.org/repos/asf/cassandra/blob/93f54fc4/src/java/org/apache/cassandra/db/Memtable.java -- diff --git a/src/java/org/apache/cassandra/db/Memtable.java b/src/java/org/apache/cassandra/db/Memtable.java index 90f0466..b6fceda 100644 --- a/src/java/org/apache/cassandra/db/Memtable.java +++ b/src/java/org/apache/cassandra/db/Memtable.java @@ -380,17 +380,11 @@ public class Memtable protected void runWith(File sstableDirectory) throws Exception { -try -{ -assert sstableDirectory != null : Flush task is not bound to any disk; +assert sstableDirectory != null : Flush task is not bound to any disk; -SSTableReader sstable = writeSortedContents(context, sstableDirectory); -cfs.replaceFlushed(Memtable.this, sstable); -} -finally -{ -latch.countDown(); -} +SSTableReader sstable = writeSortedContents(context, sstableDirectory); +cfs.replaceFlushed(Memtable.this, sstable); +latch.countDown(); } protected Directories getDirectories()
[6/6] git commit: merge from 2.0
merge from 2.0 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/a7ad9d2a Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/a7ad9d2a Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/a7ad9d2a Branch: refs/heads/cassandra-2.1 Commit: a7ad9d2a5ea50f3b20b7a91e366a107f0c9199a6 Parents: 9dcdb8b 90058a9 Author: Jonathan Ellis jbel...@apache.org Authored: Fri Jun 20 15:33:44 2014 -0500 Committer: Jonathan Ellis jbel...@apache.org Committed: Fri Jun 20 15:33:44 2014 -0500 -- CHANGES.txt | 1 - 1 file changed, 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/a7ad9d2a/CHANGES.txt --
[2/6] git commit: revert #7275
revert #7275 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/93f54fc4 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/93f54fc4 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/93f54fc4 Branch: refs/heads/cassandra-2.0 Commit: 93f54fc44461c995ff30d42f284c78d1a9a02723 Parents: cccdcb5 Author: Jonathan Ellis jbel...@apache.org Authored: Fri Jun 20 15:31:52 2014 -0500 Committer: Jonathan Ellis jbel...@apache.org Committed: Fri Jun 20 15:31:52 2014 -0500 -- CHANGES.txt| 1 - src/java/org/apache/cassandra/db/Memtable.java | 14 -- 2 files changed, 4 insertions(+), 11 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/93f54fc4/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 186b4a1..d84f267 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -2,7 +2,6 @@ * Handle possible integer overflow in FastByteArrayOutputStream (CASSANDRA-7373) * cqlsh: 'ascii' values weren't formatted as text (CASSANDRA-7407) * cqlsh: ignore .cassandra permission errors (CASSANDRA-7266) - * Errors in FlushRunnable may leave threads hung (CASSANDRA-7275) * reduce failure detector initial value to 2s (CASSANDRA-7307) * Fix problem truncating on a node that was previously in a dead state (CASSANDRA-7318) * Don't insert tombstones that hide indexed values into 2i (CASSANDRA-7268) http://git-wip-us.apache.org/repos/asf/cassandra/blob/93f54fc4/src/java/org/apache/cassandra/db/Memtable.java -- diff --git a/src/java/org/apache/cassandra/db/Memtable.java b/src/java/org/apache/cassandra/db/Memtable.java index 90f0466..b6fceda 100644 --- a/src/java/org/apache/cassandra/db/Memtable.java +++ b/src/java/org/apache/cassandra/db/Memtable.java @@ -380,17 +380,11 @@ public class Memtable protected void runWith(File sstableDirectory) throws Exception { -try -{ -assert sstableDirectory != null : Flush task is not bound to any disk; +assert sstableDirectory != null : Flush task is not bound to any disk; -SSTableReader sstable = writeSortedContents(context, sstableDirectory); -cfs.replaceFlushed(Memtable.this, sstable); -} -finally -{ -latch.countDown(); -} +SSTableReader sstable = writeSortedContents(context, sstableDirectory); +cfs.replaceFlushed(Memtable.this, sstable); +latch.countDown(); } protected Directories getDirectories()
[4/6] 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/90058a97 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/90058a97 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/90058a97 Branch: refs/heads/cassandra-2.1 Commit: 90058a97ac07d0408f1b8f1b4dae66a22832981c Parents: 9da742d 93f54fc Author: Jonathan Ellis jbel...@apache.org Authored: Fri Jun 20 15:32:26 2014 -0500 Committer: Jonathan Ellis jbel...@apache.org Committed: Fri Jun 20 15:32:26 2014 -0500 -- CHANGES.txt| 1 - src/java/org/apache/cassandra/db/Memtable.java | 14 -- 2 files changed, 4 insertions(+), 11 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/90058a97/CHANGES.txt -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/90058a97/src/java/org/apache/cassandra/db/Memtable.java --
[1/6] git commit: revert #7275
Repository: cassandra Updated Branches: refs/heads/cassandra-1.2 cccdcb5da - 93f54fc44 refs/heads/cassandra-2.0 9da742d5f - 90058a97a refs/heads/cassandra-2.1 9dcdb8b0b - a7ad9d2a5 revert #7275 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/93f54fc4 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/93f54fc4 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/93f54fc4 Branch: refs/heads/cassandra-1.2 Commit: 93f54fc44461c995ff30d42f284c78d1a9a02723 Parents: cccdcb5 Author: Jonathan Ellis jbel...@apache.org Authored: Fri Jun 20 15:31:52 2014 -0500 Committer: Jonathan Ellis jbel...@apache.org Committed: Fri Jun 20 15:31:52 2014 -0500 -- CHANGES.txt| 1 - src/java/org/apache/cassandra/db/Memtable.java | 14 -- 2 files changed, 4 insertions(+), 11 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/93f54fc4/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 186b4a1..d84f267 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -2,7 +2,6 @@ * Handle possible integer overflow in FastByteArrayOutputStream (CASSANDRA-7373) * cqlsh: 'ascii' values weren't formatted as text (CASSANDRA-7407) * cqlsh: ignore .cassandra permission errors (CASSANDRA-7266) - * Errors in FlushRunnable may leave threads hung (CASSANDRA-7275) * reduce failure detector initial value to 2s (CASSANDRA-7307) * Fix problem truncating on a node that was previously in a dead state (CASSANDRA-7318) * Don't insert tombstones that hide indexed values into 2i (CASSANDRA-7268) http://git-wip-us.apache.org/repos/asf/cassandra/blob/93f54fc4/src/java/org/apache/cassandra/db/Memtable.java -- diff --git a/src/java/org/apache/cassandra/db/Memtable.java b/src/java/org/apache/cassandra/db/Memtable.java index 90f0466..b6fceda 100644 --- a/src/java/org/apache/cassandra/db/Memtable.java +++ b/src/java/org/apache/cassandra/db/Memtable.java @@ -380,17 +380,11 @@ public class Memtable protected void runWith(File sstableDirectory) throws Exception { -try -{ -assert sstableDirectory != null : Flush task is not bound to any disk; +assert sstableDirectory != null : Flush task is not bound to any disk; -SSTableReader sstable = writeSortedContents(context, sstableDirectory); -cfs.replaceFlushed(Memtable.this, sstable); -} -finally -{ -latch.countDown(); -} +SSTableReader sstable = writeSortedContents(context, sstableDirectory); +cfs.replaceFlushed(Memtable.this, sstable); +latch.countDown(); } protected Directories getDirectories()
[5/6] 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/90058a97 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/90058a97 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/90058a97 Branch: refs/heads/cassandra-2.0 Commit: 90058a97ac07d0408f1b8f1b4dae66a22832981c Parents: 9da742d 93f54fc Author: Jonathan Ellis jbel...@apache.org Authored: Fri Jun 20 15:32:26 2014 -0500 Committer: Jonathan Ellis jbel...@apache.org Committed: Fri Jun 20 15:32:26 2014 -0500 -- CHANGES.txt| 1 - src/java/org/apache/cassandra/db/Memtable.java | 14 -- 2 files changed, 4 insertions(+), 11 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/90058a97/CHANGES.txt -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/90058a97/src/java/org/apache/cassandra/db/Memtable.java --
[jira] [Commented] (CASSANDRA-7275) Errors in FlushRunnable may leave threads hung
[ https://issues.apache.org/jira/browse/CASSANDRA-7275?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14039316#comment-14039316 ] Jonathan Ellis commented on CASSANDRA-7275: --- I've reverted the original commit pending a new fix, so we don't block 1.2.17 or 2.0.9 in the meantime. Errors in FlushRunnable may leave threads hung -- Key: CASSANDRA-7275 URL: https://issues.apache.org/jira/browse/CASSANDRA-7275 Project: Cassandra Issue Type: Bug Components: Core Reporter: Tyler Hobbs Assignee: Yuki Morishita Priority: Minor Fix For: 1.2.17, 2.0.9 Attachments: 0001-Move-latch.countDown-into-finally-block.patch, 7252-2.0-v2.txt In Memtable.FlushRunnable, the CountDownLatch will never be counted down if there are errors, which results in hanging any threads that are waiting for the flush to complete. For example, an error like this causes the problem: {noformat} ERROR [FlushWriter:474] 2014-05-20 12:10:31,137 CassandraDaemon.java (line 198) Exception in thread Thread[FlushWriter:474,5,main] java.lang.IllegalArgumentException at java.nio.Buffer.position(Unknown Source) at org.apache.cassandra.db.marshal.AbstractCompositeType.getBytes(AbstractCompositeType.java:64) at org.apache.cassandra.db.marshal.AbstractCompositeType.getWithShortLength(AbstractCompositeType.java:72) at org.apache.cassandra.db.marshal.AbstractCompositeType.split(AbstractCompositeType.java:138) at org.apache.cassandra.io.sstable.ColumnNameHelper.minComponents(ColumnNameHelper.java:103) at org.apache.cassandra.db.ColumnFamily.getColumnStats(ColumnFamily.java:439) at org.apache.cassandra.io.sstable.SSTableWriter.append(SSTableWriter.java:194) at org.apache.cassandra.db.Memtable$FlushRunnable.writeSortedContents(Memtable.java:397) at org.apache.cassandra.db.Memtable$FlushRunnable.runWith(Memtable.java:350) at org.apache.cassandra.io.util.DiskAwareRunnable.runMayThrow(DiskAwareRunnable.java:48) at org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:28) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) {noformat} -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Created] (CASSANDRA-7427) Build C* without Javadoc
Robert Stupp created CASSANDRA-7427: --- Summary: Build C* without Javadoc Key: CASSANDRA-7427 URL: https://issues.apache.org/jira/browse/CASSANDRA-7427 Project: Cassandra Issue Type: Improvement Reporter: Robert Stupp Assignee: Robert Stupp Attachments: build-without-javadoc.diff Here's a small patch for {{build.xml}} to reduce build time for local builds. It just adds an {{unless=no-javadoc}} to the {{javadoc}} task. When doing an (incremental, not initial) C*-build with {{ant -Dno-javadoc=1 artifacts}}, build time is less than 10 seconds. -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Commented] (CASSANDRA-7423) make user defined types useful for non-trivial use cases
[ https://issues.apache.org/jira/browse/CASSANDRA-7423?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14039352#comment-14039352 ] Brian Hess commented on CASSANDRA-7423: I think what we want from UDTs is that the individual elements of the UDT are atomic pieces of data, just like columns of a CQL table. They should be able to be retrieved on their own (which they are as implemented), as well as inserted/updated on their own (without having to get/modify/set the whole UDT). The latter one is not supported as implemented and is a real issue. One thing that comes out of them not being atomic pieces of data is that there is no safe way to update the UDT, but that is just one example. make user defined types useful for non-trivial use cases Key: CASSANDRA-7423 URL: https://issues.apache.org/jira/browse/CASSANDRA-7423 Project: Cassandra Issue Type: Improvement Components: API, Core Reporter: Tupshin Harper Since user defined types were implemented in CASSANDRA-5590 as blobs (you have to rewrite the entire type in order to make any modifications), they can't be safely used without LWT for any operation that wants to modify a subset of the UDT's fields by any client process that is not authoritative for the entire blob. When trying to use UDTs to model complex records (particularly with nesting), this is not an exceptional circumstance, this is the totally expected normal situation. The use of UDTs for anything non-trivial is harmful to either performance or consistency or both. edit: to clarify, i believe that most potential uses of UDTs should be considered anti-patterns until/unless we have field-level r/w access to individual elements of the UDT, with individual timestamps and standard LWW semantics -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Commented] (CASSANDRA-6915) Show storage rows in cqlsh
[ https://issues.apache.org/jira/browse/CASSANDRA-6915?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14039359#comment-14039359 ] Robert Stupp commented on CASSANDRA-6915: - In RDBMS the keyword {{EXPLAIN}} describes the access path for a DML statement. This is similar to C* trace functionality. Maybe it's an option to add some {{EXPLAIN}} support to cqlsh using a macro - but without actually just simulating writes (so it implies native protocol changes and C* code changes). {{EXPLAIN statement:}} {noformat} TRACING ON; statement; TRACING OFF; {noformat} Show storage rows in cqlsh -- Key: CASSANDRA-6915 URL: https://issues.apache.org/jira/browse/CASSANDRA-6915 Project: Cassandra Issue Type: Improvement Components: Tools Reporter: Robbie Strickland Labels: cqlsh In Cassandra it's super important to understand how your CQL schema translates to the underlying storage rows. Right now the only way to see this is to create the schema in cqlsh, write some data, then query it using the CLI. Obviously we don't want to be encouraging people to use the CLI when it's supposed to be deprecated. So I'd like to see a function in cqlsh to do this. -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Commented] (CASSANDRA-6910) Better table structure display in cqlsh
[ https://issues.apache.org/jira/browse/CASSANDRA-6910?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14039358#comment-14039358 ] Robert Stupp commented on CASSANDRA-6910: - Why not also use distinct colors for PK, CK and other columns with {{DESCRIBE TABLE}} ? Better table structure display in cqlsh --- Key: CASSANDRA-6910 URL: https://issues.apache.org/jira/browse/CASSANDRA-6910 Project: Cassandra Issue Type: Improvement Components: Tools Reporter: Tupshin Harper Priority: Minor Labels: lhf It should be possible to make it more immediately obvious what the structure of your CQL table is from cqlsh. Two minor enhancements could go a long way: 1) If there are no results display the column headers anyway. Right now, if you are trying to do a query and get no results, it's common to need to display the table schema to figure out what you did wrong. Having the columns displayed whenever you do a query wouldn't get in the way, and would provide a more visual way than by describing the table. 2) Along with the first one, if we could highlight the partition/clustering columns in different colors, it would be much more intuitively understandable what the underlying partition structure is. tl;dr: the forms below should each have distinct visual representation when displaying the column headers, and the column headers should always be shown. CREATE TABLE usertest ( userid text, email text, name text, PRIMARY KEY (userid) ) CREATE TABLE usertest2 ( userid text, email text, name text, PRIMARY KEY (userid, email) ) CREATE TABLE usertest3 ( userid text, email text, name text, PRIMARY KEY ((userid, email)) ) -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Commented] (CASSANDRA-6487) Log WARN on large batch sizes
[ https://issues.apache.org/jira/browse/CASSANDRA-6487?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14039360#comment-14039360 ] Jon Travis commented on CASSANDRA-6487: --- I'm batching on a single partition only. I have a table defined as: CREATE TABLE store.blobs ( account_name text, m_guid text, m_blob text, PRIMARY KEY (account_name, m_guid)) I am using a prepared statement with an unlogged batch to insert many blobs into the same account at all once: INSERT INTO blobs (account_name, m_guid, m_blob) VALUES (?, ?, ?) My understanding is that this is a pretty decent way of doing it: http://www.datastax.com/dev/blog/client-side-improvements-in-cassandra-2-0 (re Batching Prepared Statements). I could do these all individually, but there would clearly be some overhead. So, the options are to not use the prepared statement / batch, jack up the threshold, or change the Cassandra code to avoid logging on unlogged batches.. Log WARN on large batch sizes - Key: CASSANDRA-6487 URL: https://issues.apache.org/jira/browse/CASSANDRA-6487 Project: Cassandra Issue Type: Improvement Reporter: Patrick McFadin Assignee: Lyuben Todorov Priority: Minor Fix For: 2.0.8 Attachments: 6487-cassandra-2.0.patch, 6487-cassandra-2.0_v2.patch Large batches on a coordinator can cause a lot of node stress. I propose adding a WARN log entry if batch sizes go beyond a configurable size. This will give more visibility to operators on something that can happen on the developer side. New yaml setting with 5k default. {{# Log WARN on any batch size exceeding this value. 5k by default.}} {{# Caution should be taken on increasing the size of this threshold as it can lead to node instability.}} {{batch_size_warn_threshold: 5k}} -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Commented] (CASSANDRA-7351) Make BEGIN COUNTER BATCH syntax optional
[ https://issues.apache.org/jira/browse/CASSANDRA-7351?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14039363#comment-14039363 ] Aleksey Yeschenko commented on CASSANDRA-7351: -- LGTM, +1 Make BEGIN COUNTER BATCH syntax optional Key: CASSANDRA-7351 URL: https://issues.apache.org/jira/browse/CASSANDRA-7351 Project: Cassandra Issue Type: Improvement Reporter: T Jake Luciani Assignee: T Jake Luciani Priority: Trivial Labels: cql3 Fix For: 2.1 rc2 Attachments: 7351-rebase.txt, 7351.txt, 7351v2.txt, 7351v3.txt AFAIK there is no need to supply COUNTER in Batch statements. The server should just throw an syntax error if you try to mix counter and non counter statements in the same batch. What value does this keyword add? -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Created] (CASSANDRA-7428) clean out DD.inMemoryCompactionLimit
Jonathan Ellis created CASSANDRA-7428: - Summary: clean out DD.inMemoryCompactionLimit Key: CASSANDRA-7428 URL: https://issues.apache.org/jira/browse/CASSANDRA-7428 Project: Cassandra Issue Type: Bug Reporter: Jonathan Ellis Priority: Minor Fix For: 2.1.0 still used in a couple places -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Created] (CASSANDRA-7429) merge commit_failure_policy to 2.1
Jonathan Ellis created CASSANDRA-7429: - Summary: merge commit_failure_policy to 2.1 Key: CASSANDRA-7429 URL: https://issues.apache.org/jira/browse/CASSANDRA-7429 Project: Cassandra Issue Type: Bug Components: Core Reporter: Jonathan Ellis Assignee: Benedict Fix For: 2.1 rc2 -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Updated] (CASSANDRA-7427) Build C* without Javadoc
[ https://issues.apache.org/jira/browse/CASSANDRA-7427?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jonathan Ellis updated CASSANDRA-7427: -- Reviewer: Dave Brosius Clever. /cc [~dbrosius] Build C* without Javadoc Key: CASSANDRA-7427 URL: https://issues.apache.org/jira/browse/CASSANDRA-7427 Project: Cassandra Issue Type: Improvement Reporter: Robert Stupp Assignee: Robert Stupp Attachments: build-without-javadoc.diff Here's a small patch for {{build.xml}} to reduce build time for local builds. It just adds an {{unless=no-javadoc}} to the {{javadoc}} task. When doing an (incremental, not initial) C*-build with {{ant -Dno-javadoc=1 artifacts}}, build time is less than 10 seconds. -- This message was sent by Atlassian JIRA (v6.2#6252)
git commit: Allow counter mutations in UNLOGGED batches
Repository: cassandra Updated Branches: refs/heads/cassandra-2.1 a7ad9d2a5 - ee401cf81 Allow counter mutations in UNLOGGED batches patch by tjake; reviewed by Aleksey Yeschenko for CASSANDRA-7351 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/ee401cf8 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/ee401cf8 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/ee401cf8 Branch: refs/heads/cassandra-2.1 Commit: ee401cf8131a779069805cbe9ef4ab05d4a63b9a Parents: a7ad9d2 Author: Jake Luciani j...@apache.org Authored: Fri Jun 20 15:16:12 2014 -0700 Committer: Aleksey Yeschenko alek...@apache.org Committed: Fri Jun 20 15:16:12 2014 -0700 -- CHANGES.txt | 1 + .../apache/cassandra/cql3/QueryProcessor.java | 1 + .../cql3/statements/BatchStatement.java | 75 ++ .../transport/messages/BatchMessage.java| 11 +- .../org/apache/cassandra/cql3/BatchTests.java | 145 +++ .../org/apache/cassandra/cql3/DeleteTest.java | 27 ++-- 6 files changed, 216 insertions(+), 44 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/ee401cf8/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index b0d8e49..4f68cf7 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.1.0-rc2 + * Allow counter mutations in UNLOGGED batches (CASSANDRA-7351) * Modify reconcile logic to always pick a tombstone over a counter cell (CASSANDRA-7346) * Avoid incremental compaction on Windows (CASSANDRA-7365) http://git-wip-us.apache.org/repos/asf/cassandra/blob/ee401cf8/src/java/org/apache/cassandra/cql3/QueryProcessor.java -- diff --git a/src/java/org/apache/cassandra/cql3/QueryProcessor.java b/src/java/org/apache/cassandra/cql3/QueryProcessor.java index 287a700..86362f7 100644 --- a/src/java/org/apache/cassandra/cql3/QueryProcessor.java +++ b/src/java/org/apache/cassandra/cql3/QueryProcessor.java @@ -418,6 +418,7 @@ public class QueryProcessor implements QueryHandler { ClientState clientState = queryState.getClientState(); batch.checkAccess(clientState); +batch.validate(); batch.validate(clientState); return batch.execute(queryState, options); } http://git-wip-us.apache.org/repos/asf/cassandra/blob/ee401cf8/src/java/org/apache/cassandra/cql3/statements/BatchStatement.java -- diff --git a/src/java/org/apache/cassandra/cql3/statements/BatchStatement.java b/src/java/org/apache/cassandra/cql3/statements/BatchStatement.java index 3cec81b..b7d69cc 100644 --- a/src/java/org/apache/cassandra/cql3/statements/BatchStatement.java +++ b/src/java/org/apache/cassandra/cql3/statements/BatchStatement.java @@ -95,7 +95,8 @@ public class BatchStatement implements CQLStatement, MeasurableForPreparedCache statement.checkAccess(state); } -public void validate(ClientState state) throws InvalidRequestException +// Validates a prepared batch statement without validating its nested statements. +public void validate() throws InvalidRequestException { if (attrs.isTimeToLiveSet()) throw new InvalidRequestException(Global TTL on the BATCH statement is not supported.); @@ -109,15 +110,54 @@ public class BatchStatement implements CQLStatement, MeasurableForPreparedCache throw new InvalidRequestException(Cannot provide custom timestamp for counter BATCH); } +boolean hasCounters = false; +boolean hasNonCounters = false; + for (ModificationStatement statement : statements) { +if (timestampSet statement.isCounter()) +throw new InvalidRequestException(Cannot provide custom timestamp for a BATCH containing counters); + if (timestampSet statement.isTimestampSet()) throw new InvalidRequestException(Timestamp must be set either on BATCH or individual statements); -statement.validate(state); +if (type == Type.COUNTER !statement.isCounter()) +throw new InvalidRequestException(Cannot include non-counter statement in a counter batch); + +if (type == Type.LOGGED statement.isCounter()) +throw new InvalidRequestException(Cannot include a counter statement in a logged batch); + +if (statement.isCounter()) +hasCounters = true; +else +hasNonCounters = true; +} + +if (hasCounters hasNonCounters) +throw new InvalidRequestException(Counter and
[4/5] git commit: Allow counter mutations in UNLOGGED batches
Allow counter mutations in UNLOGGED batches patch by tjake; reviewed by Aleksey Yeschenko for CASSANDRA-7351 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/ee401cf8 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/ee401cf8 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/ee401cf8 Branch: refs/heads/trunk Commit: ee401cf8131a779069805cbe9ef4ab05d4a63b9a Parents: a7ad9d2 Author: Jake Luciani j...@apache.org Authored: Fri Jun 20 15:16:12 2014 -0700 Committer: Aleksey Yeschenko alek...@apache.org Committed: Fri Jun 20 15:16:12 2014 -0700 -- CHANGES.txt | 1 + .../apache/cassandra/cql3/QueryProcessor.java | 1 + .../cql3/statements/BatchStatement.java | 75 ++ .../transport/messages/BatchMessage.java| 11 +- .../org/apache/cassandra/cql3/BatchTests.java | 145 +++ .../org/apache/cassandra/cql3/DeleteTest.java | 27 ++-- 6 files changed, 216 insertions(+), 44 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/ee401cf8/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index b0d8e49..4f68cf7 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.1.0-rc2 + * Allow counter mutations in UNLOGGED batches (CASSANDRA-7351) * Modify reconcile logic to always pick a tombstone over a counter cell (CASSANDRA-7346) * Avoid incremental compaction on Windows (CASSANDRA-7365) http://git-wip-us.apache.org/repos/asf/cassandra/blob/ee401cf8/src/java/org/apache/cassandra/cql3/QueryProcessor.java -- diff --git a/src/java/org/apache/cassandra/cql3/QueryProcessor.java b/src/java/org/apache/cassandra/cql3/QueryProcessor.java index 287a700..86362f7 100644 --- a/src/java/org/apache/cassandra/cql3/QueryProcessor.java +++ b/src/java/org/apache/cassandra/cql3/QueryProcessor.java @@ -418,6 +418,7 @@ public class QueryProcessor implements QueryHandler { ClientState clientState = queryState.getClientState(); batch.checkAccess(clientState); +batch.validate(); batch.validate(clientState); return batch.execute(queryState, options); } http://git-wip-us.apache.org/repos/asf/cassandra/blob/ee401cf8/src/java/org/apache/cassandra/cql3/statements/BatchStatement.java -- diff --git a/src/java/org/apache/cassandra/cql3/statements/BatchStatement.java b/src/java/org/apache/cassandra/cql3/statements/BatchStatement.java index 3cec81b..b7d69cc 100644 --- a/src/java/org/apache/cassandra/cql3/statements/BatchStatement.java +++ b/src/java/org/apache/cassandra/cql3/statements/BatchStatement.java @@ -95,7 +95,8 @@ public class BatchStatement implements CQLStatement, MeasurableForPreparedCache statement.checkAccess(state); } -public void validate(ClientState state) throws InvalidRequestException +// Validates a prepared batch statement without validating its nested statements. +public void validate() throws InvalidRequestException { if (attrs.isTimeToLiveSet()) throw new InvalidRequestException(Global TTL on the BATCH statement is not supported.); @@ -109,15 +110,54 @@ public class BatchStatement implements CQLStatement, MeasurableForPreparedCache throw new InvalidRequestException(Cannot provide custom timestamp for counter BATCH); } +boolean hasCounters = false; +boolean hasNonCounters = false; + for (ModificationStatement statement : statements) { +if (timestampSet statement.isCounter()) +throw new InvalidRequestException(Cannot provide custom timestamp for a BATCH containing counters); + if (timestampSet statement.isTimestampSet()) throw new InvalidRequestException(Timestamp must be set either on BATCH or individual statements); -statement.validate(state); +if (type == Type.COUNTER !statement.isCounter()) +throw new InvalidRequestException(Cannot include non-counter statement in a counter batch); + +if (type == Type.LOGGED statement.isCounter()) +throw new InvalidRequestException(Cannot include a counter statement in a logged batch); + +if (statement.isCounter()) +hasCounters = true; +else +hasNonCounters = true; +} + +if (hasCounters hasNonCounters) +throw new InvalidRequestException(Counter and non-counter mutations cannot exist in the same batch); + +if (hasConditions) +{ +
[5/5] git commit: Merge branch 'cassandra-2.1' into trunk
Merge branch 'cassandra-2.1' into trunk Conflicts: test/unit/org/apache/cassandra/cql3/DeleteTest.java Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/e88c8300 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/e88c8300 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/e88c8300 Branch: refs/heads/trunk Commit: e88c83006a9ff479be07f8e1bd377526a4bf8369 Parents: d2a3827 ee401cf Author: Aleksey Yeschenko alek...@apache.org Authored: Fri Jun 20 15:23:46 2014 -0700 Committer: Aleksey Yeschenko alek...@apache.org Committed: Fri Jun 20 15:23:46 2014 -0700 -- CHANGES.txt | 2 +- .../apache/cassandra/cql3/QueryProcessor.java | 1 + .../cql3/statements/BatchStatement.java | 75 ++ .../transport/messages/BatchMessage.java| 11 +- .../org/apache/cassandra/cql3/BatchTests.java | 145 +++ .../org/apache/cassandra/cql3/DeleteTest.java | 25 +++- 6 files changed, 215 insertions(+), 44 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/e88c8300/CHANGES.txt -- diff --cc CHANGES.txt index f30ef3c,4f68cf7..aea3cf6 --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,17 -1,5 +1,18 @@@ +3.0 + * Move sstable RandomAccessReader to nio2, which allows using the + FILE_SHARE_DELETE flag on Windows (CASSANDRA-4050) + * Remove CQL2 (CASSANDRA-5918) + * Add Thrift get_multi_slice call (CASSANDRA-6757) + * Optimize fetching multiple cells by name (CASSANDRA-6933) + * Allow compilation in java 8 (CASSANDRA-7208) + * Make incremental repair default (CASSANDRA-7250) + * Enable code coverage thru JaCoCo (CASSANDRA-7226) + * Switch external naming of 'column families' to 'tables' (CASSANDRA-4369) + + + 2.1.0-rc2 + * Allow counter mutations in UNLOGGED batches (CASSANDRA-7351) * Modify reconcile logic to always pick a tombstone over a counter cell (CASSANDRA-7346) * Avoid incremental compaction on Windows (CASSANDRA-7365) http://git-wip-us.apache.org/repos/asf/cassandra/blob/e88c8300/src/java/org/apache/cassandra/cql3/QueryProcessor.java -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/e88c8300/src/java/org/apache/cassandra/transport/messages/BatchMessage.java --
[3/5] git commit: merge from 2.0
merge from 2.0 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/a7ad9d2a Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/a7ad9d2a Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/a7ad9d2a Branch: refs/heads/trunk Commit: a7ad9d2a5ea50f3b20b7a91e366a107f0c9199a6 Parents: 9dcdb8b 90058a9 Author: Jonathan Ellis jbel...@apache.org Authored: Fri Jun 20 15:33:44 2014 -0500 Committer: Jonathan Ellis jbel...@apache.org Committed: Fri Jun 20 15:33:44 2014 -0500 -- CHANGES.txt | 1 - 1 file changed, 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/a7ad9d2a/CHANGES.txt --
[2/5] 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/90058a97 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/90058a97 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/90058a97 Branch: refs/heads/trunk Commit: 90058a97ac07d0408f1b8f1b4dae66a22832981c Parents: 9da742d 93f54fc Author: Jonathan Ellis jbel...@apache.org Authored: Fri Jun 20 15:32:26 2014 -0500 Committer: Jonathan Ellis jbel...@apache.org Committed: Fri Jun 20 15:32:26 2014 -0500 -- CHANGES.txt| 1 - src/java/org/apache/cassandra/db/Memtable.java | 14 -- 2 files changed, 4 insertions(+), 11 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/90058a97/CHANGES.txt -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/90058a97/src/java/org/apache/cassandra/db/Memtable.java --
[1/5] git commit: revert #7275
Repository: cassandra Updated Branches: refs/heads/trunk d2a3827a6 - e88c83006 revert #7275 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/93f54fc4 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/93f54fc4 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/93f54fc4 Branch: refs/heads/trunk Commit: 93f54fc44461c995ff30d42f284c78d1a9a02723 Parents: cccdcb5 Author: Jonathan Ellis jbel...@apache.org Authored: Fri Jun 20 15:31:52 2014 -0500 Committer: Jonathan Ellis jbel...@apache.org Committed: Fri Jun 20 15:31:52 2014 -0500 -- CHANGES.txt| 1 - src/java/org/apache/cassandra/db/Memtable.java | 14 -- 2 files changed, 4 insertions(+), 11 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/93f54fc4/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 186b4a1..d84f267 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -2,7 +2,6 @@ * Handle possible integer overflow in FastByteArrayOutputStream (CASSANDRA-7373) * cqlsh: 'ascii' values weren't formatted as text (CASSANDRA-7407) * cqlsh: ignore .cassandra permission errors (CASSANDRA-7266) - * Errors in FlushRunnable may leave threads hung (CASSANDRA-7275) * reduce failure detector initial value to 2s (CASSANDRA-7307) * Fix problem truncating on a node that was previously in a dead state (CASSANDRA-7318) * Don't insert tombstones that hide indexed values into 2i (CASSANDRA-7268) http://git-wip-us.apache.org/repos/asf/cassandra/blob/93f54fc4/src/java/org/apache/cassandra/db/Memtable.java -- diff --git a/src/java/org/apache/cassandra/db/Memtable.java b/src/java/org/apache/cassandra/db/Memtable.java index 90f0466..b6fceda 100644 --- a/src/java/org/apache/cassandra/db/Memtable.java +++ b/src/java/org/apache/cassandra/db/Memtable.java @@ -380,17 +380,11 @@ public class Memtable protected void runWith(File sstableDirectory) throws Exception { -try -{ -assert sstableDirectory != null : Flush task is not bound to any disk; +assert sstableDirectory != null : Flush task is not bound to any disk; -SSTableReader sstable = writeSortedContents(context, sstableDirectory); -cfs.replaceFlushed(Memtable.this, sstable); -} -finally -{ -latch.countDown(); -} +SSTableReader sstable = writeSortedContents(context, sstableDirectory); +cfs.replaceFlushed(Memtable.this, sstable); +latch.countDown(); } protected Directories getDirectories()
[jira] [Resolved] (CASSANDRA-7351) Make BEGIN COUNTER BATCH syntax optional
[ https://issues.apache.org/jira/browse/CASSANDRA-7351?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Yeschenko resolved CASSANDRA-7351. -- Resolution: Fixed Committed, thanks. Took the liberty to add two comments, and move the top-level batch validate() call from validate(state) to QueryProcessor.processBatch() (so that we don't validate twice unnecessarily for non-protocol batches). Feel free to ninja it back if you mind. Otherwise committed verbatim. Make BEGIN COUNTER BATCH syntax optional Key: CASSANDRA-7351 URL: https://issues.apache.org/jira/browse/CASSANDRA-7351 Project: Cassandra Issue Type: Improvement Reporter: T Jake Luciani Assignee: T Jake Luciani Priority: Trivial Labels: cql3 Fix For: 2.1 rc2 Attachments: 7351-rebase.txt, 7351.txt, 7351v2.txt, 7351v3.txt AFAIK there is no need to supply COUNTER in Batch statements. The server should just throw an syntax error if you try to mix counter and non counter statements in the same batch. What value does this keyword add? -- This message was sent by Atlassian JIRA (v6.2#6252)
buildbot failure in ASF Buildbot on cassandra-trunk
The Buildbot has detected a new failure on builder cassandra-trunk while building cassandra. Full details are available at: http://ci.apache.org/builders/cassandra-trunk/builds/359 Buildbot URL: http://ci.apache.org/ Buildslave for this Build: portunus_ubuntu Build Reason: scheduler Build Source Stamp: [branch trunk] e88c83006a9ff479be07f8e1bd377526a4bf8369 Blamelist: Aleksey Yeschenko alek...@apache.org,Jake Luciani j...@apache.org,Jonathan Ellis jbel...@apache.org BUILD FAILED: failed shell sincerely, -The Buildbot
buildbot failure in ASF Buildbot on cassandra-2.1
The Buildbot has detected a new failure on builder cassandra-2.1 while building cassandra. Full details are available at: http://ci.apache.org/builders/cassandra-2.1/builds/168 Buildbot URL: http://ci.apache.org/ Buildslave for this Build: portunus_ubuntu Build Reason: scheduler Build Source Stamp: [branch cassandra-2.1] ee401cf8131a779069805cbe9ef4ab05d4a63b9a Blamelist: Jake Luciani j...@apache.org BUILD FAILED: failed shell sincerely, -The Buildbot
[1/2] git commit: (ninja) Deduplicate BatchStatement hasConditions inference logic
Repository: cassandra Updated Branches: refs/heads/trunk e88c83006 - c1ce969c6 (ninja) Deduplicate BatchStatement hasConditions inference logic Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/bf9b49ca Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/bf9b49ca Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/bf9b49ca Branch: refs/heads/trunk Commit: bf9b49ca8443b020cee6f0e1550763fed5a36363 Parents: ee401cf Author: Aleksey Yeschenko alek...@apache.org Authored: Fri Jun 20 15:46:16 2014 -0700 Committer: Aleksey Yeschenko alek...@apache.org Committed: Fri Jun 20 15:46:16 2014 -0700 -- .../cql3/statements/BatchStatement.java | 20 .../transport/messages/BatchMessage.java| 15 +-- 2 files changed, 13 insertions(+), 22 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/bf9b49ca/src/java/org/apache/cassandra/cql3/statements/BatchStatement.java -- diff --git a/src/java/org/apache/cassandra/cql3/statements/BatchStatement.java b/src/java/org/apache/cassandra/cql3/statements/BatchStatement.java index b7d69cc..0521485 100644 --- a/src/java/org/apache/cassandra/cql3/statements/BatchStatement.java +++ b/src/java/org/apache/cassandra/cql3/statements/BatchStatement.java @@ -64,8 +64,12 @@ public class BatchStatement implements CQLStatement, MeasurableForPreparedCache * @param statements a list of UpdateStatements * @param attrs additional attributes for statement (CL, timestamp, timeToLive) */ -public BatchStatement(int boundTerms, Type type, ListModificationStatement statements, Attributes attrs, boolean hasConditions) +public BatchStatement(int boundTerms, Type type, ListModificationStatement statements, Attributes attrs) { +boolean hasConditions = false; +for (ModificationStatement statement : statements) +hasConditions |= statement.hasConditions(); + this.boundTerms = boundTerms; this.type = type; this.statements = statements; @@ -304,7 +308,7 @@ public class BatchStatement implements CQLStatement, MeasurableForPreparedCache String cfName = null; ColumnFamily updates = null; CQL3CasConditions conditions = null; -SetColumnDefinition columnsWithConditions = new LinkedHashSetColumnDefinition(); +SetColumnDefinition columnsWithConditions = new LinkedHashSet(); for (int i = 0; i statements.size(); i++) { @@ -397,21 +401,13 @@ public class BatchStatement implements CQLStatement, MeasurableForPreparedCache VariableSpecifications boundNames = getBoundVariables(); ListModificationStatement statements = new ArrayList(parsedStatements.size()); -boolean hasConditions = false; - for (ModificationStatement.Parsed parsed : parsedStatements) -{ -ModificationStatement stmt = parsed.prepare(boundNames); -if (stmt.hasConditions()) -hasConditions = true; - -statements.add(stmt); -} +statements.add(parsed.prepare(boundNames)); Attributes prepAttrs = attrs.prepare([batch], [batch]); prepAttrs.collectMarkerSpecification(boundNames); -BatchStatement batchStatement = new BatchStatement(boundNames.size(), type, statements, prepAttrs, hasConditions); +BatchStatement batchStatement = new BatchStatement(boundNames.size(), type, statements, prepAttrs); batchStatement.validate(); return new ParsedStatement.Prepared(batchStatement, boundNames); http://git-wip-us.apache.org/repos/asf/cassandra/blob/bf9b49ca/src/java/org/apache/cassandra/transport/messages/BatchMessage.java -- diff --git a/src/java/org/apache/cassandra/transport/messages/BatchMessage.java b/src/java/org/apache/cassandra/transport/messages/BatchMessage.java index c199a62..19fa6aa 100644 --- a/src/java/org/apache/cassandra/transport/messages/BatchMessage.java +++ b/src/java/org/apache/cassandra/transport/messages/BatchMessage.java @@ -29,9 +29,9 @@ import org.apache.cassandra.cql3.*; import org.apache.cassandra.cql3.statements.BatchStatement; import org.apache.cassandra.cql3.statements.ModificationStatement; import org.apache.cassandra.cql3.statements.ParsedStatement; -import org.apache.cassandra.db.ConsistencyLevel; import org.apache.cassandra.exceptions.InvalidRequestException; import org.apache.cassandra.exceptions.PreparedQueryNotFoundException; +import org.apache.cassandra.service.ClientState; import
git commit: (ninja) Deduplicate BatchStatement hasConditions inference logic
Repository: cassandra Updated Branches: refs/heads/cassandra-2.1 ee401cf81 - bf9b49ca8 (ninja) Deduplicate BatchStatement hasConditions inference logic Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/bf9b49ca Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/bf9b49ca Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/bf9b49ca Branch: refs/heads/cassandra-2.1 Commit: bf9b49ca8443b020cee6f0e1550763fed5a36363 Parents: ee401cf Author: Aleksey Yeschenko alek...@apache.org Authored: Fri Jun 20 15:46:16 2014 -0700 Committer: Aleksey Yeschenko alek...@apache.org Committed: Fri Jun 20 15:46:16 2014 -0700 -- .../cql3/statements/BatchStatement.java | 20 .../transport/messages/BatchMessage.java| 15 +-- 2 files changed, 13 insertions(+), 22 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/bf9b49ca/src/java/org/apache/cassandra/cql3/statements/BatchStatement.java -- diff --git a/src/java/org/apache/cassandra/cql3/statements/BatchStatement.java b/src/java/org/apache/cassandra/cql3/statements/BatchStatement.java index b7d69cc..0521485 100644 --- a/src/java/org/apache/cassandra/cql3/statements/BatchStatement.java +++ b/src/java/org/apache/cassandra/cql3/statements/BatchStatement.java @@ -64,8 +64,12 @@ public class BatchStatement implements CQLStatement, MeasurableForPreparedCache * @param statements a list of UpdateStatements * @param attrs additional attributes for statement (CL, timestamp, timeToLive) */ -public BatchStatement(int boundTerms, Type type, ListModificationStatement statements, Attributes attrs, boolean hasConditions) +public BatchStatement(int boundTerms, Type type, ListModificationStatement statements, Attributes attrs) { +boolean hasConditions = false; +for (ModificationStatement statement : statements) +hasConditions |= statement.hasConditions(); + this.boundTerms = boundTerms; this.type = type; this.statements = statements; @@ -304,7 +308,7 @@ public class BatchStatement implements CQLStatement, MeasurableForPreparedCache String cfName = null; ColumnFamily updates = null; CQL3CasConditions conditions = null; -SetColumnDefinition columnsWithConditions = new LinkedHashSetColumnDefinition(); +SetColumnDefinition columnsWithConditions = new LinkedHashSet(); for (int i = 0; i statements.size(); i++) { @@ -397,21 +401,13 @@ public class BatchStatement implements CQLStatement, MeasurableForPreparedCache VariableSpecifications boundNames = getBoundVariables(); ListModificationStatement statements = new ArrayList(parsedStatements.size()); -boolean hasConditions = false; - for (ModificationStatement.Parsed parsed : parsedStatements) -{ -ModificationStatement stmt = parsed.prepare(boundNames); -if (stmt.hasConditions()) -hasConditions = true; - -statements.add(stmt); -} +statements.add(parsed.prepare(boundNames)); Attributes prepAttrs = attrs.prepare([batch], [batch]); prepAttrs.collectMarkerSpecification(boundNames); -BatchStatement batchStatement = new BatchStatement(boundNames.size(), type, statements, prepAttrs, hasConditions); +BatchStatement batchStatement = new BatchStatement(boundNames.size(), type, statements, prepAttrs); batchStatement.validate(); return new ParsedStatement.Prepared(batchStatement, boundNames); http://git-wip-us.apache.org/repos/asf/cassandra/blob/bf9b49ca/src/java/org/apache/cassandra/transport/messages/BatchMessage.java -- diff --git a/src/java/org/apache/cassandra/transport/messages/BatchMessage.java b/src/java/org/apache/cassandra/transport/messages/BatchMessage.java index c199a62..19fa6aa 100644 --- a/src/java/org/apache/cassandra/transport/messages/BatchMessage.java +++ b/src/java/org/apache/cassandra/transport/messages/BatchMessage.java @@ -29,9 +29,9 @@ import org.apache.cassandra.cql3.*; import org.apache.cassandra.cql3.statements.BatchStatement; import org.apache.cassandra.cql3.statements.ModificationStatement; import org.apache.cassandra.cql3.statements.ParsedStatement; -import org.apache.cassandra.db.ConsistencyLevel; import org.apache.cassandra.exceptions.InvalidRequestException; import org.apache.cassandra.exceptions.PreparedQueryNotFoundException; +import org.apache.cassandra.service.ClientState; import
[2/2] git commit: Merge branch 'cassandra-2.1' into trunk
Merge branch 'cassandra-2.1' into trunk Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/c1ce969c Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/c1ce969c Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/c1ce969c Branch: refs/heads/trunk Commit: c1ce969c6a8e529d98eb8abec6b42e2f0acf3851 Parents: e88c830 bf9b49c Author: Aleksey Yeschenko alek...@apache.org Authored: Fri Jun 20 15:49:07 2014 -0700 Committer: Aleksey Yeschenko alek...@apache.org Committed: Fri Jun 20 15:49:07 2014 -0700 -- .../cql3/statements/BatchStatement.java | 20 .../transport/messages/BatchMessage.java| 14 +- 2 files changed, 13 insertions(+), 21 deletions(-) --
[jira] [Created] (CASSANDRA-7430) generate-eclipse-files target on JDK 8 causes ReferenceError: importClass is not defined
Kirk True created CASSANDRA-7430: Summary: generate-eclipse-files target on JDK 8 causes ReferenceError: importClass is not defined Key: CASSANDRA-7430 URL: https://issues.apache.org/jira/browse/CASSANDRA-7430 Project: Cassandra Issue Type: Bug Environment: java version 1.8.0_05 Java(TM) SE Runtime Environment (build 1.8.0_05-b13) Java HotSpot(TM) 64-Bit Server VM (build 25.5-b02, mixed mode) Reporter: Kirk True If I run {{ant generate-eclipse-files}} under JDK 8, I get this error: {noformat} BUILD FAILED /Users/kirk/dev/cassandra/build.xml:1449: javax.script.ScriptException: ReferenceError: importClass is not defined in eval at line number 2 at jdk.nashorn.api.scripting.NashornScriptEngine.throwAsScriptException(NashornScriptEngine.java:564) at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:548) at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:528) at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:524) at jdk.nashorn.api.scripting.NashornScriptEngine.eval(NashornScriptEngine.java:194) at javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:264) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:483) at org.apache.tools.ant.util.ReflectUtil.invoke(ReflectUtil.java:108) at org.apache.tools.ant.util.ReflectWrapper.invoke(ReflectWrapper.java:81) at org.apache.tools.ant.util.optional.JavaxScriptRunner.evaluateScript(JavaxScriptRunner.java:103) at org.apache.tools.ant.util.optional.JavaxScriptRunner.executeScript(JavaxScriptRunner.java:67) at org.apache.tools.ant.taskdefs.optional.Script.execute(Script.java:52) at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292) at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:483) at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) at org.apache.tools.ant.Task.perform(Task.java:348) at org.apache.tools.ant.Target.execute(Target.java:435) at org.apache.tools.ant.Target.performTasks(Target.java:456) at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1393) at org.apache.tools.ant.Project.executeTarget(Project.java:1364) at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41) at org.apache.tools.ant.Project.executeTargets(Project.java:1248) at org.apache.tools.ant.Main.runBuild(Main.java:851) at org.apache.tools.ant.Main.startAnt(Main.java:235) at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280) at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109) Caused by: eval:2 ReferenceError: importClass is not defined at jdk.nashorn.internal.runtime.ECMAErrors.error(ECMAErrors.java:56) at jdk.nashorn.internal.runtime.ECMAErrors.referenceError(ECMAErrors.java:318) at jdk.nashorn.internal.runtime.ECMAErrors.referenceError(ECMAErrors.java:290) at jdk.nashorn.api.scripting.NashornScriptEngine.__noSuchProperty__(NashornScriptEngine.java:274) at jdk.nashorn.internal.scripts.Script$engine._L35(nashorn:engine/resources/engine.js:37) at jdk.nashorn.internal.scripts.Script$\^eval\_.runScript(eval:2) at jdk.nashorn.internal.runtime.ScriptFunctionData.invoke(ScriptFunctionData.java:498) at jdk.nashorn.internal.runtime.ScriptFunction.invoke(ScriptFunction.java:206) at jdk.nashorn.internal.runtime.ScriptRuntime.apply(ScriptRuntime.java:378) at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:546) ... 29 more {noformat} Apparently this is due to changes with the new Nashorn ECMAScript engine in the new JDK. According to http://stackoverflow.com/questions/22503100/java-8-javascript-engine-backwards-compatibility, one way to solve this is thusly: {noformat} diff --git a/build.xml b/build.xml index 02e1f98..245ca8e 100644 --- a/build.xml +++ b/build.xml @@ -1447,7 +1447,7 @@ /path property name=eclipse-project-libs refid=eclipse-project-libs-path/ script language=javascript ![CDATA[ - importClass(java.io.File); + var File = java.io.File; jars =
[jira] [Updated] (CASSANDRA-7430) generate-eclipse-files target on JDK 8 causes ReferenceError: importClass is not defined
[ https://issues.apache.org/jira/browse/CASSANDRA-7430?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Kirk True updated CASSANDRA-7430: - Priority: Trivial (was: Major) generate-eclipse-files target on JDK 8 causes ReferenceError: importClass is not defined -- Key: CASSANDRA-7430 URL: https://issues.apache.org/jira/browse/CASSANDRA-7430 Project: Cassandra Issue Type: Bug Environment: java version 1.8.0_05 Java(TM) SE Runtime Environment (build 1.8.0_05-b13) Java HotSpot(TM) 64-Bit Server VM (build 25.5-b02, mixed mode) Reporter: Kirk True Priority: Trivial If I run {{ant generate-eclipse-files}} under JDK 8, I get this error: {noformat} BUILD FAILED /Users/kirk/dev/cassandra/build.xml:1449: javax.script.ScriptException: ReferenceError: importClass is not defined in eval at line number 2 at jdk.nashorn.api.scripting.NashornScriptEngine.throwAsScriptException(NashornScriptEngine.java:564) at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:548) at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:528) at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:524) at jdk.nashorn.api.scripting.NashornScriptEngine.eval(NashornScriptEngine.java:194) at javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:264) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:483) at org.apache.tools.ant.util.ReflectUtil.invoke(ReflectUtil.java:108) at org.apache.tools.ant.util.ReflectWrapper.invoke(ReflectWrapper.java:81) at org.apache.tools.ant.util.optional.JavaxScriptRunner.evaluateScript(JavaxScriptRunner.java:103) at org.apache.tools.ant.util.optional.JavaxScriptRunner.executeScript(JavaxScriptRunner.java:67) at org.apache.tools.ant.taskdefs.optional.Script.execute(Script.java:52) at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292) at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:483) at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) at org.apache.tools.ant.Task.perform(Task.java:348) at org.apache.tools.ant.Target.execute(Target.java:435) at org.apache.tools.ant.Target.performTasks(Target.java:456) at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1393) at org.apache.tools.ant.Project.executeTarget(Project.java:1364) at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41) at org.apache.tools.ant.Project.executeTargets(Project.java:1248) at org.apache.tools.ant.Main.runBuild(Main.java:851) at org.apache.tools.ant.Main.startAnt(Main.java:235) at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280) at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109) Caused by: eval:2 ReferenceError: importClass is not defined at jdk.nashorn.internal.runtime.ECMAErrors.error(ECMAErrors.java:56) at jdk.nashorn.internal.runtime.ECMAErrors.referenceError(ECMAErrors.java:318) at jdk.nashorn.internal.runtime.ECMAErrors.referenceError(ECMAErrors.java:290) at jdk.nashorn.api.scripting.NashornScriptEngine.__noSuchProperty__(NashornScriptEngine.java:274) at jdk.nashorn.internal.scripts.Script$engine._L35(nashorn:engine/resources/engine.js:37) at jdk.nashorn.internal.scripts.Script$\^eval\_.runScript(eval:2) at jdk.nashorn.internal.runtime.ScriptFunctionData.invoke(ScriptFunctionData.java:498) at jdk.nashorn.internal.runtime.ScriptFunction.invoke(ScriptFunction.java:206) at jdk.nashorn.internal.runtime.ScriptRuntime.apply(ScriptRuntime.java:378) at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:546) ... 29 more {noformat} Apparently this is due to changes with the new Nashorn ECMAScript engine in the new JDK. According to http://stackoverflow.com/questions/22503100/java-8-javascript-engine-backwards-compatibility, one way to solve this is thusly: {noformat} diff --git a/build.xml b/build.xml index 02e1f98..245ca8e 100644 --- a/build.xml +++ b/build.xml @@ -1447,7 +1447,7 @@ /path property name=eclipse-project-libs
[jira] [Updated] (CASSANDRA-6839) Support non equal conditions (for LWT)
[ https://issues.apache.org/jira/browse/CASSANDRA-6839?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tyler Hobbs updated CASSANDRA-6839: --- Attachment: 6839-v2.txt The v2 patch adds support for IN operations. The same [branch|https://github.com/thobbs/cassandra/tree/CASSANDRA-6839] has been updated with a couple of commits, as well. I also pushed another commit to my [dtest branch|https://github.com/thobbs/cassandra-dtest/tree/CASSANDRA-6839]. This turned out to be a bit more complex than I expected, but the test coverage is pretty good here now. I added some unit tests to cover equality checks on the various Bounds subclasses. Support non equal conditions (for LWT) -- Key: CASSANDRA-6839 URL: https://issues.apache.org/jira/browse/CASSANDRA-6839 Project: Cassandra Issue Type: Improvement Reporter: Sylvain Lebresne Assignee: Tyler Hobbs Priority: Minor Fix For: 2.0.9 Attachments: 6839-v2.txt, 6839.txt We currently only support equal conditions in conditional updates, but it would be relatively trivial to support non-equal ones as well. At the very least we should support '', '=', '' and '=', though it would probably also make sense to add a non-equal relation too ('!='). -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Commented] (CASSANDRA-7427) Build C* without Javadoc
[ https://issues.apache.org/jira/browse/CASSANDRA-7427?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14039601#comment-14039601 ] Dave Brosius commented on CASSANDRA-7427: - what task are you using that you actually build javadoc? {{{ant}}} and {{{ant jar}}} do not. Build C* without Javadoc Key: CASSANDRA-7427 URL: https://issues.apache.org/jira/browse/CASSANDRA-7427 Project: Cassandra Issue Type: Improvement Reporter: Robert Stupp Assignee: Robert Stupp Attachments: build-without-javadoc.diff Here's a small patch for {{build.xml}} to reduce build time for local builds. It just adds an {{unless=no-javadoc}} to the {{javadoc}} task. When doing an (incremental, not initial) C*-build with {{ant -Dno-javadoc=1 artifacts}}, build time is less than 10 seconds. -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Comment Edited] (CASSANDRA-7427) Build C* without Javadoc
[ https://issues.apache.org/jira/browse/CASSANDRA-7427?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14039601#comment-14039601 ] Dave Brosius edited comment on CASSANDRA-7427 at 6/21/14 12:33 AM: --- what task are you using that you actually build javadoc? {{{ ant }}} and {{{ ant jar }}} do not. was (Author: dbrosius): what task are you using that you actually build javadoc? {{{ant}}} and {{{ant jar}}} do not. Build C* without Javadoc Key: CASSANDRA-7427 URL: https://issues.apache.org/jira/browse/CASSANDRA-7427 Project: Cassandra Issue Type: Improvement Reporter: Robert Stupp Assignee: Robert Stupp Attachments: build-without-javadoc.diff Here's a small patch for {{build.xml}} to reduce build time for local builds. It just adds an {{unless=no-javadoc}} to the {{javadoc}} task. When doing an (incremental, not initial) C*-build with {{ant -Dno-javadoc=1 artifacts}}, build time is less than 10 seconds. -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Comment Edited] (CASSANDRA-7427) Build C* without Javadoc
[ https://issues.apache.org/jira/browse/CASSANDRA-7427?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14039601#comment-14039601 ] Dave Brosius edited comment on CASSANDRA-7427 at 6/21/14 12:35 AM: --- what task are you using that you actually build javadoc? {{ ant }} and {{ ant jar }} do not. was (Author: dbrosius): what task are you using that you actually build javadoc? {{{ ant }}} and {{{ ant jar }}} do not. Build C* without Javadoc Key: CASSANDRA-7427 URL: https://issues.apache.org/jira/browse/CASSANDRA-7427 Project: Cassandra Issue Type: Improvement Reporter: Robert Stupp Assignee: Robert Stupp Attachments: build-without-javadoc.diff Here's a small patch for {{build.xml}} to reduce build time for local builds. It just adds an {{unless=no-javadoc}} to the {{javadoc}} task. When doing an (incremental, not initial) C*-build with {{ant -Dno-javadoc=1 artifacts}}, build time is less than 10 seconds. -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Comment Edited] (CASSANDRA-7427) Build C* without Javadoc
[ https://issues.apache.org/jira/browse/CASSANDRA-7427?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14039601#comment-14039601 ] Dave Brosius edited comment on CASSANDRA-7427 at 6/21/14 12:36 AM: --- what task are you using that you actually build javadoc? {{ant}} and {{ant jar}} do not. the patch is fine of course, just seems superfluous. but ok. was (Author: dbrosius): what task are you using that you actually build javadoc? {{ ant }} and {{ ant jar }} do not. Build C* without Javadoc Key: CASSANDRA-7427 URL: https://issues.apache.org/jira/browse/CASSANDRA-7427 Project: Cassandra Issue Type: Improvement Reporter: Robert Stupp Assignee: Robert Stupp Attachments: build-without-javadoc.diff Here's a small patch for {{build.xml}} to reduce build time for local builds. It just adds an {{unless=no-javadoc}} to the {{javadoc}} task. When doing an (incremental, not initial) C*-build with {{ant -Dno-javadoc=1 artifacts}}, build time is less than 10 seconds. -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Resolved] (CASSANDRA-7425) AssertionError when local writes at CL.ANY do not complete due to timeout
[ https://issues.apache.org/jira/browse/CASSANDRA-7425?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Yeschenko resolved CASSANDRA-7425. -- Resolution: Duplicate This is a duplicate of CASSANDRA-7364. AssertionError when local writes at CL.ANY do not complete due to timeout - Key: CASSANDRA-7425 URL: https://issues.apache.org/jira/browse/CASSANDRA-7425 Project: Cassandra Issue Type: Bug Components: Core Reporter: Sergio Bossa When the local node is overloaded, if local writes at CL.ANY do not complete due to a timeout, an hint is sent to the local node, breaking the following assertion in StorageProxy#submitHint: {code} assert !target.equals(FBUtilities.getBroadcastAddress()) : target; {code} Cassandra tracing is also affected by this bug: {noformat} ERROR [TracingStage:20] 2014-06-18 08:00:44,215 CassandraDaemon.java (line 199) Exception in thread Thread[TracingStage:20,5,main] java.lang.AssertionError: hostname at org.apache.cassandra.service.StorageProxy.submitHint(StorageProxy.java:859) at org.apache.cassandra.service.StorageProxy.mutate(StorageProxy.java:490) at org.apache.cassandra.tracing.Tracing.mutateWithCatch(Tracing.java:291) at org.apache.cassandra.tracing.TraceState$1.runMayThrow(TraceState.java:104) at org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:28) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) {noformat} -- This message was sent by Atlassian JIRA (v6.2#6252)