Re: Reads requiring response from both servers.
On Tue, Nov 18, 2014 at 4:46 AM, Jacob Rhoden jacob.rho...@me.com wrote: I was going to report a bug, but first figured I should check its not “working as expected”. Is it just me or is it wrong that the following query needs to talk to both nodes to build a response to this query? It seems to be working as expected to me, unless I'm missing something. Why is this a bug? It seems that this behaviour of needing a response to both nodes only exists if you don’t query with a clustering key, or a key when RF=2. However you can change this behaviour, by, for example, changing the table from “primary key (uuid)” to “primary key ((a), uuid)” where the value of a always equals “a” ( so you can query 'where a=“a”’), at which point, cassandra decides it only needs results from one node. Can you clarify what you mean? It sounds like you're saying if I specify a partition key, it only needs to query one node, which is also expected behavior (assuming a consistency level of ONE). By the way, this type of question is better suited for the user mailing list than the dev mailing list. -- Tyler Hobbs DataStax http://datastax.com/
Re: Reads requiring response from both servers.
On 19 Nov 2014, at 4:44 am, Tyler Hobbs ty...@datastax.com wrote: On Tue, Nov 18, 2014 at 4:46 AM, Jacob Rhoden jacob.rho...@me.com wrote: I was going to report a bug, but first figured I should check its not “working as expected”. Is it just me or is it wrong that the following query needs to talk to both nodes to build a response to this query? It seems to be working as expected to me, unless I'm missing something. If there are two nodes and RF=2, a simple data lookup on a very small table will only need to talk to one node if you put in a (fake/pointless) partition key, but two nodes if you don't. The impact is that if you want 1ms query time on a 50 row table you must use a partition key, otherwise you get 250ms query time. Why is this a bug? It seems that this behaviour of needing a response to both nodes only exists if you don’t query with a clustering key, or a key when RF=2. However you can change this behaviour, by, for example, changing the table from “primary key (uuid)” to “primary key ((a), uuid)” where the value of a always equals “a” ( so you can query 'where a=“a”’), at which point, cassandra decides it only needs results from one node. Can you clarify what you mean? It sounds like you're saying if I specify a partition key, it only needs to query one node, which is also expected behavior (assuming a consistency level of ONE). It's my understanding from the documentation that consistency level one (which I am using) is about write consistency, not read consistency. Actually if I change it in cqlsh, cqlsh refuses to run the query. By the way, this type of question is better suited for the user mailing list than the dev Ok thanks, I'll file it as a bug request with more details. Thanks!
Latest Code from Trunk - Server is not starting
I have taken the latest code from trunk, compiled (I have some changes in some of the local files also). But when I start the Cassandra server, I am getting exceptions. The exceptions are not seeming to be from the classed where I changed OR has any relationship with the ones that are showing error. Any idea? Anybody else is getting same error? Rajanarayanans-MacBook-Pro:cassandra-trunk RajT$ ./bin/cassandra -f objc[4284]: Class JavaLaunchHelper is implemented in both /Library/Java/JavaVirtualMachines/jdk1.7.0_67.jdk/Contents/Home/bin/java and /Library/Java/JavaVirtualMachines/jdk1.7.0_67.jdk/Contents/Home/jre/lib/libinstrument.dylib. One of the two will be used. Which one is undefined. CompilerOracle: inline org/apache/cassandra/db/AbstractNativeCell.compareTo (Lorg/apache/cassandra/db/composites/Composite;)I CompilerOracle: inline org/apache/cassandra/db/composites/AbstractSimpleCellNameType.compareUnsigned (Lorg/apache/cassandra/db/composites/Composite;Lorg/apache/cassandra/db/composites/Composite;)I CompilerOracle: inline org/apache/cassandra/utils/ByteBufferUtil.compare (Ljava/nio/ByteBuffer;[B)I CompilerOracle: inline org/apache/cassandra/utils/ByteBufferUtil.compare ([BLjava/nio/ByteBuffer;)I CompilerOracle: inline org/apache/cassandra/utils/ByteBufferUtil.compareUnsigned (Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)I CompilerOracle: inline org/apache/cassandra/utils/FastByteOperations$UnsafeOperations.compareTo (Ljava/lang/Object;JILjava/lang/Object;JI)I CompilerOracle: inline org/apache/cassandra/utils/FastByteOperations$UnsafeOperations.compareTo (Ljava/lang/Object;JILjava/nio/ByteBuffer;)I CompilerOracle: inline org/apache/cassandra/utils/FastByteOperations$UnsafeOperations.compareTo (Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)I INFO 20:34:19 Hostname: Rajanarayanans-MacBook-Pro.local INFO 20:34:19 Loading settings from file:/Users/RajT/cassandra-source/cassandra-trunk/conf/cassandra.yaml INFO 20:34:19 Node configuration:[authenticator=AllowAllAuthenticator; authorizer=AllowAllAuthorizer; auto_snapshot=true; batch_size_fail_threshold_in_kb=50; batch_size_warn_threshold_in_kb=5; batchlog_replay_throttle_in_kb=1024; cas_contention_timeout_in_ms=1000; client_encryption_options=REDACTED; cluster_name=Test Cluster; column_index_size_in_kb=64; commit_failure_policy=stop; commitlog_segment_size_in_mb=32; commitlog_sync=periodic; commitlog_sync_period_in_ms=1; compaction_throughput_mb_per_sec=16; concurrent_counter_writes=32; concurrent_reads=32; concurrent_writes=32; counter_cache_save_period=7200; counter_cache_size_in_mb=null; counter_write_request_timeout_in_ms=5000; cross_node_timeout=false; disk_failure_policy=stop; dynamic_snitch_badness_threshold=0.1; dynamic_snitch_reset_interval_in_ms=60; dynamic_snitch_update_interval_in_ms=100; endpoint_snitch=SimpleSnitch; hinted_handoff_enabled=true; hinted_handoff_throttle_in_kb=1024; incremental_backups=false; index_summary_capacity_in_mb=null; index_summary_resize_interval_in_minutes=60; inter_dc_tcp_nodelay=false; internode_compression=all; key_cache_save_period=14400; key_cache_size_in_mb=null; listen_address=localhost; max_hint_window_in_ms=1080; max_hints_delivery_threads=2; memtable_allocation_type=heap_buffers; native_transport_port=9042; num_tokens=256; partitioner=org.apache.cassandra.dht.Murmur3Partitioner; permissions_validity_in_ms=2000; range_request_timeout_in_ms=1; read_request_timeout_in_ms=5000; request_scheduler=org.apache.cassandra.scheduler.NoScheduler; request_timeout_in_ms=1; row_cache_save_period=0; row_cache_size_in_mb=0; rpc_address=localhost; rpc_keepalive=true; rpc_port=9160; rpc_server_type=sync; seed_provider=[{class_name=org.apache.cassandra.locator.SimpleSeedProvider, parameters=[{seeds=127.0.0.1}]}]; server_encryption_options=REDACTED; snapshot_before_compaction=false; ssl_storage_port=7001; sstable_preemptive_open_interval_in_mb=50; start_native_transport=true; start_rpc=true; storage_port=7000; thrift_framed_transport_size_in_mb=15; tombstone_failure_threshold=10; tombstone_warn_threshold=1000; trickle_fsync=false; trickle_fsync_interval_in_kb=10240; truncate_request_timeout_in_ms=6; write_request_timeout_in_ms=2000] INFO 20:34:20 DiskAccessMode 'auto' determined to be mmap, indexAccessMode is mmap INFO 20:34:20 Global memtable on-heap threshold is enabled at 499MB INFO 20:34:20 Global memtable off-heap threshold is enabled at 499MB WARN 20:34:20 Couldn't open /proc/stats INFO 20:34:20 Loading settings from file:/Users/RajT/cassandra-source/cassandra-trunk/conf/cassandra.yaml INFO 20:34:20 Node configuration:[authenticator=AllowAllAuthenticator; authorizer=AllowAllAuthorizer; auto_snapshot=true; batch_size_fail_threshold_in_kb=50; batch_size_warn_threshold_in_kb=5; batchlog_replay_throttle_in_kb=1024; cas_contention_timeout_in_ms=1000; client_encryption_options=REDACTED; cluster_name=Test Cluster;
Re: Latest Code from Trunk - Server is not starting
Try to clear the data + commitlog directory. At least the primary key for system.schema_functions table has changed in an incompatible way. Am 18.11.2014 um 21:43 schrieb Rajanarayanan Thottuvaikkatumana rnambood...@gmail.com: I have taken the latest code from trunk, compiled (I have some changes in some of the local files also). But when I start the Cassandra server, I am getting exceptions. The exceptions are not seeming to be from the classed where I changed OR has any relationship with the ones that are showing error. Any idea? Anybody else is getting same error? Rajanarayanans-MacBook-Pro:cassandra-trunk RajT$ ./bin/cassandra -f objc[4284]: Class JavaLaunchHelper is implemented in both /Library/Java/JavaVirtualMachines/jdk1.7.0_67.jdk/Contents/Home/bin/java and /Library/Java/JavaVirtualMachines/jdk1.7.0_67.jdk/Contents/Home/jre/lib/libinstrument.dylib. One of the two will be used. Which one is undefined. INFO 20:34:21 reading saved cache ./bin/../data/saved_caches/system-local-7ad54392bcdd35a684174e047860b377-KeyCache-b.db ERROR 20:34:21 Exception encountered during startup java.lang.RuntimeException: java.lang.ClassCastException: org.apache.cassandra.db.composites.CompoundComposite cannot be cast to org.apache.cassandra.db.composites.CellName at org.apache.cassandra.config.Schema.updateVersion(Schema.java:373) ~[main/:na] at org.apache.cassandra.config.DatabaseDescriptor.loadSchemas(DatabaseDescriptor.java:643) ~[main/:na] at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:257) [main/:na] at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:482) [main/:na] at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:574) [main/:na] Caused by: java.lang.ClassCastException: org.apache.cassandra.db.composites.CompoundComposite cannot be cast to org.apache.cassandra.db.composites.CellName at org.apache.cassandra.db.OnDiskAtom$Serializer.deserializeFromSSTable(OnDiskAtom.java:87) ~[main/:na] at org.apache.cassandra.db.AbstractCell$1.computeNext(AbstractCell.java:53) ~[main/:na] at org.apache.cassandra.db.AbstractCell$1.computeNext(AbstractCell.java:47) ~[main/:na] at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143) ~[guava-16.0.jar:na] at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138) ~[guava-16.0.jar:na] at org.apache.cassandra.io.sstable.SSTableIdentityIterator.hasNext(SSTableIdentityIterator.java:115) ~[main/:na] at org.apache.cassandra.db.filter.QueryFilter$2.getNext(QueryFilter.java:172) ~[main/:na] at org.apache.cassandra.db.filter.QueryFilter$2.hasNext(QueryFilter.java:155) ~[main/:na] at org.apache.cassandra.utils.MergeIterator$Candidate.advance(MergeIterator.java:146) ~[main/:na] at org.apache.cassandra.utils.MergeIterator$ManyToOne.init(MergeIterator.java:89) ~[main/:na] at org.apache.cassandra.utils.MergeIterator.get(MergeIterator.java:48) ~[main/:na] at org.apache.cassandra.db.filter.QueryFilter.collateColumns(QueryFilter.java:103) ~[main/:na] at org.apache.cassandra.db.filter.QueryFilter.collateOnDiskAtom(QueryFilter.java:81) ~[main/:na] at org.apache.cassandra.db.RowIteratorFactory$2.getReduced(RowIteratorFactory.java:99) ~[main/:na] at org.apache.cassandra.db.RowIteratorFactory$2.getReduced(RowIteratorFactory.java:71) ~[main/:na] at org.apache.cassandra.utils.MergeIterator$ManyToOne.consume(MergeIterator.java:117) ~[main/:na] at org.apache.cassandra.utils.MergeIterator$ManyToOne.computeNext(MergeIterator.java:100) ~[main/:na] at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143) ~[guava-16.0.jar:na] at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138) ~[guava-16.0.jar:na] at org.apache.cassandra.db.ColumnFamilyStore$8.computeNext(ColumnFamilyStore.java:1931) ~[main/:na] at org.apache.cassandra.db.ColumnFamilyStore$8.computeNext(ColumnFamilyStore.java:1927) ~[main/:na] at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143) ~[guava-16.0.jar:na] at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138) ~[guava-16.0.jar:na] at org.apache.cassandra.db.ColumnFamilyStore.filter(ColumnFamilyStore.java:2079) ~[main/:na] at org.apache.cassandra.db.ColumnFamilyStore.getRangeSlice(ColumnFamilyStore.java:2038) ~[main/:na] at org.apache.cassandra.db.ColumnFamilyStore.getRangeSlice(ColumnFamilyStore.java:1972) ~[main/:na] at org.apache.cassandra.db.SystemKeyspace.serializedSchema(SystemKeyspace.java:942) ~[main/:na] at
Re: Latest Code from Trunk - Server is not starting
Thanks a lot. It worked. Thanks -Raj On 18-Nov-2014, at 9:00 pm, Yuki Morishita mor.y...@gmail.com wrote: Clear your './bin/../data/data' directory, and cassandra will start up fine. On Tue, Nov 18, 2014 at 2:43 PM, Rajanarayanan Thottuvaikkatumana rnambood...@gmail.com wrote: I have taken the latest code from trunk, compiled (I have some changes in some of the local files also). But when I start the Cassandra server, I am getting exceptions. The exceptions are not seeming to be from the classed where I changed OR has any relationship with the ones that are showing error. Any idea? Anybody else is getting same error? Rajanarayanans-MacBook-Pro:cassandra-trunk RajT$ ./bin/cassandra -f objc[4284]: Class JavaLaunchHelper is implemented in both /Library/Java/JavaVirtualMachines/jdk1.7.0_67.jdk/Contents/Home/bin/java and /Library/Java/JavaVirtualMachines/jdk1.7.0_67.jdk/Contents/Home/jre/lib/libinstrument.dylib. One of the two will be used. Which one is undefined. CompilerOracle: inline org/apache/cassandra/db/AbstractNativeCell.compareTo (Lorg/apache/cassandra/db/composites/Composite;)I CompilerOracle: inline org/apache/cassandra/db/composites/AbstractSimpleCellNameType.compareUnsigned (Lorg/apache/cassandra/db/composites/Composite;Lorg/apache/cassandra/db/composites/Composite;)I CompilerOracle: inline org/apache/cassandra/utils/ByteBufferUtil.compare (Ljava/nio/ByteBuffer;[B)I CompilerOracle: inline org/apache/cassandra/utils/ByteBufferUtil.compare ([BLjava/nio/ByteBuffer;)I CompilerOracle: inline org/apache/cassandra/utils/ByteBufferUtil.compareUnsigned (Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)I CompilerOracle: inline org/apache/cassandra/utils/FastByteOperations$UnsafeOperations.compareTo (Ljava/lang/Object;JILjava/lang/Object;JI)I CompilerOracle: inline org/apache/cassandra/utils/FastByteOperations$UnsafeOperations.compareTo (Ljava/lang/Object;JILjava/nio/ByteBuffer;)I CompilerOracle: inline org/apache/cassandra/utils/FastByteOperations$UnsafeOperations.compareTo (Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)I INFO 20:34:19 Hostname: Rajanarayanans-MacBook-Pro.local INFO 20:34:19 Loading settings from file:/Users/RajT/cassandra-source/cassandra-trunk/conf/cassandra.yaml INFO 20:34:19 Node configuration:[authenticator=AllowAllAuthenticator; authorizer=AllowAllAuthorizer; auto_snapshot=true; batch_size_fail_threshold_in_kb=50; batch_size_warn_threshold_in_kb=5; batchlog_replay_throttle_in_kb=1024; cas_contention_timeout_in_ms=1000; client_encryption_options=REDACTED; cluster_name=Test Cluster; column_index_size_in_kb=64; commit_failure_policy=stop; commitlog_segment_size_in_mb=32; commitlog_sync=periodic; commitlog_sync_period_in_ms=1; compaction_throughput_mb_per_sec=16; concurrent_counter_writes=32; concurrent_reads=32; concurrent_writes=32; counter_cache_save_period=7200; counter_cache_size_in_mb=null; counter_write_request_timeout_in_ms=5000; cross_node_timeout=false; disk_failure_policy=stop; dynamic_snitch_badness_threshold=0.1; dynamic_snitch_reset_interval_in_ms=60; dynamic_snitch_update_interval_in_ms=100; endpoint_snitch=SimpleSnitch; hinted_handoff_enabled=true; hinted_handoff_throttle_in_kb=1024; incremental_backups=false; index_summary_capacity_in_mb=null; index_summary_resize_interval_in_minutes=60; inter_dc_tcp_nodelay=false; internode_compression=all; key_cache_save_period=14400; key_cache_size_in_mb=null; listen_address=localhost; max_hint_window_in_ms=1080; max_hints_delivery_threads=2; memtable_allocation_type=heap_buffers; native_transport_port=9042; num_tokens=256; partitioner=org.apache.cassandra.dht.Murmur3Partitioner; permissions_validity_in_ms=2000; range_request_timeout_in_ms=1; read_request_timeout_in_ms=5000; request_scheduler=org.apache.cassandra.scheduler.NoScheduler; request_timeout_in_ms=1; row_cache_save_period=0; row_cache_size_in_mb=0; rpc_address=localhost; rpc_keepalive=true; rpc_port=9160; rpc_server_type=sync; seed_provider=[{class_name=org.apache.cassandra.locator.SimpleSeedProvider, parameters=[{seeds=127.0.0.1}]}]; server_encryption_options=REDACTED; snapshot_before_compaction=false; ssl_storage_port=7001; sstable_preemptive_open_interval_in_mb=50; start_native_transport=true; start_rpc=true; storage_port=7000; thrift_framed_transport_size_in_mb=15; tombstone_failure_threshold=10; tombstone_warn_threshold=1000; trickle_fsync=false; trickle_fsync_interval_in_kb=10240; truncate_request_timeout_in_ms=6; write_request_timeout_in_ms=2000] INFO 20:34:20 DiskAccessMode 'auto' determined to be mmap, indexAccessMode is mmap INFO 20:34:20 Global memtable on-heap threshold is enabled at 499MB INFO 20:34:20 Global memtable off-heap threshold is enabled at 499MB WARN 20:34:20 Couldn't open /proc/stats INFO 20:34:20 Loading settings from