[jira] Commented: (CASSANDRA-2008) CLI help incorrect in places

2011-02-16 Thread Aaron Morton (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-2008?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12995259#comment-12995259
 ] 

Aaron Morton commented on CASSANDRA-2008:
-

I'm working on changing the cli help to be driven from a yaml file (in the jar) 
to make it easier to be updated. I've ported over the existing help and am in 
the process of re-writing the help to match cassandra.yaml and the wiki. 

Below is a (first draft) example, if anyone has feedback on the style let me 
know. I'm trying to keep the text < 80 chars wide. I can also add simple 
pagination through the ConsoleReader we use if people think it would be handy.

{noformat}
[default@unknown] help create keyspace;
create keyspace ;
create keyspace  with =;
create keyspace  with = and = ...;

Create a new keyspace with the specified values for the given set of 
attributes.

Parameters:
- keyspace: Requried name of the new keyspace, "system" is reserved for 
  Cassandra internals. Names must only contain letters, numbers and 
  underscores.

Attributes:
- replication_factor: Required number of replicas of each row. Applies 
  to SimpleStrategy and OldNetworkTopologyStrategy placement strategys, 
  the NetworkTopologyStrrategy uses additonal configuration.

- placement_strategy: Required class that determines how replicas
  are distributed among nodes. Contains both the class as well as
  configuration information.  Must extend AbstractReplicationStrategy.

  Out of the box, Cassandra provides 
- org.apache.cassandra.locator.SimpleStrategy 
- org.apache.cassandra.locator.NetworkTopologyStrategy
- org.apache.cassandra.locator.OldNetworkTopologyStrategy


  SimpleStrategy merely places the first replica at the node whose 
  token is closest to the key (as determined by the Partitioner), and 
  additional replicas on subsequent nodes along the ring in increasing 
  Token order.

  With NetworkTopologyStrategy, for each datacenter, you can specify 
  how many replicas you want on a per-keyspace basis. Replicas are 
  placed on different racks within each DC, if possible. 

  OldNetworkToplogyStrategy [formerly RackAwareStrategy] 
  places one replica in each of two datacenters, and the third on a
  different rack in in the first.  Additional datacenters are not
  guaranteed to get a replica.  Additional replicas after three are 
  placed in ring order after the third without regard to rack or 
  datacenter.

- strategy_options: Optional additional options for placement_strategy.
  Applies only to NetworkTopologyStrategy.

Examples:
create keyspace foo with
placement_strategy = 'org.apache.cassandra.locator.SimpleStrategy'
and replication_factor = 3;
create keyspace foo with
placement_strategy = 
'org.apache.cassandra.locator.NetworkTopologyStrategy'
and strategy_options=[{DC1:2, DC2:2}];
{noformat}

> CLI help incorrect in places
> 
>
> Key: CASSANDRA-2008
> URL: https://issues.apache.org/jira/browse/CASSANDRA-2008
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Core
>Affects Versions: 0.7.0
>Reporter: Aaron Morton
>Assignee: Aaron Morton
>Priority: Trivial
> Fix For: 0.7.2
>
>
> Found some errors in the CLI help, such as these for create column family.
> - memtable_operations: Flush memtables after this many operations
> - memtable_throughput: ... or after this many bytes have been written
> - memtable_flush_after: ... or after this many seconds
> Should be millions of ops, MB's written and minutes not seconds.  Have 
> confirmed thats how the values are used. Will check all the help. 

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] Commented: (CASSANDRA-1954) Double-check or replace RRW memtable lock

2011-02-16 Thread Sylvain Lebresne (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-1954?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12995277#comment-12995277
 ] 

Sylvain Lebresne commented on CASSANDRA-1954:
-

Correct me if I am wrong but I think there is a 2 things:

* We need to ensure that we call the discard of the commmit context post-flush 
in the same order that we got the context pre-flush.

A lock is fine, especially if we diminish contention on it with double-checking 
or with an atomic boolean. That this block all writes however seems 
unnecessary. Why lock the read-lock during write (for that purpose I mean)?  As 
long as we get the commit log context and schedule the post-flush task before 
changing the active memtable, we should be right. We may have to replay a tiny 
bit more, since a few write will go into the being flushed memtable after we 
got the context, but we won't lose any.

On a related note, why I understand why we want to preserve this 
'pre-flush/post-flush' order er column family, I'm not sure I understand why it 
must be global since the commit log header distinguishes between the different 
CFs ?

* We need to keep writes out of being-flushed memtables.

For that, we can use per-memtable counters and make flush start by waiting on 
the counter to reach 0.


Am I missing something obvious here ?


As for the View structure proposed by Stu in the previous comment, this could 
actually be a quite reasonable solution for CASSANDRA-2105 so I'll probably 
give that a shot too in this context.


> Double-check or replace RRW memtable lock
> -
>
> Key: CASSANDRA-1954
> URL: https://issues.apache.org/jira/browse/CASSANDRA-1954
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Core
>Reporter: Stu Hood
>Priority: Minor
> Attachments: 
> 0001-Double-check-in-maybeSwitchMemtable-to-minimize-writeL.txt
>
>
> {quote}...when a Memtable reaches its threshold, up to (all) N write threads 
> will often notice, and race to acquire the writeLock in order to freeze the 
> memtable. This means that we do way more writeLock acquisitions than we need 
> to...{quote}
> See CASSANDRA-1930 for backstory, but adding double checking inside a read 
> lock before trying to re-entrantly acquire the writelock would eliminate most 
> of these excess writelock acquisitions.
> Alternatively, we should explore removing locking from these structures 
> entirely, and replacing the writeLock acquisition with a per-memtable counter 
> of active threads.

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] Commented: (CASSANDRA-1311) Support (asynchronous) triggers

2011-02-16 Thread T Jake Luciani (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-1311?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12995333#comment-12995333
 ] 

T Jake Luciani commented on CASSANDRA-1311:
---

"enforce trigger consistency via the commitlog the way 2ary indexes currently 
do"

I agree we should mirror the 2ary index impl, which means it becomes a 
synchronous operation. Frankly I think that's ok since it's the only way to 
know the client will know the data was written AND the trigger was executed.  
If a user wants asynchronous behavior, then the trigger implementation can 
simply schedule a action in a local queue.

> Support (asynchronous) triggers
> ---
>
> Key: CASSANDRA-1311
> URL: https://issues.apache.org/jira/browse/CASSANDRA-1311
> Project: Cassandra
>  Issue Type: New Feature
>  Components: Contrib
>Reporter: Maxim Grinev
> Fix For: 0.8
>
> Attachments: HOWTO-PatchAndRunTriggerExample-update1.txt, 
> HOWTO-PatchAndRunTriggerExample.txt, ImplementationDetails-update1.pdf, 
> ImplementationDetails.pdf, trunk-967053.txt, trunk-984391-update1.txt, 
> trunk-984391-update2.txt
>
>
> Asynchronous triggers is a basic mechanism to implement various use cases of 
> asynchronous execution of application code at database side. For example to 
> support indexes and materialized views, online analytics, push-based data 
> propagation.
> Please find the motivation, triggers description and list of applications:
> http://maxgrinev.com/2010/07/23/extending-cassandra-with-asynchronous-triggers/
> An example of using triggers for indexing:
> http://maxgrinev.com/2010/07/23/managing-indexes-in-cassandra-using-async-triggers/
> Implementation details are attached.

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] Commented: (CASSANDRA-1311) Support (asynchronous) triggers

2011-02-16 Thread Jonathan Ellis (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-1311?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12995338#comment-12995338
 ] 

Jonathan Ellis commented on CASSANDRA-1311:
---

Right. "Asynchronous triggers in the coordinator" has very little to recommend 
it over "just do it in your app with the StorageProxy API" (in which case your 
app is the coordinator, and you can easily run whatever coordinator-side logic 
you like).

> Support (asynchronous) triggers
> ---
>
> Key: CASSANDRA-1311
> URL: https://issues.apache.org/jira/browse/CASSANDRA-1311
> Project: Cassandra
>  Issue Type: New Feature
>  Components: Contrib
>Reporter: Maxim Grinev
> Fix For: 0.8
>
> Attachments: HOWTO-PatchAndRunTriggerExample-update1.txt, 
> HOWTO-PatchAndRunTriggerExample.txt, ImplementationDetails-update1.pdf, 
> ImplementationDetails.pdf, trunk-967053.txt, trunk-984391-update1.txt, 
> trunk-984391-update2.txt
>
>
> Asynchronous triggers is a basic mechanism to implement various use cases of 
> asynchronous execution of application code at database side. For example to 
> support indexes and materialized views, online analytics, push-based data 
> propagation.
> Please find the motivation, triggers description and list of applications:
> http://maxgrinev.com/2010/07/23/extending-cassandra-with-asynchronous-triggers/
> An example of using triggers for indexing:
> http://maxgrinev.com/2010/07/23/managing-indexes-in-cassandra-using-async-triggers/
> Implementation details are attached.

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] Commented: (CASSANDRA-1311) Support (asynchronous) triggers

2011-02-16 Thread Martin Hentschel (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-1311?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12995342#comment-12995342
 ] 

Martin Hentschel commented on CASSANDRA-1311:
-

Thanks for your comments. I don't want to advertise our approach and 
implementation but I want to give some hints on why we chose this pattern.

T Jake Luciani said that clients want to know when triggers are executed. In 
our approach the client can be sure that the trigger will be executed 
(at-least-once behavior) but not when. There are lots of use cases when a 
client doesn't need to know when the trigger was executed. For example, when 
you do a bank transaction, you usually submit the transaction and it is 
executed some time later. On Twitter, when you submit a tweet you usually do 
not care when your tweet is forwarded to your followers. In both cases, the 
execution of the bank transaction and forwarding the tweet to your followers, 
would be implemented by triggers.

Jonathan Ellis said that asynchronous behavior can be implemented on the client 
side. While this is true, it requires some effort by the programmer. The 
programmer would need to set up a queue, implement communication with the 
queue, ensure at-least-once behavior etc. Having all of this already present 
within Cassandra could help in the use cases mentioned above. 

In my opinion, having synchronous triggers has no advantages over implementing 
it synchronously at the client. Synchronously updating a table + an index can 
be done easily at the client side (without queues and fancy implementation). 
Therefore we wouldn't need triggers at all.

I guess I will join the dev list again, this seems to become a good discussion 
:-)

> Support (asynchronous) triggers
> ---
>
> Key: CASSANDRA-1311
> URL: https://issues.apache.org/jira/browse/CASSANDRA-1311
> Project: Cassandra
>  Issue Type: New Feature
>  Components: Contrib
>Reporter: Maxim Grinev
> Fix For: 0.8
>
> Attachments: HOWTO-PatchAndRunTriggerExample-update1.txt, 
> HOWTO-PatchAndRunTriggerExample.txt, ImplementationDetails-update1.pdf, 
> ImplementationDetails.pdf, trunk-967053.txt, trunk-984391-update1.txt, 
> trunk-984391-update2.txt
>
>
> Asynchronous triggers is a basic mechanism to implement various use cases of 
> asynchronous execution of application code at database side. For example to 
> support indexes and materialized views, online analytics, push-based data 
> propagation.
> Please find the motivation, triggers description and list of applications:
> http://maxgrinev.com/2010/07/23/extending-cassandra-with-asynchronous-triggers/
> An example of using triggers for indexing:
> http://maxgrinev.com/2010/07/23/managing-indexes-in-cassandra-using-async-triggers/
> Implementation details are attached.

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] Commented: (CASSANDRA-1311) Support (asynchronous) triggers

2011-02-16 Thread T Jake Luciani (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-1311?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12995347#comment-12995347
 ] 

T Jake Luciani commented on CASSANDRA-1311:
---

I think Jonathan is referring to the server side ITrigger impl as the 
application.  The ITrigger is called synchronously for every write but the 
implementation of the trigger can be asynchronous, e.g. implement a linked 
blocking queue and thread pool to do the work asynchronously. 

> Support (asynchronous) triggers
> ---
>
> Key: CASSANDRA-1311
> URL: https://issues.apache.org/jira/browse/CASSANDRA-1311
> Project: Cassandra
>  Issue Type: New Feature
>  Components: Contrib
>Reporter: Maxim Grinev
> Fix For: 0.8
>
> Attachments: HOWTO-PatchAndRunTriggerExample-update1.txt, 
> HOWTO-PatchAndRunTriggerExample.txt, ImplementationDetails-update1.pdf, 
> ImplementationDetails.pdf, trunk-967053.txt, trunk-984391-update1.txt, 
> trunk-984391-update2.txt
>
>
> Asynchronous triggers is a basic mechanism to implement various use cases of 
> asynchronous execution of application code at database side. For example to 
> support indexes and materialized views, online analytics, push-based data 
> propagation.
> Please find the motivation, triggers description and list of applications:
> http://maxgrinev.com/2010/07/23/extending-cassandra-with-asynchronous-triggers/
> An example of using triggers for indexing:
> http://maxgrinev.com/2010/07/23/managing-indexes-in-cassandra-using-async-triggers/
> Implementation details are attached.

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] Commented: (CASSANDRA-1311) Support (asynchronous) triggers

2011-02-16 Thread Maxim Grinev (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-1311?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12995394#comment-12995394
 ] 

Maxim Grinev commented on CASSANDRA-1311:
-

Jonathan, Jake, if you just mean synchronous triggers we can easily add an 
option to make it synchronous. To make it synchronous we just need to switch 
off failover mechanism and don't reply to the client until the trigger is 
executed (it will be executed asynchronously but wait for results as Jake 
wrote). Is it what you mean or you mean something more? 

> Support (asynchronous) triggers
> ---
>
> Key: CASSANDRA-1311
> URL: https://issues.apache.org/jira/browse/CASSANDRA-1311
> Project: Cassandra
>  Issue Type: New Feature
>  Components: Contrib
>Reporter: Maxim Grinev
> Fix For: 0.8
>
> Attachments: HOWTO-PatchAndRunTriggerExample-update1.txt, 
> HOWTO-PatchAndRunTriggerExample.txt, ImplementationDetails-update1.pdf, 
> ImplementationDetails.pdf, trunk-967053.txt, trunk-984391-update1.txt, 
> trunk-984391-update2.txt
>
>
> Asynchronous triggers is a basic mechanism to implement various use cases of 
> asynchronous execution of application code at database side. For example to 
> support indexes and materialized views, online analytics, push-based data 
> propagation.
> Please find the motivation, triggers description and list of applications:
> http://maxgrinev.com/2010/07/23/extending-cassandra-with-asynchronous-triggers/
> An example of using triggers for indexing:
> http://maxgrinev.com/2010/07/23/managing-indexes-in-cassandra-using-async-triggers/
> Implementation details are attached.

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] Updated: (CASSANDRA-1954) Double-check or replace RRW memtable lock

2011-02-16 Thread Sylvain Lebresne (JIRA)

 [ 
https://issues.apache.org/jira/browse/CASSANDRA-1954?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Sylvain Lebresne updated CASSANDRA-1954:


Attachment: 0001-Remove-flusherLock-readLock.patch

Attached patch implements what's hinted in my previous comment. Mainly it keeps 
the flusher lock to unsure we discard commit log segment in the order we read 
them, but remove the readLock on writes, so flush don't block writes anymore.

It passes unit test but that doesn't say much.

> Double-check or replace RRW memtable lock
> -
>
> Key: CASSANDRA-1954
> URL: https://issues.apache.org/jira/browse/CASSANDRA-1954
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Core
>Reporter: Stu Hood
>Priority: Minor
> Attachments: 
> 0001-Double-check-in-maybeSwitchMemtable-to-minimize-writeL.txt, 
> 0001-Remove-flusherLock-readLock.patch
>
>
> {quote}...when a Memtable reaches its threshold, up to (all) N write threads 
> will often notice, and race to acquire the writeLock in order to freeze the 
> memtable. This means that we do way more writeLock acquisitions than we need 
> to...{quote}
> See CASSANDRA-1930 for backstory, but adding double checking inside a read 
> lock before trying to re-entrantly acquire the writelock would eliminate most 
> of these excess writelock acquisitions.
> Alternatively, we should explore removing locking from these structures 
> entirely, and replacing the writeLock acquisition with a per-memtable counter 
> of active threads.

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] Created: (CASSANDRA-2176) Add configuration setting to cap the number of Thrift connections

2011-02-16 Thread Jonathan Ellis (JIRA)
Add configuration setting to cap the number of Thrift connections
-

 Key: CASSANDRA-2176
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2176
 Project: Cassandra
  Issue Type: Bug
  Components: API
Reporter: Jonathan Ellis
Assignee: Jonathan Ellis
Priority: Minor
 Fix For: 0.7.3


At least until CASSANDRA-1405 is done, it's useful to have a connection cap to 
prevent misbehaving clients from DOSing the server.

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] Commented: (CASSANDRA-2158) memtable_throughput_in_mb can not support sizes over 2.2 gigs because of an integer overflow.

2011-02-16 Thread Brandon Williams (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-2158?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12995434#comment-12995434
 ] 

Brandon Williams commented on CASSANDRA-2158:
-

+1

> memtable_throughput_in_mb can not support sizes over 2.2 gigs because of an 
> integer overflow.
> -
>
> Key: CASSANDRA-2158
> URL: https://issues.apache.org/jira/browse/CASSANDRA-2158
> Project: Cassandra
>  Issue Type: Bug
>Reporter: Eddie
>Assignee: Jonathan Ellis
> Fix For: 0.7.2
>
> Attachments: 2158.txt
>
>
> If memtable_throughput_in_mb is set past 2.2 gigs, no errors are thrown.  
> However, as soon as data starts being written it is almost immediately being 
> flushed.  Several hundred SSTables are created in minutes.  I am almost 
> positive that the problem is that when memtable_throughput_in_mb is being 
> converted into bytes the result is stored in an integer, which is overflowing.
> From memtable.java:
> private final int THRESHOLD;
> private final int THRESHOLD_COUNT;
> ...
> this.THRESHOLD = cfs.getMemtableThroughputInMB() * 1024 * 1024;
> this.THRESHOLD_COUNT = (int) (cfs.getMemtableOperationsInMillions() * 1024 * 
> 1024);
> NOTE:
> I also think currentThroughput also needs to be changed from an int to a 
> long.  I'm not sure if it is as simple as this or if this also is used in 
> other places.

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] Updated: (CASSANDRA-2176) Add configuration setting to cap the number of Thrift connections

2011-02-16 Thread Jonathan Ellis (JIRA)

 [ 
https://issues.apache.org/jira/browse/CASSANDRA-2176?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jonathan Ellis updated CASSANDRA-2176:
--

  Reviewer: jbellis
  Assignee: T Jake Luciani  (was: Jonathan Ellis)
Issue Type: Improvement  (was: Bug)

> Add configuration setting to cap the number of Thrift connections
> -
>
> Key: CASSANDRA-2176
> URL: https://issues.apache.org/jira/browse/CASSANDRA-2176
> Project: Cassandra
>  Issue Type: Improvement
>  Components: API
>Reporter: Jonathan Ellis
>Assignee: T Jake Luciani
>Priority: Minor
> Fix For: 0.7.3
>
>
> At least until CASSANDRA-1405 is done, it's useful to have a connection cap 
> to prevent misbehaving clients from DOSing the server.

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] Commented: (CASSANDRA-2169) user created with debian packaging is unable to increase memlock

2011-02-16 Thread Brandon Williams (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-2169?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12995446#comment-12995446
 ] 

Brandon Williams commented on CASSANDRA-2169:
-

What happens if you su to the cassandra user and check ulimit?

> user created with debian packaging is unable to increase memlock
> 
>
> Key: CASSANDRA-2169
> URL: https://issues.apache.org/jira/browse/CASSANDRA-2169
> Project: Cassandra
>  Issue Type: Bug
>  Components: Packaging
>Reporter: Jeremy Hanna
>Priority: Minor
>
> To reproduce:
> - Install a fresh copy of ubuntu 10.04.
> - Install sun's java6 jdk.
> - Install libjna-java 3.2.7 into /usr/share/java.
> - Install cassandra 0.7.0 from the apache debian packages.
> - Start cassandra using /etc/init.d/cassandra
> In the output.log there will be the following error:
> {quote}
> Unable to lock JVM memory (ENOMEM). This can result in part of the JVM being 
> swapped out, especially with mmapped I/O enabled. Increase RLIMIT_MEMLOCK or 
> run Cassandra as root.
> {quote}
> This shouldn't be as the debian package creates 
> /etc/security/limits.d/cassandra.conf and sets the cassandra user's memlock 
> limit to 'unlimited'.
> I tried a variety of things including making the memlock unlimited for all 
> users in /etc/security/limits.conf.  I was able to run cassandra using root 
> with jna symbolically linked into /usr/share/cassandra from /usr/share/java, 
> but I could never get the init.d script to work and get beyond that error.
> Based on all the trial and error, I think it might have to do with the 
> cassandra user itself, but my debian/ubuntu fu isn't as good as others'.

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] Commented: (CASSANDRA-2176) Add configuration setting to cap the number of Thrift connections

2011-02-16 Thread T Jake Luciani (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-2176?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12995447#comment-12995447
 ] 

T Jake Luciani commented on CASSANDRA-2176:
---

If we just capped the thread pool it should be effectively the same correct?

> Add configuration setting to cap the number of Thrift connections
> -
>
> Key: CASSANDRA-2176
> URL: https://issues.apache.org/jira/browse/CASSANDRA-2176
> Project: Cassandra
>  Issue Type: Improvement
>  Components: API
>Reporter: Jonathan Ellis
>Assignee: T Jake Luciani
>Priority: Minor
> Fix For: 0.7.3
>
>
> At least until CASSANDRA-1405 is done, it's useful to have a connection cap 
> to prevent misbehaving clients from DOSing the server.

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] Commented: (CASSANDRA-2169) user created with debian packaging is unable to increase memlock

2011-02-16 Thread Jeremy Hanna (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-2169?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12995449#comment-12995449
 ] 

Jeremy Hanna commented on CASSANDRA-2169:
-

"ulimit -l" always returns 64.

I gave the cassandra user a shell so I can su to that user.  When I do, the 
memlock doesn't ever take - whether it's defined in /etc/security/limits.conf 
for the cassandra user, for all users (*), or in the 
/etc/security/limits.d/cassandra.conf.

> user created with debian packaging is unable to increase memlock
> 
>
> Key: CASSANDRA-2169
> URL: https://issues.apache.org/jira/browse/CASSANDRA-2169
> Project: Cassandra
>  Issue Type: Bug
>  Components: Packaging
>Reporter: Jeremy Hanna
>Priority: Minor
>
> To reproduce:
> - Install a fresh copy of ubuntu 10.04.
> - Install sun's java6 jdk.
> - Install libjna-java 3.2.7 into /usr/share/java.
> - Install cassandra 0.7.0 from the apache debian packages.
> - Start cassandra using /etc/init.d/cassandra
> In the output.log there will be the following error:
> {quote}
> Unable to lock JVM memory (ENOMEM). This can result in part of the JVM being 
> swapped out, especially with mmapped I/O enabled. Increase RLIMIT_MEMLOCK or 
> run Cassandra as root.
> {quote}
> This shouldn't be as the debian package creates 
> /etc/security/limits.d/cassandra.conf and sets the cassandra user's memlock 
> limit to 'unlimited'.
> I tried a variety of things including making the memlock unlimited for all 
> users in /etc/security/limits.conf.  I was able to run cassandra using root 
> with jna symbolically linked into /usr/share/cassandra from /usr/share/java, 
> but I could never get the init.d script to work and get beyond that error.
> Based on all the trial and error, I think it might have to do with the 
> cassandra user itself, but my debian/ubuntu fu isn't as good as others'.

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] Issue Comment Edited: (CASSANDRA-2169) user created with debian packaging is unable to increase memlock

2011-02-16 Thread Jeremy Hanna (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-2169?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12995449#comment-12995449
 ] 

Jeremy Hanna edited comment on CASSANDRA-2169 at 2/16/11 6:51 PM:
--

"ulimit -l" always returns 64.

I gave the cassandra user a shell so I can su to that user.  When I do, the 
memlock doesn't ever take - whether it's defined in /etc/security/limits.conf 
for the cassandra user, for all users '*', or in the 
/etc/security/limits.d/cassandra.conf.

  was (Author: jeromatron):
"ulimit -l" always returns 64.

I gave the cassandra user a shell so I can su to that user.  When I do, the 
memlock doesn't ever take - whether it's defined in /etc/security/limits.conf 
for the cassandra user, for all users (*), or in the 
/etc/security/limits.d/cassandra.conf.
  
> user created with debian packaging is unable to increase memlock
> 
>
> Key: CASSANDRA-2169
> URL: https://issues.apache.org/jira/browse/CASSANDRA-2169
> Project: Cassandra
>  Issue Type: Bug
>  Components: Packaging
>Reporter: Jeremy Hanna
>Priority: Minor
>
> To reproduce:
> - Install a fresh copy of ubuntu 10.04.
> - Install sun's java6 jdk.
> - Install libjna-java 3.2.7 into /usr/share/java.
> - Install cassandra 0.7.0 from the apache debian packages.
> - Start cassandra using /etc/init.d/cassandra
> In the output.log there will be the following error:
> {quote}
> Unable to lock JVM memory (ENOMEM). This can result in part of the JVM being 
> swapped out, especially with mmapped I/O enabled. Increase RLIMIT_MEMLOCK or 
> run Cassandra as root.
> {quote}
> This shouldn't be as the debian package creates 
> /etc/security/limits.d/cassandra.conf and sets the cassandra user's memlock 
> limit to 'unlimited'.
> I tried a variety of things including making the memlock unlimited for all 
> users in /etc/security/limits.conf.  I was able to run cassandra using root 
> with jna symbolically linked into /usr/share/cassandra from /usr/share/java, 
> but I could never get the init.d script to work and get beyond that error.
> Based on all the trial and error, I think it might have to do with the 
> cassandra user itself, but my debian/ubuntu fu isn't as good as others'.

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] Commented: (CASSANDRA-2169) user created with debian packaging is unable to increase memlock

2011-02-16 Thread Brandon Williams (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-2169?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12995451#comment-12995451
 ] 

Brandon Williams commented on CASSANDRA-2169:
-

Just to be certain limits.conf is taking effect, have you tried rebooting the 
box since changing it?

> user created with debian packaging is unable to increase memlock
> 
>
> Key: CASSANDRA-2169
> URL: https://issues.apache.org/jira/browse/CASSANDRA-2169
> Project: Cassandra
>  Issue Type: Bug
>  Components: Packaging
>Reporter: Jeremy Hanna
>Priority: Minor
>
> To reproduce:
> - Install a fresh copy of ubuntu 10.04.
> - Install sun's java6 jdk.
> - Install libjna-java 3.2.7 into /usr/share/java.
> - Install cassandra 0.7.0 from the apache debian packages.
> - Start cassandra using /etc/init.d/cassandra
> In the output.log there will be the following error:
> {quote}
> Unable to lock JVM memory (ENOMEM). This can result in part of the JVM being 
> swapped out, especially with mmapped I/O enabled. Increase RLIMIT_MEMLOCK or 
> run Cassandra as root.
> {quote}
> This shouldn't be as the debian package creates 
> /etc/security/limits.d/cassandra.conf and sets the cassandra user's memlock 
> limit to 'unlimited'.
> I tried a variety of things including making the memlock unlimited for all 
> users in /etc/security/limits.conf.  I was able to run cassandra using root 
> with jna symbolically linked into /usr/share/cassandra from /usr/share/java, 
> but I could never get the init.d script to work and get beyond that error.
> Based on all the trial and error, I think it might have to do with the 
> cassandra user itself, but my debian/ubuntu fu isn't as good as others'.

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] Commented: (CASSANDRA-2169) user created with debian packaging is unable to increase memlock

2011-02-16 Thread Jeremy Hanna (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-2169?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12995455#comment-12995455
 ] 

Jeremy Hanna commented on CASSANDRA-2169:
-

I made sure it took effect for the user I originally logged in as - ubuntu for 
my ec2 instance and jeremy for my local vm.  It took effect for those users 
whenever I changed it.  I also tried rebooting.  That was the way it took 
effect for the ec2 server's ubuntu user iirc.  But it didn't take effect for 
the cassandra user.

> user created with debian packaging is unable to increase memlock
> 
>
> Key: CASSANDRA-2169
> URL: https://issues.apache.org/jira/browse/CASSANDRA-2169
> Project: Cassandra
>  Issue Type: Bug
>  Components: Packaging
>Reporter: Jeremy Hanna
>Priority: Minor
>
> To reproduce:
> - Install a fresh copy of ubuntu 10.04.
> - Install sun's java6 jdk.
> - Install libjna-java 3.2.7 into /usr/share/java.
> - Install cassandra 0.7.0 from the apache debian packages.
> - Start cassandra using /etc/init.d/cassandra
> In the output.log there will be the following error:
> {quote}
> Unable to lock JVM memory (ENOMEM). This can result in part of the JVM being 
> swapped out, especially with mmapped I/O enabled. Increase RLIMIT_MEMLOCK or 
> run Cassandra as root.
> {quote}
> This shouldn't be as the debian package creates 
> /etc/security/limits.d/cassandra.conf and sets the cassandra user's memlock 
> limit to 'unlimited'.
> I tried a variety of things including making the memlock unlimited for all 
> users in /etc/security/limits.conf.  I was able to run cassandra using root 
> with jna symbolically linked into /usr/share/cassandra from /usr/share/java, 
> but I could never get the init.d script to work and get beyond that error.
> Based on all the trial and error, I think it might have to do with the 
> cassandra user itself, but my debian/ubuntu fu isn't as good as others'.

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] Commented: (CASSANDRA-1427) Optimize loadbalance/move for moves within the current range

2011-02-16 Thread Nick Bailey (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-1427?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12995457#comment-12995457
 ] 

Nick Bailey commented on CASSANDRA-1427:


Some initial comments:
* This change disallows moving when RF = N. The call to 
calculateNaturalEndpoints fails when you use the tokenmetadata that doesn't 
include the moving node. 
* We need to sleep for RING_DELAY before we start any streaming. Similar to how 
decommission does. Basically the other nodes need to calculate their pending 
ranges so they can start sending writes to the appropriate nodes. Once that 
happens we can stream. It might be nice to bypass the sleep if nothing is going 
to be streamed. It would make setting up the ring before any data is in it 
easier. 
* The check to see if data is moving to this node needs to be done in a loop at 
the beginning of the move method. By the time you throw the exception in the 
current implementation you've already gossiped the move state and calculated a 
bunch of ranges and whatnot. 
* You never await the latch in streamRanges so that call returns immediately. 
* It looks like decom is broken. There is a latch in unbootstrap that is waited 
on but never counted down. 
* Also in regards to the above point: I think we should try to combine a lot of 
the logic for calculating ranges that we are fetching or streaming. Can we have 
decom and move call the same method to calculate ranges to send to then do the 
actual sending and the same for bootstrap/move? Right now that move method is 
pretty hairy and it seems like it would be good to have that logic in a single 
spot. 

Gonna post this comment so it doesn't get lost, but I'm gonna still do some 
more reviewing.

> Optimize loadbalance/move for moves within the current range
> 
>
> Key: CASSANDRA-1427
> URL: https://issues.apache.org/jira/browse/CASSANDRA-1427
> Project: Cassandra
>  Issue Type: Sub-task
>  Components: Core
>Affects Versions: 0.7 beta 1
>Reporter: Nick Bailey
>Assignee: Pavel Yaskevich
> Fix For: 0.8
>
> Attachments: CASSANDRA-1427-v2.patch, CASSANDRA-1427-v3.patch, 
> CASSANDRA-1427-v4.patch, CASSANDRA-1427.patch
>
>   Original Estimate: 42h
>  Time Spent: 42h
>  Remaining Estimate: 0h
>
> Currently our move/loadbalance operations only implement case 2 of the Ruhl 
> algorithm described at 
> https://issues.apache.org/jira/browse/CASSANDRA-192#action_12713079.
> We should add functionality to optimize moves that take/give ranges to a 
> node's direct neighbors.

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] Commented: (CASSANDRA-1828) Create a pig storefunc

2011-02-16 Thread Brandon Williams (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-1828?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12995468#comment-12995468
 ] 

Brandon Williams commented on CASSANDRA-1828:
-

The way to rebuild pig is to edit ivy/libraries.properties and bump the jackson 
version to 1.4.0 then run ant.

> Create a pig storefunc
> --
>
> Key: CASSANDRA-1828
> URL: https://issues.apache.org/jira/browse/CASSANDRA-1828
> Project: Cassandra
>  Issue Type: New Feature
>  Components: Contrib, Hadoop
>Affects Versions: 0.7 beta 1
>Reporter: Brandon Williams
>Assignee: Brandon Williams
>Priority: Minor
> Fix For: 0.7.2
>
> Attachments: 0001-add-storage-ability-to-pig-CassandraStorage.txt, 
> 0002-Fix-build-bin-script.txt
>
>   Original Estimate: 32h
>  Remaining Estimate: 32h
>
> Now that we have a ColumnFamilyOutputFormat, we can write data back to 
> cassandra in mapreduce jobs, however we can only do this in java.  It would 
> be nice if pig could also output to cassandra.

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] Created: (CASSANDRA-2177) OPP + NTS + RF=2 reports wrong getRangeToEndpointMap

2011-02-16 Thread Mike Bulman (JIRA)
OPP + NTS + RF=2 reports wrong getRangeToEndpointMap


 Key: CASSANDRA-2177
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2177
 Project: Cassandra
  Issue Type: Bug
Reporter: Mike Bulman


OPP, 3 node cluster, RackInferringSnitch.

Ring:
[root@mb541 apache-cassandra-0.7.1]# bin/nodetool -h localhost ring
Address Status State   LoadOwnsToken
   
   zzz  
   
1.2.3.4 Up Normal  42.48 KB33.33%  aaa  
   
1.2.3.5 Up Normal  42.39 KB33.33%  rDwPSSIKSaXEwaaV 
   
1.2.3.6  Up Normal  42.5 KB33.33%  zzz 

getRangeToEndPointMap for KS using NTS with {'2':2} replication returns:
{
('aaa', 'zzz'): ('1.2.3.6', '1.2.3.5'),
('zzz', 'NVOt7oNr1UcCzCEU'): ('1.2.3.5', '1.2.3.6'), 
('NVOt7oNr1UcCzCEU', 'aaa'): ('1.2.3.4', '1.2.3.6')
}

node '4' is only represented once.

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] Commented: (CASSANDRA-2176) Add configuration setting to cap the number of Thrift connections

2011-02-16 Thread Jonathan Ellis (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-2176?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12995476#comment-12995476
 ] 

Jonathan Ellis commented on CASSANDRA-2176:
---

Probably.  I think what we want is for clients to get an immediate refusal 
rather than a timeout, and a warning but no tracebacks in the Cassandra log.

> Add configuration setting to cap the number of Thrift connections
> -
>
> Key: CASSANDRA-2176
> URL: https://issues.apache.org/jira/browse/CASSANDRA-2176
> Project: Cassandra
>  Issue Type: Improvement
>  Components: API
>Reporter: Jonathan Ellis
>Assignee: T Jake Luciani
>Priority: Minor
> Fix For: 0.7.3
>
>
> At least until CASSANDRA-1405 is done, it's useful to have a connection cap 
> to prevent misbehaving clients from DOSing the server.

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] Updated: (CASSANDRA-2069) Read repair causes tremendous GC pressure

2011-02-16 Thread Jonathan Ellis (JIRA)

 [ 
https://issues.apache.org/jira/browse/CASSANDRA-2069?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jonathan Ellis updated CASSANDRA-2069:
--

Fix Version/s: (was: 0.7.2)
   0.7.3

> Read repair causes tremendous GC pressure
> -
>
> Key: CASSANDRA-2069
> URL: https://issues.apache.org/jira/browse/CASSANDRA-2069
> Project: Cassandra
>  Issue Type: Bug
>Affects Versions: 0.7.1
>Reporter: Brandon Williams
>Assignee: Jonathan Ellis
> Fix For: 0.7.3
>
> Attachments: 2069-v10.txt, 2069-v2.txt, 2069-v3.txt, 2069-v4.txt, 
> 2069-v5.txt, 2069-v6.txt, 2069-v7.txt, 2069-v8.txt, 2069-v9.txt, 2069.txt
>
>
> To reproduce: start a three node cluster, insert 1M rows with stress.java and 
> rf=2.  Take one down, delete its data, then bring it back up and issue 1M 
> reads against it.  After the run is done you will see at least 1 STW long 
> enough to mark the node as dead, often 4 or 5.

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] Updated: (CASSANDRA-2115) Keep endpoint state until aVeryLongTime

2011-02-16 Thread Jonathan Ellis (JIRA)

 [ 
https://issues.apache.org/jira/browse/CASSANDRA-2115?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jonathan Ellis updated CASSANDRA-2115:
--

Fix Version/s: (was: 0.7.2)
   0.7.3

> Keep endpoint state until aVeryLongTime
> ---
>
> Key: CASSANDRA-2115
> URL: https://issues.apache.org/jira/browse/CASSANDRA-2115
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Core
>Affects Versions: 0.7.1
>Reporter: Brandon Williams
>Assignee: Brandon Williams
>Priority: Minor
> Fix For: 0.7.3
>
> Attachments: 2115.txt
>
>
> In CASSANDRA-2072 we changed the gossiper so it holds onto endpoint state 
> until QUARANTINE_DELAY has elapsed.  However, if node X is leaving and node Y 
> goes down and stays down longer than QUARANTINE_DELAY after X has left, Y 
> will return thinking X is still a member of the cluster.  Instead, let's hold 
> onto the endpoint state even longer, until aVeryLongTime which is currently 
> set to 3 days. 

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] Updated: (CASSANDRA-2174) saved caches written with BufferedRandomAccessFile cannot be read by ObjectInputStream

2011-02-16 Thread Matthew F. Dennis (JIRA)

 [ 
https://issues.apache.org/jira/browse/CASSANDRA-2174?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Matthew F. Dennis updated CASSANDRA-2174:
-

Attachment: (was: 2174-cassandra-0.7.txt)

> saved caches written with BufferedRandomAccessFile cannot be read by 
> ObjectInputStream
> --
>
> Key: CASSANDRA-2174
> URL: https://issues.apache.org/jira/browse/CASSANDRA-2174
> Project: Cassandra
>  Issue Type: Bug
>Affects Versions: 0.7.1
>Reporter: Matthew F. Dennis
>Assignee: Matthew F. Dennis
> Fix For: 0.7.3
>
>
> The CacheWriter is currently writing with BufferedRandomAccessFile which is 
> incompatible with ObjectInputStream resulting in stack traces about corrupted 
> stream headers when loading a saved cache.

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] Updated: (CASSANDRA-2172) Saved-cache files are created for empty caches

2011-02-16 Thread Matthew F. Dennis (JIRA)

 [ 
https://issues.apache.org/jira/browse/CASSANDRA-2172?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Matthew F. Dennis updated CASSANDRA-2172:
-

Reviewer: jbellis  (was: mdennis)

> Saved-cache files are created for empty caches
> --
>
> Key: CASSANDRA-2172
> URL: https://issues.apache.org/jira/browse/CASSANDRA-2172
> Project: Cassandra
>  Issue Type: Bug
>  Components: Core
>Affects Versions: 0.7.1
>Reporter: Jonathan Ellis
>Assignee: Matthew F. Dennis
>Priority: Minor
> Fix For: 0.7.3
>
> Attachments: 2172-cassandra-0.7-v2.txt, 2172.txt
>
>
> This results in a harmless EOFException on startup.

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] Assigned: (CASSANDRA-2172) Saved-cache files are created for empty caches

2011-02-16 Thread Matthew F. Dennis (JIRA)

 [ 
https://issues.apache.org/jira/browse/CASSANDRA-2172?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Matthew F. Dennis reassigned CASSANDRA-2172:


Assignee: Matthew F. Dennis  (was: Jonathan Ellis)

> Saved-cache files are created for empty caches
> --
>
> Key: CASSANDRA-2172
> URL: https://issues.apache.org/jira/browse/CASSANDRA-2172
> Project: Cassandra
>  Issue Type: Bug
>  Components: Core
>Affects Versions: 0.7.1
>Reporter: Jonathan Ellis
>Assignee: Matthew F. Dennis
>Priority: Minor
> Fix For: 0.7.3
>
> Attachments: 2172-cassandra-0.7-v2.txt, 2172.txt
>
>
> This results in a harmless EOFException on startup.

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] Updated: (CASSANDRA-2174) saved caches written with BufferedRandomAccessFile cannot be read by ObjectInputStream

2011-02-16 Thread Matthew F. Dennis (JIRA)

 [ 
https://issues.apache.org/jira/browse/CASSANDRA-2174?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Matthew F. Dennis updated CASSANDRA-2174:
-

Attachment: 2174-cassandra-0.7.txt

I neglected to see the skipCache flag and was intending to make the read/write 
code symmetric.

attached patch contains only CFS change from OIS to DIS. 

> saved caches written with BufferedRandomAccessFile cannot be read by 
> ObjectInputStream
> --
>
> Key: CASSANDRA-2174
> URL: https://issues.apache.org/jira/browse/CASSANDRA-2174
> Project: Cassandra
>  Issue Type: Bug
>Affects Versions: 0.7.1
>Reporter: Matthew F. Dennis
>Assignee: Matthew F. Dennis
> Fix For: 0.7.3
>
> Attachments: 2174-cassandra-0.7.txt
>
>
> The CacheWriter is currently writing with BufferedRandomAccessFile which is 
> incompatible with ObjectInputStream resulting in stack traces about corrupted 
> stream headers when loading a saved cache.

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira




svn commit: r1071388 - in /cassandra/trunk: ./ conf/ contrib/ interface/thrift/gen-java/org/apache/cassandra/thrift/ src/java/org/apache/cassandra/config/ src/java/org/apache/cassandra/db/ src/java/or

2011-02-16 Thread jbellis
Author: jbellis
Date: Wed Feb 16 20:37:17 2011
New Revision: 1071388

URL: http://svn.apache.org/viewvc?rev=1071388&view=rev
Log:
merge from 0.7

Added:
cassandra/trunk/test/long/org/apache/cassandra/db/LongTableTest.java
cassandra/trunk/test/unit/org/apache/cassandra/db/KeyCacheTest.java
Modified:
cassandra/trunk/   (props changed)
cassandra/trunk/CHANGES.txt
cassandra/trunk/conf/cassandra.yaml
cassandra/trunk/contrib/   (props changed)

cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java
   (props changed)

cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java
   (props changed)

cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java
   (props changed)

cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java
   (props changed)

cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java
   (props changed)
cassandra/trunk/src/java/org/apache/cassandra/config/Config.java
cassandra/trunk/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
cassandra/trunk/src/java/org/apache/cassandra/db/HintedHandOffManager.java
cassandra/trunk/src/java/org/apache/cassandra/io/sstable/CacheWriter.java

cassandra/trunk/src/java/org/apache/cassandra/io/util/MappedFileDataInput.java
cassandra/trunk/src/java/org/apache/cassandra/utils/ByteBufferUtil.java
cassandra/trunk/test/conf/cassandra.yaml
cassandra/trunk/test/unit/org/apache/cassandra/db/CompactionsPurgeTest.java
cassandra/trunk/test/unit/org/apache/cassandra/db/TableTest.java

Propchange: cassandra/trunk/
--
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Feb 16 20:37:17 2011
@@ -1,5 +1,5 @@
-/cassandra/branches/cassandra-0.6:922689-1052356,1052358-1053452,1053454,1053456-1068009,1068978
-/cassandra/branches/cassandra-0.7:1026516-1070530,1070977
+/cassandra/branches/cassandra-0.6:922689-1052356,1052358-1053452,1053454,1053456-1071070
+/cassandra/branches/cassandra-0.7:1026516-1071380
 /cassandra/branches/cassandra-0.7.0:1053690-1055654
 /cassandra/tags/cassandra-0.7.0-rc3:1051699-1053689
 /incubator/cassandra/branches/cassandra-0.3:774578-796573

Modified: cassandra/trunk/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/CHANGES.txt?rev=1071388&r1=1071387&r2=1071388&view=diff
==
--- cassandra/trunk/CHANGES.txt (original)
+++ cassandra/trunk/CHANGES.txt Wed Feb 16 20:37:17 2011
@@ -10,11 +10,18 @@
  * check for null encryption in MessagingService (CASSANDRA-2152)
 
 
+0.7.3
+ * Keep endpoint state until aVeryLongTime (CASSANDRA-2115)
+ * lower-latency read repair (CASSANDRA-2069)
+ * add hinted_handoff_throttle_delay_in_ms option (CASSANDRA-2161)
+ * don't save empty caches (CASSANDRA-2172)
+
+
 0.7.2
  * copy DecoratedKey.key when inserting into caches to avoid retaining
a reference to the underlying buffer (CASSANDRA-2102)
  * format subcolumn names with subcomparator (CASSANDRA-2136)
- * lower-latency read repair (CASSANDRA-2069)
+ * fix column bloom filter deserialization (CASSANDRA-2165)
 
 
 0.7.1

Modified: cassandra/trunk/conf/cassandra.yaml
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/conf/cassandra.yaml?rev=1071388&r1=1071387&r2=1071388&view=diff
==
--- cassandra/trunk/conf/cassandra.yaml (original)
+++ cassandra/trunk/conf/cassandra.yaml Wed Feb 16 20:37:17 2011
@@ -34,6 +34,8 @@ hinted_handoff_enabled: true
 # this defines the maximum amount of time a dead host will have hints
 # generated.  After it has been dead this long, hints will be dropped.
 max_hint_window_in_ms: 360 # one hour
+# Sleep this long after delivering each row or row fragment
+hinted_handoff_throttle_delay_in_ms: 50
 
 # authentication backend, implementing IAuthenticator; used to identify users
 authenticator: org.apache.cassandra.auth.AllowAllAuthenticator

Propchange: cassandra/trunk/contrib/
--
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Feb 16 20:37:17 2011
@@ -1,5 +1,5 @@
 
/cassandra/branches/cassandra-0.6/contrib:922689-1052356,1052358-1053452,1053454,1053456-1068009
-/cassandra/branches/cassandra-0.7/contrib:1026516-1070530,1070977
+/cassandra/branches/cassandra-0.7/contrib:1026516-1071380
 /cassandra/branches/cassandra-0.7.0/contrib:1053690-1055654
 /cassandra/tags/cassandra-0.7.0-rc3/contrib:1051699-1053689
 /incubator/cassandra/branches/cassandra-0.3/contrib:774578-796573

Propchange: 
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java
--
--- svn:mergeinfo (original)
+++ svn:mergeinf

svn commit: r1071390 - in /cassandra/branches/cassandra-0.7: CHANGES.txt src/java/org/apache/cassandra/db/ColumnFamilyStore.java

2011-02-16 Thread jbellis
Author: jbellis
Date: Wed Feb 16 20:38:57 2011
New Revision: 1071390

URL: http://svn.apache.org/viewvc?rev=1071390&view=rev
Log:
read saved caches with DataInputStream
patch by mdennis; reviewed by jbellis for CASSANDRA-2174

Modified:
cassandra/branches/cassandra-0.7/CHANGES.txt

cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/ColumnFamilyStore.java

Modified: cassandra/branches/cassandra-0.7/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/CHANGES.txt?rev=1071390&r1=1071389&r2=1071390&view=diff
==
--- cassandra/branches/cassandra-0.7/CHANGES.txt (original)
+++ cassandra/branches/cassandra-0.7/CHANGES.txt Wed Feb 16 20:38:57 2011
@@ -2,7 +2,7 @@
  * Keep endpoint state until aVeryLongTime (CASSANDRA-2115)
  * lower-latency read repair (CASSANDRA-2069)
  * add hinted_handoff_throttle_delay_in_ms option (CASSANDRA-2161)
- * don't save empty caches (CASSANDRA-2172)
+ * fixes for cache save/load (CASSANDRA-2172, -2174)
 
 
 0.7.2

Modified: 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/ColumnFamilyStore.java?rev=1071390&r1=1071389&r2=1071390&view=diff
==
--- 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
 (original)
+++ 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
 Wed Feb 16 20:38:57 2011
@@ -246,13 +246,13 @@ public class ColumnFamilyStore implement
 Set keys = new TreeSet();
 if (path.exists())
 {
-ObjectInputStream in = null;
+DataInputStream in = null;
 try
 {
 long start = System.currentTimeMillis();
 
 logger.info(String.format("reading saved cache %s", path));
-in = new ObjectInputStream(new BufferedInputStream(new 
FileInputStream(path)));
+in = new DataInputStream(new BufferedInputStream(new 
FileInputStream(path)));
 while (in.available() > 0)
 {
 int size = in.readInt();




[jira] Commented: (CASSANDRA-1311) Support (asynchronous) triggers

2011-02-16 Thread Jonathan Ellis (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-1311?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12995514#comment-12995514
 ] 

Jonathan Ellis commented on CASSANDRA-1311:
---

It's not the synchronicity per se that's interesting, so much as the part about 
making them per-replica rather than per-coordinator so we can guarantee 
consistency via the commitlog.

> Support (asynchronous) triggers
> ---
>
> Key: CASSANDRA-1311
> URL: https://issues.apache.org/jira/browse/CASSANDRA-1311
> Project: Cassandra
>  Issue Type: New Feature
>  Components: Contrib
>Reporter: Maxim Grinev
> Fix For: 0.8
>
> Attachments: HOWTO-PatchAndRunTriggerExample-update1.txt, 
> HOWTO-PatchAndRunTriggerExample.txt, ImplementationDetails-update1.pdf, 
> ImplementationDetails.pdf, trunk-967053.txt, trunk-984391-update1.txt, 
> trunk-984391-update2.txt
>
>
> Asynchronous triggers is a basic mechanism to implement various use cases of 
> asynchronous execution of application code at database side. For example to 
> support indexes and materialized views, online analytics, push-based data 
> propagation.
> Please find the motivation, triggers description and list of applications:
> http://maxgrinev.com/2010/07/23/extending-cassandra-with-asynchronous-triggers/
> An example of using triggers for indexing:
> http://maxgrinev.com/2010/07/23/managing-indexes-in-cassandra-using-async-triggers/
> Implementation details are attached.

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] Commented: (CASSANDRA-2169) user created with debian packaging is unable to increase memlock

2011-02-16 Thread Jeremy Hanna (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-2169?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12995524#comment-12995524
 ] 

Jeremy Hanna commented on CASSANDRA-2169:
-

Based on a suggestion from jake and brandon, I added {quote}session required 
pam_limits.so{quote} to /etc/pam.d/common-session and rebooted.  That made it 
so the memlock value was set correctly.  However, for some reason, using 
/etc/init.d/cassandra still gives the memory locking error.  I su to the 
cassandra user and run {quote}/usr/sbin/cassandra -f{quote} and it is able to 
lock the memory.

> user created with debian packaging is unable to increase memlock
> 
>
> Key: CASSANDRA-2169
> URL: https://issues.apache.org/jira/browse/CASSANDRA-2169
> Project: Cassandra
>  Issue Type: Bug
>  Components: Packaging
>Reporter: Jeremy Hanna
>Priority: Minor
>
> To reproduce:
> - Install a fresh copy of ubuntu 10.04.
> - Install sun's java6 jdk.
> - Install libjna-java 3.2.7 into /usr/share/java.
> - Install cassandra 0.7.0 from the apache debian packages.
> - Start cassandra using /etc/init.d/cassandra
> In the output.log there will be the following error:
> {quote}
> Unable to lock JVM memory (ENOMEM). This can result in part of the JVM being 
> swapped out, especially with mmapped I/O enabled. Increase RLIMIT_MEMLOCK or 
> run Cassandra as root.
> {quote}
> This shouldn't be as the debian package creates 
> /etc/security/limits.d/cassandra.conf and sets the cassandra user's memlock 
> limit to 'unlimited'.
> I tried a variety of things including making the memlock unlimited for all 
> users in /etc/security/limits.conf.  I was able to run cassandra using root 
> with jna symbolically linked into /usr/share/cassandra from /usr/share/java, 
> but I could never get the init.d script to work and get beyond that error.
> Based on all the trial and error, I think it might have to do with the 
> cassandra user itself, but my debian/ubuntu fu isn't as good as others'.

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] Issue Comment Edited: (CASSANDRA-2169) user created with debian packaging is unable to increase memlock

2011-02-16 Thread Jeremy Hanna (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-2169?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12995524#comment-12995524
 ] 

Jeremy Hanna edited comment on CASSANDRA-2169 at 2/16/11 9:18 PM:
--

Based on a suggestion from jake and brandon, I added {quote}session required 
pam_limits.so{quote} to /etc/pam.d/common-session and rebooted.  That made it 
so the memlock value was set correctly.  However, for some reason, using 
/etc/init.d/cassandra still gives the memory locking error.  I su to the 
cassandra user and run {quote}/usr/sbin/cassandra -f{quote} and it is able to 
lock the memory.

For the pam setting, see 
http://posidev.com/blog/2009/06/04/set-ulimit-parameters-on-ubuntu/

  was (Author: jeromatron):
Based on a suggestion from jake and brandon, I added {quote}session 
required pam_limits.so{quote} to /etc/pam.d/common-session and rebooted.  That 
made it so the memlock value was set correctly.  However, for some reason, 
using /etc/init.d/cassandra still gives the memory locking error.  I su to the 
cassandra user and run {quote}/usr/sbin/cassandra -f{quote} and it is able to 
lock the memory.
  
> user created with debian packaging is unable to increase memlock
> 
>
> Key: CASSANDRA-2169
> URL: https://issues.apache.org/jira/browse/CASSANDRA-2169
> Project: Cassandra
>  Issue Type: Bug
>  Components: Packaging
>Reporter: Jeremy Hanna
>Priority: Minor
>
> To reproduce:
> - Install a fresh copy of ubuntu 10.04.
> - Install sun's java6 jdk.
> - Install libjna-java 3.2.7 into /usr/share/java.
> - Install cassandra 0.7.0 from the apache debian packages.
> - Start cassandra using /etc/init.d/cassandra
> In the output.log there will be the following error:
> {quote}
> Unable to lock JVM memory (ENOMEM). This can result in part of the JVM being 
> swapped out, especially with mmapped I/O enabled. Increase RLIMIT_MEMLOCK or 
> run Cassandra as root.
> {quote}
> This shouldn't be as the debian package creates 
> /etc/security/limits.d/cassandra.conf and sets the cassandra user's memlock 
> limit to 'unlimited'.
> I tried a variety of things including making the memlock unlimited for all 
> users in /etc/security/limits.conf.  I was able to run cassandra using root 
> with jna symbolically linked into /usr/share/cassandra from /usr/share/java, 
> but I could never get the init.d script to work and get beyond that error.
> Based on all the trial and error, I think it might have to do with the 
> cassandra user itself, but my debian/ubuntu fu isn't as good as others'.

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira




svn commit: r1071412 - in /cassandra/trunk: ./ contrib/ interface/thrift/gen-java/org/apache/cassandra/thrift/ src/java/org/apache/cassandra/db/

2011-02-16 Thread jbellis
Author: jbellis
Date: Wed Feb 16 21:39:15 2011
New Revision: 1071412

URL: http://svn.apache.org/viewvc?rev=1071412&view=rev
Log:
merge from 0.7

Modified:
cassandra/trunk/   (props changed)
cassandra/trunk/CHANGES.txt
cassandra/trunk/contrib/   (props changed)

cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java
   (props changed)

cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java
   (props changed)

cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java
   (props changed)

cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java
   (props changed)

cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java
   (props changed)
cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java

Propchange: cassandra/trunk/
--
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Feb 16 21:39:15 2011
@@ -1,5 +1,5 @@
 
/cassandra/branches/cassandra-0.6:922689-1052356,1052358-1053452,1053454,1053456-1071070
-/cassandra/branches/cassandra-0.7:1026516-1071380
+/cassandra/branches/cassandra-0.7:1026516-1071411
 /cassandra/branches/cassandra-0.7.0:1053690-1055654
 /cassandra/tags/cassandra-0.7.0-rc3:1051699-1053689
 /incubator/cassandra/branches/cassandra-0.3:774578-796573

Modified: cassandra/trunk/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/CHANGES.txt?rev=1071412&r1=1071411&r2=1071412&view=diff
==
--- cassandra/trunk/CHANGES.txt (original)
+++ cassandra/trunk/CHANGES.txt Wed Feb 16 21:39:15 2011
@@ -14,7 +14,7 @@
  * Keep endpoint state until aVeryLongTime (CASSANDRA-2115)
  * lower-latency read repair (CASSANDRA-2069)
  * add hinted_handoff_throttle_delay_in_ms option (CASSANDRA-2161)
- * don't save empty caches (CASSANDRA-2172)
+ * fixes for cache save/load (CASSANDRA-2172, -2174)
 
 
 0.7.2

Propchange: cassandra/trunk/contrib/
--
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Feb 16 21:39:15 2011
@@ -1,5 +1,5 @@
 
/cassandra/branches/cassandra-0.6/contrib:922689-1052356,1052358-1053452,1053454,1053456-1068009
-/cassandra/branches/cassandra-0.7/contrib:1026516-1071380
+/cassandra/branches/cassandra-0.7/contrib:1026516-1071411
 /cassandra/branches/cassandra-0.7.0/contrib:1053690-1055654
 /cassandra/tags/cassandra-0.7.0-rc3/contrib:1051699-1053689
 /incubator/cassandra/branches/cassandra-0.3/contrib:774578-796573

Propchange: 
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java
--
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Feb 16 21:39:15 2011
@@ -1,5 +1,5 @@
 
/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:922689-1052356,1052358-1053452,1053454,1053456-1071070
-/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1026516-1071380
+/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1026516-1071411
 
/cassandra/branches/cassandra-0.7.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1053690-1055654
 
/cassandra/tags/cassandra-0.7.0-rc3/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1051699-1053689
 
/incubator/cassandra/branches/cassandra-0.3/interface/gen-java/org/apache/cassandra/service/Cassandra.java:774578-796573

Propchange: 
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java
--
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Feb 16 21:39:15 2011
@@ -1,5 +1,5 @@
 
/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:922689-1052356,1052358-1053452,1053454,1053456-1071070
-/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1026516-1071380
+/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1026516-1071411
 
/cassandra/branches/cassandra-0.7.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1053690-1055654
 
/cassandra/tags/cassandra-0.7.0-rc3/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1051699-1053689
 
/incubator/cassandra/branches/cassandra-0.3/interface/gen-java/org/apache/cassandra/service/column_t.java:774578-792198

Propchange: 
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java
--
--- svn:mergeinfo (original)
+++ svn:mergeinf

[Cassandra Wiki] Update of "ArticlesAndPresentations" by JonathanEllis

2011-02-16 Thread Apache Wiki
Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Cassandra Wiki" for 
change notification.

The "ArticlesAndPresentations" page has been changed by JonathanEllis.
http://wiki.apache.org/cassandra/ArticlesAndPresentations?action=diff&rev1=115&rev2=116

--

   * [[http://riptano.blip.tv/file/4015751/|Getting to know the Cassandra 
codebase]]
  
  = Case studies =
+  * 
[[http://www.edwardcapriolo.com/roller/edwardcapriolo/entry/hadoop_nyc_cassandra_talk|Cassandra
 in a realtime bidding infrastructure]]
   * 
[[http://highscalability.com/blog/2011/2/8/mollom-architecture-killing-over-373-million-spams-at-100-re.html|How
 Mollum replaced SSDs and an external cache with Cassandra]]
   * 
[[http://www.slideshare.net/kevinweil/rainbird-realtime-analytics-at-twitter-strata-2011|Rainbird:
 Realtime analytics at Twitter using Cassandra]]
   * [[http://www.ooyala.com/whitepapers/Cassandrawhitepaper.pdf|Online Video 
Analytics with Cassandra at Ooyala]]


[jira] Commented: (CASSANDRA-1427) Optimize loadbalance/move for moves within the current range

2011-02-16 Thread Nick Bailey (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-1427?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12995545#comment-12995545
 ] 

Nick Bailey commented on CASSANDRA-1427:


* In requestRanges, instead of passing a request count you should just use the 
same strategy that streamRanges uses for counting down the latch.
* Hmm, I didn't notice this before but the fact that the new token in 
loadbalance is calculated before the move changes things pretty significantly.  
The fact that it left the ring before calculating a new token meant that it 
would consider the load it was giving away when trying to pick a new token. 
Honestly maybe we should just get rid of loadbalance since this a major version 
change. If someone wants load balance they can manually decommission then 
bootstrap. We should probably get someone else's opinion here.
* I've got to wonder if there is a better way to test this kind of stuff. 
(Move/Remove/LeaveAndBootstrap)Test are all kind of ridiculous (It's sad that I 
wrote one of them). Maybe we just need a separate task for figuring that out. 
Also perhaps a ticket for making/updating the distributed test for this.

> Optimize loadbalance/move for moves within the current range
> 
>
> Key: CASSANDRA-1427
> URL: https://issues.apache.org/jira/browse/CASSANDRA-1427
> Project: Cassandra
>  Issue Type: Sub-task
>  Components: Core
>Affects Versions: 0.7 beta 1
>Reporter: Nick Bailey
>Assignee: Pavel Yaskevich
> Fix For: 0.8
>
> Attachments: CASSANDRA-1427-v2.patch, CASSANDRA-1427-v3.patch, 
> CASSANDRA-1427-v4.patch, CASSANDRA-1427.patch
>
>   Original Estimate: 42h
>  Time Spent: 42h
>  Remaining Estimate: 0h
>
> Currently our move/loadbalance operations only implement case 2 of the Ruhl 
> algorithm described at 
> https://issues.apache.org/jira/browse/CASSANDRA-192#action_12713079.
> We should add functionality to optimize moves that take/give ranges to a 
> node's direct neighbors.

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] Commented: (CASSANDRA-2008) CLI help incorrect in places

2011-02-16 Thread Jon Hermes (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-2008?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12995549#comment-12995549
 ] 

Jon Hermes commented on CASSANDRA-2008:
---

The problem is that it's yet another place to duplicate the config help. 

There should be one and only one definition of the config options and the 
sample config (conf/cassandra.yaml), the cli-help, and the wiki (and anything 
else that shows up) should all point to or read from that one definition like a 
bible. Adding more points of denormalization, while fine for c*, is bad for c* 
code.

No matter how good the effort for this helpfile is, as new knobs and buttons 
get added to the config, it will suffer rot.

Putting it in YAML wouldn't be my first choice as YAML is slowly getting 
deprecated, but that would suffice to make it parseable by the CLI and readable 
by the sample config at the same time.

-

Aside from the strategy for this bug, that help text looks pretty clean. I'd be 
sure to separate "required" from "optional/defaulted" (and give the defaults 
for these in a consistent way), and to sort the options. (The wiki sorts them 
alphabetically and groups them by related config, for example, and still not 
sure if that's ideal.)

> CLI help incorrect in places
> 
>
> Key: CASSANDRA-2008
> URL: https://issues.apache.org/jira/browse/CASSANDRA-2008
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Core
>Affects Versions: 0.7.0
>Reporter: Aaron Morton
>Assignee: Aaron Morton
>Priority: Trivial
> Fix For: 0.7.2
>
>
> Found some errors in the CLI help, such as these for create column family.
> - memtable_operations: Flush memtables after this many operations
> - memtable_throughput: ... or after this many bytes have been written
> - memtable_flush_after: ... or after this many seconds
> Should be millions of ops, MB's written and minutes not seconds.  Have 
> confirmed thats how the values are used. Will check all the help. 

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira




svn commit: r1071428 - in /cassandra/trunk: src/java/org/apache/cassandra/db/ src/java/org/apache/cassandra/io/sstable/ src/java/org/apache/cassandra/io/util/ src/java/org/apache/cassandra/service/ te

2011-02-16 Thread jbellis
Author: jbellis
Date: Wed Feb 16 22:40:51 2011
New Revision: 1071428

URL: http://svn.apache.org/viewvc?rev=1071428&view=rev
Log:
intern column names to save old-gen heap space
patch by jbellis; reviewed by stuhood for CASSANDRA-1255

Modified:
cassandra/trunk/src/java/org/apache/cassandra/db/Column.java
cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamily.java
cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilySerializer.java
cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
cassandra/trunk/src/java/org/apache/cassandra/db/ColumnSerializer.java
cassandra/trunk/src/java/org/apache/cassandra/db/CounterColumn.java
cassandra/trunk/src/java/org/apache/cassandra/db/CounterMutation.java
cassandra/trunk/src/java/org/apache/cassandra/db/CounterUpdateColumn.java
cassandra/trunk/src/java/org/apache/cassandra/db/DeletedColumn.java
cassandra/trunk/src/java/org/apache/cassandra/db/ExpiringColumn.java
cassandra/trunk/src/java/org/apache/cassandra/db/IColumn.java
cassandra/trunk/src/java/org/apache/cassandra/db/RowMutation.java
cassandra/trunk/src/java/org/apache/cassandra/db/SuperColumn.java
cassandra/trunk/src/java/org/apache/cassandra/db/Table.java

cassandra/trunk/src/java/org/apache/cassandra/io/sstable/SSTableIdentityIterator.java
cassandra/trunk/src/java/org/apache/cassandra/io/sstable/SSTableWriter.java
cassandra/trunk/src/java/org/apache/cassandra/io/util/ColumnSortedMap.java
cassandra/trunk/src/java/org/apache/cassandra/service/StorageProxy.java
cassandra/trunk/test/unit/org/apache/cassandra/db/CounterColumnTest.java

Modified: cassandra/trunk/src/java/org/apache/cassandra/db/Column.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/Column.java?rev=1071428&r1=1071427&r2=1071428&view=diff
==
--- cassandra/trunk/src/java/org/apache/cassandra/db/Column.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/db/Column.java Wed Feb 16 
22:40:51 2011
@@ -215,9 +215,9 @@ public class Column implements IColumn
 return result;
 }
 
-public IColumn deepCopy()
+public IColumn localCopy(ColumnFamilyStore cfs)
 {
-return new Column(ByteBufferUtil.clone(name), 
ByteBufferUtil.clone(value), timestamp);
+return new Column(cfs.internOrCopy(name), ByteBufferUtil.clone(value), 
timestamp);
 }
 
 public String getString(AbstractType comparator)

Modified: cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamily.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamily.java?rev=1071428&r1=1071427&r2=1071428&view=diff
==
--- cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamily.java 
(original)
+++ cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamily.java Wed Feb 
16 22:40:51 2011
@@ -37,6 +37,7 @@ import org.apache.cassandra.config.Datab
 import org.apache.cassandra.db.filter.QueryPath;
 import org.apache.cassandra.db.marshal.AbstractCommutativeType;
 import org.apache.cassandra.db.marshal.AbstractType;
+import org.apache.cassandra.io.IColumnSerializer;
 import org.apache.cassandra.io.ICompactSerializer2;
 import org.apache.cassandra.io.util.IIterableColumns;
 import org.apache.cassandra.utils.FBUtilities;
@@ -72,7 +73,7 @@ public class ColumnFamily implements ICo
 private final Integer cfid;
 private final ColumnFamilyType type;
 
-private transient ICompactSerializer2 columnSerializer;
+private transient IColumnSerializer columnSerializer;
 final AtomicLong markedForDeleteAt = new AtomicLong(Long.MIN_VALUE);
 final AtomicInteger localDeletionTime = new 
AtomicInteger(Integer.MIN_VALUE);
 private ConcurrentSkipListMap columns;
@@ -137,7 +138,7 @@ public class ColumnFamily implements ICo
 /**
  * FIXME: Gross.
  */
-public ICompactSerializer2 getColumnSerializer()
+public IColumnSerializer getColumnSerializer()
 {
 return columnSerializer;
 }
@@ -434,14 +435,4 @@ public class ColumnFamily implements ICo
 {
 return columns.values().iterator();
 }
-
-/**
- * Used to force copy an existing column
- * @param column column to copy
- */
-public void deepCopyColumn(IColumn column)
-{
-remove(column.name());
-addColumn(column.deepCopy());
-}
 }

Modified: 
cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilySerializer.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilySerializer.java?rev=1071428&r1=1071427&r2=1071428&view=diff
==
--- 
cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilySerializer.java 
(original)
+++ 
cassandra/trunk/src/java/org/apa

buildbot failure in ASF Buildbot on cassandra-trunk

2011-02-16 Thread buildbot
The Buildbot has detected a new failure of cassandra-trunk on ASF Buildbot.
Full details are available at:
 http://ci.apache.org/builders/cassandra-trunk/builds/1033

Buildbot URL: http://ci.apache.org/

Buildslave for this Build: isis_ubuntu

Build Reason: 
Build Source Stamp: [branch cassandra/trunk] 1071428
Blamelist: jbellis

BUILD FAILED: failed compile

sincerely,
 -The Buildbot



[jira] Commented: (CASSANDRA-2008) CLI help incorrect in places

2011-02-16 Thread Jonathan Ellis (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-2008?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12995561#comment-12995561
 ] 

Jonathan Ellis commented on CASSANDRA-2008:
---

I am not a fan either of the cli somehow extracting yaml comments (don't most 
yaml parsers ignore comments?) or more fundamentally the assumption that 
comments explaining a config option are either appropriate or sufficient for 
the cli.  The two are fairly different beasts even when covering similar 
material.

> CLI help incorrect in places
> 
>
> Key: CASSANDRA-2008
> URL: https://issues.apache.org/jira/browse/CASSANDRA-2008
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Core
>Affects Versions: 0.7.0
>Reporter: Aaron Morton
>Assignee: Aaron Morton
>Priority: Trivial
> Fix For: 0.7.2
>
>
> Found some errors in the CLI help, such as these for create column family.
> - memtable_operations: Flush memtables after this many operations
> - memtable_throughput: ... or after this many bytes have been written
> - memtable_flush_after: ... or after this many seconds
> Should be millions of ops, MB's written and minutes not seconds.  Have 
> confirmed thats how the values are used. Will check all the help. 

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] Commented: (CASSANDRA-2174) saved caches written with BufferedRandomAccessFile cannot be read by ObjectInputStream

2011-02-16 Thread Hudson (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-2174?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12995563#comment-12995563
 ] 

Hudson commented on CASSANDRA-2174:
---

Integrated in Cassandra-0.7 #282 (See 
[https://hudson.apache.org/hudson/job/Cassandra-0.7/282/])
read saved caches with DataInputStream
patch by mdennis; reviewed by jbellis for CASSANDRA-2174


> saved caches written with BufferedRandomAccessFile cannot be read by 
> ObjectInputStream
> --
>
> Key: CASSANDRA-2174
> URL: https://issues.apache.org/jira/browse/CASSANDRA-2174
> Project: Cassandra
>  Issue Type: Bug
>Affects Versions: 0.7.1
>Reporter: Matthew F. Dennis
>Assignee: Matthew F. Dennis
> Fix For: 0.7.3
>
> Attachments: 2174-cassandra-0.7.txt
>
>
> The CacheWriter is currently writing with BufferedRandomAccessFile which is 
> incompatible with ObjectInputStream resulting in stack traces about corrupted 
> stream headers when loading a saved cache.

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira




svn commit: r1071433 - /cassandra/trunk/src/java/org/apache/cassandra/io/IColumnSerializer.java

2011-02-16 Thread jbellis
Author: jbellis
Date: Wed Feb 16 22:57:18 2011
New Revision: 1071433

URL: http://svn.apache.org/viewvc?rev=1071433&view=rev
Log:
add missing IColumnSerializer.java

Added:
cassandra/trunk/src/java/org/apache/cassandra/io/IColumnSerializer.java

Added: cassandra/trunk/src/java/org/apache/cassandra/io/IColumnSerializer.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/io/IColumnSerializer.java?rev=1071433&view=auto
==
--- cassandra/trunk/src/java/org/apache/cassandra/io/IColumnSerializer.java 
(added)
+++ cassandra/trunk/src/java/org/apache/cassandra/io/IColumnSerializer.java Wed 
Feb 16 22:57:18 2011
@@ -0,0 +1,12 @@
+package org.apache.cassandra.io;
+
+import java.io.DataInput;
+import java.io.IOException;
+
+import org.apache.cassandra.db.ColumnFamilyStore;
+import org.apache.cassandra.db.IColumn;
+
+public interface IColumnSerializer extends ICompactSerializer2
+{
+public IColumn deserialize(DataInput in, ColumnFamilyStore interner) 
throws IOException;
+}




[jira] Updated: (CASSANDRA-1969) Use BB for row cache - To Improve GC performance.

2011-02-16 Thread Jonathan Ellis (JIRA)

 [ 
https://issues.apache.org/jira/browse/CASSANDRA-1969?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jonathan Ellis updated CASSANDRA-1969:
--

Attachment: (was: 0002-implement-SerializingCache.txt)

> Use BB for row cache - To Improve GC performance.
> -
>
> Key: CASSANDRA-1969
> URL: https://issues.apache.org/jira/browse/CASSANDRA-1969
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Core
> Environment: Linux and Mac
>Reporter: Vijay
>Assignee: Vijay
>Priority: Minor
> Attachments: 0001-Config-1969.txt, 0002-Update_existing-1965.txt, 
> 0002-implement-SerializingCacheV2.txt, 0003-New_Cache_Providers-1969.txt, 
> 0004-TestCase-1969.txt, BB_Cache-1945.png, JMX-Cache-1945.png, 
> Old_Cahce-1945.png, POC-0001-Config-1945.txt, 
> POC-0002-Update_existing-1945.txt, POC-0003-New_Cache_Providers-1945.txt
>
>
> Java BB.allocateDirect() will allocate native memory out of the JVM and will 
> help reducing the GC pressure in the JVM with a large Cache.
> From some of the basic tests it shows around 50% improvement than doing a 
> normal Object cache.
> In addition this patch provide the users an option to choose 
> BB.allocateDirect or store everything in the heap.

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] Updated: (CASSANDRA-1969) Use BB for row cache - To Improve GC performance.

2011-02-16 Thread Jonathan Ellis (JIRA)

 [ 
https://issues.apache.org/jira/browse/CASSANDRA-1969?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jonathan Ellis updated CASSANDRA-1969:
--

Attachment: (was: 
0001-introduce-ICache-InstrumentingCache-IRowCacheProvider.txt)

> Use BB for row cache - To Improve GC performance.
> -
>
> Key: CASSANDRA-1969
> URL: https://issues.apache.org/jira/browse/CASSANDRA-1969
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Core
> Environment: Linux and Mac
>Reporter: Vijay
>Assignee: Vijay
>Priority: Minor
> Attachments: 0001-Config-1969.txt, 0002-Update_existing-1965.txt, 
> 0002-implement-SerializingCacheV2.txt, 0003-New_Cache_Providers-1969.txt, 
> 0004-TestCase-1969.txt, BB_Cache-1945.png, JMX-Cache-1945.png, 
> Old_Cahce-1945.png, POC-0001-Config-1945.txt, 
> POC-0002-Update_existing-1945.txt, POC-0003-New_Cache_Providers-1945.txt
>
>
> Java BB.allocateDirect() will allocate native memory out of the JVM and will 
> help reducing the GC pressure in the JVM with a large Cache.
> From some of the basic tests it shows around 50% improvement than doing a 
> normal Object cache.
> In addition this patch provide the users an option to choose 
> BB.allocateDirect or store everything in the heap.

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] Updated: (CASSANDRA-1969) Use BB for row cache - To Improve GC performance.

2011-02-16 Thread Jonathan Ellis (JIRA)

 [ 
https://issues.apache.org/jira/browse/CASSANDRA-1969?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jonathan Ellis updated CASSANDRA-1969:
--

Attachment: (was: 0003-add-ICache.isCopying-method.txt)

> Use BB for row cache - To Improve GC performance.
> -
>
> Key: CASSANDRA-1969
> URL: https://issues.apache.org/jira/browse/CASSANDRA-1969
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Core
> Environment: Linux and Mac
>Reporter: Vijay
>Assignee: Vijay
>Priority: Minor
> Attachments: 0001-Config-1969.txt, 0002-Update_existing-1965.txt, 
> 0002-implement-SerializingCacheV2.txt, 0003-New_Cache_Providers-1969.txt, 
> 0004-TestCase-1969.txt, BB_Cache-1945.png, JMX-Cache-1945.png, 
> Old_Cahce-1945.png, POC-0001-Config-1945.txt, 
> POC-0002-Update_existing-1945.txt, POC-0003-New_Cache_Providers-1945.txt
>
>
> Java BB.allocateDirect() will allocate native memory out of the JVM and will 
> help reducing the GC pressure in the JVM with a large Cache.
> From some of the basic tests it shows around 50% improvement than doing a 
> normal Object cache.
> In addition this patch provide the users an option to choose 
> BB.allocateDirect or store everything in the heap.

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] Updated: (CASSANDRA-1969) Use BB for row cache - To Improve GC performance.

2011-02-16 Thread Jonathan Ellis (JIRA)

 [ 
https://issues.apache.org/jira/browse/CASSANDRA-1969?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jonathan Ellis updated CASSANDRA-1969:
--

Attachment: 0003-add-ICache.isCopying-method.txt
0002-implement-SerializingCache.txt
0001-introduce-ICache-InstrumentingCache-IRowCacheProvider.txt

> Use BB for row cache - To Improve GC performance.
> -
>
> Key: CASSANDRA-1969
> URL: https://issues.apache.org/jira/browse/CASSANDRA-1969
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Core
> Environment: Linux and Mac
>Reporter: Vijay
>Assignee: Vijay
>Priority: Minor
> Attachments: 0001-Config-1969.txt, 
> 0001-introduce-ICache-InstrumentingCache-IRowCacheProvider.txt, 
> 0002-Update_existing-1965.txt, 0002-implement-SerializingCache.txt, 
> 0002-implement-SerializingCacheV2.txt, 0003-New_Cache_Providers-1969.txt, 
> 0003-add-ICache.isCopying-method.txt, 0004-TestCase-1969.txt, 
> BB_Cache-1945.png, JMX-Cache-1945.png, Old_Cahce-1945.png, 
> POC-0001-Config-1945.txt, POC-0002-Update_existing-1945.txt, 
> POC-0003-New_Cache_Providers-1945.txt
>
>
> Java BB.allocateDirect() will allocate native memory out of the JVM and will 
> help reducing the GC pressure in the JVM with a large Cache.
> From some of the basic tests it shows around 50% improvement than doing a 
> normal Object cache.
> In addition this patch provide the users an option to choose 
> BB.allocateDirect or store everything in the heap.

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] Commented: (CASSANDRA-1969) Use BB for row cache - To Improve GC performance.

2011-02-16 Thread Jonathan Ellis (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-1969?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12995572#comment-12995572
 ] 

Jonathan Ellis commented on CASSANDRA-1969:
---

Hmm, I can't apply 0002-V2 on top of either my 0001 + trunk from feb 5, or 
current trunk + rebased 0001.  And Eclipse generates the diff in a different 
order from git commandline, so I can't tell what's changed by eyeballing the 
diff either.

I've attached rebased-to-current-trunk versions of my 0001-0003, can you attach 
your fixes as a 0004 on top of those?

> Use BB for row cache - To Improve GC performance.
> -
>
> Key: CASSANDRA-1969
> URL: https://issues.apache.org/jira/browse/CASSANDRA-1969
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Core
> Environment: Linux and Mac
>Reporter: Vijay
>Assignee: Vijay
>Priority: Minor
> Attachments: 0001-Config-1969.txt, 
> 0001-introduce-ICache-InstrumentingCache-IRowCacheProvider.txt, 
> 0002-Update_existing-1965.txt, 0002-implement-SerializingCache.txt, 
> 0002-implement-SerializingCacheV2.txt, 0003-New_Cache_Providers-1969.txt, 
> 0003-add-ICache.isCopying-method.txt, 0004-TestCase-1969.txt, 
> BB_Cache-1945.png, JMX-Cache-1945.png, Old_Cahce-1945.png, 
> POC-0001-Config-1945.txt, POC-0002-Update_existing-1945.txt, 
> POC-0003-New_Cache_Providers-1945.txt
>
>
> Java BB.allocateDirect() will allocate native memory out of the JVM and will 
> help reducing the GC pressure in the JVM with a large Cache.
> From some of the basic tests it shows around 50% improvement than doing a 
> normal Object cache.
> In addition this patch provide the users an option to choose 
> BB.allocateDirect or store everything in the heap.

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira




svn commit: r1071448 - /cassandra/tags/cassandra-0.7.2/

2011-02-16 Thread eevans
Author: eevans
Date: Wed Feb 16 23:53:16 2011
New Revision: 1071448

URL: http://svn.apache.org/viewvc?rev=1071448&view=rev
Log:
tagging 0.7.2 release

Added:
cassandra/tags/cassandra-0.7.2/
  - copied from r1071063, cassandra/branches/cassandra-0.7.2/



[jira] Commented: (CASSANDRA-2008) CLI help incorrect in places

2011-02-16 Thread Aaron Morton (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-2008?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12995601#comment-12995601
 ] 

Aaron Morton commented on CASSANDRA-2008:
-

@jon I was combining this with CASSANDRA-2007 to move the demo keyspace out of 
cassandra.yaml and into a cli file. In the user groups we always tell people to 
use the cli to create a keyspace, but we don't have an example. My 
understanding was loading schema defs through JConsole was no longer the 
preferred method. I went with yaml as we already have it in the tree, can 
change if there is an agreed alternative. 

@jonathan Am using literals in the yaml file so newlines are preserved 
http://www.yaml.org/spec/1.2/spec.html#id2760844 The yaml looks something like 
commands:
  - name: NODE_ADD_KEYSPACE
help: |
blah blah

blah
  - name: NODE_UPDATE_KEYSPACE


I'll get the rest of the help sorted and then we can edit it if needed. It will 
not be a straight lift from cassandra.yaml, but there is more information in 
cassandra.yaml and I want to make most of that available in the cli. My main 
goal here is to cut out some of the simple support questions. 

 

> CLI help incorrect in places
> 
>
> Key: CASSANDRA-2008
> URL: https://issues.apache.org/jira/browse/CASSANDRA-2008
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Core
>Affects Versions: 0.7.0
>Reporter: Aaron Morton
>Assignee: Aaron Morton
>Priority: Trivial
> Fix For: 0.7.2
>
>
> Found some errors in the CLI help, such as these for create column family.
> - memtable_operations: Flush memtables after this many operations
> - memtable_throughput: ... or after this many bytes have been written
> - memtable_flush_after: ... or after this many seconds
> Should be millions of ops, MB's written and minutes not seconds.  Have 
> confirmed thats how the values are used. Will check all the help. 

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] Issue Comment Edited: (CASSANDRA-2008) CLI help incorrect in places

2011-02-16 Thread Aaron Morton (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-2008?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12995601#comment-12995601
 ] 

Aaron Morton edited comment on CASSANDRA-2008 at 2/17/11 12:16 AM:
---

@jon I was combining this with CASSANDRA-2007 to move the demo keyspace out of 
cassandra.yaml and into a cli file. In the user groups we always tell people to 
use the cli to create a keyspace, but we don't have an example. My 
understanding was loading schema defs through JConsole was no longer the 
preferred method. I went with yaml as we already have it in the tree, can 
change if there is an agreed alternative. 

@jonathan Am using literals in the yaml file so newlines are preserved 
http://www.yaml.org/spec/1.2/spec.html#id2760844 The yaml looks something like
{{noformat}} 
commands:
  - name: NODE_ADD_KEYSPACE
help: |
blah blah

blah
  - name: NODE_UPDATE_KEYSPACE
{{noformat}}

I'll get the rest of the help sorted and then we can edit it if needed. It will 
not be a straight lift from cassandra.yaml, but there is more information in 
cassandra.yaml and I want to make most of that available in the cli. My main 
goal here is to cut out some of the simple support questions. 

 

  was (Author: amorton):
@jon I was combining this with CASSANDRA-2007 to move the demo keyspace out 
of cassandra.yaml and into a cli file. In the user groups we always tell people 
to use the cli to create a keyspace, but we don't have an example. My 
understanding was loading schema defs through JConsole was no longer the 
preferred method. I went with yaml as we already have it in the tree, can 
change if there is an agreed alternative. 

@jonathan Am using literals in the yaml file so newlines are preserved 
http://www.yaml.org/spec/1.2/spec.html#id2760844 The yaml looks something like 
commands:
  - name: NODE_ADD_KEYSPACE
help: |
blah blah

blah
  - name: NODE_UPDATE_KEYSPACE


I'll get the rest of the help sorted and then we can edit it if needed. It will 
not be a straight lift from cassandra.yaml, but there is more information in 
cassandra.yaml and I want to make most of that available in the cli. My main 
goal here is to cut out some of the simple support questions. 

 
  
> CLI help incorrect in places
> 
>
> Key: CASSANDRA-2008
> URL: https://issues.apache.org/jira/browse/CASSANDRA-2008
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Core
>Affects Versions: 0.7.0
>Reporter: Aaron Morton
>Assignee: Aaron Morton
>Priority: Trivial
> Fix For: 0.7.2
>
>
> Found some errors in the CLI help, such as these for create column family.
> - memtable_operations: Flush memtables after this many operations
> - memtable_throughput: ... or after this many bytes have been written
> - memtable_flush_after: ... or after this many seconds
> Should be millions of ops, MB's written and minutes not seconds.  Have 
> confirmed thats how the values are used. Will check all the help. 

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] Issue Comment Edited: (CASSANDRA-2008) CLI help incorrect in places

2011-02-16 Thread Aaron Morton (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-2008?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12995601#comment-12995601
 ] 

Aaron Morton edited comment on CASSANDRA-2008 at 2/17/11 12:16 AM:
---

@jon I was combining this with CASSANDRA-2007 to move the demo keyspace out of 
cassandra.yaml and into a cli file. In the user groups we always tell people to 
use the cli to create a keyspace, but we don't have an example. My 
understanding was loading schema defs through JConsole was no longer the 
preferred method. I went with yaml as we already have it in the tree, can 
change if there is an agreed alternative. 

@jonathan Am using literals in the yaml file so newlines are preserved 
http://www.yaml.org/spec/1.2/spec.html#id2760844 The yaml looks something like
{noformat} 
commands:
  - name: NODE_ADD_KEYSPACE
help: |
blah blah

blah
  - name: NODE_UPDATE_KEYSPACE
{noformat}

I'll get the rest of the help sorted and then we can edit it if needed. It will 
not be a straight lift from cassandra.yaml, but there is more information in 
cassandra.yaml and I want to make most of that available in the cli. My main 
goal here is to cut out some of the simple support questions. 

 

  was (Author: amorton):
@jon I was combining this with CASSANDRA-2007 to move the demo keyspace out 
of cassandra.yaml and into a cli file. In the user groups we always tell people 
to use the cli to create a keyspace, but we don't have an example. My 
understanding was loading schema defs through JConsole was no longer the 
preferred method. I went with yaml as we already have it in the tree, can 
change if there is an agreed alternative. 

@jonathan Am using literals in the yaml file so newlines are preserved 
http://www.yaml.org/spec/1.2/spec.html#id2760844 The yaml looks something like
{{noformat}} 
commands:
  - name: NODE_ADD_KEYSPACE
help: |
blah blah

blah
  - name: NODE_UPDATE_KEYSPACE
{{noformat}}

I'll get the rest of the help sorted and then we can edit it if needed. It will 
not be a straight lift from cassandra.yaml, but there is more information in 
cassandra.yaml and I want to make most of that available in the cli. My main 
goal here is to cut out some of the simple support questions. 

 
  
> CLI help incorrect in places
> 
>
> Key: CASSANDRA-2008
> URL: https://issues.apache.org/jira/browse/CASSANDRA-2008
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Core
>Affects Versions: 0.7.0
>Reporter: Aaron Morton
>Assignee: Aaron Morton
>Priority: Trivial
> Fix For: 0.7.2
>
>
> Found some errors in the CLI help, such as these for create column family.
> - memtable_operations: Flush memtables after this many operations
> - memtable_throughput: ... or after this many bytes have been written
> - memtable_flush_after: ... or after this many seconds
> Should be millions of ops, MB's written and minutes not seconds.  Have 
> confirmed thats how the values are used. Will check all the help. 

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] Commented: (CASSANDRA-2008) CLI help incorrect in places

2011-02-16 Thread Aaron Morton (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-2008?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12995614#comment-12995614
 ] 

Aaron Morton commented on CASSANDRA-2008:
-

To be clear, I am not using conf/cassandra.yaml as the source of online help 
for cassandra-cli. 

I'm adding a file called o.a.c.cli.CliHelp.yaml to the cassandra jar as a non 
code resource. The sole purpose of this file is to store the online help for 
the cli. It is organised around the antlr nodes as defined in the grammer (as 
the existing code does). 

In the CliHelp.yaml file I'm using literal yaml strings to hold the help 
contents.  

> CLI help incorrect in places
> 
>
> Key: CASSANDRA-2008
> URL: https://issues.apache.org/jira/browse/CASSANDRA-2008
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Core
>Affects Versions: 0.7.0
>Reporter: Aaron Morton
>Assignee: Aaron Morton
>Priority: Trivial
> Fix For: 0.7.2
>
>
> Found some errors in the CLI help, such as these for create column family.
> - memtable_operations: Flush memtables after this many operations
> - memtable_throughput: ... or after this many bytes have been written
> - memtable_flush_after: ... or after this many seconds
> Should be millions of ops, MB's written and minutes not seconds.  Have 
> confirmed thats how the values are used. Will check all the help. 

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira




svn commit: r1071464 - in /cassandra/site: publish/download/index.html publish/index.html src/settings.py

2011-02-16 Thread eevans
Author: eevans
Date: Thu Feb 17 00:53:29 2011
New Revision: 1071464

URL: http://svn.apache.org/viewvc?rev=1071464&view=rev
Log:
update versioning for site

Modified:
cassandra/site/publish/download/index.html
cassandra/site/publish/index.html
cassandra/site/src/settings.py

Modified: cassandra/site/publish/download/index.html
URL: 
http://svn.apache.org/viewvc/cassandra/site/publish/download/index.html?rev=1071464&r1=1071463&r2=1071464&view=diff
==
--- cassandra/site/publish/download/index.html (original)
+++ cassandra/site/publish/download/index.html Thu Feb 17 00:53:29 2011
@@ -73,31 +73,31 @@
   
 
   
-  The latest stable release of Apache Cassandra is 0.7.1
-  (released on 2011-02-14).  If you're just
+  The latest stable release of Apache Cassandra is 0.7.2
+  (released on 2011-02-16).  If you're just
   starting out, download this one.
   
 
   
 
 http://www.apache.org/dyn/closer.cgi?path=/cassandra/0.7.1/apache-cassandra-0.7.1-bin.tar.gz";
+   
href="http://www.apache.org/dyn/closer.cgi?path=/cassandra/0.7.2/apache-cassandra-0.7.2-bin.tar.gz";
onclick="javascript: 
pageTracker._trackPageview('/clicks/binary_download');">
-  apache-cassandra-0.7.1-bin.tar.gz
+  apache-cassandra-0.7.2-bin.tar.gz
 
-[http://www.apache.org/dist/cassandra/0.7.1/apache-cassandra-0.7.1-bin.tar.gz.asc";>PGP]
-[http://www.apache.org/dist/cassandra/0.7.1/apache-cassandra-0.7.1-bin.tar.gz.md5";>MD5]
-[http://www.apache.org/dist/cassandra/0.7.1/apache-cassandra-0.7.1-bin.tar.gz.sha";>SHA1]
+[http://www.apache.org/dist/cassandra/0.7.2/apache-cassandra-0.7.2-bin.tar.gz.asc";>PGP]
+[http://www.apache.org/dist/cassandra/0.7.2/apache-cassandra-0.7.2-bin.tar.gz.md5";>MD5]
+[http://www.apache.org/dist/cassandra/0.7.2/apache-cassandra-0.7.2-bin.tar.gz.sha";>SHA1]
 
 
 http://www.apache.org/dyn/closer.cgi?path=/cassandra/0.7.1/apache-cassandra-0.7.1-src.tar.gz";
+   
href="http://www.apache.org/dyn/closer.cgi?path=/cassandra/0.7.2/apache-cassandra-0.7.2-src.tar.gz";
onclick="javascript: 
pageTracker._trackPageview('/clicks/source_download');">
-  apache-cassandra-0.7.1-src.tar.gz
+  apache-cassandra-0.7.2-src.tar.gz
 
-[http://www.apache.org/dist/cassandra/0.7.1/apache-cassandra-0.7.1-src.tar.gz.asc";>PGP]
-[http://www.apache.org/dist/cassandra/0.7.1/apache-cassandra-0.7.1-src.tar.gz.md5";>MD5]
-[http://www.apache.org/dist/cassandra/0.7.1/apache-cassandra-0.7.1-src.tar.gz.sha";>SHA1]
+[http://www.apache.org/dist/cassandra/0.7.2/apache-cassandra-0.7.2-src.tar.gz.asc";>PGP]
+[http://www.apache.org/dist/cassandra/0.7.2/apache-cassandra-0.7.2-src.tar.gz.md5";>MD5]
+[http://www.apache.org/dist/cassandra/0.7.2/apache-cassandra-0.7.2-src.tar.gz.sha";>SHA1]
 

 
@@ -139,15 +139,15 @@ New users to Cassandra should be sure to
   Download
   
 
-The latest release is 0.7.1
-(https://svn.apache.org/repos/asf/cassandra/tags/cassandra-0.7.1/CHANGES.txt";>Changes)
+The latest release is 0.7.2
+(https://svn.apache.org/repos/asf/cassandra/tags/cassandra-0.7.2/CHANGES.txt";>Changes)
 
 
 
 http://www.apache.org/dyn/closer.cgi?path=/cassandra/0.7.1/apache-cassandra-0.7.1-bin.tar.gz";
+   
href="http://www.apache.org/dyn/closer.cgi?path=/cassandra/0.7.2/apache-cassandra-0.7.2-bin.tar.gz";
onclick="javascript: 
pageTracker._trackPageview('/clicks/binary_download');">
-  apache-cassandra-0.7.1-bin.tar.gz
+  apache-cassandra-0.7.2-bin.tar.gz
 
 
 

Modified: cassandra/site/publish/index.html
URL: 
http://svn.apache.org/viewvc/cassandra/site/publish/index.html?rev=1071464&r1=1071463&r2=1071464&view=diff
==
--- cassandra/site/publish/index.html (original)
+++ cassandra/site/publish/index.html Thu Feb 17 00:53:29 2011
@@ -82,15 +82,15 @@
   Download
   
 
-The latest release is 0.7.1
-(https://svn.apache.org/repos/asf/cassandra/tags/cassandra-0.7.1/CHANGES.txt";>Changes)
+The latest release is 0.7.2
+(https://svn.apache.org/repos/asf/cassandra/tags/cassandra-0.7.2/CHANGES.txt";>Changes)
 
 
 
 http://www.apache.org/dyn/closer.cgi?path=/cassandra/0.7.1/apache-cassandra-0.7.1-bin.tar.gz";
+   
href="http://www.apache.org/dyn/closer.cgi?path=/cassandra/0.7.2/apache-cassandra-0.7.2-bin.tar.gz";
onclick="javascript: 
pageTracker._trackPageview('/clicks/binary_download');">
-  apache-cassandra-0.7.1-bin.tar.gz
+  apache-cassandra-0.7.2-bin.tar.gz
 
 
 

Modified: cassandra/site/src/settings.py
URL: 
http://svn.apache.org/viewvc/cassandra/site/src/settings.py?rev=1071464&r1=1071463&r2=1071464&view=diff
==
--- cassandra/site/src/settings.py (original)
+++ cassandra/site/src/settings.py Thu Fe

svn commit: r1071467 - in /cassandra/trunk: drivers/py/cql/connection.py drivers/py/cql/errors.py drivers/py/cql/marshal.py drivers/py/test/test_query_preparation.py test/system/test_cql.py

2011-02-16 Thread eevans
Author: eevans
Date: Thu Feb 17 01:22:09 2011
New Revision: 1071467

URL: http://svn.apache.org/viewvc?rev=1071467&view=rev
Log:
parameter substitution for python CQL driver

Patch by eevans for CASSANDRA-1711

Added:
cassandra/trunk/drivers/py/cql/marshal.py
cassandra/trunk/drivers/py/test/test_query_preparation.py
Modified:
cassandra/trunk/drivers/py/cql/connection.py
cassandra/trunk/drivers/py/cql/errors.py
cassandra/trunk/test/system/test_cql.py

Modified: cassandra/trunk/drivers/py/cql/connection.py
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/drivers/py/cql/connection.py?rev=1071467&r1=1071466&r2=1071467&view=diff
==
--- cassandra/trunk/drivers/py/cql/connection.py (original)
+++ cassandra/trunk/drivers/py/cql/connection.py Thu Feb 17 01:22:09 2011
@@ -20,6 +20,7 @@ from thrift.transport import TTransport,
 from thrift.protocol import TBinaryProtocol
 from thrift.Thrift import TApplicationException
 from errors import CQLException, InvalidCompressionScheme
+from marshal import prepare
 import zlib
 
 try:
@@ -71,18 +72,22 @@ class Connection(object):
 if keyspace:
 self.execute('USE %s;' % keyspace)
 
-def execute(self, query, compression=None):
+def execute(self, query, *args, **kwargs):
 """
 Execute a CQL query on a remote node.
 
 Params:
 * query .: CQL query string.
+* args ..: Query parameters.
 * compression ...: Query compression type (optional).
 """
-compress = compression is None and DEFAULT_COMPRESSION \
-or compression.upper()
+if kwargs.has_key("compression"):
+compress = kwargs.get("compression").upper()
+else:
+compress = DEFAULT_COMPRESSION
 
-compressed_query = Connection.compress_query(query, compress)
+compressed_query = Connection.compress_query(prepare(query, *args),
+ compress)
 request_compression = getattr(Compression, compress)
 
 try:

Modified: cassandra/trunk/drivers/py/cql/errors.py
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/drivers/py/cql/errors.py?rev=1071467&r1=1071466&r2=1071467&view=diff
==
--- cassandra/trunk/drivers/py/cql/errors.py (original)
+++ cassandra/trunk/drivers/py/cql/errors.py Thu Feb 17 01:22:09 2011
@@ -15,7 +15,8 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-__all__ = ['InvalidCompressionScheme', 'CQLException']
+__all__ = ['InvalidCompressionScheme', 'CQLException', 'InvalidQueryFormat']
 
 class InvalidCompressionScheme(Exception): pass
+class InvalidQueryFormat(Exception): pass
 class CQLException(Exception): pass

Added: cassandra/trunk/drivers/py/cql/marshal.py
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/drivers/py/cql/marshal.py?rev=1071467&view=auto
==
--- cassandra/trunk/drivers/py/cql/marshal.py (added)
+++ cassandra/trunk/drivers/py/cql/marshal.py Thu Feb 17 01:22:09 2011
@@ -0,0 +1,62 @@
+
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+from uuid import UUID
+from StringIO import StringIO
+from errors import InvalidQueryFormat
+
+__all__ = ['prepare']
+
+def prepare(query, *args):
+result = StringIO()
+index = query.find('?')
+oldindex = 0
+count = 0
+
+while (index >= 0):
+result.write(query[oldindex:index])
+try:
+result.write(marshal(args[count]))
+except IndexError:
+raise InvalidQueryFormat("not enough arguments in substitution")
+
+oldindex = index + 1
+index = query.find('?', index + 1)
+count += 1
+result.write(query[oldindex:])
+
+if count < len(args):
+raise InvalidQueryFormat("too many arguments in substitution")
+
+return result.getvalue()
+
+def marshal(term):
+if isinstance(term, long):
+return "%dL" % term
+elif isinstance(term, int):
+return "%d" %

svn commit: r1071468 - in /cassandra/trunk/src/java/org/apache/cassandra/cql: Cql.g CreateIndexStatement.java QueryProcessor.java StatementType.java

2011-02-16 Thread eevans
Author: eevans
Date: Thu Feb 17 01:23:28 2011
New Revision: 1071468

URL: http://svn.apache.org/viewvc?rev=1071468&view=rev
Log:
CREATE INDEX implementation

Patch by eevans for CASSANDRA-1709

Added:
cassandra/trunk/src/java/org/apache/cassandra/cql/CreateIndexStatement.java
Modified:
cassandra/trunk/src/java/org/apache/cassandra/cql/Cql.g
cassandra/trunk/src/java/org/apache/cassandra/cql/QueryProcessor.java
cassandra/trunk/src/java/org/apache/cassandra/cql/StatementType.java

Modified: cassandra/trunk/src/java/org/apache/cassandra/cql/Cql.g
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/cql/Cql.g?rev=1071468&r1=1071467&r2=1071468&view=diff
==
--- cassandra/trunk/src/java/org/apache/cassandra/cql/Cql.g (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/cql/Cql.g Thu Feb 17 01:23:28 
2011
@@ -64,6 +64,7 @@ query returns [CQLStatement stmnt]
 | deleteStatement   { $stmnt = new CQLStatement(StatementType.DELETE, 
$deleteStatement.expr); }
 | createKeyspaceStatement { $stmnt = new 
CQLStatement(StatementType.CREATE_KEYSPACE, $createKeyspaceStatement.expr); }
 | createColumnFamilyStatement { $stmnt = new 
CQLStatement(StatementType.CREATE_COLUMNFAMILY, 
$createColumnFamilyStatement.expr); }
+| createIndexStatement { $stmnt = new 
CQLStatement(StatementType.CREATE_INDEX, $createIndexStatement.expr); }
 ;
 
 // USE ;
@@ -242,6 +243,12 @@ createCfamKeywordArgument returns [Strin
 | value=( STRING_LITERAL | INTEGER | FLOAT ) { $arg = $value.text; }
 ;
 
+/** CREATE INDEX [indexName] ON columnFamily (columnName); */
+createIndexStatement returns [CreateIndexStatement expr]
+: K_CREATE K_INDEX (idxName=IDENT)? K_ON cf=IDENT '(' columnName=term ')' 
endStmnt
+  { $expr = new CreateIndexStatement($idxName.text, $cf.text, columnName); 
}
+;
+
 comparatorType
 : 'bytes' | 'ascii' | 'utf8' | 'int' | 'long' | 'uuid' | 'timeuuid'
 ;
@@ -323,6 +330,8 @@ K_IN:  I N;
 K_CREATE:  C R E A T E;
 K_KEYSPACE:K E Y S P A C E;
 K_COLUMNFAMILY: C O L U M N F A M I L Y;
+K_INDEX:   I N D E X;
+K_ON:  O N;
 
 // Case-insensitive alpha characters
 fragment A: ('a'|'A');

Added: 
cassandra/trunk/src/java/org/apache/cassandra/cql/CreateIndexStatement.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/cql/CreateIndexStatement.java?rev=1071468&view=auto
==
--- cassandra/trunk/src/java/org/apache/cassandra/cql/CreateIndexStatement.java 
(added)
+++ cassandra/trunk/src/java/org/apache/cassandra/cql/CreateIndexStatement.java 
Thu Feb 17 01:23:28 2011
@@ -0,0 +1,54 @@
+/*
+ * 
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ * 
+ */
+package org.apache.cassandra.cql;
+
+/** A CREATE INDEX statement parsed from a CQL query. */
+public class CreateIndexStatement
+{
+private final String columnFamily;
+private final String indexName;
+private final Term columnName;
+
+public CreateIndexStatement(String indexName, String columnFamily, Term 
columnName)
+{
+this.indexName = indexName;
+this.columnFamily = columnFamily;
+this.columnName = columnName;
+}
+
+/** Column family namespace. */
+public String getColumnFamily()
+{
+return columnFamily;
+}
+
+/** Column name to index. */
+public Term getColumnName()
+{
+return columnName;
+}
+
+/** Index name (or null). */
+public String getIndexName()
+{
+return indexName;
+}
+}

Modified: cassandra/trunk/src/java/org/apache/cassandra/cql/QueryProcessor.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/cql/QueryProcessor.java?rev=1071468&r1=1071467&r2=1071468&view=diff
==
--- cassandra/trunk/src/java/org/apache/cassandra/cql/QueryProcessor.java 
(original)
+++ cassandra/trunk/src/java/org/apache/cassandra/cql/QueryProcessor.java Thu 
Feb 17 01:23:28 2011
@@ -35,13 +35,18 @@ import org.slf4j.

svn commit: r1071469 - /cassandra/trunk/test/system/test_cql.py

2011-02-16 Thread eevans
Author: eevans
Date: Thu Feb 17 01:23:36 2011
New Revision: 1071469

URL: http://svn.apache.org/viewvc?rev=1071469&view=rev
Log:
system tests for CREATE INDEX

Patch by eevans for CASSANDRA-1709

Modified:
cassandra/trunk/test/system/test_cql.py

Modified: cassandra/trunk/test/system/test_cql.py
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/test/system/test_cql.py?rev=1071469&r1=1071468&r2=1071469&view=diff
==
--- cassandra/trunk/test/system/test_cql.py (original)
+++ cassandra/trunk/test/system/test_cql.py Thu Feb 17 01:23:36 2011
@@ -308,6 +308,29 @@ class TestCql(ThriftTester):
 for coldef in cfam.column_metadata:
 assert coldef.name in ("a", "b"), "Unknown column name"
 assert coldef.validation_class.endswith("marshal.IntegerType")
+
+def test_create_indexs(self):
+"creating column indexes"
+conn = init()
+conn.execute("USE Keyspace1")
+conn.execute("CREATE COLUMNFAMILY CreateIndex1")
+conn.execute("CREATE INDEX namedIndex ON CreateIndex1 (\"items\")")
+conn.execute("CREATE INDEX ON CreateIndex1 (\"stuff\")")
+
+# TODO: temporary (until this can be done with CQL).
+ksdef = thrift_client.describe_keyspace("Keyspace1")
+cfam = [i for i in ksdef.cf_defs if i.name == "CreateIndex1"][0]
+items = [i for i in cfam.column_metadata if i.name == "items"][0]
+stuff = [i for i in cfam.column_metadata if i.name == "stuff"][0]
+assert items.index_name == "namedIndex", "missing index (or name)"
+assert items.index_type == 0, "missing index"
+assert not stuff.index_name, \
+"index_name should be unset, not %s" % stuff.index_name
+assert stuff.index_type == 0, "missing index"
+
+assert_raises(CQLException,
+  conn.execute,
+  "CREATE INDEX ON CreateIndex1 (\"stuff\")")
 
 def test_time_uuid(self):
 "store and retrieve time-based (type 1) uuids"




svn commit: r1071470 - in /cassandra/trunk/doc/cql: CQL.html CQL.textile

2011-02-16 Thread eevans
Author: eevans
Date: Thu Feb 17 01:23:44 2011
New Revision: 1071470

URL: http://svn.apache.org/viewvc?rev=1071470&view=rev
Log:
documentation update for CREATE INDEX

Patch by eevans for CASSANDRA-1709

Modified:
cassandra/trunk/doc/cql/CQL.html
cassandra/trunk/doc/cql/CQL.textile

Modified: cassandra/trunk/doc/cql/CQL.html
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/doc/cql/CQL.html?rev=1071470&r1=1071469&r2=1071470&view=diff
==
--- cassandra/trunk/doc/cql/CQL.html (original)
+++ cassandra/trunk/doc/cql/CQL.html Thu Feb 17 01:23:44 2011
@@ -1,4 +1,4 @@
-http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd";>http://www.w3.org/1999/xhtml";>Cassandra Query Language (CQL) 
v0.99.1Table of ContentsCassandra Query Language (CQL) 
v0.99.1Table 
of ContentsUSESELECTSpecifying ColumnsColumn FamilyConsistency LevelFiltering rowsLimits
 UPDATEColumn FamilyConsistency LevelSpecifying Columns and 
RowDELETESpecifying ColumnsColumn FamilyConsistency LevelSpecifying RowsTRUNCATECREATE 
KEYSPACECREATE COLUMNFAMILYSpecifying Column Type 
(optional)Column Family 
Options (optional)Common 
IdiomsSpecifying ConsistencyTerm 
specificationString LiteralsUnicodeIntegers / 
longsUUIDsUSESynopsis:USE ;
+http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd";>http://www.w3.org/1999/xhtml";>Cassandra Query Language (CQL) 
v0.99.1Table of ContentsCassandra Query Language (CQL) 
v0.99.1Table 
of ContentsUSESELECTSpecifying ColumnsColumn FamilyConsistency LevelFiltering rowsLimits
 UPDATEColumn FamilyConsistency LevelSpecifying Columns and 
RowDELETESpecifying ColumnsColumn FamilyConsistency LevelSpecifying RowsTRUNCATECREATE 
KEYSPACECREATE COLUMNFAMILYSpecifying Column Type 
(optional)Column Family 
Options (optional)CREATE 
INDEXCommon IdiomsSpecifying 
ConsistencyTerm specificationString 
LiteralsUnicodeIntegers / longsUUIDsUSESynopsis:USE ;
 A USE statement consists of the USE 
keyword, followed by a valid keyspace name.  Its purpose is to assign the 
per-connection, current working keyspace.  All subsequent keyspace-specific 
actions will be performed in the context of the supplied value.SELECTSynopsis:SELECT [FIRST N] 
[REVERSED]