[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-tabpanel&focusedCommentId=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]  [WITH PASSWORD ] 
[SUPERUSER|NOSUPERUSER] [LOGIN|NOLOGIN]
ALTER ROLE  [WITH PASSWORD ] [SUPERUSER|NOSUPERUSER] 
[LOGIN|NOLOGIN]
DROP ROLE [IF EXISTS] 
LIST ROLES [OF ] [NORECURSIVE]
{code}

The output of {{LIST ROLES}} varies depending on the privileges of the user 
running the statement.
Without {{OF }} 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 }} 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 }} 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  TO 
REVOKE  FROM 
{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, PasswordAuthenticator, CassandraRoleManager & 
CassandraAuthorizer will continue to use the legacy tables, so clients sh

[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-tabpanel&focusedCommentId=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-tabpanel&focusedCommentId=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=303980955&w=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=303980955&w=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: 
c:

[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-tabpanel&focusedCommentId=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 Thread[Non

[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 
[0x0

[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)
>   

[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-tabpanel&focusedCommentId=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-tabpanel&focusedCommentId=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=ApacheCassandra&guest=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=buildLog&buildTypeId=ApacheCassandra_TestsWindows&buildId=365436&guest=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

[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-tabpanel&focusedCommentId=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 messa

[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-tabpanel&focusedCommentId=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-tabpanel&focusedCommentId=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=365436&guest=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-tabpanel&focusedCommentId=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=303980955&w=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=303980955&w=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-tabpanel&focusedCommentId=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: Vij

[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-tabpanel&focusedCommentId=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)