[jira] [Created] (CASSANDRA-8532) Fix calculation of expected write size during compaction

2014-12-23 Thread Marcus Eriksson (JIRA)
Marcus Eriksson created CASSANDRA-8532:
--

 Summary: Fix calculation of expected write size during compaction
 Key: CASSANDRA-8532
 URL: https://issues.apache.org/jira/browse/CASSANDRA-8532
 Project: Cassandra
  Issue Type: Bug
Reporter: Marcus Eriksson
Assignee: Marcus Eriksson
 Fix For: 2.1.3


We don't calculate expected sstable size correctly when getting the directory 
to compact to. Patch attached fixes that



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (CASSANDRA-8532) Fix calculation of expected write size during compaction

2014-12-23 Thread Marcus Eriksson (JIRA)

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

Marcus Eriksson updated CASSANDRA-8532:
---
Attachment: 0001-fix-calculation-of-expected-sstable-size.patch

 Fix calculation of expected write size during compaction
 

 Key: CASSANDRA-8532
 URL: https://issues.apache.org/jira/browse/CASSANDRA-8532
 Project: Cassandra
  Issue Type: Bug
Reporter: Marcus Eriksson
Assignee: Marcus Eriksson
 Fix For: 2.1.3

 Attachments: 0001-fix-calculation-of-expected-sstable-size.patch


 We don't calculate expected sstable size correctly when getting the directory 
 to compact to. Patch attached fixes that



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CASSANDRA-7653) Add role based access control to Cassandra

2014-12-23 Thread Sam Tunnicliffe (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-7653?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14256878#comment-14256878
 ] 

Sam Tunnicliffe commented on CASSANDRA-7653:


I've taken another run at this, this time without the consideration of 
preserving backwards compatibility in IAuthenticator/IAuthorizer.

https://github.com/beobal/cassandra/compare/7653

The concept of users is replaced by roles and in the postgres style there's no 
real differentiation between the two, a user being basically an alias for a 
role. As such, grants are made between roles and permissions hierarchies are 
enabled. Somewhat distinct from permissions, a role may have a number of 
options. Another departure from the previous implementation is that when using 
custom auth components there no longer exists the requirement to create 
users/roles directly in the database. 

h4. CQL Syntax Changes

There are no changes to existing CQL syntax, only additional statements.

{code}
CREATE ROLE [IF NOT EXISTS] rolename [WITH PASSWORD password] 
[SUPERUSER|NOSUPERUSER] [LOGIN|NOLOGIN]
ALTER ROLE rolename [WITH PASSWORD password] [SUPERUSER|NOSUPERUSER] 
[LOGIN|NOLOGIN]
DROP ROLE [IF EXISTS] rolename
LIST ROLES [OF rolename] [NORECURSIVE]
{code}

The output of {{LIST ROLES}} varies depending on the privileges of the user 
running the statement.
Without {{OF rolename}} option:
* If executed by a superuser, list all roles in the system
* If executed by a non-superuser, list all roles granted to that user

With {{OF rolename}} option:
* If executed by a superuser, list roles granted to for the specific role.
* If executed by a non-superuser, the executing user must be a member of the 
specified role (either directly or through inheritence).

The {{NORECURSIVE}} option modifies {{LIST ROLES OF rolename}} statements to 
include only roles granted directly to the specified role. Memberships acquired 
through inheritance are excluded.
For backwards compatibility, {{CREATE USER}}, {{ALTER USER}}, {{DROP USER}}  
{{LIST USERS}} become aliases for the equivalent role-centric statements. In 
the case of {{CREATE USER}}  {{ALTER USER}} statements, the role is assumed to 
have {{LOGIN}} privilege. So the two following statements are equivalent:

{code}
CREATE USER foo WITH PASSWORD 'bar' NOSUPERUSER
CREATE ROLE foo WITH PASSWORD 'bar' NOSUPERUSER LOGIN
{code}

Accordingly, the {{LOGIN}}  {{NOLOGIN}} options are not permitted with 
{{CREATE}} and {{ALTER USER}}.
Granting of roles is straightforward. The default internal implementation will 
disallow any grant that introduces a circular relationship.
{code}
GRANT rolename TO rolename
REVOKE rolename FROM rolename
{code}
Granting and revoking of permissions to roles is unchanged, except that 
conceptually the grantee is now a role, rather than a user.

h4. Code changes

h5. IRoleManager

This is a new entity with responsibility for all aspects of role management, 
creation/deletion/modification as well as checking for existence during 
modification operations. A number of the functions here are simply the old user 
management methods previously part of IAuthenticator.

h5. IAuthenticator

The changes here are twofold: removing responsibility for user (role) 
management and making SASL the primary authentication mechanism. 

h5. IAuthorizer

Minimal changes to this interface, really it's just the semantics that have 
changed slightly. 

h4. Schema changes for Internal Implementations

h5. Authentication

As role management is now the solely the responsibility of IRoleManager, 
IAuthenticator impls generally (and PasswordAuthenticator specifically) no 
longer have the means to modify role info. The benefit to that is the 
simplification of IAuthenticator's responsibilities, the downside is potential 
coupling between IAuthenticator and IRoleManager implementations. For example, 
PasswordAuthenticator no longer maintains its own credentials table, instead it 
uses the roles table managed by CassandraAuthorizer.

h5. Role Management

The primary table (roles) here is an extension of the existing users table, 
previously managed by PasswordAuthenticator. In addition to superuser status of 
a role, the option that determines whether the role has login privileges is 
held here along with the an password (if PasswordAuthenticator is enabled). 

h5. Authorization

As with IAuthorizer, there are minimal changes to the schema of the table used 
by CassandraAuthorizer. 

h4. Upgrading

The process for converting auth data during a rolling upgrade is fairly 
straightforward. As each node is restarted, it will attempt to convert any data 
in the legacy tables into the new schema. Until enough nodes to satisfy the 
replication strategy for the system_auth keyspace are upgraded and so have the 
new schema, this conversion will fail with the failure being reported in the 
system log.

During the upgrade, 

[jira] [Updated] (CASSANDRA-7653) Add role based access control to Cassandra

2014-12-23 Thread Sam Tunnicliffe (JIRA)

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

Sam Tunnicliffe updated CASSANDRA-7653:
---
Attachment: cql_smoke_test.py
CQLSmokeTest.java

 Add role based access control to Cassandra
 --

 Key: CASSANDRA-7653
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7653
 Project: Cassandra
  Issue Type: New Feature
  Components: Core
Reporter: Mike Adamson
Assignee: Sam Tunnicliffe
 Fix For: 3.0

 Attachments: 7653.patch, CQLSmokeTest.java, cql_smoke_test.py


 The current authentication model supports granting permissions to individual 
 users. While this is OK for small or medium organizations wanting to 
 implement authorization, it does not work well in large organizations because 
 of the overhead of having to maintain the permissions for each user.
 Introducing roles into the authentication model would allow sets of 
 permissions to be controlled in one place as a role and then the role granted 
 to users. Roles should also be able to be granted to other roles to allow 
 hierarchical sets of permissions to be built up.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (CASSANDRA-7886) Coordinator should not wait for read timeouts when replicas hit Exceptions

2014-12-23 Thread Christian Spriegel (JIRA)

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

Christian Spriegel updated CASSANDRA-7886:
--
Attachment: 7886_v5_trunk.txt

 Coordinator should not wait for read timeouts when replicas hit Exceptions
 --

 Key: CASSANDRA-7886
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7886
 Project: Cassandra
  Issue Type: Improvement
  Components: Core
 Environment: Tested with Cassandra 2.0.8
Reporter: Christian Spriegel
Assignee: Christian Spriegel
Priority: Minor
  Labels: protocolv4
 Fix For: 3.0

 Attachments: 7886_v1.txt, 7886_v2_trunk.txt, 7886_v3_trunk.txt, 
 7886_v4_trunk.txt, 7886_v5_trunk.txt


 *Issue*
 When you have TombstoneOverwhelmingExceptions occuring in queries, this will 
 cause the query to be simply dropped on every data-node, but no response is 
 sent back to the coordinator. Instead the coordinator waits for the specified 
 read_request_timeout_in_ms.
 On the application side this can cause memory issues, since the application 
 is waiting for the timeout interval for every request.Therefore, if our 
 application runs into TombstoneOverwhelmingExceptions, then (sooner or later) 
 our entire application cluster goes down :-(
 *Proposed solution*
 I think the data nodes should send a error message to the coordinator when 
 they run into a TombstoneOverwhelmingException. Then the coordinator does not 
 have to wait for the timeout-interval.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CASSANDRA-7886) Coordinator should not wait for read timeouts when replicas hit Exceptions

2014-12-23 Thread Christian Spriegel (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-7886?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14256948#comment-14256948
 ] 

Christian Spriegel commented on CASSANDRA-7886:
---

Hi @thobbs!
I have a chrismas present for you, in form of a patch file ;-) I attached a v5 
patch that contains the fixes.

Regarding TOE: Currently I throw TOEs as exceptions and they get logged just 
like any other exception. I am not sure if this is desireable and would like to 
hear your feedback. I think we have the following options:
- Leave as it is in v5, meaning TOEs get logged with stacktraces.
- Add catch blocks where neccessary and log it in user-friendly way. But it 
might be in many places. Also in this case I would prefer making TOE a checked 
exception. Imho TOE should not be unchecked.
- Add TOE logging to C* default exception handler. (I did not investigate yet, 
but I assume there is a exceptionhandler)
- Leave it as it was before


Here a few examples how TOEs look now to the user:

TOE using a 3.0 CQLSH (still on CQL-protocol 3):
{code}
cqlsh:test select * from test;
code=1200 [Coordinator node timed out waiting for replica nodes' responses] 
message=Operation timed out - received only 0 responses. 
info={'received_responses': 0, 'required_responses': 1, 'consistency': 'ONE'}
cqlsh:test 
{code}


TOE using a 2.0 CQLSH:
{code}
cqlsh:test select * from test;
Request did not complete within rpc_timeout.
{code}


TOE with cassandra-cli:
{code}
[default@unknown] use test;
Authenticated to keyspace: test
[default@test] list test;
Using default limit of 100
Using default cell limit of 100
null
TimedOutException()
at 
org.apache.cassandra.thrift.Cassandra$get_range_slices_result$get_range_slices_resultStandardScheme.read(Cassandra.java:17448)
at 
org.apache.cassandra.thrift.Cassandra$get_range_slices_result$get_range_slices_resultStandardScheme.read(Cassandra.java:17397)
at 
org.apache.cassandra.thrift.Cassandra$get_range_slices_result.read(Cassandra.java:17323)
at org.apache.thrift.TServiceClient.receiveBase(TServiceClient.java:78)
at 
org.apache.cassandra.thrift.Cassandra$Client.recv_get_range_slices(Cassandra.java:802)
at 
org.apache.cassandra.thrift.Cassandra$Client.get_range_slices(Cassandra.java:786)
at org.apache.cassandra.cli.CliClient.executeList(CliClient.java:1520)
at 
org.apache.cassandra.cli.CliClient.executeCLIStatement(CliClient.java:285)
at 
org.apache.cassandra.cli.CliMain.processStatementInteractive(CliMain.java:201)
at org.apache.cassandra.cli.CliMain.main(CliMain.java:331)
[default@test] 
{code}




 Coordinator should not wait for read timeouts when replicas hit Exceptions
 --

 Key: CASSANDRA-7886
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7886
 Project: Cassandra
  Issue Type: Improvement
  Components: Core
 Environment: Tested with Cassandra 2.0.8
Reporter: Christian Spriegel
Assignee: Christian Spriegel
Priority: Minor
  Labels: protocolv4
 Fix For: 3.0

 Attachments: 7886_v1.txt, 7886_v2_trunk.txt, 7886_v3_trunk.txt, 
 7886_v4_trunk.txt, 7886_v5_trunk.txt


 *Issue*
 When you have TombstoneOverwhelmingExceptions occuring in queries, this will 
 cause the query to be simply dropped on every data-node, but no response is 
 sent back to the coordinator. Instead the coordinator waits for the specified 
 read_request_timeout_in_ms.
 On the application side this can cause memory issues, since the application 
 is waiting for the timeout interval for every request.Therefore, if our 
 application runs into TombstoneOverwhelmingExceptions, then (sooner or later) 
 our entire application cluster goes down :-(
 *Proposed solution*
 I think the data nodes should send a error message to the coordinator when 
 they run into a TombstoneOverwhelmingException. Then the coordinator does not 
 have to wait for the timeout-interval.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (CASSANDRA-6986) snapshot fails with SSTable not found if table has already been restored

2014-12-23 Thread Alan Boudreault (JIRA)

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

Alan Boudreault updated CASSANDRA-6986:
---
Tester: Alan Boudreault

 snapshot fails with SSTable not found if table has already been restored
 

 Key: CASSANDRA-6986
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6986
 Project: Cassandra
  Issue Type: Bug
  Components: Tools
 Environment: C* 2.0.6
Reporter: Steven Lowenthal
Assignee: Ryan McGuire
Priority: Minor

 I seem to be running into a weird restore issue.  I load a database with 
 sstableloader, and then take a snapshot of the keyspace.  I then truncate the 
 tables in the keyspace, replace the sstables from the snapshot, and refresh 
 everything.  It seems to work fine.  Of course the sstables get renumbered.  
 I then try to create a new backup of the keyspace, and this happens on one of 
 the tables on one of the nodes.  (and the sstable has been renumbered): 
 Exception in thread main java.lang.RuntimeException: Tried to hard link to 
 file that does not exist 
 /raid0/cassandra/data/stock/trades/stock-trades-jb-18-Data.db



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CASSANDRA-8518) Cassandra Query Request Size Estimator

2014-12-23 Thread T Jake Luciani (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-8518?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14257123#comment-14257123
 ] 

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

Is this a duplicate of CASSANDRA-7402 ?

 Cassandra Query Request Size Estimator
 --

 Key: CASSANDRA-8518
 URL: https://issues.apache.org/jira/browse/CASSANDRA-8518
 Project: Cassandra
  Issue Type: Improvement
  Components: Core
Reporter: Cheng Ren

 We have been suffering from cassandra node crash due to out of memory for a 
 long time. The heap dump from the recent crash shows there are 22 native 
 transport request threads each of which consumes 3.3% of heap size, taking 
 more than 70% in total.  
 Heap dump:
 !https://dl-web.dropbox.com/get/attach1.png?_subject_uid=303980955w=AAAVOoncBoZ5aOPbDg2TpRkUss7B-2wlrnhUAv19b27OUA|height=400,width=600!
 Expanded view of one thread:
 !https://dl-web.dropbox.com/get/Screen%20Shot%202014-12-18%20at%204.06.29%20PM.png?_subject_uid=303980955w=AACUO4wrbxheRUxv8fwQ9P52T6gBOm5_g9zeIe8odu3V3w|height=400,width=600!
 The cassandra we are using now (2.0.4) utilized MemoryAwareThreadPoolExecutor 
 as the request executor and provided a default request size estimator which 
 constantly returns 1, meaning it limits only the number of requests being 
 pushed to the pool. To have more fine-grained control on handling requests 
 and better protect our node from OOM issue, we propose implementing a more 
 precise estimator. 
 Here is our two cents:
 For update/delete/insert request: Size could be estimated by adding size of 
 all class members together.
 For scan query, the major part of the request is response, which can be 
 estimated from the history data. For example if we receive a scan query on a 
 column family for a certain token range, we keep track of its response size 
 used as the estimated response size for later scan query on the same cf. 
 For future requests on the same cf, response size could be calculated by 
 token range*recorded size/ recorded token range. The request size should be 
 estimated as (query size + estimated response size).
 We believe what we're proposing here can be useful for other people in the 
 Cassandra community as well. Would you mind providing us feedbacks? Please 
 let us know if you have any concerns or suggestions regarding this proposal.
 Thanks,
 Cheng



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (CASSANDRA-8390) The process cannot access the file because it is being used by another process

2014-12-23 Thread Alexander Radzin (JIRA)

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

Alexander Radzin updated CASSANDRA-8390:

Attachment: NoHostAvailableLogs.zip

Log files from run that reproduces NoHostAvailable problem. The {{cqlSync}} 
successfully finished 11 iterations and failed while doing the iterration #12. 

This is the client side exception:

{noformat}
com.datastax.driver.core.exceptions.NoHostAvailableException: All host(s) tried 
for query failed (tried: localhost/127.0.0.1:9042 
(com.datastax.driver.core.TransportException: [localhost/127.0.0.1:9042] 
Connection has been closed))
at 
com.datastax.driver.core.exceptions.NoHostAvailableException.copy(NoHostAvailableException.java:65)
at 
com.datastax.driver.core.DefaultResultSetFuture.extractCauseFromExecutionException(DefaultResultSetFuture.java:259)
at 
com.datastax.driver.core.DefaultResultSetFuture.getUninterruptibly(DefaultResultSetFuture.java:175)
at 
com.datastax.driver.core.AbstractSession.execute(AbstractSession.java:52)
at 
com.datastax.driver.core.AbstractSession.execute(AbstractSession.java:36)
at 
com.clarisite.clingine.dataaccesslayer.cassandra.CQLTest.cqlSync(CQLTest.java:32)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at 
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
at 
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at 
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
at 
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at 
com.intellij.junit4.JUnit4TestRunnerUtil$IgnoreIgnoredTestJUnit4ClassRunner.runChild(JUnit4TestRunnerUtil.java:269)
at 
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
at org.junit.runner.JUnitCore.run(JUnitCore.java:160)
at 
com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:74)
at 
com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:202)
at 
com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:65)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at 
com.intellij.rt.execution.CommandLineWrapper.main(CommandLineWrapper.java:121)
Caused by: com.datastax.driver.core.exceptions.NoHostAvailableException: All 
host(s) tried for query failed (tried: localhost/127.0.0.1:9042 
(com.datastax.driver.core.TransportException: [localhost/127.0.0.1:9042] 
Connection has been closed))
at 
com.datastax.driver.core.RequestHandler.sendRequest(RequestHandler.java:102)
at 
com.datastax.driver.core.RequestHandler$1.run(RequestHandler.java:176)
at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)
{noformat}

Here is the server side exception:

{noformat}
INFO  16:28:12 Compacted 4 sstables to 
[c:\progs\apache-cassandra-2.1.2\data\data\system\schema_columnfamilies-45f5b36024bc3f83a3631034ea4fa697\system-schema_columnfamilies-ka-881,].
  297,142 bytes to 295,369 (~99% of original) in 375ms = 0.751162MB/s.  16 
total partitions merged to 13.  Partition merge counts were {1:12, 4:1, }
ERROR 16:28:12 Unable to delete 
c:\progs\apache-cassandra-2.1.2\data\data\system\schema_columnfamilies-45f5b36024bc3f83a3631034ea4fa697\system-schema_columnfamilies-ka-879-Data.db
 (it will be removed on server restart; we'll also retry after GC)
ERROR 16:28:12 Exception in thread Thread[NonPeriodicTasks:1,5,main]
org.apache.cassandra.io.FSWriteError: java.nio.file.FileSystemException: 

[jira] [Comment Edited] (CASSANDRA-8390) The process cannot access the file because it is being used by another process

2014-12-23 Thread Alexander Radzin (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-8390?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14257183#comment-14257183
 ] 

Alexander Radzin edited comment on CASSANDRA-8390 at 12/23/14 4:41 PM:
---

Attached Log files (NoHostAvailable.zip) from run that reproduces 
NoHostAvailable problem. The {{cqlSync}} successfully finished 11 iterations 
and failed while doing the iterration #12. 

This is the client side exception:

{noformat}
com.datastax.driver.core.exceptions.NoHostAvailableException: All host(s) tried 
for query failed (tried: localhost/127.0.0.1:9042 
(com.datastax.driver.core.TransportException: [localhost/127.0.0.1:9042] 
Connection has been closed))
at 
com.datastax.driver.core.exceptions.NoHostAvailableException.copy(NoHostAvailableException.java:65)
at 
com.datastax.driver.core.DefaultResultSetFuture.extractCauseFromExecutionException(DefaultResultSetFuture.java:259)
at 
com.datastax.driver.core.DefaultResultSetFuture.getUninterruptibly(DefaultResultSetFuture.java:175)
at 
com.datastax.driver.core.AbstractSession.execute(AbstractSession.java:52)
at 
com.datastax.driver.core.AbstractSession.execute(AbstractSession.java:36)
at 
com.clarisite.clingine.dataaccesslayer.cassandra.CQLTest.cqlSync(CQLTest.java:32)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at 
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
at 
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at 
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
at 
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at 
com.intellij.junit4.JUnit4TestRunnerUtil$IgnoreIgnoredTestJUnit4ClassRunner.runChild(JUnit4TestRunnerUtil.java:269)
at 
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
at org.junit.runner.JUnitCore.run(JUnitCore.java:160)
at 
com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:74)
at 
com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:202)
at 
com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:65)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at 
com.intellij.rt.execution.CommandLineWrapper.main(CommandLineWrapper.java:121)
Caused by: com.datastax.driver.core.exceptions.NoHostAvailableException: All 
host(s) tried for query failed (tried: localhost/127.0.0.1:9042 
(com.datastax.driver.core.TransportException: [localhost/127.0.0.1:9042] 
Connection has been closed))
at 
com.datastax.driver.core.RequestHandler.sendRequest(RequestHandler.java:102)
at 
com.datastax.driver.core.RequestHandler$1.run(RequestHandler.java:176)
at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)
{noformat}

Here is the server side exception:

{noformat}
INFO  16:28:12 Compacted 4 sstables to 
[c:\progs\apache-cassandra-2.1.2\data\data\system\schema_columnfamilies-45f5b36024bc3f83a3631034ea4fa697\system-schema_columnfamilies-ka-881,].
  297,142 bytes to 295,369 (~99% of original) in 375ms = 0.751162MB/s.  16 
total partitions merged to 13.  Partition merge counts were {1:12, 4:1, }
ERROR 16:28:12 Unable to delete 
c:\progs\apache-cassandra-2.1.2\data\data\system\schema_columnfamilies-45f5b36024bc3f83a3631034ea4fa697\system-schema_columnfamilies-ka-879-Data.db
 (it will be removed on server restart; we'll also retry after GC)
ERROR 16:28:12 Exception in thread 

[jira] [Created] (CASSANDRA-8533) Repair hangs on trunk

2014-12-23 Thread Philip Thompson (JIRA)
Philip Thompson created CASSANDRA-8533:
--

 Summary: Repair hangs on trunk
 Key: CASSANDRA-8533
 URL: https://issues.apache.org/jira/browse/CASSANDRA-8533
 Project: Cassandra
  Issue Type: Bug
Reporter: Philip Thompson
 Fix For: 3.0


The dtests {{sstableloader_compression_none_to_snappy_test}} and 
{{sstableloader_compression_none_to_deflate_test}} in  
{{sstable_generation_loading_test.py}} are hanging on trunk during repair. Test 
output can be seen here: http://cassci.datastax.com/job/trunk_dtest/752/console

Here is the jstack output for nodetool
{code}
2014-12-23 12:11:46
Full thread dump Java HotSpot(TM) 64-Bit Server VM (24.65-b04 mixed mode):

Attach Listener daemon prio=5 tid=0x7fe51301e800 nid=0x370b waiting on 
condition [0x]
   java.lang.Thread.State: RUNNABLE

ClientNotifForwarder-1 daemon prio=5 tid=0x7fe514969800 nid=0x5d03 
runnable [0x000113395000]
   java.lang.Thread.State: RUNNABLE
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:152)
at java.net.SocketInputStream.read(SocketInputStream.java:122)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:235)
at java.io.BufferedInputStream.read(BufferedInputStream.java:254)
- locked 0x0007fd504398 (a java.io.BufferedInputStream)
at java.io.DataInputStream.readByte(DataInputStream.java:265)
at 
sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:214)
at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:161)
at com.sun.jmx.remote.internal.PRef.invoke(Unknown Source)
at 
javax.management.remote.rmi.RMIConnectionImpl_Stub.fetchNotifications(Unknown 
Source)
at 
javax.management.remote.rmi.RMIConnector$RMINotifClient.fetchNotifs(RMIConnector.java:1342)
at 
com.sun.jmx.remote.internal.ClientNotifForwarder$NotifFetcher.fetchNotifs(ClientNotifForwarder.java:587)
at 
com.sun.jmx.remote.internal.ClientNotifForwarder$NotifFetcher.doRun(ClientNotifForwarder.java:470)
at 
com.sun.jmx.remote.internal.ClientNotifForwarder$NotifFetcher.run(ClientNotifForwarder.java:451)
at 
com.sun.jmx.remote.internal.ClientNotifForwarder$LinearExecutor$1.run(ClientNotifForwarder.java:107)

JMX client heartbeat 2 daemon prio=5 tid=0x7fe5148f8000 nid=0x5b03 
waiting on condition [0x000113292000]
   java.lang.Thread.State: TIMED_WAITING (sleeping)
at java.lang.Thread.sleep(Native Method)
at 
com.sun.jmx.remote.internal.ClientCommunicatorAdmin$Checker.run(ClientCommunicatorAdmin.java:174)
at java.lang.Thread.run(Thread.java:745)

GC Daemon daemon prio=5 tid=0x7fe5148db800 nid=0x5903 in Object.wait() 
[0x00011318f000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on 0x0007f8009570 (a sun.misc.GC$LatencyLock)
at sun.misc.GC$Daemon.run(GC.java:117)
- locked 0x0007f8009570 (a sun.misc.GC$LatencyLock)

RMI RenewClean-[10.150.0.64:7100] daemon prio=5 tid=0x7fe5148d3000 
nid=0x5703 in Object.wait() [0x00011308c000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on 0x0007f8010ae0 (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135)
- locked 0x0007f8010ae0 (a java.lang.ref.ReferenceQueue$Lock)
at 
sun.rmi.transport.DGCClient$EndpointEntry$RenewCleanThread.run(DGCClient.java:535)
at java.lang.Thread.run(Thread.java:745)

RMI Scheduler(0) daemon prio=5 tid=0x7fe51490c800 nid=0x5607 waiting on 
condition [0x000112f89000]
   java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for  0x0007f8018ad0 (a 
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
at 
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2043)
at 
java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1079)
at 
java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:807)
at 
java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1068)
at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)

Service Thread daemon prio=5 tid=0x7fe51480f000 nid=0x4d03 runnable 
[0x]
   

[jira] [Updated] (CASSANDRA-8533) Nodetool Repair hangs on trunk

2014-12-23 Thread Philip Thompson (JIRA)

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

Philip Thompson updated CASSANDRA-8533:
---
Summary: Nodetool Repair hangs on trunk  (was: Repair hangs on trunk)

 Nodetool Repair hangs on trunk
 --

 Key: CASSANDRA-8533
 URL: https://issues.apache.org/jira/browse/CASSANDRA-8533
 Project: Cassandra
  Issue Type: Bug
Reporter: Philip Thompson
 Fix For: 3.0


 The dtests {{sstableloader_compression_none_to_snappy_test}} and 
 {{sstableloader_compression_none_to_deflate_test}} in  
 {{sstable_generation_loading_test.py}} are hanging on trunk during repair. 
 Test output can be seen here: 
 http://cassci.datastax.com/job/trunk_dtest/752/console
 Here is the jstack output for nodetool
 {code}
 2014-12-23 12:11:46
 Full thread dump Java HotSpot(TM) 64-Bit Server VM (24.65-b04 mixed mode):
 Attach Listener daemon prio=5 tid=0x7fe51301e800 nid=0x370b waiting on 
 condition [0x]
java.lang.Thread.State: RUNNABLE
 ClientNotifForwarder-1 daemon prio=5 tid=0x7fe514969800 nid=0x5d03 
 runnable [0x000113395000]
java.lang.Thread.State: RUNNABLE
   at java.net.SocketInputStream.socketRead0(Native Method)
   at java.net.SocketInputStream.read(SocketInputStream.java:152)
   at java.net.SocketInputStream.read(SocketInputStream.java:122)
   at java.io.BufferedInputStream.fill(BufferedInputStream.java:235)
   at java.io.BufferedInputStream.read(BufferedInputStream.java:254)
   - locked 0x0007fd504398 (a java.io.BufferedInputStream)
   at java.io.DataInputStream.readByte(DataInputStream.java:265)
   at 
 sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:214)
   at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:161)
   at com.sun.jmx.remote.internal.PRef.invoke(Unknown Source)
   at 
 javax.management.remote.rmi.RMIConnectionImpl_Stub.fetchNotifications(Unknown 
 Source)
   at 
 javax.management.remote.rmi.RMIConnector$RMINotifClient.fetchNotifs(RMIConnector.java:1342)
   at 
 com.sun.jmx.remote.internal.ClientNotifForwarder$NotifFetcher.fetchNotifs(ClientNotifForwarder.java:587)
   at 
 com.sun.jmx.remote.internal.ClientNotifForwarder$NotifFetcher.doRun(ClientNotifForwarder.java:470)
   at 
 com.sun.jmx.remote.internal.ClientNotifForwarder$NotifFetcher.run(ClientNotifForwarder.java:451)
   at 
 com.sun.jmx.remote.internal.ClientNotifForwarder$LinearExecutor$1.run(ClientNotifForwarder.java:107)
 JMX client heartbeat 2 daemon prio=5 tid=0x7fe5148f8000 nid=0x5b03 
 waiting on condition [0x000113292000]
java.lang.Thread.State: TIMED_WAITING (sleeping)
   at java.lang.Thread.sleep(Native Method)
   at 
 com.sun.jmx.remote.internal.ClientCommunicatorAdmin$Checker.run(ClientCommunicatorAdmin.java:174)
   at java.lang.Thread.run(Thread.java:745)
 GC Daemon daemon prio=5 tid=0x7fe5148db800 nid=0x5903 in Object.wait() 
 [0x00011318f000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
   at java.lang.Object.wait(Native Method)
   - waiting on 0x0007f8009570 (a sun.misc.GC$LatencyLock)
   at sun.misc.GC$Daemon.run(GC.java:117)
   - locked 0x0007f8009570 (a sun.misc.GC$LatencyLock)
 RMI RenewClean-[10.150.0.64:7100] daemon prio=5 tid=0x7fe5148d3000 
 nid=0x5703 in Object.wait() [0x00011308c000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
   at java.lang.Object.wait(Native Method)
   - waiting on 0x0007f8010ae0 (a java.lang.ref.ReferenceQueue$Lock)
   at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135)
   - locked 0x0007f8010ae0 (a java.lang.ref.ReferenceQueue$Lock)
   at 
 sun.rmi.transport.DGCClient$EndpointEntry$RenewCleanThread.run(DGCClient.java:535)
   at java.lang.Thread.run(Thread.java:745)
 RMI Scheduler(0) daemon prio=5 tid=0x7fe51490c800 nid=0x5607 waiting on 
 condition [0x000112f89000]
java.lang.Thread.State: WAITING (parking)
   at sun.misc.Unsafe.park(Native Method)
   - parking to wait for  0x0007f8018ad0 (a 
 java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
   at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
   at 
 java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2043)
   at 
 java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1079)
   at 
 java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:807)
   at 
 java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1068)
   at 
 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
   at 
 

[jira] [Created] (CASSANDRA-8534) The default configuration URL does not have the required file:// prefix and throws an exception if cassandra.config is not set.

2014-12-23 Thread Andrew Trimble (JIRA)
Andrew Trimble created CASSANDRA-8534:
-

 Summary: The default configuration URL does not have the required 
file:// prefix and throws an exception if cassandra.config is not set.
 Key: CASSANDRA-8534
 URL: https://issues.apache.org/jira/browse/CASSANDRA-8534
 Project: Cassandra
  Issue Type: Bug
  Components: Config, Core
 Environment: Any
Reporter: Andrew Trimble
 Fix For: 2.1.3
 Attachments: error.txt

In the class org.apache.cassandra.config.YamlConfigurationLoader, the 
DEFAULT_CONFIGURATION is set to cassandra.yaml. This is improperly formatted 
as it does not contain the prefix file://. If this value is used, a 
ConfigurationException is thrown (see line 73 of the same class).

A solution is to set the cassandra.config system property, but this does not 
solve the underlying problem. A vanilla Cassandra installation will throw this 
error.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CASSANDRA-8525) Bloom Filter truePositive counter not updated on key cache hit

2014-12-23 Thread Tyler Hobbs (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-8525?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14257375#comment-14257375
 ] 

Tyler Hobbs commented on CASSANDRA-8525:


+1

 Bloom Filter truePositive counter not updated on key cache hit
 --

 Key: CASSANDRA-8525
 URL: https://issues.apache.org/jira/browse/CASSANDRA-8525
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Reporter: Tyler Hobbs
Assignee: Marcus Eriksson
 Fix For: 2.0.12, 2.1.3

 Attachments: 0001-inc-truepositive-for-keycache-hits.patch


 In {{SSTableReader.getPosition()}}, we're not incrementing the bloom filter 
 truePositive count when we get a key cache hit.  This can lead to misleading 
 FP ratios in metrics.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (CASSANDRA-8535) java.lang.RuntimeException: Failed to rename XXX to YYY

2014-12-23 Thread Leonid Shalupov (JIRA)
Leonid Shalupov created CASSANDRA-8535:
--

 Summary: java.lang.RuntimeException: Failed to rename XXX to YYY
 Key: CASSANDRA-8535
 URL: https://issues.apache.org/jira/browse/CASSANDRA-8535
 Project: Cassandra
  Issue Type: Bug
 Environment: Windows 2008 X64
Reporter: Leonid Shalupov


{code}
[22:11:59] :
 [junit] java.lang.RuntimeException: Failed to rename 
build\test\cassandra\data;0\system\schema_columnfamilies-45f5b36024bc3f83a3631034ea4fa697\system-schema_columnfamilies-tmp-ka-14-Index.db
 to 
build\test\cassandra\data;0\system\schema_columnfamilies-45f5b36024bc3f83a3631034ea4fa697\system-schema_columnfamilies-ka-14-Index.db
[22:11:59] :
 [junit]at 
org.apache.cassandra.io.util.FileUtils.renameWithConfirm(FileUtils.java:170) 
~[main/:na]
[22:11:59] :
 [junit]at 
org.apache.cassandra.io.util.FileUtils.renameWithConfirm(FileUtils.java:154) 
~[main/:na]
[22:11:59] :
 [junit]at 
org.apache.cassandra.io.sstable.SSTableWriter.rename(SSTableWriter.java:569) 
~[main/:na]
[22:11:59] :
 [junit]at 
org.apache.cassandra.io.sstable.SSTableWriter.rename(SSTableWriter.java:561) 
~[main/:na]
[22:11:59] :
 [junit]at 
org.apache.cassandra.io.sstable.SSTableWriter.close(SSTableWriter.java:535) 
~[main/:na]
[22:11:59] :
 [junit]at 
org.apache.cassandra.io.sstable.SSTableWriter.finish(SSTableWriter.java:470) 
~[main/:na]
[22:11:59] :
 [junit]at 
org.apache.cassandra.io.sstable.SSTableRewriter.finishAndMaybeThrow(SSTableRewriter.java:349)
 ~[main/:na]
[22:11:59] :
 [junit]at 
org.apache.cassandra.io.sstable.SSTableRewriter.finish(SSTableRewriter.java:324)
 ~[main/:na]
[22:11:59] :
 [junit]at 
org.apache.cassandra.io.sstable.SSTableRewriter.finish(SSTableRewriter.java:304)
 ~[main/:na]
[22:11:59] :
 [junit]at 
org.apache.cassandra.db.compaction.CompactionTask.runMayThrow(CompactionTask.java:200)
 ~[main/:na]
[22:11:59] :
 [junit]at 
org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:28) 
~[main/:na]
[22:11:59] :
 [junit]at 
org.apache.cassandra.db.compaction.CompactionTask.executeInternal(CompactionTask.java:75)
 ~[main/:na]
[22:11:59] :
 [junit]at 
org.apache.cassandra.db.compaction.AbstractCompactionTask.execute(AbstractCompactionTask.java:59)
 ~[main/:na]
[22:11:59] :
 [junit]at 
org.apache.cassandra.db.compaction.CompactionManager$BackgroundCompactionTask.run(CompactionManager.java:226)
 ~[main/:na]
[22:11:59] :
 [junit]at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) 
~[na:1.7.0_45]
[22:11:59] :
 [junit]at java.util.concurrent.FutureTask.run(FutureTask.java:262) 
~[na:1.7.0_45]
[22:11:59] :
 [junit]at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
~[na:1.7.0_45]
[22:11:59] :
 [junit]at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
[na:1.7.0_45]
[22:11:59] :
 [junit]at java.lang.Thread.run(Thread.java:744) [na:1.7.0_45]
{code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CASSANDRA-8535) java.lang.RuntimeException: Failed to rename XXX to YYY

2014-12-23 Thread Leonid Shalupov (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-8535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14257449#comment-14257449
 ] 

Leonid Shalupov commented on CASSANDRA-8535:


Background: after experiencing various issues like CASSANDRA-8019 on 2.1.1 we 
decided to try latest cassandra-2.1 branch.

It failed with exception I quoted in description.

This time I've set up continuous integration for Cassandra on our server: 
https://teamcity.jetbrains.com/project.html?projectId=ApacheCassandraguest=1 
to reproduce it
(feel free to use it, just write me)

I run ant test-all there and nothing more.

And build failed with this exception: 
https://teamcity.jetbrains.com/viewLog.html?tab=buildLogbuildTypeId=ApacheCassandra_TestsWindowsbuildId=365436guest=1


 java.lang.RuntimeException: Failed to rename XXX to YYY
 ---

 Key: CASSANDRA-8535
 URL: https://issues.apache.org/jira/browse/CASSANDRA-8535
 Project: Cassandra
  Issue Type: Bug
 Environment: Windows 2008 X64
Reporter: Leonid Shalupov

 {code}
 [22:11:59] :  
  [junit] java.lang.RuntimeException: Failed to rename 
 build\test\cassandra\data;0\system\schema_columnfamilies-45f5b36024bc3f83a3631034ea4fa697\system-schema_columnfamilies-tmp-ka-14-Index.db
  to 
 build\test\cassandra\data;0\system\schema_columnfamilies-45f5b36024bc3f83a3631034ea4fa697\system-schema_columnfamilies-ka-14-Index.db
 [22:11:59] :  
  [junit]at 
 org.apache.cassandra.io.util.FileUtils.renameWithConfirm(FileUtils.java:170) 
 ~[main/:na]
 [22:11:59] :  
  [junit]at 
 org.apache.cassandra.io.util.FileUtils.renameWithConfirm(FileUtils.java:154) 
 ~[main/:na]
 [22:11:59] :  
  [junit]at 
 org.apache.cassandra.io.sstable.SSTableWriter.rename(SSTableWriter.java:569) 
 ~[main/:na]
 [22:11:59] :  
  [junit]at 
 org.apache.cassandra.io.sstable.SSTableWriter.rename(SSTableWriter.java:561) 
 ~[main/:na]
 [22:11:59] :  
  [junit]at 
 org.apache.cassandra.io.sstable.SSTableWriter.close(SSTableWriter.java:535) 
 ~[main/:na]
 [22:11:59] :  
  [junit]at 
 org.apache.cassandra.io.sstable.SSTableWriter.finish(SSTableWriter.java:470) 
 ~[main/:na]
 [22:11:59] :  
  [junit]at 
 org.apache.cassandra.io.sstable.SSTableRewriter.finishAndMaybeThrow(SSTableRewriter.java:349)
  ~[main/:na]
 [22:11:59] :  
  [junit]at 
 org.apache.cassandra.io.sstable.SSTableRewriter.finish(SSTableRewriter.java:324)
  ~[main/:na]
 [22:11:59] :  
  [junit]at 
 org.apache.cassandra.io.sstable.SSTableRewriter.finish(SSTableRewriter.java:304)
  ~[main/:na]
 [22:11:59] :  
  [junit]at 
 org.apache.cassandra.db.compaction.CompactionTask.runMayThrow(CompactionTask.java:200)
  ~[main/:na]
 [22:11:59] :  
  [junit]at 
 org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:28) 
 ~[main/:na]
 [22:11:59] :  
  [junit]at 
 org.apache.cassandra.db.compaction.CompactionTask.executeInternal(CompactionTask.java:75)
  ~[main/:na]
 [22:11:59] :  
  [junit]at 
 org.apache.cassandra.db.compaction.AbstractCompactionTask.execute(AbstractCompactionTask.java:59)
  ~[main/:na]
 [22:11:59] :  
  [junit]at 
 org.apache.cassandra.db.compaction.CompactionManager$BackgroundCompactionTask.run(CompactionManager.java:226)
  ~[main/:na]
 [22:11:59] :  
  [junit]at 
 java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) 
 ~[na:1.7.0_45]
 [22:11:59] :  
  [junit]at java.util.concurrent.FutureTask.run(FutureTask.java:262) 
 ~[na:1.7.0_45]
 [22:11:59] :  
  [junit]at 
 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
  

[jira] [Commented] (CASSANDRA-8535) java.lang.RuntimeException: Failed to rename XXX to YYY

2014-12-23 Thread Aleksey Yeschenko (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-8535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14257453#comment-14257453
 ] 

Aleksey Yeschenko commented on CASSANDRA-8535:
--

Could you at least mention the name of the failed test?

Otherwise there really isn't much we can do about it.

 java.lang.RuntimeException: Failed to rename XXX to YYY
 ---

 Key: CASSANDRA-8535
 URL: https://issues.apache.org/jira/browse/CASSANDRA-8535
 Project: Cassandra
  Issue Type: Bug
 Environment: Windows 2008 X64
Reporter: Leonid Shalupov

 {code}
 [22:11:59] :  
  [junit] java.lang.RuntimeException: Failed to rename 
 build\test\cassandra\data;0\system\schema_columnfamilies-45f5b36024bc3f83a3631034ea4fa697\system-schema_columnfamilies-tmp-ka-14-Index.db
  to 
 build\test\cassandra\data;0\system\schema_columnfamilies-45f5b36024bc3f83a3631034ea4fa697\system-schema_columnfamilies-ka-14-Index.db
 [22:11:59] :  
  [junit]at 
 org.apache.cassandra.io.util.FileUtils.renameWithConfirm(FileUtils.java:170) 
 ~[main/:na]
 [22:11:59] :  
  [junit]at 
 org.apache.cassandra.io.util.FileUtils.renameWithConfirm(FileUtils.java:154) 
 ~[main/:na]
 [22:11:59] :  
  [junit]at 
 org.apache.cassandra.io.sstable.SSTableWriter.rename(SSTableWriter.java:569) 
 ~[main/:na]
 [22:11:59] :  
  [junit]at 
 org.apache.cassandra.io.sstable.SSTableWriter.rename(SSTableWriter.java:561) 
 ~[main/:na]
 [22:11:59] :  
  [junit]at 
 org.apache.cassandra.io.sstable.SSTableWriter.close(SSTableWriter.java:535) 
 ~[main/:na]
 [22:11:59] :  
  [junit]at 
 org.apache.cassandra.io.sstable.SSTableWriter.finish(SSTableWriter.java:470) 
 ~[main/:na]
 [22:11:59] :  
  [junit]at 
 org.apache.cassandra.io.sstable.SSTableRewriter.finishAndMaybeThrow(SSTableRewriter.java:349)
  ~[main/:na]
 [22:11:59] :  
  [junit]at 
 org.apache.cassandra.io.sstable.SSTableRewriter.finish(SSTableRewriter.java:324)
  ~[main/:na]
 [22:11:59] :  
  [junit]at 
 org.apache.cassandra.io.sstable.SSTableRewriter.finish(SSTableRewriter.java:304)
  ~[main/:na]
 [22:11:59] :  
  [junit]at 
 org.apache.cassandra.db.compaction.CompactionTask.runMayThrow(CompactionTask.java:200)
  ~[main/:na]
 [22:11:59] :  
  [junit]at 
 org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:28) 
 ~[main/:na]
 [22:11:59] :  
  [junit]at 
 org.apache.cassandra.db.compaction.CompactionTask.executeInternal(CompactionTask.java:75)
  ~[main/:na]
 [22:11:59] :  
  [junit]at 
 org.apache.cassandra.db.compaction.AbstractCompactionTask.execute(AbstractCompactionTask.java:59)
  ~[main/:na]
 [22:11:59] :  
  [junit]at 
 org.apache.cassandra.db.compaction.CompactionManager$BackgroundCompactionTask.run(CompactionManager.java:226)
  ~[main/:na]
 [22:11:59] :  
  [junit]at 
 java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) 
 ~[na:1.7.0_45]
 [22:11:59] :  
  [junit]at java.util.concurrent.FutureTask.run(FutureTask.java:262) 
 ~[na:1.7.0_45]
 [22:11:59] :  
  [junit]at 
 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
  ~[na:1.7.0_45]
 [22:11:59] :  
  [junit]at 
 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
  [na:1.7.0_45]
 [22:11:59] :  
  [junit]at java.lang.Thread.run(Thread.java:744) [na:1.7.0_45]
 {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (CASSANDRA-8535) java.lang.RuntimeException: Failed to rename XXX to YYY

2014-12-23 Thread Leonid Shalupov (JIRA)

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

Leonid Shalupov updated CASSANDRA-8535:
---
Description: 
{code}
java.lang.RuntimeException: Failed to rename 
build\test\cassandra\data;0\system\schema_keyspaces-b0f2235744583cdb9631c43e59ce3676\system-schema_keyspaces-tmp-ka-5-Index.db
 to 
build\test\cassandra\data;0\system\schema_keyspaces-b0f2235744583cdb9631c43e59ce3676\system-schema_keyspaces-ka-5-Index.db
at 
org.apache.cassandra.io.util.FileUtils.renameWithConfirm(FileUtils.java:170) 
~[main/:na]
at 
org.apache.cassandra.io.util.FileUtils.renameWithConfirm(FileUtils.java:154) 
~[main/:na]
at 
org.apache.cassandra.io.sstable.SSTableWriter.rename(SSTableWriter.java:569) 
~[main/:na]
at 
org.apache.cassandra.io.sstable.SSTableWriter.rename(SSTableWriter.java:561) 
~[main/:na]
at 
org.apache.cassandra.io.sstable.SSTableWriter.close(SSTableWriter.java:535) 
~[main/:na]
at 
org.apache.cassandra.io.sstable.SSTableWriter.finish(SSTableWriter.java:470) 
~[main/:na]
at 
org.apache.cassandra.io.sstable.SSTableRewriter.finishAndMaybeThrow(SSTableRewriter.java:349)
 ~[main/:na]
at 
org.apache.cassandra.io.sstable.SSTableRewriter.finish(SSTableRewriter.java:324)
 ~[main/:na]
at 
org.apache.cassandra.io.sstable.SSTableRewriter.finish(SSTableRewriter.java:304)
 ~[main/:na]
at 
org.apache.cassandra.db.compaction.CompactionTask.runMayThrow(CompactionTask.java:200)
 ~[main/:na]
at 
org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:28) 
~[main/:na]
at 
org.apache.cassandra.db.compaction.CompactionTask.executeInternal(CompactionTask.java:75)
 ~[main/:na]
at 
org.apache.cassandra.db.compaction.AbstractCompactionTask.execute(AbstractCompactionTask.java:59)
 ~[main/:na]
at 
org.apache.cassandra.db.compaction.CompactionManager$BackgroundCompactionTask.run(CompactionManager.java:226)
 ~[main/:na]
at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) 
~[na:1.7.0_45]
at java.util.concurrent.FutureTask.run(FutureTask.java:262) 
~[na:1.7.0_45]
at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
~[na:1.7.0_45]
at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
[na:1.7.0_45]
at java.lang.Thread.run(Thread.java:744) [na:1.7.0_45]
Caused by: java.nio.file.FileSystemException: 
build\test\cassandra\data;0\system\schema_keyspaces-b0f2235744583cdb9631c43e59ce3676\system-schema_keyspaces-tmp-ka-5-Index.db
 - 
build\test\cassandra\data;0\system\schema_keyspaces-b0f2235744583cdb9631c43e59ce3676\system-schema_keyspaces-ka-5-Index.db:
 The process cannot access the file because it is being used by another process.

at 
sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:86) 
~[na:1.7.0_45]
at 
sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:97) 
~[na:1.7.0_45]
at sun.nio.fs.WindowsFileCopy.move(WindowsFileCopy.java:301) 
~[na:1.7.0_45]
at 
sun.nio.fs.WindowsFileSystemProvider.move(WindowsFileSystemProvider.java:287) 
~[na:1.7.0_45]
at java.nio.file.Files.move(Files.java:1345) ~[na:1.7.0_45]
at 
org.apache.cassandra.io.util.FileUtils.atomicMoveWithFallback(FileUtils.java:184)
 ~[main/:na]
at 
org.apache.cassandra.io.util.FileUtils.renameWithConfirm(FileUtils.java:166) 
~[main/:na]
... 18 common frames omitted
{code}

  was:
{code}
[22:11:59] :
 [junit] java.lang.RuntimeException: Failed to rename 
build\test\cassandra\data;0\system\schema_columnfamilies-45f5b36024bc3f83a3631034ea4fa697\system-schema_columnfamilies-tmp-ka-14-Index.db
 to 
build\test\cassandra\data;0\system\schema_columnfamilies-45f5b36024bc3f83a3631034ea4fa697\system-schema_columnfamilies-ka-14-Index.db
[22:11:59] :
 [junit]at 
org.apache.cassandra.io.util.FileUtils.renameWithConfirm(FileUtils.java:170) 
~[main/:na]
[22:11:59] :
 [junit]at 
org.apache.cassandra.io.util.FileUtils.renameWithConfirm(FileUtils.java:154) 
~[main/:na]
[22:11:59] :
 [junit]at 
org.apache.cassandra.io.sstable.SSTableWriter.rename(SSTableWriter.java:569) 
~[main/:na]
[22:11:59] :
 [junit]at 
org.apache.cassandra.io.sstable.SSTableWriter.rename(SSTableWriter.java:561) 
~[main/:na]
[22:11:59] :
 [junit]at 
org.apache.cassandra.io.sstable.SSTableWriter.close(SSTableWriter.java:535) 

[jira] [Commented] (CASSANDRA-8374) Better support of null for UDF

2014-12-23 Thread Tyler Hobbs (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-8374?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14257470#comment-14257470
 ] 

Tyler Hobbs commented on CASSANDRA-8374:


bq. If you admit that throwing an error means the function is broken then 
surely that means people should unbroke their function by returning null when 
they realize it is broken.

I think you may be overlooking the option of doing something other than 
returning null or raising an error when a null argument is passed.  There are 
definitely cases where it can make sense to, say, return some default value on 
null.

bq. Can you give me a few example of functions that might make sense to add to 
our hardcoded functions and for which throwing an exception on null would be 
reasonable, knowing that it would basically mean the function can't be used in 
select clauses?

Again, I'm not saying that throwing an exception on null is the best behavior.  
I think it's a good way to _alert_ users to the fact that their function is 
_broken_.  Fixing the function does _not_ necessarily mean changing it to 
return null on null input.

An example function off the top of my head: say you're calculating a ratio of 
two columns.  It can make sense to return 0 instead of null when one of the two 
columns is null.  I admit that returning null could be okay, too, I just have a 
preference for making the user explicitly aware of that behavior.  It sounds 
like you disagree, which is okay.  I'm still -1 making {{RETURNS NULL ON NULL 
INPUT}} the default, but you have reasonable arguments against that, so I'll 
leave it up to you.

bq. I think the proper default behavior for aggregate function is to ignore 
rows that have nulls.

Agreed.

bq. my argument is what you say: RETURNS implies that NULL is used as the 
return value, which is just not true because the state isn't updated then. 
Other databases generally ignore any NULL input for aggregates (e.g. Oracle 
documents that explicitly) - so that could be the way to go: never call a state 
function for any NULL argument (and leaving the syntax as proposed).

I think that's confusing the behavior of functions and aggregates too much.  
The {{RETURNS NULL ON NULL}} option definitley makes sense for functions.  The 
behavior of aggregates for such functions is separate (and I agree with Sylvain 
that Postgres' aggregate behavior for strict/RNON makes sense).

 Better support of null for UDF
 --

 Key: CASSANDRA-8374
 URL: https://issues.apache.org/jira/browse/CASSANDRA-8374
 Project: Cassandra
  Issue Type: Bug
Reporter: Sylvain Lebresne
Assignee: Robert Stupp
 Fix For: 3.0

 Attachments: 8473-1.txt, 8473-2.txt


 Currently, every function needs to deal with it's argument potentially being 
 {{null}}. There is very many case where that's just annoying, users should be 
 able to define a function like:
 {noformat}
 CREATE FUNCTION addTwo(val int) RETURNS int LANGUAGE JAVA AS 'return val + 2;'
 {noformat}
 without having this crashing as soon as a column it's applied to doesn't a 
 value for some rows (I'll note that this definition apparently cannot be 
 compiled currently, which should be looked into).  
 In fact, I think that by default methods shouldn't have to care about 
 {{null}} values: if the value is {{null}}, we should not call the method at 
 all and return {{null}}. There is still methods that may explicitely want to 
 handle {{null}} (to return a default value for instance), so maybe we can add 
 an {{ALLOW NULLS}} to the creation syntax.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CASSANDRA-8535) java.lang.RuntimeException: Failed to rename XXX to YYY

2014-12-23 Thread Leonid Shalupov (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-8535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14257469#comment-14257469
 ] 

Leonid Shalupov commented on CASSANDRA-8535:


It failed with org.apache.cassandra.cache.AutoSavingCacheTest 
testSerializeAndLoadKeyCache test first, then 
org.apache.cassandra.config.DefsTest dropKS and followed by many others.

Please read the log, it's filled with them: 
https://teamcity.jetbrains.com/downloadBuildLog.html?buildId=365436guest=1


 java.lang.RuntimeException: Failed to rename XXX to YYY
 ---

 Key: CASSANDRA-8535
 URL: https://issues.apache.org/jira/browse/CASSANDRA-8535
 Project: Cassandra
  Issue Type: Bug
 Environment: Windows 2008 X64
Reporter: Leonid Shalupov

 {code}
 java.lang.RuntimeException: Failed to rename 
 build\test\cassandra\data;0\system\schema_keyspaces-b0f2235744583cdb9631c43e59ce3676\system-schema_keyspaces-tmp-ka-5-Index.db
  to 
 build\test\cassandra\data;0\system\schema_keyspaces-b0f2235744583cdb9631c43e59ce3676\system-schema_keyspaces-ka-5-Index.db
   at 
 org.apache.cassandra.io.util.FileUtils.renameWithConfirm(FileUtils.java:170) 
 ~[main/:na]
   at 
 org.apache.cassandra.io.util.FileUtils.renameWithConfirm(FileUtils.java:154) 
 ~[main/:na]
   at 
 org.apache.cassandra.io.sstable.SSTableWriter.rename(SSTableWriter.java:569) 
 ~[main/:na]
   at 
 org.apache.cassandra.io.sstable.SSTableWriter.rename(SSTableWriter.java:561) 
 ~[main/:na]
   at 
 org.apache.cassandra.io.sstable.SSTableWriter.close(SSTableWriter.java:535) 
 ~[main/:na]
   at 
 org.apache.cassandra.io.sstable.SSTableWriter.finish(SSTableWriter.java:470) 
 ~[main/:na]
   at 
 org.apache.cassandra.io.sstable.SSTableRewriter.finishAndMaybeThrow(SSTableRewriter.java:349)
  ~[main/:na]
   at 
 org.apache.cassandra.io.sstable.SSTableRewriter.finish(SSTableRewriter.java:324)
  ~[main/:na]
   at 
 org.apache.cassandra.io.sstable.SSTableRewriter.finish(SSTableRewriter.java:304)
  ~[main/:na]
   at 
 org.apache.cassandra.db.compaction.CompactionTask.runMayThrow(CompactionTask.java:200)
  ~[main/:na]
   at 
 org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:28) 
 ~[main/:na]
   at 
 org.apache.cassandra.db.compaction.CompactionTask.executeInternal(CompactionTask.java:75)
  ~[main/:na]
   at 
 org.apache.cassandra.db.compaction.AbstractCompactionTask.execute(AbstractCompactionTask.java:59)
  ~[main/:na]
   at 
 org.apache.cassandra.db.compaction.CompactionManager$BackgroundCompactionTask.run(CompactionManager.java:226)
  ~[main/:na]
   at 
 java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) 
 ~[na:1.7.0_45]
   at java.util.concurrent.FutureTask.run(FutureTask.java:262) 
 ~[na:1.7.0_45]
   at 
 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
  ~[na:1.7.0_45]
   at 
 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
  [na:1.7.0_45]
   at java.lang.Thread.run(Thread.java:744) [na:1.7.0_45]
 Caused by: java.nio.file.FileSystemException: 
 build\test\cassandra\data;0\system\schema_keyspaces-b0f2235744583cdb9631c43e59ce3676\system-schema_keyspaces-tmp-ka-5-Index.db
  - 
 build\test\cassandra\data;0\system\schema_keyspaces-b0f2235744583cdb9631c43e59ce3676\system-schema_keyspaces-ka-5-Index.db:
  The process cannot access the file because it is being used by another 
 process.
   at 
 sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:86) 
 ~[na:1.7.0_45]
   at 
 sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:97) 
 ~[na:1.7.0_45]
   at sun.nio.fs.WindowsFileCopy.move(WindowsFileCopy.java:301) 
 ~[na:1.7.0_45]
   at 
 sun.nio.fs.WindowsFileSystemProvider.move(WindowsFileSystemProvider.java:287) 
 ~[na:1.7.0_45]
   at java.nio.file.Files.move(Files.java:1345) ~[na:1.7.0_45]
   at 
 org.apache.cassandra.io.util.FileUtils.atomicMoveWithFallback(FileUtils.java:184)
  ~[main/:na]
   at 
 org.apache.cassandra.io.util.FileUtils.renameWithConfirm(FileUtils.java:166) 
 ~[main/:na]
   ... 18 common frames omitted
 {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CASSANDRA-8518) Cassandra Query Request Size Estimator

2014-12-23 Thread Cheng Ren (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-8518?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14257606#comment-14257606
 ] 

Cheng Ren commented on CASSANDRA-8518:
--

Thanks for your reply.
The feature you suggested is very useful, and we will definitely  consider it 
in future upgrade. But as you mentioned in CASSANDRA-7402, it's not going to 
solve the underlying OOM issue caused by large response data of requests. 
The feature we are eager to have should help to prevent OOM in system itself. 
What we are proposing here is to take advantage of existing code and build a 
better memory estimator so that system can throttle requests. Please let us 
know If there is any other related issue. We also would like to hear your 
feedback on our proposal. 

Thanks

 Cassandra Query Request Size Estimator
 --

 Key: CASSANDRA-8518
 URL: https://issues.apache.org/jira/browse/CASSANDRA-8518
 Project: Cassandra
  Issue Type: Improvement
  Components: Core
Reporter: Cheng Ren

 We have been suffering from cassandra node crash due to out of memory for a 
 long time. The heap dump from the recent crash shows there are 22 native 
 transport request threads each of which consumes 3.3% of heap size, taking 
 more than 70% in total.  
 Heap dump:
 !https://dl-web.dropbox.com/get/attach1.png?_subject_uid=303980955w=AAAVOoncBoZ5aOPbDg2TpRkUss7B-2wlrnhUAv19b27OUA|height=400,width=600!
 Expanded view of one thread:
 !https://dl-web.dropbox.com/get/Screen%20Shot%202014-12-18%20at%204.06.29%20PM.png?_subject_uid=303980955w=AACUO4wrbxheRUxv8fwQ9P52T6gBOm5_g9zeIe8odu3V3w|height=400,width=600!
 The cassandra we are using now (2.0.4) utilized MemoryAwareThreadPoolExecutor 
 as the request executor and provided a default request size estimator which 
 constantly returns 1, meaning it limits only the number of requests being 
 pushed to the pool. To have more fine-grained control on handling requests 
 and better protect our node from OOM issue, we propose implementing a more 
 precise estimator. 
 Here is our two cents:
 For update/delete/insert request: Size could be estimated by adding size of 
 all class members together.
 For scan query, the major part of the request is response, which can be 
 estimated from the history data. For example if we receive a scan query on a 
 column family for a certain token range, we keep track of its response size 
 used as the estimated response size for later scan query on the same cf. 
 For future requests on the same cf, response size could be calculated by 
 token range*recorded size/ recorded token range. The request size should be 
 estimated as (query size + estimated response size).
 We believe what we're proposing here can be useful for other people in the 
 Cassandra community as well. Would you mind providing us feedbacks? Please 
 let us know if you have any concerns or suggestions regarding this proposal.
 Thanks,
 Cheng



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CASSANDRA-7438) Serializing Row cache alternative (Fully off heap)

2014-12-23 Thread Robert Stupp (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-7438?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14257721#comment-14257721
 ] 

Robert Stupp commented on CASSANDRA-7438:
-

I had the opportunity to test OHC on a big machine.
First: it works - very happy about that :)

Some things I want to notice:
* high number of segments do not have any really measurable influence (default 
of 2* # of cores is fine)
* throughput heavily depends on serialization (hash entry size) - Java8 gave 
about 10% to 15% improvement in some tests (either on {{Unsafe.copyMemory}} or 
something related like JNI barrier)
* the number of entries per bucket stays pretty low with the default load 
factor of .75 - vast majority has 0 or 1 entries, some 2 or 3 and few up to 8

Issue (not solvable yet):
It works great for hash entries to approx. 64kB with good to great throughput. 
Above that barrier it first works good but after some time the system spends a 
huge amount of CPU time (~95%) in {{malloc()}} / {{free()}} (with jemalloc, 
Unsafe.allocate is not worth discussing at all on Linux).
I tried to add some „memory buffer cache“ that caches free’d hash entries for 
reuse. But it turned out that in the end it would be too complex if done right. 
The current implementation is still in the code, but must be explicitly enabled 
with a system property. Workloads with small entries and high number of threads 
easily trigger Linux OOM protection (that kills the process). Please note that 
it works with large hash entries - but throughput drops dramatically to just a 
few thousand writes per second.

Some numbers (value sizes have gaussian distribution). Had to do these tests in 
a hurry because I had to give back the machine. Code used during these tests is 
tagged as {{0.1-SNAP-Bench}} in git. Throughput is limited by {{malloc()}} / 
{{free()}} and most tests did only use 50% of available CPU capacity (on 
_c3.8xlarge_ - 32 cores, Intel Xeon E5-2680v2 @2.8GHz, 64GB).
* 1k..200k value size, 32 threads, 1M keys, 90% read ratio, 32GB: 22k 
writes/sec, 200k reads/sec, ~8k evictions/sec, write: 8ms (99perc), read: 
3ms(99perc)
* 1k..64k value size, 500 threads, 1M keys, 90% read ratio, 32GB: 55k 
writes/sec, 499k reads/sec, ~2k evictions/sec, write: .1ms (99perc), read: 
.03ms(99perc)
* 1k..64k value size, 500 threads, 1M keys, 50% read ratio, 32GB: 195k 
writes/sec, 195k reads/sec, ~9k evictions/sec, write: .2ms (99perc), read: 
.1ms(99perc)
* 1k..64k value size, 500 threads, 1M keys, 10% read ratio, 32GB: 185k 
writes/sec, 20k reads/sec, ~7k evictions/sec, write: 4ms (99perc), read: 
.07ms(99perc)
* 1k..16k value size, 500 threads, 5M keys, 90% read ratio, 32GB: 110k 
writes/sec, 1M reads/sec, 30k evictions/sec, write: .04ms (99perc), read: 
.01ms(99perc)
* 1k..16k value size, 500 threads, 5M keys, 50% read ratio, 32GB: 420k 
writes/sec, 420k reads/sec, 125k evictions/sec, write: .06ms (99perc), read: 
.01ms(99perc)
* 1k..16k value size, 500 threads, 5M keys, 10% read ratio, 32GB: 435k 
writes/sec, 48k reads/sec, 130k evictions/sec, write: .06ms (99perc), read: 
.01ms(99perc)
* 1k..4k value size, 500 threads, 20M keys, 90% read ratio, 32GB: 140k 
writes/sec, 1.25M reads/sec, 50k evictions/sec, write: .02ms (99perc), read: 
.005ms(99perc)
* 1k..4k value size, 500 threads, 20M keys, 50% read ratio, 32GB: 530k 
writes/sec, 530k reads/sec, 220k evictions/sec, write: .04ms (99perc), read: 
.005ms(99perc)
* 1k..4k value size, 500 threads, 20M keys, 10% read ratio, 32GB: 665k 
writes/sec, 74k reads/sec, 250k evcictions/sec, write: .04ms (99perc), read: 
.005ms(99perc)

Command line to execute the benchmark:
{code}
java -jar ohc-benchmark/target/ohc-benchmark-0.1-SNAPSHOT.jar -rkd 
'uniform(1..2000)' -wkd 'uniform(1..2000)' -vs 'gaussian(1024..4096,2)' 
-r .1 -cap 320 -d 86400 -t 500 -dr 8

-r = read rate
-d = duration
-t = # of threads
-dr = # of driver threads that feed the worker threads
-rkd = read key distribution
-wkd = write key distribution
-vs = value size
-cap = capacity
{code}

Sample bucket histogram from 20M test:
{code}
[0..0]: 8118604
[1..1]: 5892298
[2..2]: 2138308
[3..3]: 518089
[4..4]: 94441
[5..5]: 13672
[6..6]: 1599
[7..7]: 189
[8..9]: 16
{code}

After trapping into that memory management issue with varying allocation sized 
of some few kB to several MB, I think that it’s still worth to work on an own 
off-heap memory management. Maybe some block-based approach (fixed or 
variable). But that’s out of the scope of this ticket.

 Serializing Row cache alternative (Fully off heap)
 --

 Key: CASSANDRA-7438
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7438
 Project: Cassandra
  Issue Type: Improvement
  Components: Core
 Environment: Linux
Reporter: Vijay

[jira] [Commented] (CASSANDRA-7666) Range-segmented sstables

2014-12-23 Thread Tupshin Harper (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-7666?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14257751#comment-14257751
 ] 

Tupshin Harper commented on CASSANDRA-7666:
---

I think that it's sufficient to let this be dormant until or unless it is 
needed to support other features. DTCS covers most of the immediate benefit. 
Future possible features such as tiered storage and the ability to drop whole 
segments at a time, however, mean that we should not defer this one 
indefinitely.

 Range-segmented sstables
 

 Key: CASSANDRA-7666
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7666
 Project: Cassandra
  Issue Type: New Feature
  Components: API, Core
Reporter: Jonathan Ellis
Assignee: Sam Tunnicliffe
 Fix For: 3.0


 It would be useful to segment sstables by data range (not just token range as 
 envisioned by CASSANDRA-6696).
 The primary use case is to allow deleting those data ranges for free by 
 dropping the sstables involved.  We should also (possibly as a separate 
 ticket) be able to leverage this information in query planning to avoid 
 unnecessary sstable reads.
 Relational databases typically call this partitioning the table, but 
 obviously we use that term already for something else: 
 http://www.postgresql.org/docs/9.1/static/ddl-partitioning.html
 Tokutek's take for mongodb: 
 http://docs.tokutek.com/tokumx/tokumx-partitioned-collections.html



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)