[jira] [Commented] (CASSANDRA-3961) Make index_interval configurable per column family
[ https://issues.apache.org/jira/browse/CASSANDRA-3961?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13527161#comment-13527161 ] Radim Kolar commented on CASSANDRA-3961: can it go into 1.2? its simple patch. Make index_interval configurable per column family -- Key: CASSANDRA-3961 URL: https://issues.apache.org/jira/browse/CASSANDRA-3961 Project: Cassandra Issue Type: Improvement Components: Core Environment: Cassandra 1.0.7/unix Reporter: Radim Kolar Assignee: Radim Kolar Fix For: 2.0 Attachments: cass-interval1.txt, cass-interval2.txt, cass-interval3.txt, cass-interval4.txt, cass-interval5.txt, cass-interval6.txt After various experiments with mixing OLTP a OLAP workload running on single cassandra cluster i discovered that lot of memory is wasted on holding index samples for CF which are rarely accessed or index is not much used for CF access because slices over keys are used. There is per column family setting for configuring bloom filters - bloom_filter_fp_chance. Please add setting index_interval configurable per CF as well. If this setting is not set or it is zero, default from cassandra.yaml will be used. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[2/2] Update IAuthenticator to match the new IAuthorizer; patch by Aleksey Yeschenko, reviewed by Jonathan Ellis for CASSANDRA-5003
http://git-wip-us.apache.org/repos/asf/cassandra/blob/bddfa9e1/src/java/org/apache/cassandra/service/ClientState.java -- diff --git a/src/java/org/apache/cassandra/service/ClientState.java b/src/java/org/apache/cassandra/service/ClientState.java index 97d25dc..06c752f 100644 --- a/src/java/org/apache/cassandra/service/ClientState.java +++ b/src/java/org/apache/cassandra/service/ClientState.java @@ -28,15 +28,13 @@ import org.apache.cassandra.config.DatabaseDescriptor; import org.apache.cassandra.config.Schema; import org.apache.cassandra.db.SystemTable; import org.apache.cassandra.db.Table; +import org.apache.cassandra.exceptions.AuthenticationException; import org.apache.cassandra.exceptions.InvalidRequestException; import org.apache.cassandra.exceptions.UnauthorizedException; -import org.apache.cassandra.thrift.AuthenticationException; import org.apache.cassandra.utils.SemanticVersion; /** * State related to a client connection. - * - * TODO: Kill thrift exceptions */ public class ClientState { @@ -57,12 +55,12 @@ public class ClientState for (String cf : cfs) READABLE_SYSTEM_RESOURCES.add(DataResource.columnFamily(Table.SYSTEM_KS, cf)); + PROTECTED_AUTH_RESOURCES.addAll(DatabaseDescriptor.getAuthenticator().protectedResources()); PROTECTED_AUTH_RESOURCES.addAll(DatabaseDescriptor.getAuthorizer().protectedResources()); -// TODO: the same with IAuthenticator once it's done. } // Current user for the session -private AuthenticatedUser user; +private volatile AuthenticatedUser user; private String keyspace; private SemanticVersion cqlVersion = DEFAULT_CQL_VERSION; @@ -82,7 +80,8 @@ public class ClientState public ClientState(boolean internalCall) { this.internalCall = internalCall; -this.user = DatabaseDescriptor.getAuthenticator().defaultUser(); +if (!DatabaseDescriptor.getAuthenticator().requireAuthentication()) +this.user = AuthenticatedUser.ANONYMOUS_USER; } public String getRawKeyspace() @@ -107,9 +106,15 @@ public class ClientState /** * Attempts to login this client with the given credentials map. */ -public void login(Map? extends CharSequence,? extends CharSequence credentials) throws AuthenticationException +public void login(MapString, String credentials) throws AuthenticationException { -this.user = DatabaseDescriptor.getAuthenticator().authenticate(credentials); +AuthenticatedUser user = DatabaseDescriptor.getAuthenticator().authenticate(credentials); + +if (!user.isAnonymous() !Auth.isExistingUser(user.getName())) + throw new AuthenticationException(String.format(User %s doesn't exist - create it with CREATE USER query first, + user.getName())); + +this.user = user; } public void hasAllKeyspacesAccess(Permission perm) throws UnauthorizedException, InvalidRequestException @@ -154,7 +159,7 @@ public class ClientState return; } throw new UnauthorizedException(String.format(User %s has no %s permission on %s or any of its parents, - user.username, + user.getName(), perm, resource)); } @@ -165,15 +170,17 @@ public class ClientState throw new UnauthorizedException(keyspace + keyspace is not user-modifiable.); } -public boolean isLogged() +public void validateLogin() throws UnauthorizedException { -return user != null; +if (user == null) +throw new UnauthorizedException(You have not logged in); } -private void validateLogin() throws InvalidRequestException +public void ensureNotAnonymous() throws UnauthorizedException { -if (user == null) -throw new InvalidRequestException(You have not logged in); +validateLogin(); +if (user.isAnonymous()) +throw new UnauthorizedException(You have to be logged in to perform this query); } private static void validateKeyspace(String keyspace) throws InvalidRequestException @@ -214,6 +221,11 @@ public class ClientState StringUtils.join(getCQLSupportedVersion(), , ))); } +public AuthenticatedUser getUser() +{ +return user; +} + public SemanticVersion getCQLVersion() { return cqlVersion; @@ -227,26 +239,8 @@ public class ClientState return new SemanticVersion[]{ cql, cql3 }; } -public SetPermission authorize(IResource resource) +private SetPermission authorize(IResource
[1/3] git commit: Merge branch 'cassandra-1.2.0' into cassandra-1.2
Updated Branches: refs/heads/cassandra-1.2 2828d28eb - ee0d178c6 Merge branch 'cassandra-1.2.0' into cassandra-1.2 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/ee0d178c Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/ee0d178c Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/ee0d178c Branch: refs/heads/cassandra-1.2 Commit: ee0d178c6e9581bcb9f6d50924bdae53fc4155fa Parents: 2828d28 bddfa9e Author: Aleksey Yeschenko alek...@apache.org Authored: Sat Dec 8 18:28:10 2012 +0300 Committer: Aleksey Yeschenko alek...@apache.org Committed: Sat Dec 8 18:28:10 2012 +0300 -- CHANGES.txt|1 + NEWS.txt | 14 ++ doc/native_protocol.spec |2 + .../simple_authentication/conf/passwd.properties |5 +- .../apache/cassandra/auth/SimpleAuthenticator.java | 24 +-- pylib/cqlshlib/cql3handling.py | 42 - .../cassandra/auth/AllowAllAuthenticator.java | 50 +- .../apache/cassandra/auth/AllowAllAuthorizer.java | 18 +- src/java/org/apache/cassandra/auth/Auth.java | 131 +++ .../apache/cassandra/auth/AuthenticatedUser.java | 38 +++- .../org/apache/cassandra/auth/IAuthenticator.java | 96 ++- .../org/apache/cassandra/auth/IAuthorizer.java | 18 +- src/java/org/apache/cassandra/auth/IResource.java |8 +- .../apache/cassandra/auth/LegacyAuthenticator.java | 92 ++ .../apache/cassandra/auth/LegacyAuthorizer.java| 15 +- .../org/apache/cassandra/config/CFMetaData.java|6 + .../cassandra/config/DatabaseDescriptor.java |4 +- .../org/apache/cassandra/config/KSMetaData.java|7 + src/java/org/apache/cassandra/config/Schema.java |5 +- src/java/org/apache/cassandra/cql3/Cql.g | 88 +-- .../org/apache/cassandra/cql3/QueryProcessor.java | 21 +++ .../org/apache/cassandra/cql3/UserOptions.java | 62 +++ .../cql3/statements/AlterUserStatement.java| 86 ++ .../cql3/statements/AuthenticationStatement.java | 57 +++ .../cql3/statements/AuthorizationStatement.java| 10 +- .../cql3/statements/CreateUserStatement.java | 64 +++ .../cql3/statements/DropUserStatement.java | 62 +++ .../cassandra/cql3/statements/GrantStatement.java |7 +- .../cql3/statements/ListPermissionsStatement.java | 25 ++- .../cql3/statements/ListUsersStatement.java| 48 ++ .../statements/PermissionAlteringStatement.java|7 +- .../cassandra/cql3/statements/RevokeStatement.java |7 +- .../exceptions/AuthenticationException.java| 26 +++ .../apache/cassandra/exceptions/ExceptionCode.java |2 + .../apache/cassandra/service/CassandraDaemon.java |8 +- .../org/apache/cassandra/service/ClientState.java | 60 +++ .../apache/cassandra/thrift/CassandraServer.java |9 +- .../apache/cassandra/thrift/ThriftConversion.java |5 + .../transport/messages/CredentialsMessage.java |3 +- .../cassandra/transport/messages/ErrorMessage.java |3 + .../transport/messages/StartupMessage.java |6 +- 41 files changed, 1079 insertions(+), 163 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/ee0d178c/CHANGES.txt --
[3/3] Update IAuthenticator to match the new IAuthorizer; patch by Aleksey Yeschenko, reviewed by Jonathan Ellis for CASSANDRA-5003
http://git-wip-us.apache.org/repos/asf/cassandra/blob/bddfa9e1/src/java/org/apache/cassandra/service/ClientState.java -- diff --git a/src/java/org/apache/cassandra/service/ClientState.java b/src/java/org/apache/cassandra/service/ClientState.java index 97d25dc..06c752f 100644 --- a/src/java/org/apache/cassandra/service/ClientState.java +++ b/src/java/org/apache/cassandra/service/ClientState.java @@ -28,15 +28,13 @@ import org.apache.cassandra.config.DatabaseDescriptor; import org.apache.cassandra.config.Schema; import org.apache.cassandra.db.SystemTable; import org.apache.cassandra.db.Table; +import org.apache.cassandra.exceptions.AuthenticationException; import org.apache.cassandra.exceptions.InvalidRequestException; import org.apache.cassandra.exceptions.UnauthorizedException; -import org.apache.cassandra.thrift.AuthenticationException; import org.apache.cassandra.utils.SemanticVersion; /** * State related to a client connection. - * - * TODO: Kill thrift exceptions */ public class ClientState { @@ -57,12 +55,12 @@ public class ClientState for (String cf : cfs) READABLE_SYSTEM_RESOURCES.add(DataResource.columnFamily(Table.SYSTEM_KS, cf)); + PROTECTED_AUTH_RESOURCES.addAll(DatabaseDescriptor.getAuthenticator().protectedResources()); PROTECTED_AUTH_RESOURCES.addAll(DatabaseDescriptor.getAuthorizer().protectedResources()); -// TODO: the same with IAuthenticator once it's done. } // Current user for the session -private AuthenticatedUser user; +private volatile AuthenticatedUser user; private String keyspace; private SemanticVersion cqlVersion = DEFAULT_CQL_VERSION; @@ -82,7 +80,8 @@ public class ClientState public ClientState(boolean internalCall) { this.internalCall = internalCall; -this.user = DatabaseDescriptor.getAuthenticator().defaultUser(); +if (!DatabaseDescriptor.getAuthenticator().requireAuthentication()) +this.user = AuthenticatedUser.ANONYMOUS_USER; } public String getRawKeyspace() @@ -107,9 +106,15 @@ public class ClientState /** * Attempts to login this client with the given credentials map. */ -public void login(Map? extends CharSequence,? extends CharSequence credentials) throws AuthenticationException +public void login(MapString, String credentials) throws AuthenticationException { -this.user = DatabaseDescriptor.getAuthenticator().authenticate(credentials); +AuthenticatedUser user = DatabaseDescriptor.getAuthenticator().authenticate(credentials); + +if (!user.isAnonymous() !Auth.isExistingUser(user.getName())) + throw new AuthenticationException(String.format(User %s doesn't exist - create it with CREATE USER query first, + user.getName())); + +this.user = user; } public void hasAllKeyspacesAccess(Permission perm) throws UnauthorizedException, InvalidRequestException @@ -154,7 +159,7 @@ public class ClientState return; } throw new UnauthorizedException(String.format(User %s has no %s permission on %s or any of its parents, - user.username, + user.getName(), perm, resource)); } @@ -165,15 +170,17 @@ public class ClientState throw new UnauthorizedException(keyspace + keyspace is not user-modifiable.); } -public boolean isLogged() +public void validateLogin() throws UnauthorizedException { -return user != null; +if (user == null) +throw new UnauthorizedException(You have not logged in); } -private void validateLogin() throws InvalidRequestException +public void ensureNotAnonymous() throws UnauthorizedException { -if (user == null) -throw new InvalidRequestException(You have not logged in); +validateLogin(); +if (user.isAnonymous()) +throw new UnauthorizedException(You have to be logged in to perform this query); } private static void validateKeyspace(String keyspace) throws InvalidRequestException @@ -214,6 +221,11 @@ public class ClientState StringUtils.join(getCQLSupportedVersion(), , ))); } +public AuthenticatedUser getUser() +{ +return user; +} + public SemanticVersion getCQLVersion() { return cqlVersion; @@ -227,26 +239,8 @@ public class ClientState return new SemanticVersion[]{ cql, cql3 }; } -public SetPermission authorize(IResource resource) +private SetPermission authorize(IResource
[4/10] Update IAuthenticator to match the new IAuthorizer; patch by Aleksey Yeschenko, reviewed by Jonathan Ellis for CASSANDRA-5003
http://git-wip-us.apache.org/repos/asf/cassandra/blob/bddfa9e1/src/java/org/apache/cassandra/service/ClientState.java -- diff --git a/src/java/org/apache/cassandra/service/ClientState.java b/src/java/org/apache/cassandra/service/ClientState.java index 97d25dc..06c752f 100644 --- a/src/java/org/apache/cassandra/service/ClientState.java +++ b/src/java/org/apache/cassandra/service/ClientState.java @@ -28,15 +28,13 @@ import org.apache.cassandra.config.DatabaseDescriptor; import org.apache.cassandra.config.Schema; import org.apache.cassandra.db.SystemTable; import org.apache.cassandra.db.Table; +import org.apache.cassandra.exceptions.AuthenticationException; import org.apache.cassandra.exceptions.InvalidRequestException; import org.apache.cassandra.exceptions.UnauthorizedException; -import org.apache.cassandra.thrift.AuthenticationException; import org.apache.cassandra.utils.SemanticVersion; /** * State related to a client connection. - * - * TODO: Kill thrift exceptions */ public class ClientState { @@ -57,12 +55,12 @@ public class ClientState for (String cf : cfs) READABLE_SYSTEM_RESOURCES.add(DataResource.columnFamily(Table.SYSTEM_KS, cf)); + PROTECTED_AUTH_RESOURCES.addAll(DatabaseDescriptor.getAuthenticator().protectedResources()); PROTECTED_AUTH_RESOURCES.addAll(DatabaseDescriptor.getAuthorizer().protectedResources()); -// TODO: the same with IAuthenticator once it's done. } // Current user for the session -private AuthenticatedUser user; +private volatile AuthenticatedUser user; private String keyspace; private SemanticVersion cqlVersion = DEFAULT_CQL_VERSION; @@ -82,7 +80,8 @@ public class ClientState public ClientState(boolean internalCall) { this.internalCall = internalCall; -this.user = DatabaseDescriptor.getAuthenticator().defaultUser(); +if (!DatabaseDescriptor.getAuthenticator().requireAuthentication()) +this.user = AuthenticatedUser.ANONYMOUS_USER; } public String getRawKeyspace() @@ -107,9 +106,15 @@ public class ClientState /** * Attempts to login this client with the given credentials map. */ -public void login(Map? extends CharSequence,? extends CharSequence credentials) throws AuthenticationException +public void login(MapString, String credentials) throws AuthenticationException { -this.user = DatabaseDescriptor.getAuthenticator().authenticate(credentials); +AuthenticatedUser user = DatabaseDescriptor.getAuthenticator().authenticate(credentials); + +if (!user.isAnonymous() !Auth.isExistingUser(user.getName())) + throw new AuthenticationException(String.format(User %s doesn't exist - create it with CREATE USER query first, + user.getName())); + +this.user = user; } public void hasAllKeyspacesAccess(Permission perm) throws UnauthorizedException, InvalidRequestException @@ -154,7 +159,7 @@ public class ClientState return; } throw new UnauthorizedException(String.format(User %s has no %s permission on %s or any of its parents, - user.username, + user.getName(), perm, resource)); } @@ -165,15 +170,17 @@ public class ClientState throw new UnauthorizedException(keyspace + keyspace is not user-modifiable.); } -public boolean isLogged() +public void validateLogin() throws UnauthorizedException { -return user != null; +if (user == null) +throw new UnauthorizedException(You have not logged in); } -private void validateLogin() throws InvalidRequestException +public void ensureNotAnonymous() throws UnauthorizedException { -if (user == null) -throw new InvalidRequestException(You have not logged in); +validateLogin(); +if (user.isAnonymous()) +throw new UnauthorizedException(You have to be logged in to perform this query); } private static void validateKeyspace(String keyspace) throws InvalidRequestException @@ -214,6 +221,11 @@ public class ClientState StringUtils.join(getCQLSupportedVersion(), , ))); } +public AuthenticatedUser getUser() +{ +return user; +} + public SemanticVersion getCQLVersion() { return cqlVersion; @@ -227,26 +239,8 @@ public class ClientState return new SemanticVersion[]{ cql, cql3 }; } -public SetPermission authorize(IResource resource) +private SetPermission authorize(IResource
[10/10] git commit: Cleanup from 5025, allow recovering nodes to pull immediately
Cleanup from 5025, allow recovering nodes to pull immediately Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/ec7a5f10 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/ec7a5f10 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/ec7a5f10 Branch: refs/heads/trunk Commit: ec7a5f1040545905016feb18ee5e31224eae624c Parents: c9ce1f0 Author: Brandon Williams brandonwilli...@apache.org Authored: Fri Dec 7 17:23:40 2012 -0600 Committer: Brandon Williams brandonwilli...@apache.org Committed: Fri Dec 7 17:23:40 2012 -0600 -- .../apache/cassandra/service/MigrationManager.java | 13 ++--- .../apache/cassandra/service/StorageService.java |4 +--- 2 files changed, 11 insertions(+), 6 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/ec7a5f10/src/java/org/apache/cassandra/service/MigrationManager.java -- diff --git a/src/java/org/apache/cassandra/service/MigrationManager.java b/src/java/org/apache/cassandra/service/MigrationManager.java index 72a9a84..9a82517 100644 --- a/src/java/org/apache/cassandra/service/MigrationManager.java +++ b/src/java/org/apache/cassandra/service/MigrationManager.java @@ -33,6 +33,9 @@ import java.util.Collection; import java.util.UUID; import java.util.concurrent.TimeUnit; +import java.lang.management.ManagementFactory; +import java.lang.management.RuntimeMXBean; + import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -65,6 +68,10 @@ public class MigrationManager implements IEndpointStateChangeSubscriber private static final int MIGRATION_REQUEST_RETRIES = 3; private static final ByteBuffer LAST_MIGRATION_KEY = ByteBufferUtil.bytes(Last Migration); +private static final RuntimeMXBean runtimeMXBean = ManagementFactory.getRuntimeMXBean(); + +public static final int MIGRATION_DELAY_IN_MS = 6; + public void onJoin(InetAddress endpoint, EndpointState epState) {} @@ -106,9 +113,9 @@ public class MigrationManager implements IEndpointStateChangeSubscriber if (Schema.instance.getVersion().equals(theirVersion)) return; -if (Schema.emptyVersion.equals(Schema.instance.getVersion())) +if (Schema.emptyVersion.equals(Schema.instance.getVersion()) || runtimeMXBean.getUptime() MIGRATION_DELAY_IN_MS) { -// If we think we may be bootstrapping, submit MigrationTask immediately +// If we think we may be bootstrapping or have recently started, submit MigrationTask immediately submitMigrationTask(endpoint); } else @@ -128,7 +135,7 @@ public class MigrationManager implements IEndpointStateChangeSubscriber submitMigrationTask(endpoint); } }; -StorageService.optionalTasks.schedule(runnable, 1, TimeUnit.MINUTES); +StorageService.optionalTasks.schedule(runnable, MIGRATION_DELAY_IN_MS, TimeUnit.MILLISECONDS); } } http://git-wip-us.apache.org/repos/asf/cassandra/blob/ec7a5f10/src/java/org/apache/cassandra/service/StorageService.java -- diff --git a/src/java/org/apache/cassandra/service/StorageService.java b/src/java/org/apache/cassandra/service/StorageService.java index d041279..a948786 100644 --- a/src/java/org/apache/cassandra/service/StorageService.java +++ b/src/java/org/apache/cassandra/service/StorageService.java @@ -546,8 +546,7 @@ public class StorageService implements IEndpointStateChangeSubscriber, StorageSe Gossiper.instance.start(SystemTable.incrementAndGetGeneration()); // needed for node-ring gathering. // gossip Schema.emptyVersion forcing immediate check for schema updates (see MigrationManager#maybeScheduleSchemaPull) -Schema.instance.updateVersion(); // Ensure we know our own actual Schema UUID in preparation for updates -MigrationManager.passiveAnnounce(Schema.emptyVersion); +Schema.instance.updateVersionAndAnnounce(); // Ensure we know our own actual Schema UUID in preparation for updates // add rpc listening info Gossiper.instance.addLocalApplicationState(ApplicationState.RPC_ADDRESS, valueFactory.rpcaddress(DatabaseDescriptor.getRpcAddress())); @@ -556,7 +555,6 @@ public class StorageService implements IEndpointStateChangeSubscriber, StorageSe MessagingService.instance().listen(FBUtilities.getLocalAddress()); LoadBroadcaster.instance.startBroadcasting(); -MigrationManager.passiveAnnounce(Schema.instance.getVersion()); Gossiper.instance.addLocalApplicationState(ApplicationState.RELEASE_VERSION, valueFactory.releaseVersion());
[1/10] git commit: Merge branch 'cassandra-1.2' into trunk
Updated Branches: refs/heads/trunk 36389f7d8 - 253a7f028 Merge branch 'cassandra-1.2' into trunk Conflicts: src/java/org/apache/cassandra/service/StorageService.java Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/253a7f02 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/253a7f02 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/253a7f02 Branch: refs/heads/trunk Commit: 253a7f028b1485f0b3556de9d81e19d1391e8edd Parents: 36389f7 ee0d178 Author: Aleksey Yeschenko alek...@apache.org Authored: Sat Dec 8 18:39:52 2012 +0300 Committer: Aleksey Yeschenko alek...@apache.org Committed: Sat Dec 8 18:39:52 2012 +0300 -- CHANGES.txt|1 + NEWS.txt | 14 ++ doc/native_protocol.spec |2 + .../simple_authentication/conf/passwd.properties |5 +- .../apache/cassandra/auth/SimpleAuthenticator.java | 24 +-- pylib/cqlshlib/cql3handling.py | 42 - .../cassandra/auth/AllowAllAuthenticator.java | 50 +- .../apache/cassandra/auth/AllowAllAuthorizer.java | 18 +- src/java/org/apache/cassandra/auth/Auth.java | 131 +++ .../apache/cassandra/auth/AuthenticatedUser.java | 38 +++- .../org/apache/cassandra/auth/IAuthenticator.java | 96 ++- .../org/apache/cassandra/auth/IAuthorizer.java | 18 +- src/java/org/apache/cassandra/auth/IResource.java |8 +- .../apache/cassandra/auth/LegacyAuthenticator.java | 92 ++ .../apache/cassandra/auth/LegacyAuthorizer.java| 15 +- .../org/apache/cassandra/config/CFMetaData.java|6 + .../cassandra/config/DatabaseDescriptor.java |4 +- .../org/apache/cassandra/config/KSMetaData.java|7 + src/java/org/apache/cassandra/config/Schema.java |5 +- src/java/org/apache/cassandra/cql3/Cql.g | 88 +-- .../org/apache/cassandra/cql3/QueryProcessor.java | 21 +++ .../org/apache/cassandra/cql3/UserOptions.java | 62 +++ .../cql3/statements/AlterUserStatement.java| 86 ++ .../cql3/statements/AuthenticationStatement.java | 57 +++ .../cql3/statements/AuthorizationStatement.java| 10 +- .../cql3/statements/CreateUserStatement.java | 64 +++ .../cql3/statements/DropUserStatement.java | 62 +++ .../cassandra/cql3/statements/GrantStatement.java |7 +- .../cql3/statements/ListPermissionsStatement.java | 25 ++- .../cql3/statements/ListUsersStatement.java| 48 ++ .../statements/PermissionAlteringStatement.java|7 +- .../cassandra/cql3/statements/RevokeStatement.java |7 +- .../exceptions/AuthenticationException.java| 26 +++ .../apache/cassandra/exceptions/ExceptionCode.java |2 + .../apache/cassandra/service/CassandraDaemon.java |8 +- .../org/apache/cassandra/service/ClientState.java | 60 +++ .../apache/cassandra/service/StorageService.java |1 + .../apache/cassandra/thrift/CassandraServer.java |9 +- .../apache/cassandra/thrift/ThriftConversion.java |5 + .../transport/messages/CredentialsMessage.java |3 +- .../cassandra/transport/messages/ErrorMessage.java |3 + .../transport/messages/StartupMessage.java |6 +- 42 files changed, 1080 insertions(+), 163 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/253a7f02/CHANGES.txt -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/253a7f02/pylib/cqlshlib/cql3handling.py -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/253a7f02/src/java/org/apache/cassandra/config/CFMetaData.java -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/253a7f02/src/java/org/apache/cassandra/config/DatabaseDescriptor.java -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/253a7f02/src/java/org/apache/cassandra/config/Schema.java -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/253a7f02/src/java/org/apache/cassandra/service/StorageService.java -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/253a7f02/src/java/org/apache/cassandra/thrift/CassandraServer.java --
[6/10] git commit: Merge branch 'cassandra-1.2.0' into cassandra-1.2
Merge branch 'cassandra-1.2.0' into cassandra-1.2 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/fdec45f7 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/fdec45f7 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/fdec45f7 Branch: refs/heads/trunk Commit: fdec45f7f4a60049db7b6698491d3149637fd913 Parents: 32fe754 fbf9f55 Author: Brandon Williams brandonwilli...@apache.org Authored: Fri Dec 7 17:30:14 2012 -0600 Committer: Brandon Williams brandonwilli...@apache.org Committed: Fri Dec 7 17:30:14 2012 -0600 -- CHANGES.txt |4 +++- 1 files changed, 3 insertions(+), 1 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/fdec45f7/CHANGES.txt --
[7/10] git commit: Merge branch 'cassandra-1.2.0' of https://git-wip-us.apache.org/repos/asf/cassandra into cassandra-1.2.0
Merge branch 'cassandra-1.2.0' of https://git-wip-us.apache.org/repos/asf/cassandra into cassandra-1.2.0 Conflicts: src/java/org/apache/cassandra/service/StorageService.java Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/fbf9f553 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/fbf9f553 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/fbf9f553 Branch: refs/heads/trunk Commit: fbf9f5533e6910aa61e50d43a28e83aecbe1e665 Parents: 904caea d599b3f Author: Brandon Williams brandonwilli...@apache.org Authored: Fri Dec 7 17:29:49 2012 -0600 Committer: Brandon Williams brandonwilli...@apache.org Committed: Fri Dec 7 17:29:49 2012 -0600 -- CHANGES.txt |4 +++- 1 files changed, 3 insertions(+), 1 deletions(-) --
[8/10] git commit: Merge branch 'cassandra-1.2.0' into cassandra-1.2
Merge branch 'cassandra-1.2.0' into cassandra-1.2 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/32fe754d Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/32fe754d Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/32fe754d Branch: refs/heads/trunk Commit: 32fe754dbed1784122509d7475584050443e47e8 Parents: cf3cde3 904caea Author: Brandon Williams brandonwilli...@apache.org Authored: Fri Dec 7 17:26:04 2012 -0600 Committer: Brandon Williams brandonwilli...@apache.org Committed: Fri Dec 7 17:26:04 2012 -0600 -- .../apache/cassandra/service/MigrationManager.java | 13 ++--- .../apache/cassandra/service/StorageService.java |6 ++ 2 files changed, 12 insertions(+), 7 deletions(-) --
[9/10] git commit: Merge branch 'cassandra-1.1' into cassandra-1.2.0
Merge branch 'cassandra-1.1' into cassandra-1.2.0 Conflicts: src/java/org/apache/cassandra/service/MigrationManager.java src/java/org/apache/cassandra/service/StorageService.java Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/904caea6 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/904caea6 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/904caea6 Branch: refs/heads/trunk Commit: 904caea6ff08074684a9c35195bcf145fcf97d08 Parents: 44545d3 ec7a5f1 Author: Brandon Williams brandonwilli...@apache.org Authored: Fri Dec 7 17:25:54 2012 -0600 Committer: Brandon Williams brandonwilli...@apache.org Committed: Fri Dec 7 17:25:54 2012 -0600 -- .../apache/cassandra/service/MigrationManager.java | 13 ++--- .../apache/cassandra/service/StorageService.java |6 ++ 2 files changed, 12 insertions(+), 7 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/904caea6/src/java/org/apache/cassandra/service/MigrationManager.java -- diff --cc src/java/org/apache/cassandra/service/MigrationManager.java index cbe9127,9a82517..028ec8b --- a/src/java/org/apache/cassandra/service/MigrationManager.java +++ b/src/java/org/apache/cassandra/service/MigrationManager.java @@@ -23,11 -25,17 +23,14 @@@ import java.io.IOException import java.net.InetAddress; import java.nio.ByteBuffer; import java.util.*; -import java.util.concurrent.Callable; +import java.util.concurrent.CopyOnWriteArrayList; import java.util.concurrent.ExecutionException; import java.util.concurrent.Future; -import java.util.ArrayList; -import java.util.Collection; -import java.util.UUID; import java.util.concurrent.TimeUnit; + import java.lang.management.ManagementFactory; + import java.lang.management.RuntimeMXBean; + import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@@ -54,24 -64,14 +57,28 @@@ public class MigrationManager implement { private static final Logger logger = LoggerFactory.getLogger(MigrationManager.class); -// try that many times to send migration request to the node before giving up -private static final int MIGRATION_REQUEST_RETRIES = 3; private static final ByteBuffer LAST_MIGRATION_KEY = ByteBufferUtil.bytes(Last Migration); +public static final MigrationManager instance = new MigrationManager(); + + private static final RuntimeMXBean runtimeMXBean = ManagementFactory.getRuntimeMXBean(); + + public static final int MIGRATION_DELAY_IN_MS = 6; + +private final ListIMigrationListener listeners = new CopyOnWriteArrayListIMigrationListener(); + +private MigrationManager() {} + +public void register(IMigrationListener listener) +{ +listeners.add(listener); +} + +public void unregister(IMigrationListener listener) +{ +listeners.remove(listener); +} + public void onJoin(InetAddress endpoint, EndpointState epState) {} http://git-wip-us.apache.org/repos/asf/cassandra/blob/904caea6/src/java/org/apache/cassandra/service/StorageService.java -- diff --cc src/java/org/apache/cassandra/service/StorageService.java index 276136a,a948786..e5550f9 --- a/src/java/org/apache/cassandra/service/StorageService.java +++ b/src/java/org/apache/cassandra/service/StorageService.java @@@ -522,17 -544,13 +522,16 @@@ public class StorageService implements Gossiper.instance.register(this); Gossiper.instance.register(migrationManager); Gossiper.instance.start(SystemTable.incrementAndGetGeneration()); // needed for node-ring gathering. - -// gossip Schema.emptyVersion forcing immediate check for schema updates (see MigrationManager#maybeScheduleSchemaPull) +// gossip network proto version + Gossiper.instance.addLocalApplicationState(ApplicationState.NET_VERSION, valueFactory.networkVersion()); +Gossiper.instance.addLocalApplicationState(ApplicationState.HOST_ID, valueFactory.hostId(SystemTable.getLocalHostId())); +// gossip snitch infos (local DC and rack) +gossipSnitchInfo(); - // gossip Schema.emptyVersion forcing immediate check for schema updates (see MigrationManager#maybeScheduleSchemaPull) - Schema.instance.updateVersion(); // Ensure we know our own actual Schema UUID in preparation for updates - MigrationManager.passiveAnnounce(Schema.emptyVersion); + Schema.instance.updateVersionAndAnnounce(); // Ensure we know our own actual Schema UUID in preparation for updates + // add rpc listening info
[2/10] git commit: Merge branch 'cassandra-1.2.0' into cassandra-1.2
Merge branch 'cassandra-1.2.0' into cassandra-1.2 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/ee0d178c Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/ee0d178c Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/ee0d178c Branch: refs/heads/trunk Commit: ee0d178c6e9581bcb9f6d50924bdae53fc4155fa Parents: 2828d28 bddfa9e Author: Aleksey Yeschenko alek...@apache.org Authored: Sat Dec 8 18:28:10 2012 +0300 Committer: Aleksey Yeschenko alek...@apache.org Committed: Sat Dec 8 18:28:10 2012 +0300 -- CHANGES.txt|1 + NEWS.txt | 14 ++ doc/native_protocol.spec |2 + .../simple_authentication/conf/passwd.properties |5 +- .../apache/cassandra/auth/SimpleAuthenticator.java | 24 +-- pylib/cqlshlib/cql3handling.py | 42 - .../cassandra/auth/AllowAllAuthenticator.java | 50 +- .../apache/cassandra/auth/AllowAllAuthorizer.java | 18 +- src/java/org/apache/cassandra/auth/Auth.java | 131 +++ .../apache/cassandra/auth/AuthenticatedUser.java | 38 +++- .../org/apache/cassandra/auth/IAuthenticator.java | 96 ++- .../org/apache/cassandra/auth/IAuthorizer.java | 18 +- src/java/org/apache/cassandra/auth/IResource.java |8 +- .../apache/cassandra/auth/LegacyAuthenticator.java | 92 ++ .../apache/cassandra/auth/LegacyAuthorizer.java| 15 +- .../org/apache/cassandra/config/CFMetaData.java|6 + .../cassandra/config/DatabaseDescriptor.java |4 +- .../org/apache/cassandra/config/KSMetaData.java|7 + src/java/org/apache/cassandra/config/Schema.java |5 +- src/java/org/apache/cassandra/cql3/Cql.g | 88 +-- .../org/apache/cassandra/cql3/QueryProcessor.java | 21 +++ .../org/apache/cassandra/cql3/UserOptions.java | 62 +++ .../cql3/statements/AlterUserStatement.java| 86 ++ .../cql3/statements/AuthenticationStatement.java | 57 +++ .../cql3/statements/AuthorizationStatement.java| 10 +- .../cql3/statements/CreateUserStatement.java | 64 +++ .../cql3/statements/DropUserStatement.java | 62 +++ .../cassandra/cql3/statements/GrantStatement.java |7 +- .../cql3/statements/ListPermissionsStatement.java | 25 ++- .../cql3/statements/ListUsersStatement.java| 48 ++ .../statements/PermissionAlteringStatement.java|7 +- .../cassandra/cql3/statements/RevokeStatement.java |7 +- .../exceptions/AuthenticationException.java| 26 +++ .../apache/cassandra/exceptions/ExceptionCode.java |2 + .../apache/cassandra/service/CassandraDaemon.java |8 +- .../org/apache/cassandra/service/ClientState.java | 60 +++ .../apache/cassandra/thrift/CassandraServer.java |9 +- .../apache/cassandra/thrift/ThriftConversion.java |5 + .../transport/messages/CredentialsMessage.java |3 +- .../cassandra/transport/messages/ErrorMessage.java |3 + .../transport/messages/StartupMessage.java |6 +- 41 files changed, 1079 insertions(+), 163 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/ee0d178c/CHANGES.txt --
[5/10] git commit: Merge branch 'cassandra-1.2' of https://git-wip-us.apache.org/repos/asf/cassandra into cassandra-1.2
Merge branch 'cassandra-1.2' of https://git-wip-us.apache.org/repos/asf/cassandra into cassandra-1.2 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/2828d28e Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/2828d28e Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/2828d28e Branch: refs/heads/trunk Commit: 2828d28eb40454ed81cbfb1d3df49d0fadaf043d Parents: fdec45f bdf9c2a Author: Brandon Williams brandonwilli...@apache.org Authored: Fri Dec 7 17:30:19 2012 -0600 Committer: Brandon Williams brandonwilli...@apache.org Committed: Fri Dec 7 17:30:19 2012 -0600 -- --
[jira] [Commented] (CASSANDRA-5003) Update IAuthenticator to allow dynamic user creation and removal
[ https://issues.apache.org/jira/browse/CASSANDRA-5003?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13527174#comment-13527174 ] Aleksey Yeschenko commented on CASSANDRA-5003: -- Thanks. Just committed. Update IAuthenticator to allow dynamic user creation and removal Key: CASSANDRA-5003 URL: https://issues.apache.org/jira/browse/CASSANDRA-5003 Project: Cassandra Issue Type: Improvement Reporter: Aleksey Yeschenko Assignee: Aleksey Yeschenko Fix For: 1.2.0 rc1 Attachments: 5003-p2.txt, 5003.txt - add new methods to IAuthenticator (createUser, alterUser, dropUser) - add CREATE USER, ALTER USER, DROP USER and LIST USERS CQL3 statements -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[4/13] git commit: merge from 1.1
merge from 1.1 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/66706d1c Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/66706d1c Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/66706d1c Branch: refs/heads/trunk Commit: 66706d1cc3b60a1ad4265936616972bfd8f20aa0 Parents: bddfa9e 5b511b6 Author: Jonathan Ellis jbel...@apache.org Authored: Sat Dec 8 10:19:27 2012 -0600 Committer: Jonathan Ellis jbel...@apache.org Committed: Sat Dec 8 10:19:27 2012 -0600 -- CHANGES.txt|2 + .../cassandra/db/compaction/CompactionManager.java | 18 +++ .../cassandra/db/context/CounterContext.java | 12 - 3 files changed, 25 insertions(+), 7 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/66706d1c/CHANGES.txt -- diff --cc CHANGES.txt index 48ebb87,15d63f0..b92984d --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,57 -1,14 +1,59 @@@ -1.1.8 +1.2-rc1 + * rename rpc_timeout settings to request_timeout (CASSANDRA-5027) + * add BF with 0.1 FP to LCS by default (CASSANDRA-5029) + * Fix preparing insert queries (CASSANDRA-5016) + * Fix preparing queries with counter increment (CASSANDRA-5022) + * Fix preparing updates with collections (CASSANDRA-5017) + * Don't generate UUID based on other node address (CASSANDRA-5002) + * Fix message when trying to alter a clustering key type (CASSANDRA-5012) + * Update IAuthenticator to match the new IAuthorizer (CASSANDRA-5003) +Merged from 1.1 + * reduce log spam from invalid counter shards (CASSANDRA-5026) * Improve schema propagation performance (CASSANDRA-5025) - * Fall back to old describe_splits if d_s_ex is not available (CASSANDRA-4803) - * Improve error reporting when streaming ranges fail (CASSANDRA-5009) + * Fix for IndexHelper.IndexFor throws OOB Exception (CASSANDRA-5030) + -1.1.7 - * cqlsh: improve COPY FROM performance (CASSANDRA-4921) +1.2-beta3 + * make consistency level configurable in cqlsh (CASSANDRA-4829) + * fix cqlsh rendering of blob fields (CASSANDRA-4970) + * fix cqlsh DESCRIBE command (CASSANDRA-4913) + * save truncation position in system table (CASSANDRA-4906) + * Move CompressionMetadata off-heap (CASSANDRA-4937) + * allow CLI to GET cql3 columnfamily data (CASSANDRA-4924) + * Fix rare race condition in getExpireTimeForEndpoint (CASSANDRA-4402) + * acquire references to overlapping sstables during compaction so bloom filter + doesn't get free'd prematurely (CASSANDRA-4934) + * Don't share slice query filter in CQL3 SelectStatement (CASSANDRA-4928) + * Separate tracing from Log4J (CASSANDRA-4861) + * Exclude gcable tombstones from merkle-tree computation (CASSANDRA-4905) + * Better printing of AbstractBounds for tracing (CASSANDRA-4931) + * Optimize mostRecentTombstone check in CC.collectAllData (CASSANDRA-4883) + * Change stream session ID to UUID to avoid collision from same node (CASSANDRA-4813) + * Use Stats.db when bulk loading if present (CASSANDRA-4957) + * Skip repair on system_trace and keyspaces with RF=1 (CASSANDRA-4956) + * (cql3) Remove arbitrary SELECT limit (CASSANDRA-4918) + * Correctly handle prepared operation on collections (CASSANDRA-4945) + * Fix CQL3 LIMIT (CASSANDRA-4877) + * Fix Stress for CQL3 (CASSANDRA-4979) + * Remove cassandra specific exceptions from JMX interface (CASSANDRA-4893) + * (CQL3) Force using ALLOW FILTERING on potentially inefficient queries (CASSANDRA-4915) + * (cql3) Fix adding column when the table has collections (CASSANDRA-4982) + * (cql3) Fix allowing collections with compact storage (CASSANDRA-4990) + * (cql3) Refuse ttl/writetime function on collections (CASSANDRA-4992) + * Replace IAuthority with new IAuthorizer (CASSANDRA-4874) + * clqsh: fix KEY pseudocolumn escaping when describing Thrift tables + in CQL3 mode (CASSANDRA-4955) * add basic authentication support for Pig CassandraStorage (CASSANDRA-3042) * fix CQL2 ALTER TABLE compaction_strategy_class altering (CASSANDRA-4965) +Merged from 1.1: + * Fall back to old describe_splits if d_s_ex is not available (CASSANDRA-4803) + * Improve error reporting when streaming ranges fail (CASSANDRA-5009) + * Fix cqlsh timestamp formatting of timezone info (CASSANDRA-4746) + * Fix assertion failure with leveled compaction (CASSANDRA-4799) + * Check for null end_token in get_range_slice (CASSANDRA-4804) + * Remove all remnants of removed nodes (CASSANDRA-4840) + * Add aut-reloading of the log4j file in debian package (CASSANDRA-4855) + * Fix estimated row cache entry size (CASSANDRA-4860) * reset getRangeSlice filter after finishing a row for get_paged_slice (CASSANDRA-4919) * expunge row cache
[12/13] git commit: Cleanup from 5025, allow recovering nodes to pull immediately
Cleanup from 5025, allow recovering nodes to pull immediately Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/5e462979 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/5e462979 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/5e462979 Branch: refs/heads/trunk Commit: 5e4629793b41674bc4056e87e00eaa6bf30133fa Parents: f618369 Author: Brandon Williams brandonwilli...@apache.org Authored: Fri Dec 7 17:23:40 2012 -0600 Committer: Brandon Williams brandonwilli...@apache.org Committed: Fri Dec 7 17:29:02 2012 -0600 -- .../apache/cassandra/service/MigrationManager.java | 13 ++--- .../apache/cassandra/service/StorageService.java |4 +--- 2 files changed, 11 insertions(+), 6 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/5e462979/src/java/org/apache/cassandra/service/MigrationManager.java -- diff --git a/src/java/org/apache/cassandra/service/MigrationManager.java b/src/java/org/apache/cassandra/service/MigrationManager.java index 72a9a84..9a82517 100644 --- a/src/java/org/apache/cassandra/service/MigrationManager.java +++ b/src/java/org/apache/cassandra/service/MigrationManager.java @@ -33,6 +33,9 @@ import java.util.Collection; import java.util.UUID; import java.util.concurrent.TimeUnit; +import java.lang.management.ManagementFactory; +import java.lang.management.RuntimeMXBean; + import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -65,6 +68,10 @@ public class MigrationManager implements IEndpointStateChangeSubscriber private static final int MIGRATION_REQUEST_RETRIES = 3; private static final ByteBuffer LAST_MIGRATION_KEY = ByteBufferUtil.bytes(Last Migration); +private static final RuntimeMXBean runtimeMXBean = ManagementFactory.getRuntimeMXBean(); + +public static final int MIGRATION_DELAY_IN_MS = 6; + public void onJoin(InetAddress endpoint, EndpointState epState) {} @@ -106,9 +113,9 @@ public class MigrationManager implements IEndpointStateChangeSubscriber if (Schema.instance.getVersion().equals(theirVersion)) return; -if (Schema.emptyVersion.equals(Schema.instance.getVersion())) +if (Schema.emptyVersion.equals(Schema.instance.getVersion()) || runtimeMXBean.getUptime() MIGRATION_DELAY_IN_MS) { -// If we think we may be bootstrapping, submit MigrationTask immediately +// If we think we may be bootstrapping or have recently started, submit MigrationTask immediately submitMigrationTask(endpoint); } else @@ -128,7 +135,7 @@ public class MigrationManager implements IEndpointStateChangeSubscriber submitMigrationTask(endpoint); } }; -StorageService.optionalTasks.schedule(runnable, 1, TimeUnit.MINUTES); +StorageService.optionalTasks.schedule(runnable, MIGRATION_DELAY_IN_MS, TimeUnit.MILLISECONDS); } } http://git-wip-us.apache.org/repos/asf/cassandra/blob/5e462979/src/java/org/apache/cassandra/service/StorageService.java -- diff --git a/src/java/org/apache/cassandra/service/StorageService.java b/src/java/org/apache/cassandra/service/StorageService.java index d041279..a948786 100644 --- a/src/java/org/apache/cassandra/service/StorageService.java +++ b/src/java/org/apache/cassandra/service/StorageService.java @@ -546,8 +546,7 @@ public class StorageService implements IEndpointStateChangeSubscriber, StorageSe Gossiper.instance.start(SystemTable.incrementAndGetGeneration()); // needed for node-ring gathering. // gossip Schema.emptyVersion forcing immediate check for schema updates (see MigrationManager#maybeScheduleSchemaPull) -Schema.instance.updateVersion(); // Ensure we know our own actual Schema UUID in preparation for updates -MigrationManager.passiveAnnounce(Schema.emptyVersion); +Schema.instance.updateVersionAndAnnounce(); // Ensure we know our own actual Schema UUID in preparation for updates // add rpc listening info Gossiper.instance.addLocalApplicationState(ApplicationState.RPC_ADDRESS, valueFactory.rpcaddress(DatabaseDescriptor.getRpcAddress())); @@ -556,7 +555,6 @@ public class StorageService implements IEndpointStateChangeSubscriber, StorageSe MessagingService.instance().listen(FBUtilities.getLocalAddress()); LoadBroadcaster.instance.startBroadcasting(); -MigrationManager.passiveAnnounce(Schema.instance.getVersion()); Gossiper.instance.addLocalApplicationState(ApplicationState.RELEASE_VERSION, valueFactory.releaseVersion());
[3/13] git commit: Merge branch 'cassandra-1.2.0' into cassandra-1.2
Merge branch 'cassandra-1.2.0' into cassandra-1.2 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/24154fca Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/24154fca Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/24154fca Branch: refs/heads/trunk Commit: 24154fca1f8873f3aeb1efd65aaa66fac3f862df Parents: ee0d178 66706d1 Author: Jonathan Ellis jbel...@apache.org Authored: Sat Dec 8 10:19:38 2012 -0600 Committer: Jonathan Ellis jbel...@apache.org Committed: Sat Dec 8 10:19:38 2012 -0600 -- CHANGES.txt|2 + .../cassandra/db/compaction/CompactionManager.java | 18 +++ .../cassandra/db/context/CounterContext.java | 12 - 3 files changed, 25 insertions(+), 7 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/24154fca/CHANGES.txt --
[8/13] git commit: reduce log spam from invalid counter shards patch by slebresne and jbellis for CASSANDRA-5026
reduce log spam from invalid counter shards patch by slebresne and jbellis for CASSANDRA-5026 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/5b511b62 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/5b511b62 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/5b511b62 Branch: refs/heads/cassandra-1.2 Commit: 5b511b62136d3bcb230a282fa433a122d061ee22 Parents: 5e46297 Author: Jonathan Ellis jbel...@apache.org Authored: Sat Dec 8 09:18:10 2012 -0600 Committer: Jonathan Ellis jbel...@apache.org Committed: Sat Dec 8 09:18:10 2012 -0600 -- CHANGES.txt|1 + .../cassandra/db/compaction/CompactionManager.java | 19 +- .../cassandra/db/context/CounterContext.java | 12 - 3 files changed, 23 insertions(+), 9 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/5b511b62/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 874dbd4..15d63f0 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 1.1.8 + * reduce log spam from invalid counter shards (CASSANDRA-5026) * Improve schema propagation performance (CASSANDRA-5025) * Fall back to old describe_splits if d_s_ex is not available (CASSANDRA-4803) * Improve error reporting when streaming ranges fail (CASSANDRA-5009) http://git-wip-us.apache.org/repos/asf/cassandra/blob/5b511b62/src/java/org/apache/cassandra/db/compaction/CompactionManager.java -- diff --git a/src/java/org/apache/cassandra/db/compaction/CompactionManager.java b/src/java/org/apache/cassandra/db/compaction/CompactionManager.java index edfea0a..ed1fb7e 100644 --- a/src/java/org/apache/cassandra/db/compaction/CompactionManager.java +++ b/src/java/org/apache/cassandra/db/compaction/CompactionManager.java @@ -19,7 +19,6 @@ package org.apache.cassandra.db.compaction; import java.io.File; -import java.io.IOError; import java.io.IOException; import java.lang.management.ManagementFactory; import java.nio.ByteBuffer; @@ -47,7 +46,6 @@ import org.apache.cassandra.dht.Range; import org.apache.cassandra.dht.Token; import org.apache.cassandra.io.sstable.*; import org.apache.cassandra.io.util.FileUtils; -import org.apache.cassandra.io.util.RandomAccessReader; import org.apache.cassandra.service.AntiEntropyService; import org.apache.cassandra.service.CacheService; import org.apache.cassandra.service.StorageService; @@ -77,6 +75,16 @@ public class CompactionManager implements CompactionManagerMBean public static final int NO_GC = Integer.MIN_VALUE; public static final int GC_ALL = Integer.MAX_VALUE; +// A thread local that tells us if the current thread is owned by the compaction manager. Used +// by CounterContext to figure out if it should log a warning for invalid counter shards. +public static final ThreadLocalBoolean isCompactionManager = new ThreadLocalBoolean() { +@Override +protected Boolean initialValue() +{ +return false; +} +}; + /** * compactionLock has two purposes: * - Special compactions will acquire writelock instead of readlock to make sure that all @@ -931,6 +939,13 @@ public class CompactionManager implements CompactionManagerMBean return totalCompactionsCompleted; } +protected void beforeExecute(Thread t, Runnable r) +{ +// can't set this in Thread factory, so we do it redundantly here +isCompactionManager.set(true); +super.beforeExecute(t, r); +} + // modified from DebuggableThreadPoolExecutor so that CompactionInterruptedExceptions are not logged @Override public void afterExecute(Runnable r, Throwable t) http://git-wip-us.apache.org/repos/asf/cassandra/blob/5b511b62/src/java/org/apache/cassandra/db/context/CounterContext.java -- diff --git a/src/java/org/apache/cassandra/db/context/CounterContext.java b/src/java/org/apache/cassandra/db/context/CounterContext.java index d466caa..bbab603 100644 --- a/src/java/org/apache/cassandra/db/context/CounterContext.java +++ b/src/java/org/apache/cassandra/db/context/CounterContext.java @@ -27,6 +27,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.apache.cassandra.db.DBConstants; +import org.apache.cassandra.db.compaction.CompactionManager; import org.apache.cassandra.db.marshal.MarshalException; import org.apache.cassandra.utils.Allocator; import org.apache.cassandra.utils.ByteBufferUtil; @@ -376,14 +377,11 @@ public class CounterContext implements IContext
[2/13] git commit: Merge branch 'cassandra-1.2.0' into cassandra-1.2
Merge branch 'cassandra-1.2.0' into cassandra-1.2 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/24154fca Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/24154fca Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/24154fca Branch: refs/heads/cassandra-1.2 Commit: 24154fca1f8873f3aeb1efd65aaa66fac3f862df Parents: ee0d178 66706d1 Author: Jonathan Ellis jbel...@apache.org Authored: Sat Dec 8 10:19:38 2012 -0600 Committer: Jonathan Ellis jbel...@apache.org Committed: Sat Dec 8 10:19:38 2012 -0600 -- CHANGES.txt|2 + .../cassandra/db/compaction/CompactionManager.java | 18 +++ .../cassandra/db/context/CounterContext.java | 12 - 3 files changed, 25 insertions(+), 7 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/24154fca/CHANGES.txt --
[11/13] git commit: Cleanup from 5025, allow recovering nodes to pull immediately
Cleanup from 5025, allow recovering nodes to pull immediately Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/5e462979 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/5e462979 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/5e462979 Branch: refs/heads/cassandra-1.2.0 Commit: 5e4629793b41674bc4056e87e00eaa6bf30133fa Parents: f618369 Author: Brandon Williams brandonwilli...@apache.org Authored: Fri Dec 7 17:23:40 2012 -0600 Committer: Brandon Williams brandonwilli...@apache.org Committed: Fri Dec 7 17:29:02 2012 -0600 -- .../apache/cassandra/service/MigrationManager.java | 13 ++--- .../apache/cassandra/service/StorageService.java |4 +--- 2 files changed, 11 insertions(+), 6 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/5e462979/src/java/org/apache/cassandra/service/MigrationManager.java -- diff --git a/src/java/org/apache/cassandra/service/MigrationManager.java b/src/java/org/apache/cassandra/service/MigrationManager.java index 72a9a84..9a82517 100644 --- a/src/java/org/apache/cassandra/service/MigrationManager.java +++ b/src/java/org/apache/cassandra/service/MigrationManager.java @@ -33,6 +33,9 @@ import java.util.Collection; import java.util.UUID; import java.util.concurrent.TimeUnit; +import java.lang.management.ManagementFactory; +import java.lang.management.RuntimeMXBean; + import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -65,6 +68,10 @@ public class MigrationManager implements IEndpointStateChangeSubscriber private static final int MIGRATION_REQUEST_RETRIES = 3; private static final ByteBuffer LAST_MIGRATION_KEY = ByteBufferUtil.bytes(Last Migration); +private static final RuntimeMXBean runtimeMXBean = ManagementFactory.getRuntimeMXBean(); + +public static final int MIGRATION_DELAY_IN_MS = 6; + public void onJoin(InetAddress endpoint, EndpointState epState) {} @@ -106,9 +113,9 @@ public class MigrationManager implements IEndpointStateChangeSubscriber if (Schema.instance.getVersion().equals(theirVersion)) return; -if (Schema.emptyVersion.equals(Schema.instance.getVersion())) +if (Schema.emptyVersion.equals(Schema.instance.getVersion()) || runtimeMXBean.getUptime() MIGRATION_DELAY_IN_MS) { -// If we think we may be bootstrapping, submit MigrationTask immediately +// If we think we may be bootstrapping or have recently started, submit MigrationTask immediately submitMigrationTask(endpoint); } else @@ -128,7 +135,7 @@ public class MigrationManager implements IEndpointStateChangeSubscriber submitMigrationTask(endpoint); } }; -StorageService.optionalTasks.schedule(runnable, 1, TimeUnit.MINUTES); +StorageService.optionalTasks.schedule(runnable, MIGRATION_DELAY_IN_MS, TimeUnit.MILLISECONDS); } } http://git-wip-us.apache.org/repos/asf/cassandra/blob/5e462979/src/java/org/apache/cassandra/service/StorageService.java -- diff --git a/src/java/org/apache/cassandra/service/StorageService.java b/src/java/org/apache/cassandra/service/StorageService.java index d041279..a948786 100644 --- a/src/java/org/apache/cassandra/service/StorageService.java +++ b/src/java/org/apache/cassandra/service/StorageService.java @@ -546,8 +546,7 @@ public class StorageService implements IEndpointStateChangeSubscriber, StorageSe Gossiper.instance.start(SystemTable.incrementAndGetGeneration()); // needed for node-ring gathering. // gossip Schema.emptyVersion forcing immediate check for schema updates (see MigrationManager#maybeScheduleSchemaPull) -Schema.instance.updateVersion(); // Ensure we know our own actual Schema UUID in preparation for updates -MigrationManager.passiveAnnounce(Schema.emptyVersion); +Schema.instance.updateVersionAndAnnounce(); // Ensure we know our own actual Schema UUID in preparation for updates // add rpc listening info Gossiper.instance.addLocalApplicationState(ApplicationState.RPC_ADDRESS, valueFactory.rpcaddress(DatabaseDescriptor.getRpcAddress())); @@ -556,7 +555,6 @@ public class StorageService implements IEndpointStateChangeSubscriber, StorageSe MessagingService.instance().listen(FBUtilities.getLocalAddress()); LoadBroadcaster.instance.startBroadcasting(); -MigrationManager.passiveAnnounce(Schema.instance.getVersion()); Gossiper.instance.addLocalApplicationState(ApplicationState.RELEASE_VERSION,
[13/13] git commit: Cleanup from 5025, allow recovering nodes to pull immediately
Cleanup from 5025, allow recovering nodes to pull immediately Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/5e462979 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/5e462979 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/5e462979 Branch: refs/heads/cassandra-1.2 Commit: 5e4629793b41674bc4056e87e00eaa6bf30133fa Parents: f618369 Author: Brandon Williams brandonwilli...@apache.org Authored: Fri Dec 7 17:23:40 2012 -0600 Committer: Brandon Williams brandonwilli...@apache.org Committed: Fri Dec 7 17:29:02 2012 -0600 -- .../apache/cassandra/service/MigrationManager.java | 13 ++--- .../apache/cassandra/service/StorageService.java |4 +--- 2 files changed, 11 insertions(+), 6 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/5e462979/src/java/org/apache/cassandra/service/MigrationManager.java -- diff --git a/src/java/org/apache/cassandra/service/MigrationManager.java b/src/java/org/apache/cassandra/service/MigrationManager.java index 72a9a84..9a82517 100644 --- a/src/java/org/apache/cassandra/service/MigrationManager.java +++ b/src/java/org/apache/cassandra/service/MigrationManager.java @@ -33,6 +33,9 @@ import java.util.Collection; import java.util.UUID; import java.util.concurrent.TimeUnit; +import java.lang.management.ManagementFactory; +import java.lang.management.RuntimeMXBean; + import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -65,6 +68,10 @@ public class MigrationManager implements IEndpointStateChangeSubscriber private static final int MIGRATION_REQUEST_RETRIES = 3; private static final ByteBuffer LAST_MIGRATION_KEY = ByteBufferUtil.bytes(Last Migration); +private static final RuntimeMXBean runtimeMXBean = ManagementFactory.getRuntimeMXBean(); + +public static final int MIGRATION_DELAY_IN_MS = 6; + public void onJoin(InetAddress endpoint, EndpointState epState) {} @@ -106,9 +113,9 @@ public class MigrationManager implements IEndpointStateChangeSubscriber if (Schema.instance.getVersion().equals(theirVersion)) return; -if (Schema.emptyVersion.equals(Schema.instance.getVersion())) +if (Schema.emptyVersion.equals(Schema.instance.getVersion()) || runtimeMXBean.getUptime() MIGRATION_DELAY_IN_MS) { -// If we think we may be bootstrapping, submit MigrationTask immediately +// If we think we may be bootstrapping or have recently started, submit MigrationTask immediately submitMigrationTask(endpoint); } else @@ -128,7 +135,7 @@ public class MigrationManager implements IEndpointStateChangeSubscriber submitMigrationTask(endpoint); } }; -StorageService.optionalTasks.schedule(runnable, 1, TimeUnit.MINUTES); +StorageService.optionalTasks.schedule(runnable, MIGRATION_DELAY_IN_MS, TimeUnit.MILLISECONDS); } } http://git-wip-us.apache.org/repos/asf/cassandra/blob/5e462979/src/java/org/apache/cassandra/service/StorageService.java -- diff --git a/src/java/org/apache/cassandra/service/StorageService.java b/src/java/org/apache/cassandra/service/StorageService.java index d041279..a948786 100644 --- a/src/java/org/apache/cassandra/service/StorageService.java +++ b/src/java/org/apache/cassandra/service/StorageService.java @@ -546,8 +546,7 @@ public class StorageService implements IEndpointStateChangeSubscriber, StorageSe Gossiper.instance.start(SystemTable.incrementAndGetGeneration()); // needed for node-ring gathering. // gossip Schema.emptyVersion forcing immediate check for schema updates (see MigrationManager#maybeScheduleSchemaPull) -Schema.instance.updateVersion(); // Ensure we know our own actual Schema UUID in preparation for updates -MigrationManager.passiveAnnounce(Schema.emptyVersion); +Schema.instance.updateVersionAndAnnounce(); // Ensure we know our own actual Schema UUID in preparation for updates // add rpc listening info Gossiper.instance.addLocalApplicationState(ApplicationState.RPC_ADDRESS, valueFactory.rpcaddress(DatabaseDescriptor.getRpcAddress())); @@ -556,7 +555,6 @@ public class StorageService implements IEndpointStateChangeSubscriber, StorageSe MessagingService.instance().listen(FBUtilities.getLocalAddress()); LoadBroadcaster.instance.startBroadcasting(); -MigrationManager.passiveAnnounce(Schema.instance.getVersion()); Gossiper.instance.addLocalApplicationState(ApplicationState.RELEASE_VERSION, valueFactory.releaseVersion());
[10/13] git commit: reduce log spam from invalid counter shards patch by slebresne and jbellis for CASSANDRA-5026
reduce log spam from invalid counter shards patch by slebresne and jbellis for CASSANDRA-5026 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/5b511b62 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/5b511b62 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/5b511b62 Branch: refs/heads/cassandra-1.2.0 Commit: 5b511b62136d3bcb230a282fa433a122d061ee22 Parents: 5e46297 Author: Jonathan Ellis jbel...@apache.org Authored: Sat Dec 8 09:18:10 2012 -0600 Committer: Jonathan Ellis jbel...@apache.org Committed: Sat Dec 8 09:18:10 2012 -0600 -- CHANGES.txt|1 + .../cassandra/db/compaction/CompactionManager.java | 19 +- .../cassandra/db/context/CounterContext.java | 12 - 3 files changed, 23 insertions(+), 9 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/5b511b62/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 874dbd4..15d63f0 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 1.1.8 + * reduce log spam from invalid counter shards (CASSANDRA-5026) * Improve schema propagation performance (CASSANDRA-5025) * Fall back to old describe_splits if d_s_ex is not available (CASSANDRA-4803) * Improve error reporting when streaming ranges fail (CASSANDRA-5009) http://git-wip-us.apache.org/repos/asf/cassandra/blob/5b511b62/src/java/org/apache/cassandra/db/compaction/CompactionManager.java -- diff --git a/src/java/org/apache/cassandra/db/compaction/CompactionManager.java b/src/java/org/apache/cassandra/db/compaction/CompactionManager.java index edfea0a..ed1fb7e 100644 --- a/src/java/org/apache/cassandra/db/compaction/CompactionManager.java +++ b/src/java/org/apache/cassandra/db/compaction/CompactionManager.java @@ -19,7 +19,6 @@ package org.apache.cassandra.db.compaction; import java.io.File; -import java.io.IOError; import java.io.IOException; import java.lang.management.ManagementFactory; import java.nio.ByteBuffer; @@ -47,7 +46,6 @@ import org.apache.cassandra.dht.Range; import org.apache.cassandra.dht.Token; import org.apache.cassandra.io.sstable.*; import org.apache.cassandra.io.util.FileUtils; -import org.apache.cassandra.io.util.RandomAccessReader; import org.apache.cassandra.service.AntiEntropyService; import org.apache.cassandra.service.CacheService; import org.apache.cassandra.service.StorageService; @@ -77,6 +75,16 @@ public class CompactionManager implements CompactionManagerMBean public static final int NO_GC = Integer.MIN_VALUE; public static final int GC_ALL = Integer.MAX_VALUE; +// A thread local that tells us if the current thread is owned by the compaction manager. Used +// by CounterContext to figure out if it should log a warning for invalid counter shards. +public static final ThreadLocalBoolean isCompactionManager = new ThreadLocalBoolean() { +@Override +protected Boolean initialValue() +{ +return false; +} +}; + /** * compactionLock has two purposes: * - Special compactions will acquire writelock instead of readlock to make sure that all @@ -931,6 +939,13 @@ public class CompactionManager implements CompactionManagerMBean return totalCompactionsCompleted; } +protected void beforeExecute(Thread t, Runnable r) +{ +// can't set this in Thread factory, so we do it redundantly here +isCompactionManager.set(true); +super.beforeExecute(t, r); +} + // modified from DebuggableThreadPoolExecutor so that CompactionInterruptedExceptions are not logged @Override public void afterExecute(Runnable r, Throwable t) http://git-wip-us.apache.org/repos/asf/cassandra/blob/5b511b62/src/java/org/apache/cassandra/db/context/CounterContext.java -- diff --git a/src/java/org/apache/cassandra/db/context/CounterContext.java b/src/java/org/apache/cassandra/db/context/CounterContext.java index d466caa..bbab603 100644 --- a/src/java/org/apache/cassandra/db/context/CounterContext.java +++ b/src/java/org/apache/cassandra/db/context/CounterContext.java @@ -27,6 +27,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.apache.cassandra.db.DBConstants; +import org.apache.cassandra.db.compaction.CompactionManager; import org.apache.cassandra.db.marshal.MarshalException; import org.apache.cassandra.utils.Allocator; import org.apache.cassandra.utils.ByteBufferUtil; @@ -376,14 +377,11 @@ public class CounterContext implements IContext
[9/13] git commit: reduce log spam from invalid counter shards patch by slebresne and jbellis for CASSANDRA-5026
reduce log spam from invalid counter shards patch by slebresne and jbellis for CASSANDRA-5026 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/5b511b62 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/5b511b62 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/5b511b62 Branch: refs/heads/trunk Commit: 5b511b62136d3bcb230a282fa433a122d061ee22 Parents: 5e46297 Author: Jonathan Ellis jbel...@apache.org Authored: Sat Dec 8 09:18:10 2012 -0600 Committer: Jonathan Ellis jbel...@apache.org Committed: Sat Dec 8 09:18:10 2012 -0600 -- CHANGES.txt|1 + .../cassandra/db/compaction/CompactionManager.java | 19 +- .../cassandra/db/context/CounterContext.java | 12 - 3 files changed, 23 insertions(+), 9 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/5b511b62/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 874dbd4..15d63f0 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 1.1.8 + * reduce log spam from invalid counter shards (CASSANDRA-5026) * Improve schema propagation performance (CASSANDRA-5025) * Fall back to old describe_splits if d_s_ex is not available (CASSANDRA-4803) * Improve error reporting when streaming ranges fail (CASSANDRA-5009) http://git-wip-us.apache.org/repos/asf/cassandra/blob/5b511b62/src/java/org/apache/cassandra/db/compaction/CompactionManager.java -- diff --git a/src/java/org/apache/cassandra/db/compaction/CompactionManager.java b/src/java/org/apache/cassandra/db/compaction/CompactionManager.java index edfea0a..ed1fb7e 100644 --- a/src/java/org/apache/cassandra/db/compaction/CompactionManager.java +++ b/src/java/org/apache/cassandra/db/compaction/CompactionManager.java @@ -19,7 +19,6 @@ package org.apache.cassandra.db.compaction; import java.io.File; -import java.io.IOError; import java.io.IOException; import java.lang.management.ManagementFactory; import java.nio.ByteBuffer; @@ -47,7 +46,6 @@ import org.apache.cassandra.dht.Range; import org.apache.cassandra.dht.Token; import org.apache.cassandra.io.sstable.*; import org.apache.cassandra.io.util.FileUtils; -import org.apache.cassandra.io.util.RandomAccessReader; import org.apache.cassandra.service.AntiEntropyService; import org.apache.cassandra.service.CacheService; import org.apache.cassandra.service.StorageService; @@ -77,6 +75,16 @@ public class CompactionManager implements CompactionManagerMBean public static final int NO_GC = Integer.MIN_VALUE; public static final int GC_ALL = Integer.MAX_VALUE; +// A thread local that tells us if the current thread is owned by the compaction manager. Used +// by CounterContext to figure out if it should log a warning for invalid counter shards. +public static final ThreadLocalBoolean isCompactionManager = new ThreadLocalBoolean() { +@Override +protected Boolean initialValue() +{ +return false; +} +}; + /** * compactionLock has two purposes: * - Special compactions will acquire writelock instead of readlock to make sure that all @@ -931,6 +939,13 @@ public class CompactionManager implements CompactionManagerMBean return totalCompactionsCompleted; } +protected void beforeExecute(Thread t, Runnable r) +{ +// can't set this in Thread factory, so we do it redundantly here +isCompactionManager.set(true); +super.beforeExecute(t, r); +} + // modified from DebuggableThreadPoolExecutor so that CompactionInterruptedExceptions are not logged @Override public void afterExecute(Runnable r, Throwable t) http://git-wip-us.apache.org/repos/asf/cassandra/blob/5b511b62/src/java/org/apache/cassandra/db/context/CounterContext.java -- diff --git a/src/java/org/apache/cassandra/db/context/CounterContext.java b/src/java/org/apache/cassandra/db/context/CounterContext.java index d466caa..bbab603 100644 --- a/src/java/org/apache/cassandra/db/context/CounterContext.java +++ b/src/java/org/apache/cassandra/db/context/CounterContext.java @@ -27,6 +27,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.apache.cassandra.db.DBConstants; +import org.apache.cassandra.db.compaction.CompactionManager; import org.apache.cassandra.db.marshal.MarshalException; import org.apache.cassandra.utils.Allocator; import org.apache.cassandra.utils.ByteBufferUtil; @@ -376,14 +377,11 @@ public class CounterContext implements IContext
[5/13] git commit: merge from 1.1
merge from 1.1 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/66706d1c Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/66706d1c Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/66706d1c Branch: refs/heads/cassandra-1.2.0 Commit: 66706d1cc3b60a1ad4265936616972bfd8f20aa0 Parents: bddfa9e 5b511b6 Author: Jonathan Ellis jbel...@apache.org Authored: Sat Dec 8 10:19:27 2012 -0600 Committer: Jonathan Ellis jbel...@apache.org Committed: Sat Dec 8 10:19:27 2012 -0600 -- CHANGES.txt|2 + .../cassandra/db/compaction/CompactionManager.java | 18 +++ .../cassandra/db/context/CounterContext.java | 12 - 3 files changed, 25 insertions(+), 7 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/66706d1c/CHANGES.txt -- diff --cc CHANGES.txt index 48ebb87,15d63f0..b92984d --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,57 -1,14 +1,59 @@@ -1.1.8 +1.2-rc1 + * rename rpc_timeout settings to request_timeout (CASSANDRA-5027) + * add BF with 0.1 FP to LCS by default (CASSANDRA-5029) + * Fix preparing insert queries (CASSANDRA-5016) + * Fix preparing queries with counter increment (CASSANDRA-5022) + * Fix preparing updates with collections (CASSANDRA-5017) + * Don't generate UUID based on other node address (CASSANDRA-5002) + * Fix message when trying to alter a clustering key type (CASSANDRA-5012) + * Update IAuthenticator to match the new IAuthorizer (CASSANDRA-5003) +Merged from 1.1 + * reduce log spam from invalid counter shards (CASSANDRA-5026) * Improve schema propagation performance (CASSANDRA-5025) - * Fall back to old describe_splits if d_s_ex is not available (CASSANDRA-4803) - * Improve error reporting when streaming ranges fail (CASSANDRA-5009) + * Fix for IndexHelper.IndexFor throws OOB Exception (CASSANDRA-5030) + -1.1.7 - * cqlsh: improve COPY FROM performance (CASSANDRA-4921) +1.2-beta3 + * make consistency level configurable in cqlsh (CASSANDRA-4829) + * fix cqlsh rendering of blob fields (CASSANDRA-4970) + * fix cqlsh DESCRIBE command (CASSANDRA-4913) + * save truncation position in system table (CASSANDRA-4906) + * Move CompressionMetadata off-heap (CASSANDRA-4937) + * allow CLI to GET cql3 columnfamily data (CASSANDRA-4924) + * Fix rare race condition in getExpireTimeForEndpoint (CASSANDRA-4402) + * acquire references to overlapping sstables during compaction so bloom filter + doesn't get free'd prematurely (CASSANDRA-4934) + * Don't share slice query filter in CQL3 SelectStatement (CASSANDRA-4928) + * Separate tracing from Log4J (CASSANDRA-4861) + * Exclude gcable tombstones from merkle-tree computation (CASSANDRA-4905) + * Better printing of AbstractBounds for tracing (CASSANDRA-4931) + * Optimize mostRecentTombstone check in CC.collectAllData (CASSANDRA-4883) + * Change stream session ID to UUID to avoid collision from same node (CASSANDRA-4813) + * Use Stats.db when bulk loading if present (CASSANDRA-4957) + * Skip repair on system_trace and keyspaces with RF=1 (CASSANDRA-4956) + * (cql3) Remove arbitrary SELECT limit (CASSANDRA-4918) + * Correctly handle prepared operation on collections (CASSANDRA-4945) + * Fix CQL3 LIMIT (CASSANDRA-4877) + * Fix Stress for CQL3 (CASSANDRA-4979) + * Remove cassandra specific exceptions from JMX interface (CASSANDRA-4893) + * (CQL3) Force using ALLOW FILTERING on potentially inefficient queries (CASSANDRA-4915) + * (cql3) Fix adding column when the table has collections (CASSANDRA-4982) + * (cql3) Fix allowing collections with compact storage (CASSANDRA-4990) + * (cql3) Refuse ttl/writetime function on collections (CASSANDRA-4992) + * Replace IAuthority with new IAuthorizer (CASSANDRA-4874) + * clqsh: fix KEY pseudocolumn escaping when describing Thrift tables + in CQL3 mode (CASSANDRA-4955) * add basic authentication support for Pig CassandraStorage (CASSANDRA-3042) * fix CQL2 ALTER TABLE compaction_strategy_class altering (CASSANDRA-4965) +Merged from 1.1: + * Fall back to old describe_splits if d_s_ex is not available (CASSANDRA-4803) + * Improve error reporting when streaming ranges fail (CASSANDRA-5009) + * Fix cqlsh timestamp formatting of timezone info (CASSANDRA-4746) + * Fix assertion failure with leveled compaction (CASSANDRA-4799) + * Check for null end_token in get_range_slice (CASSANDRA-4804) + * Remove all remnants of removed nodes (CASSANDRA-4840) + * Add aut-reloading of the log4j file in debian package (CASSANDRA-4855) + * Fix estimated row cache entry size (CASSANDRA-4860) * reset getRangeSlice filter after finishing a row for get_paged_slice (CASSANDRA-4919) * expunge row
[6/13] git commit: merge from 1.1
merge from 1.1 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/66706d1c Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/66706d1c Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/66706d1c Branch: refs/heads/cassandra-1.2 Commit: 66706d1cc3b60a1ad4265936616972bfd8f20aa0 Parents: bddfa9e 5b511b6 Author: Jonathan Ellis jbel...@apache.org Authored: Sat Dec 8 10:19:27 2012 -0600 Committer: Jonathan Ellis jbel...@apache.org Committed: Sat Dec 8 10:19:27 2012 -0600 -- CHANGES.txt|2 + .../cassandra/db/compaction/CompactionManager.java | 18 +++ .../cassandra/db/context/CounterContext.java | 12 - 3 files changed, 25 insertions(+), 7 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/66706d1c/CHANGES.txt -- diff --cc CHANGES.txt index 48ebb87,15d63f0..b92984d --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,57 -1,14 +1,59 @@@ -1.1.8 +1.2-rc1 + * rename rpc_timeout settings to request_timeout (CASSANDRA-5027) + * add BF with 0.1 FP to LCS by default (CASSANDRA-5029) + * Fix preparing insert queries (CASSANDRA-5016) + * Fix preparing queries with counter increment (CASSANDRA-5022) + * Fix preparing updates with collections (CASSANDRA-5017) + * Don't generate UUID based on other node address (CASSANDRA-5002) + * Fix message when trying to alter a clustering key type (CASSANDRA-5012) + * Update IAuthenticator to match the new IAuthorizer (CASSANDRA-5003) +Merged from 1.1 + * reduce log spam from invalid counter shards (CASSANDRA-5026) * Improve schema propagation performance (CASSANDRA-5025) - * Fall back to old describe_splits if d_s_ex is not available (CASSANDRA-4803) - * Improve error reporting when streaming ranges fail (CASSANDRA-5009) + * Fix for IndexHelper.IndexFor throws OOB Exception (CASSANDRA-5030) + -1.1.7 - * cqlsh: improve COPY FROM performance (CASSANDRA-4921) +1.2-beta3 + * make consistency level configurable in cqlsh (CASSANDRA-4829) + * fix cqlsh rendering of blob fields (CASSANDRA-4970) + * fix cqlsh DESCRIBE command (CASSANDRA-4913) + * save truncation position in system table (CASSANDRA-4906) + * Move CompressionMetadata off-heap (CASSANDRA-4937) + * allow CLI to GET cql3 columnfamily data (CASSANDRA-4924) + * Fix rare race condition in getExpireTimeForEndpoint (CASSANDRA-4402) + * acquire references to overlapping sstables during compaction so bloom filter + doesn't get free'd prematurely (CASSANDRA-4934) + * Don't share slice query filter in CQL3 SelectStatement (CASSANDRA-4928) + * Separate tracing from Log4J (CASSANDRA-4861) + * Exclude gcable tombstones from merkle-tree computation (CASSANDRA-4905) + * Better printing of AbstractBounds for tracing (CASSANDRA-4931) + * Optimize mostRecentTombstone check in CC.collectAllData (CASSANDRA-4883) + * Change stream session ID to UUID to avoid collision from same node (CASSANDRA-4813) + * Use Stats.db when bulk loading if present (CASSANDRA-4957) + * Skip repair on system_trace and keyspaces with RF=1 (CASSANDRA-4956) + * (cql3) Remove arbitrary SELECT limit (CASSANDRA-4918) + * Correctly handle prepared operation on collections (CASSANDRA-4945) + * Fix CQL3 LIMIT (CASSANDRA-4877) + * Fix Stress for CQL3 (CASSANDRA-4979) + * Remove cassandra specific exceptions from JMX interface (CASSANDRA-4893) + * (CQL3) Force using ALLOW FILTERING on potentially inefficient queries (CASSANDRA-4915) + * (cql3) Fix adding column when the table has collections (CASSANDRA-4982) + * (cql3) Fix allowing collections with compact storage (CASSANDRA-4990) + * (cql3) Refuse ttl/writetime function on collections (CASSANDRA-4992) + * Replace IAuthority with new IAuthorizer (CASSANDRA-4874) + * clqsh: fix KEY pseudocolumn escaping when describing Thrift tables + in CQL3 mode (CASSANDRA-4955) * add basic authentication support for Pig CassandraStorage (CASSANDRA-3042) * fix CQL2 ALTER TABLE compaction_strategy_class altering (CASSANDRA-4965) +Merged from 1.1: + * Fall back to old describe_splits if d_s_ex is not available (CASSANDRA-4803) + * Improve error reporting when streaming ranges fail (CASSANDRA-5009) + * Fix cqlsh timestamp formatting of timezone info (CASSANDRA-4746) + * Fix assertion failure with leveled compaction (CASSANDRA-4799) + * Check for null end_token in get_range_slice (CASSANDRA-4804) + * Remove all remnants of removed nodes (CASSANDRA-4840) + * Add aut-reloading of the log4j file in debian package (CASSANDRA-4855) + * Fix estimated row cache entry size (CASSANDRA-4860) * reset getRangeSlice filter after finishing a row for get_paged_slice (CASSANDRA-4919) * expunge row
[7/13] git commit: reduce log spam from invalid counter shards patch by slebresne and jbellis for CASSANDRA-5026
reduce log spam from invalid counter shards patch by slebresne and jbellis for CASSANDRA-5026 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/5b511b62 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/5b511b62 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/5b511b62 Branch: refs/heads/cassandra-1.1 Commit: 5b511b62136d3bcb230a282fa433a122d061ee22 Parents: 5e46297 Author: Jonathan Ellis jbel...@apache.org Authored: Sat Dec 8 09:18:10 2012 -0600 Committer: Jonathan Ellis jbel...@apache.org Committed: Sat Dec 8 09:18:10 2012 -0600 -- CHANGES.txt|1 + .../cassandra/db/compaction/CompactionManager.java | 19 +- .../cassandra/db/context/CounterContext.java | 12 - 3 files changed, 23 insertions(+), 9 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/5b511b62/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 874dbd4..15d63f0 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 1.1.8 + * reduce log spam from invalid counter shards (CASSANDRA-5026) * Improve schema propagation performance (CASSANDRA-5025) * Fall back to old describe_splits if d_s_ex is not available (CASSANDRA-4803) * Improve error reporting when streaming ranges fail (CASSANDRA-5009) http://git-wip-us.apache.org/repos/asf/cassandra/blob/5b511b62/src/java/org/apache/cassandra/db/compaction/CompactionManager.java -- diff --git a/src/java/org/apache/cassandra/db/compaction/CompactionManager.java b/src/java/org/apache/cassandra/db/compaction/CompactionManager.java index edfea0a..ed1fb7e 100644 --- a/src/java/org/apache/cassandra/db/compaction/CompactionManager.java +++ b/src/java/org/apache/cassandra/db/compaction/CompactionManager.java @@ -19,7 +19,6 @@ package org.apache.cassandra.db.compaction; import java.io.File; -import java.io.IOError; import java.io.IOException; import java.lang.management.ManagementFactory; import java.nio.ByteBuffer; @@ -47,7 +46,6 @@ import org.apache.cassandra.dht.Range; import org.apache.cassandra.dht.Token; import org.apache.cassandra.io.sstable.*; import org.apache.cassandra.io.util.FileUtils; -import org.apache.cassandra.io.util.RandomAccessReader; import org.apache.cassandra.service.AntiEntropyService; import org.apache.cassandra.service.CacheService; import org.apache.cassandra.service.StorageService; @@ -77,6 +75,16 @@ public class CompactionManager implements CompactionManagerMBean public static final int NO_GC = Integer.MIN_VALUE; public static final int GC_ALL = Integer.MAX_VALUE; +// A thread local that tells us if the current thread is owned by the compaction manager. Used +// by CounterContext to figure out if it should log a warning for invalid counter shards. +public static final ThreadLocalBoolean isCompactionManager = new ThreadLocalBoolean() { +@Override +protected Boolean initialValue() +{ +return false; +} +}; + /** * compactionLock has two purposes: * - Special compactions will acquire writelock instead of readlock to make sure that all @@ -931,6 +939,13 @@ public class CompactionManager implements CompactionManagerMBean return totalCompactionsCompleted; } +protected void beforeExecute(Thread t, Runnable r) +{ +// can't set this in Thread factory, so we do it redundantly here +isCompactionManager.set(true); +super.beforeExecute(t, r); +} + // modified from DebuggableThreadPoolExecutor so that CompactionInterruptedExceptions are not logged @Override public void afterExecute(Runnable r, Throwable t) http://git-wip-us.apache.org/repos/asf/cassandra/blob/5b511b62/src/java/org/apache/cassandra/db/context/CounterContext.java -- diff --git a/src/java/org/apache/cassandra/db/context/CounterContext.java b/src/java/org/apache/cassandra/db/context/CounterContext.java index d466caa..bbab603 100644 --- a/src/java/org/apache/cassandra/db/context/CounterContext.java +++ b/src/java/org/apache/cassandra/db/context/CounterContext.java @@ -27,6 +27,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.apache.cassandra.db.DBConstants; +import org.apache.cassandra.db.compaction.CompactionManager; import org.apache.cassandra.db.marshal.MarshalException; import org.apache.cassandra.utils.Allocator; import org.apache.cassandra.utils.ByteBufferUtil; @@ -376,14 +377,11 @@ public class CounterContext implements IContext
[1/13] git commit: Merge branch 'cassandra-1.2' into trunk
Updated Branches: refs/heads/cassandra-1.1 5e4629793 - 5b511b621 refs/heads/cassandra-1.2 ee0d178c6 - 24154fca1 refs/heads/cassandra-1.2.0 bddfa9e12 - 66706d1cc refs/heads/trunk 253a7f028 - e55740885 Merge branch 'cassandra-1.2' into trunk Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/e5574088 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/e5574088 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/e5574088 Branch: refs/heads/trunk Commit: e557408850524ead54c26980e5cbfa7a92410009 Parents: 253a7f0 24154fc Author: Jonathan Ellis jbel...@apache.org Authored: Sat Dec 8 10:19:48 2012 -0600 Committer: Jonathan Ellis jbel...@apache.org Committed: Sat Dec 8 10:19:48 2012 -0600 -- CHANGES.txt|2 + .../cassandra/db/compaction/CompactionManager.java | 18 +++ .../cassandra/db/context/CounterContext.java | 12 - 3 files changed, 25 insertions(+), 7 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/e5574088/CHANGES.txt -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/e5574088/src/java/org/apache/cassandra/db/compaction/CompactionManager.java --
[jira] [Commented] (CASSANDRA-5026) Reduce log spam from counter shard warnings
[ https://issues.apache.org/jira/browse/CASSANDRA-5026?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13527185#comment-13527185 ] Jonathan Ellis commented on CASSANDRA-5026: --- renamed to isCompactionManager, edited log message, and committed Reduce log spam from counter shard warnings --- Key: CASSANDRA-5026 URL: https://issues.apache.org/jira/browse/CASSANDRA-5026 Project: Cassandra Issue Type: Improvement Components: Core Reporter: Jonathan Ellis Assignee: Sylvain Lebresne Priority: Minor Fix For: 1.1.8, 1.2.0 rc1 Attachments: 5026.txt, 5026-v2.txt The invalid counter shard warning we can get after unclean shutdown in periodic commitlog mode or after node movement (CASSANDRA-4071) can spam the log hard since it is logged once per read until compaction merges it away. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
git commit: ninja-followup 5003
Updated Branches: refs/heads/cassandra-1.2.0 66706d1cc - 62b9037d1 ninja-followup 5003 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/62b9037d Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/62b9037d Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/62b9037d Branch: refs/heads/cassandra-1.2.0 Commit: 62b9037d1a2baa859b8bef27a4329f60a3bf356b Parents: 66706d1 Author: Aleksey Yeschenko alek...@apache.org Authored: Sat Dec 8 19:39:35 2012 +0300 Committer: Aleksey Yeschenko alek...@apache.org Committed: Sat Dec 8 19:39:35 2012 +0300 -- src/java/org/apache/cassandra/auth/Auth.java | 28 +++ .../org/apache/cassandra/cql3/QueryProcessor.java |6 +++- .../cql3/statements/AlterUserStatement.java|3 +- .../cql3/statements/CreateUserStatement.java |3 +- .../cql3/statements/DropUserStatement.java |3 +- 5 files changed, 32 insertions(+), 11 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/62b9037d/src/java/org/apache/cassandra/auth/Auth.java -- diff --git a/src/java/org/apache/cassandra/auth/Auth.java b/src/java/org/apache/cassandra/auth/Auth.java index 95312fe..123ffe6 100644 --- a/src/java/org/apache/cassandra/auth/Auth.java +++ b/src/java/org/apache/cassandra/auth/Auth.java @@ -24,7 +24,7 @@ import org.apache.commons.lang.StringUtils; import org.apache.cassandra.config.DatabaseDescriptor; import org.apache.cassandra.cql3.UntypedResultSet; import org.apache.cassandra.cql3.QueryProcessor; -import org.apache.cassandra.exceptions.InvalidRequestException; +import org.apache.cassandra.exceptions.UnavailableException; import org.apache.cassandra.service.MigrationManager; import org.apache.cassandra.service.StorageService; import org.apache.cassandra.utils.WrappedRunnable; @@ -45,7 +45,14 @@ public class Auth public static boolean isExistingUser(String username) { String query = String.format(SELECT * FROM %s.%s WHERE name = '%s', AUTH_KS, USERS_CF, escape(username)); -return !QueryProcessor.process(query).isEmpty(); +try +{ +return !QueryProcessor.process(query).isEmpty(); +} +catch (UnavailableException e) +{ +throw new RuntimeException(e); +} } /** @@ -57,8 +64,15 @@ public class Auth public static boolean isSuperuser(String username) { String query = String.format(SELECT super FROM %s.%s WHERE name = '%s', AUTH_KS, USERS_CF, escape(username)); -UntypedResultSet result = QueryProcessor.process(query); -return !result.isEmpty() result.one().getBoolean(super); +try +{ +UntypedResultSet result = QueryProcessor.process(query); +return !result.isEmpty() result.one().getBoolean(super); +} +catch (UnavailableException e) +{ +throw new RuntimeException(e); +} } /** @@ -67,7 +81,7 @@ public class Auth * @param username Username to insert. * @param isSuper User's new status. */ -public static void insertUser(String username, boolean isSuper) +public static void insertUser(String username, boolean isSuper) throws UnavailableException { QueryProcessor.process(String.format(INSERT INTO %s.%s (name, super) VALUES ('%s', %s), AUTH_KS, @@ -81,7 +95,7 @@ public class Auth * * @param username Username to delete. */ -public static void deleteUser(String username) +public static void deleteUser(String username) throws UnavailableException { QueryProcessor.process(String.format(DELETE FROM %s.%s WHERE name = '%s', AUTH_KS, @@ -103,7 +117,7 @@ public class Auth // schedule seeding a superuser in RING_DELAY milliseconds. Runnable runnable = new WrappedRunnable() { -public void runMayThrow() throws InvalidRequestException +public void runMayThrow() throws UnavailableException { // insert a default superuser if AUTH_KS.USERS_CF is empty. if (QueryProcessor.process(String.format(SELECT * FROM %s.%s, AUTH_KS, USERS_CF)).isEmpty()) http://git-wip-us.apache.org/repos/asf/cassandra/blob/62b9037d/src/java/org/apache/cassandra/cql3/QueryProcessor.java -- diff --git a/src/java/org/apache/cassandra/cql3/QueryProcessor.java b/src/java/org/apache/cassandra/cql3/QueryProcessor.java index b68f3c2..e172e59 100644 --- a/src/java/org/apache/cassandra/cql3/QueryProcessor.java +++
[2/2] git commit: ninja-followup 5003
ninja-followup 5003 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/62b9037d Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/62b9037d Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/62b9037d Branch: refs/heads/cassandra-1.2 Commit: 62b9037d1a2baa859b8bef27a4329f60a3bf356b Parents: 66706d1 Author: Aleksey Yeschenko alek...@apache.org Authored: Sat Dec 8 19:39:35 2012 +0300 Committer: Aleksey Yeschenko alek...@apache.org Committed: Sat Dec 8 19:39:35 2012 +0300 -- src/java/org/apache/cassandra/auth/Auth.java | 28 +++ .../org/apache/cassandra/cql3/QueryProcessor.java |6 +++- .../cql3/statements/AlterUserStatement.java|3 +- .../cql3/statements/CreateUserStatement.java |3 +- .../cql3/statements/DropUserStatement.java |3 +- 5 files changed, 32 insertions(+), 11 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/62b9037d/src/java/org/apache/cassandra/auth/Auth.java -- diff --git a/src/java/org/apache/cassandra/auth/Auth.java b/src/java/org/apache/cassandra/auth/Auth.java index 95312fe..123ffe6 100644 --- a/src/java/org/apache/cassandra/auth/Auth.java +++ b/src/java/org/apache/cassandra/auth/Auth.java @@ -24,7 +24,7 @@ import org.apache.commons.lang.StringUtils; import org.apache.cassandra.config.DatabaseDescriptor; import org.apache.cassandra.cql3.UntypedResultSet; import org.apache.cassandra.cql3.QueryProcessor; -import org.apache.cassandra.exceptions.InvalidRequestException; +import org.apache.cassandra.exceptions.UnavailableException; import org.apache.cassandra.service.MigrationManager; import org.apache.cassandra.service.StorageService; import org.apache.cassandra.utils.WrappedRunnable; @@ -45,7 +45,14 @@ public class Auth public static boolean isExistingUser(String username) { String query = String.format(SELECT * FROM %s.%s WHERE name = '%s', AUTH_KS, USERS_CF, escape(username)); -return !QueryProcessor.process(query).isEmpty(); +try +{ +return !QueryProcessor.process(query).isEmpty(); +} +catch (UnavailableException e) +{ +throw new RuntimeException(e); +} } /** @@ -57,8 +64,15 @@ public class Auth public static boolean isSuperuser(String username) { String query = String.format(SELECT super FROM %s.%s WHERE name = '%s', AUTH_KS, USERS_CF, escape(username)); -UntypedResultSet result = QueryProcessor.process(query); -return !result.isEmpty() result.one().getBoolean(super); +try +{ +UntypedResultSet result = QueryProcessor.process(query); +return !result.isEmpty() result.one().getBoolean(super); +} +catch (UnavailableException e) +{ +throw new RuntimeException(e); +} } /** @@ -67,7 +81,7 @@ public class Auth * @param username Username to insert. * @param isSuper User's new status. */ -public static void insertUser(String username, boolean isSuper) +public static void insertUser(String username, boolean isSuper) throws UnavailableException { QueryProcessor.process(String.format(INSERT INTO %s.%s (name, super) VALUES ('%s', %s), AUTH_KS, @@ -81,7 +95,7 @@ public class Auth * * @param username Username to delete. */ -public static void deleteUser(String username) +public static void deleteUser(String username) throws UnavailableException { QueryProcessor.process(String.format(DELETE FROM %s.%s WHERE name = '%s', AUTH_KS, @@ -103,7 +117,7 @@ public class Auth // schedule seeding a superuser in RING_DELAY milliseconds. Runnable runnable = new WrappedRunnable() { -public void runMayThrow() throws InvalidRequestException +public void runMayThrow() throws UnavailableException { // insert a default superuser if AUTH_KS.USERS_CF is empty. if (QueryProcessor.process(String.format(SELECT * FROM %s.%s, AUTH_KS, USERS_CF)).isEmpty()) http://git-wip-us.apache.org/repos/asf/cassandra/blob/62b9037d/src/java/org/apache/cassandra/cql3/QueryProcessor.java -- diff --git a/src/java/org/apache/cassandra/cql3/QueryProcessor.java b/src/java/org/apache/cassandra/cql3/QueryProcessor.java index b68f3c2..e172e59 100644 --- a/src/java/org/apache/cassandra/cql3/QueryProcessor.java +++ b/src/java/org/apache/cassandra/cql3/QueryProcessor.java @@ -140,7 +140,7 @@
[1/2] git commit: Merge branch 'cassandra-1.2.0' into cassandra-1.2
Updated Branches: refs/heads/cassandra-1.2 24154fca1 - 0cd66d7dc Merge branch 'cassandra-1.2.0' into cassandra-1.2 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/0cd66d7d Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/0cd66d7d Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/0cd66d7d Branch: refs/heads/cassandra-1.2 Commit: 0cd66d7dc7a26390a6154528af000ac0bc7cecae Parents: 24154fc 62b9037 Author: Aleksey Yeschenko alek...@apache.org Authored: Sat Dec 8 19:40:30 2012 +0300 Committer: Aleksey Yeschenko alek...@apache.org Committed: Sat Dec 8 19:40:30 2012 +0300 -- src/java/org/apache/cassandra/auth/Auth.java | 28 +++ .../org/apache/cassandra/cql3/QueryProcessor.java |6 +++- .../cql3/statements/AlterUserStatement.java|3 +- .../cql3/statements/CreateUserStatement.java |3 +- .../cql3/statements/DropUserStatement.java |3 +- 5 files changed, 32 insertions(+), 11 deletions(-) --
[1/3] git commit: Merge branch 'cassandra-1.2' into trunk
Updated Branches: refs/heads/trunk e55740885 - ab1078178 Merge branch 'cassandra-1.2' into trunk Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/ab107817 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/ab107817 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/ab107817 Branch: refs/heads/trunk Commit: ab107817868d95ab926928b43d8acdd0a768f84f Parents: e557408 0cd66d7 Author: Aleksey Yeschenko alek...@apache.org Authored: Sat Dec 8 19:41:08 2012 +0300 Committer: Aleksey Yeschenko alek...@apache.org Committed: Sat Dec 8 19:41:08 2012 +0300 -- src/java/org/apache/cassandra/auth/Auth.java | 28 +++ .../org/apache/cassandra/cql3/QueryProcessor.java |6 +++- .../cql3/statements/AlterUserStatement.java|3 +- .../cql3/statements/CreateUserStatement.java |3 +- .../cql3/statements/DropUserStatement.java |3 +- 5 files changed, 32 insertions(+), 11 deletions(-) --
[2/3] git commit: Merge branch 'cassandra-1.2.0' into cassandra-1.2
Merge branch 'cassandra-1.2.0' into cassandra-1.2 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/0cd66d7d Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/0cd66d7d Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/0cd66d7d Branch: refs/heads/trunk Commit: 0cd66d7dc7a26390a6154528af000ac0bc7cecae Parents: 24154fc 62b9037 Author: Aleksey Yeschenko alek...@apache.org Authored: Sat Dec 8 19:40:30 2012 +0300 Committer: Aleksey Yeschenko alek...@apache.org Committed: Sat Dec 8 19:40:30 2012 +0300 -- src/java/org/apache/cassandra/auth/Auth.java | 28 +++ .../org/apache/cassandra/cql3/QueryProcessor.java |6 +++- .../cql3/statements/AlterUserStatement.java|3 +- .../cql3/statements/CreateUserStatement.java |3 +- .../cql3/statements/DropUserStatement.java |3 +- 5 files changed, 32 insertions(+), 11 deletions(-) --
[3/3] git commit: ninja-followup 5003
ninja-followup 5003 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/62b9037d Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/62b9037d Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/62b9037d Branch: refs/heads/trunk Commit: 62b9037d1a2baa859b8bef27a4329f60a3bf356b Parents: 66706d1 Author: Aleksey Yeschenko alek...@apache.org Authored: Sat Dec 8 19:39:35 2012 +0300 Committer: Aleksey Yeschenko alek...@apache.org Committed: Sat Dec 8 19:39:35 2012 +0300 -- src/java/org/apache/cassandra/auth/Auth.java | 28 +++ .../org/apache/cassandra/cql3/QueryProcessor.java |6 +++- .../cql3/statements/AlterUserStatement.java|3 +- .../cql3/statements/CreateUserStatement.java |3 +- .../cql3/statements/DropUserStatement.java |3 +- 5 files changed, 32 insertions(+), 11 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/62b9037d/src/java/org/apache/cassandra/auth/Auth.java -- diff --git a/src/java/org/apache/cassandra/auth/Auth.java b/src/java/org/apache/cassandra/auth/Auth.java index 95312fe..123ffe6 100644 --- a/src/java/org/apache/cassandra/auth/Auth.java +++ b/src/java/org/apache/cassandra/auth/Auth.java @@ -24,7 +24,7 @@ import org.apache.commons.lang.StringUtils; import org.apache.cassandra.config.DatabaseDescriptor; import org.apache.cassandra.cql3.UntypedResultSet; import org.apache.cassandra.cql3.QueryProcessor; -import org.apache.cassandra.exceptions.InvalidRequestException; +import org.apache.cassandra.exceptions.UnavailableException; import org.apache.cassandra.service.MigrationManager; import org.apache.cassandra.service.StorageService; import org.apache.cassandra.utils.WrappedRunnable; @@ -45,7 +45,14 @@ public class Auth public static boolean isExistingUser(String username) { String query = String.format(SELECT * FROM %s.%s WHERE name = '%s', AUTH_KS, USERS_CF, escape(username)); -return !QueryProcessor.process(query).isEmpty(); +try +{ +return !QueryProcessor.process(query).isEmpty(); +} +catch (UnavailableException e) +{ +throw new RuntimeException(e); +} } /** @@ -57,8 +64,15 @@ public class Auth public static boolean isSuperuser(String username) { String query = String.format(SELECT super FROM %s.%s WHERE name = '%s', AUTH_KS, USERS_CF, escape(username)); -UntypedResultSet result = QueryProcessor.process(query); -return !result.isEmpty() result.one().getBoolean(super); +try +{ +UntypedResultSet result = QueryProcessor.process(query); +return !result.isEmpty() result.one().getBoolean(super); +} +catch (UnavailableException e) +{ +throw new RuntimeException(e); +} } /** @@ -67,7 +81,7 @@ public class Auth * @param username Username to insert. * @param isSuper User's new status. */ -public static void insertUser(String username, boolean isSuper) +public static void insertUser(String username, boolean isSuper) throws UnavailableException { QueryProcessor.process(String.format(INSERT INTO %s.%s (name, super) VALUES ('%s', %s), AUTH_KS, @@ -81,7 +95,7 @@ public class Auth * * @param username Username to delete. */ -public static void deleteUser(String username) +public static void deleteUser(String username) throws UnavailableException { QueryProcessor.process(String.format(DELETE FROM %s.%s WHERE name = '%s', AUTH_KS, @@ -103,7 +117,7 @@ public class Auth // schedule seeding a superuser in RING_DELAY milliseconds. Runnable runnable = new WrappedRunnable() { -public void runMayThrow() throws InvalidRequestException +public void runMayThrow() throws UnavailableException { // insert a default superuser if AUTH_KS.USERS_CF is empty. if (QueryProcessor.process(String.format(SELECT * FROM %s.%s, AUTH_KS, USERS_CF)).isEmpty()) http://git-wip-us.apache.org/repos/asf/cassandra/blob/62b9037d/src/java/org/apache/cassandra/cql3/QueryProcessor.java -- diff --git a/src/java/org/apache/cassandra/cql3/QueryProcessor.java b/src/java/org/apache/cassandra/cql3/QueryProcessor.java index b68f3c2..e172e59 100644 --- a/src/java/org/apache/cassandra/cql3/QueryProcessor.java +++ b/src/java/org/apache/cassandra/cql3/QueryProcessor.java @@ -140,7 +140,7 @@ public
git commit: Catch and log UAE in Auth#setup instead of propagating
Updated Branches: refs/heads/cassandra-1.2.0 62b9037d1 - dbbca5e29 Catch and log UAE in Auth#setup instead of propagating Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/dbbca5e2 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/dbbca5e2 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/dbbca5e2 Branch: refs/heads/cassandra-1.2.0 Commit: dbbca5e296d969550caca3519125dfe9f3f9a657 Parents: 62b9037 Author: Aleksey Yeschenko alek...@apache.org Authored: Sat Dec 8 20:44:20 2012 +0300 Committer: Aleksey Yeschenko alek...@apache.org Committed: Sat Dec 8 20:44:20 2012 +0300 -- src/java/org/apache/cassandra/auth/Auth.java | 22 +++- 1 files changed, 16 insertions(+), 6 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/dbbca5e2/src/java/org/apache/cassandra/auth/Auth.java -- diff --git a/src/java/org/apache/cassandra/auth/Auth.java b/src/java/org/apache/cassandra/auth/Auth.java index 123ffe6..6791455 100644 --- a/src/java/org/apache/cassandra/auth/Auth.java +++ b/src/java/org/apache/cassandra/auth/Auth.java @@ -20,6 +20,8 @@ package org.apache.cassandra.auth; import java.util.concurrent.TimeUnit; import org.apache.commons.lang.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.apache.cassandra.config.DatabaseDescriptor; import org.apache.cassandra.cql3.UntypedResultSet; @@ -27,10 +29,11 @@ import org.apache.cassandra.cql3.QueryProcessor; import org.apache.cassandra.exceptions.UnavailableException; import org.apache.cassandra.service.MigrationManager; import org.apache.cassandra.service.StorageService; -import org.apache.cassandra.utils.WrappedRunnable; public class Auth { +private static final Logger logger = LoggerFactory.getLogger(Auth.class); + public static final String DEFAULT_SUPERUSER_NAME = cassandra; public static final String AUTH_KS = system_auth; @@ -115,13 +118,20 @@ public class Auth MigrationManager.instance.register(new MigrationListener()); // schedule seeding a superuser in RING_DELAY milliseconds. -Runnable runnable = new WrappedRunnable() +Runnable runnable = new Runnable() { -public void runMayThrow() throws UnavailableException +public void run() { -// insert a default superuser if AUTH_KS.USERS_CF is empty. -if (QueryProcessor.process(String.format(SELECT * FROM %s.%s, AUTH_KS, USERS_CF)).isEmpty()) -insertUser(DEFAULT_SUPERUSER_NAME, true); +try +{ +// insert a default superuser if AUTH_KS.USERS_CF is empty. +if (QueryProcessor.process(String.format(SELECT * FROM %s.%s, AUTH_KS, USERS_CF)).isEmpty()) +insertUser(DEFAULT_SUPERUSER_NAME, true); +} +catch (UnavailableException e) +{ +logger.warn(Skipping default superuser setup: some nodes are unavailable); +} } }; StorageService.tasks.schedule(runnable, StorageService.RING_DELAY, TimeUnit.MILLISECONDS);
[1/2] git commit: Merge branch 'cassandra-1.2.0' into cassandra-1.2
Updated Branches: refs/heads/cassandra-1.2 0cd66d7dc - f56307639 Merge branch 'cassandra-1.2.0' into cassandra-1.2 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/f5630763 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/f5630763 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/f5630763 Branch: refs/heads/cassandra-1.2 Commit: f5630763986254d15560cf96e8e51b10a708c5b0 Parents: 0cd66d7 dbbca5e Author: Aleksey Yeschenko alek...@apache.org Authored: Sat Dec 8 20:47:35 2012 +0300 Committer: Aleksey Yeschenko alek...@apache.org Committed: Sat Dec 8 20:47:35 2012 +0300 -- src/java/org/apache/cassandra/auth/Auth.java | 22 +++- 1 files changed, 16 insertions(+), 6 deletions(-) --
[2/2] git commit: Catch and log UAE in Auth#setup instead of propagating
Catch and log UAE in Auth#setup instead of propagating Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/dbbca5e2 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/dbbca5e2 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/dbbca5e2 Branch: refs/heads/cassandra-1.2 Commit: dbbca5e296d969550caca3519125dfe9f3f9a657 Parents: 62b9037 Author: Aleksey Yeschenko alek...@apache.org Authored: Sat Dec 8 20:44:20 2012 +0300 Committer: Aleksey Yeschenko alek...@apache.org Committed: Sat Dec 8 20:44:20 2012 +0300 -- src/java/org/apache/cassandra/auth/Auth.java | 22 +++- 1 files changed, 16 insertions(+), 6 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/dbbca5e2/src/java/org/apache/cassandra/auth/Auth.java -- diff --git a/src/java/org/apache/cassandra/auth/Auth.java b/src/java/org/apache/cassandra/auth/Auth.java index 123ffe6..6791455 100644 --- a/src/java/org/apache/cassandra/auth/Auth.java +++ b/src/java/org/apache/cassandra/auth/Auth.java @@ -20,6 +20,8 @@ package org.apache.cassandra.auth; import java.util.concurrent.TimeUnit; import org.apache.commons.lang.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.apache.cassandra.config.DatabaseDescriptor; import org.apache.cassandra.cql3.UntypedResultSet; @@ -27,10 +29,11 @@ import org.apache.cassandra.cql3.QueryProcessor; import org.apache.cassandra.exceptions.UnavailableException; import org.apache.cassandra.service.MigrationManager; import org.apache.cassandra.service.StorageService; -import org.apache.cassandra.utils.WrappedRunnable; public class Auth { +private static final Logger logger = LoggerFactory.getLogger(Auth.class); + public static final String DEFAULT_SUPERUSER_NAME = cassandra; public static final String AUTH_KS = system_auth; @@ -115,13 +118,20 @@ public class Auth MigrationManager.instance.register(new MigrationListener()); // schedule seeding a superuser in RING_DELAY milliseconds. -Runnable runnable = new WrappedRunnable() +Runnable runnable = new Runnable() { -public void runMayThrow() throws UnavailableException +public void run() { -// insert a default superuser if AUTH_KS.USERS_CF is empty. -if (QueryProcessor.process(String.format(SELECT * FROM %s.%s, AUTH_KS, USERS_CF)).isEmpty()) -insertUser(DEFAULT_SUPERUSER_NAME, true); +try +{ +// insert a default superuser if AUTH_KS.USERS_CF is empty. +if (QueryProcessor.process(String.format(SELECT * FROM %s.%s, AUTH_KS, USERS_CF)).isEmpty()) +insertUser(DEFAULT_SUPERUSER_NAME, true); +} +catch (UnavailableException e) +{ +logger.warn(Skipping default superuser setup: some nodes are unavailable); +} } }; StorageService.tasks.schedule(runnable, StorageService.RING_DELAY, TimeUnit.MILLISECONDS);
[1/3] git commit: Merge branch 'cassandra-1.2' into trunk
Updated Branches: refs/heads/trunk ab1078178 - eb1e1b0d4 Merge branch 'cassandra-1.2' into trunk Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/eb1e1b0d Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/eb1e1b0d Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/eb1e1b0d Branch: refs/heads/trunk Commit: eb1e1b0d47229d835354fdac384818694658cc30 Parents: ab10781 f563076 Author: Aleksey Yeschenko alek...@apache.org Authored: Sat Dec 8 20:48:39 2012 +0300 Committer: Aleksey Yeschenko alek...@apache.org Committed: Sat Dec 8 20:48:39 2012 +0300 -- src/java/org/apache/cassandra/auth/Auth.java | 22 +++- 1 files changed, 16 insertions(+), 6 deletions(-) --
[2/3] git commit: Merge branch 'cassandra-1.2.0' into cassandra-1.2
Merge branch 'cassandra-1.2.0' into cassandra-1.2 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/f5630763 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/f5630763 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/f5630763 Branch: refs/heads/trunk Commit: f5630763986254d15560cf96e8e51b10a708c5b0 Parents: 0cd66d7 dbbca5e Author: Aleksey Yeschenko alek...@apache.org Authored: Sat Dec 8 20:47:35 2012 +0300 Committer: Aleksey Yeschenko alek...@apache.org Committed: Sat Dec 8 20:47:35 2012 +0300 -- src/java/org/apache/cassandra/auth/Auth.java | 22 +++- 1 files changed, 16 insertions(+), 6 deletions(-) --
[3/3] git commit: Catch and log UAE in Auth#setup instead of propagating
Catch and log UAE in Auth#setup instead of propagating Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/dbbca5e2 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/dbbca5e2 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/dbbca5e2 Branch: refs/heads/trunk Commit: dbbca5e296d969550caca3519125dfe9f3f9a657 Parents: 62b9037 Author: Aleksey Yeschenko alek...@apache.org Authored: Sat Dec 8 20:44:20 2012 +0300 Committer: Aleksey Yeschenko alek...@apache.org Committed: Sat Dec 8 20:44:20 2012 +0300 -- src/java/org/apache/cassandra/auth/Auth.java | 22 +++- 1 files changed, 16 insertions(+), 6 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/dbbca5e2/src/java/org/apache/cassandra/auth/Auth.java -- diff --git a/src/java/org/apache/cassandra/auth/Auth.java b/src/java/org/apache/cassandra/auth/Auth.java index 123ffe6..6791455 100644 --- a/src/java/org/apache/cassandra/auth/Auth.java +++ b/src/java/org/apache/cassandra/auth/Auth.java @@ -20,6 +20,8 @@ package org.apache.cassandra.auth; import java.util.concurrent.TimeUnit; import org.apache.commons.lang.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.apache.cassandra.config.DatabaseDescriptor; import org.apache.cassandra.cql3.UntypedResultSet; @@ -27,10 +29,11 @@ import org.apache.cassandra.cql3.QueryProcessor; import org.apache.cassandra.exceptions.UnavailableException; import org.apache.cassandra.service.MigrationManager; import org.apache.cassandra.service.StorageService; -import org.apache.cassandra.utils.WrappedRunnable; public class Auth { +private static final Logger logger = LoggerFactory.getLogger(Auth.class); + public static final String DEFAULT_SUPERUSER_NAME = cassandra; public static final String AUTH_KS = system_auth; @@ -115,13 +118,20 @@ public class Auth MigrationManager.instance.register(new MigrationListener()); // schedule seeding a superuser in RING_DELAY milliseconds. -Runnable runnable = new WrappedRunnable() +Runnable runnable = new Runnable() { -public void runMayThrow() throws UnavailableException +public void run() { -// insert a default superuser if AUTH_KS.USERS_CF is empty. -if (QueryProcessor.process(String.format(SELECT * FROM %s.%s, AUTH_KS, USERS_CF)).isEmpty()) -insertUser(DEFAULT_SUPERUSER_NAME, true); +try +{ +// insert a default superuser if AUTH_KS.USERS_CF is empty. +if (QueryProcessor.process(String.format(SELECT * FROM %s.%s, AUTH_KS, USERS_CF)).isEmpty()) +insertUser(DEFAULT_SUPERUSER_NAME, true); +} +catch (UnavailableException e) +{ +logger.warn(Skipping default superuser setup: some nodes are unavailable); +} } }; StorageService.tasks.schedule(runnable, StorageService.RING_DELAY, TimeUnit.MILLISECONDS);
[jira] [Commented] (CASSANDRA-4400) Correctly catch exception when Snappy cannot be loaded
[ https://issues.apache.org/jira/browse/CASSANDRA-4400?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13527231#comment-13527231 ] Drew Kutcharian commented on CASSANDRA-4400: Is there a reason Cassandra's not using the pure Java version of Snappy? https://github.com/dain/snappy The performance numbers are very similar. https://github.com/ning/jvm-compressor-benchmark/wiki Correctly catch exception when Snappy cannot be loaded -- Key: CASSANDRA-4400 URL: https://issues.apache.org/jira/browse/CASSANDRA-4400 Project: Cassandra Issue Type: Bug Affects Versions: 1.1.1 Reporter: Sylvain Lebresne Assignee: Sylvain Lebresne Priority: Minor Fix For: 1.1.3 Attachments: 4400.txt From the mailing list, on C* 1.1.1: {noformat} INFO 14:22:07,600 Global memtable threshold is enabled at 35MB java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:616) at org.xerial.snappy.SnappyLoader.loadNativeLibrary(SnappyLoader.java:317) at org.xerial.snappy.SnappyLoader.load(SnappyLoader.java:219) at org.xerial.snappy.Snappy.clinit(Snappy.java:44) at org.apache.cassandra.io.compress.SnappyCompressor.create(SnappyCompressor.java:45) at org.apache.cassandra.io.compress.SnappyCompressor.isAvailable(SnappyCompressor.java:55) at org.apache.cassandra.io.compress.SnappyCompressor.clinit(SnappyCompressor.java:37) at org.apache.cassandra.config.CFMetaData.clinit(CFMetaData.java:76) at org.apache.cassandra.config.KSMetaData.systemKeyspace(KSMetaData.java:79) at org.apache.cassandra.config.DatabaseDescriptor.loadYaml(DatabaseDescriptor.java:439) at org.apache.cassandra.config.DatabaseDescriptor.clinit(DatabaseDescriptor.java:118) at org.apache.cassandra.service.AbstractCassandraDaemon.setup(AbstractCassandraDaemon.java:126) at org.apache.cassandra.service.AbstractCassandraDaemon.activate(AbstractCassandraDaemon.java:353) at org.apache.cassandra.thrift.CassandraDaemon.main(CassandraDaemon.java:106) Caused by: java.lang.UnsatisfiedLinkError: no snappyjava in java.library.path at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1681) at java.lang.Runtime.loadLibrary0(Runtime.java:840) at java.lang.System.loadLibrary(System.java:1047) at org.xerial.snappy.SnappyNativeLoader.loadLibrary(SnappyNativeLoader.java:52) ... 17 more ERROR 14:22:09,934 Exception encountered during startup org.xerial.snappy.SnappyError: [FAILED_TO_LOAD_NATIVE_LIBRARY] null at org.xerial.snappy.SnappyLoader.load(SnappyLoader.java:229) at org.xerial.snappy.Snappy.clinit(Snappy.java:44) at org.apache.cassandra.io.compress.SnappyCompressor.create(SnappyCompressor.java:45) at org.apache.cassandra.io.compress.SnappyCompressor.isAvailable(SnappyCompressor.java:55) at org.apache.cassandra.io.compress.SnappyCompressor.clinit(SnappyCompressor.java:37) at org.apache.cassandra.config.CFMetaData.clinit(CFMetaData.java:76) at org.apache.cassandra.config.KSMetaData.systemKeyspace(KSMetaData.java:79) at org.apache.cassandra.config.DatabaseDescriptor.loadYaml(DatabaseDescriptor.java:439) at org.apache.cassandra.config.DatabaseDescriptor.clinit(DatabaseDescriptor.java:118) at org.apache.cassandra.service.AbstractCassandraDaemon.setup(AbstractCassandraDaemon.java:126) at org.apache.cassandra.service.AbstractCassandraDaemon.activate(AbstractCassandraDaemon.java:353) at org.apache.cassandra.thrift.CassandraDaemon.main(CassandraDaemon.java:106) org.xerial.snappy.SnappyError: [FAILED_TO_LOAD_NATIVE_LIBRARY] null at org.xerial.snappy.SnappyLoader.load(SnappyLoader.java:229) at org.xerial.snappy.Snappy.clinit(Snappy.java:44) at org.apache.cassandra.io.compress.SnappyCompressor.create(SnappyCompressor.java:45) at org.apache.cassandra.io.compress.SnappyCompressor.isAvailable(SnappyCompressor.java:55) at org.apache.cassandra.io.compress.SnappyCompressor.clinit(SnappyCompressor.java:37) at org.apache.cassandra.config.CFMetaData.clinit(CFMetaData.java:76) at org.apache.cassandra.config.KSMetaData.systemKeyspace(KSMetaData.java:79) at org.apache.cassandra.config.DatabaseDescriptor.loadYaml(DatabaseDescriptor.java:439)
[jira] [Updated] (CASSANDRA-4984) error opening data file at startup
[ https://issues.apache.org/jira/browse/CASSANDRA-4984?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Carl Yeksigian updated CASSANDRA-4984: -- Attachment: 4984.patch error opening data file at startup -- Key: CASSANDRA-4984 URL: https://issues.apache.org/jira/browse/CASSANDRA-4984 Project: Cassandra Issue Type: Bug Components: Core Affects Versions: 1.1.6 Environment: Oracle Java 1.6u37 Reporter: Zenek Kraweznik Attachments: 4984.patch I've found this in logfile, this happens at cassandra startup: INFO 10:06:13,670 Opening /var/lib/cassandra/data/MYKSPC/MYCF/MYKSPC-MYCF-hf-5547 (1073761823 bytes) ERROR 10:06:13,670 Exception in thread Thread[SSTableBatchOpen:3,5,main] java.lang.AssertionError at org.apache.cassandra.io.sstable.SSTableReader.open(SSTableReader.java:166) at org.apache.cassandra.io.sstable.SSTableReader.open(SSTableReader.java:153) at org.apache.cassandra.io.sstable.SSTableReader$1.run(SSTableReader.java:242) at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) at java.util.concurrent.FutureTask.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) Every CF in this Keyspace has cashing set to 'NONE' -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Created] (CASSANDRA-5046) cqlsh doesn't show correct timezone when SELECTing a column of type TIMESTAMP
B. Todd Burruss created CASSANDRA-5046: -- Summary: cqlsh doesn't show correct timezone when SELECTing a column of type TIMESTAMP Key: CASSANDRA-5046 URL: https://issues.apache.org/jira/browse/CASSANDRA-5046 Project: Cassandra Issue Type: Bug Affects Versions: 1.2.0 beta 3, 1.1.6 Environment: cassandra 1.1.6 (DSE 2.2.1) or cassandra RC1 (from tip) Reporter: B. Todd Burruss Priority: Minor trying to figure out if i'm doing something wrong or a bug. i am creating a simple schema, inserting a timestamp using ISO8601 format, but when retrieving the timestamp, the timezone is displayed incorrectly. i'm inserting using GMT, the result is shown with +, but the time is for my local timezone (-0800) tried with 1.1.6 (DSE 2.2.1), and 1.2.0-rc1-SNAPSHOT here's the trace: bin/cqlsh Connected to Test Cluster at localhost:9160. [cqlsh 2.3.0 | Cassandra 1.2.0-rc1-SNAPSHOT | CQL spec 3.0.0 | Thrift protocol 19.35.0] Use HELP for help. cqlsh CREATE KEYSPACE btoddb WITH replication = {'class':'SimpleStrategy', 'replication_factor':1}; cqlsh cqlsh USE btoddb; cqlsh:btoddb CREATE TABLE test ( ... id uuid PRIMARY KEY, ... ts TIMESTAMP ... ); cqlsh:btoddb cqlsh:btoddb INSERT INTO test ... (id, ts) ... values ( ... '89d09c88-40ac-11e2-a1e2-6067201fae78', ... '2012-12-07T10:00:00-' ... ); cqlsh:btoddb cqlsh:btoddb SELECT * FROM test; id | ts --+-- 89d09c88-40ac-11e2-a1e2-6067201fae78 | 2012-12-07 02:00:00+ cqlsh:btoddb -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira