columns disappearing intermittently
Hi All, We're having a problem with our cassandra cluster and are at a loss as to the cause. We have what appear to be columns that disappear for a little while, then reappear. The rest of the row is returned normally during this time. This is, of course, very disturbing, and is wreaking havoc with our application. A bit more info about what's happening: We are repeatedly executing the same query against our cluster. Every so often, one of the columns will disappear from the row and will remain gone for some time. Then after continually executing the same query, the column will come back. The queries are being executed against a 3 node cluster, with a replication factor of 3, and all reads and writes are done with a quorum consistency level. We upgraded from cassandra 1.1.12 to 1.2.6 last week, but only started seeing issues this morning. Has anyone had a problem like this before, or have any idea what might be causing it?
Re: Problem with libcassandra
This is the gdb output [Thread debugging using libthread_db enabled] terminate called after throwing an instance of 'org::apache::cassandra::InvalidRequestException' what(): Default TException. Program received signal SIGABRT, Aborted. 0x770a0b25 in raise () from /lib/libc.so.6 On Wed, Jul 3, 2013 at 8:38 AM, Jeremiah D Jordan jeremiah.jor...@gmail.com wrote: If you are using 1.2, I would checkout https://github.com/mstump/libcql -Jeremiah On Jul 2, 2013, at 5:18 AM, Shubham Mittal smsmitta...@gmail.com wrote: I am trying to run below code, but it gives this error. It compiles without any errors. Kindly help me. (source of the code : http://posulliv.github.io/2011/02/27/libcassandra-sec-indexes/) terminate called after throwing an instance of 'org::apache::cassandra::InvalidRequestException' what(): Default TException. Aborted #include string.h #include sstream #include iostream #include stdlib.h #include set #include string #include stdio.h #include vector #include libcassandra/cassandra_factory.h #include libcassandra/cassandra.h #include libcassandra/column_family_definition.h #include libcassandra/keyspace.h #include libcassandra/keyspace_definition.h using namespace std; using namespace libcassandra; static string host(127.0.0.1); static int port= 9160; int main() { CassandraFactory cf(host, port); tr1::shared_ptrCassandra c(cf.create()); KeyspaceDefinition ks_def; ks_def.setName(demo); c-createKeyspace(ks_def); ColumnFamilyDefinition cf_def; cf_def.setName(users); cf_def.setKeyspaceName(ks_def.getName()); ColumnDefinition name_col; name_col.setName(full_name); name_col.setValidationClass(UTF8Type); ColumnDefinition sec_col; sec_col.setName(birth_date); sec_col.setValidationClass(LongType); sec_col.setIndexType(org::apache::cassandra::IndexType::KEYS); ColumnDefinition third_col; third_col.setName(state); third_col.setValidationClass(UTF8Type); third_col.setIndexType(org::apache::cassandra::IndexType::KEYS); cf_def.addColumnMetadata(name_col); cf_def.addColumnMetadata(sec_col); cf_def.addColumnMetadata(third_col); c-setKeyspace(ks_def.getName()); c-createColumnFamily(cf_def); return 0; }
Re: Problem with libcassandra
no Jordan, the cassandra version I have is Cassandra 1.1.12 On Wed, Jul 3, 2013 at 5:21 PM, Shubham Mittal smsmitta...@gmail.comwrote: This is the gdb output [Thread debugging using libthread_db enabled] terminate called after throwing an instance of 'org::apache::cassandra::InvalidRequestException' what(): Default TException. Program received signal SIGABRT, Aborted. 0x770a0b25 in raise () from /lib/libc.so.6 On Wed, Jul 3, 2013 at 8:38 AM, Jeremiah D Jordan jeremiah.jor...@gmail.com wrote: If you are using 1.2, I would checkout https://github.com/mstump/libcql -Jeremiah On Jul 2, 2013, at 5:18 AM, Shubham Mittal smsmitta...@gmail.com wrote: I am trying to run below code, but it gives this error. It compiles without any errors. Kindly help me. (source of the code : http://posulliv.github.io/2011/02/27/libcassandra-sec-indexes/) terminate called after throwing an instance of 'org::apache::cassandra::InvalidRequestException' what(): Default TException. Aborted #include string.h #include sstream #include iostream #include stdlib.h #include set #include string #include stdio.h #include vector #include libcassandra/cassandra_factory.h #include libcassandra/cassandra.h #include libcassandra/column_family_definition.h #include libcassandra/keyspace.h #include libcassandra/keyspace_definition.h using namespace std; using namespace libcassandra; static string host(127.0.0.1); static int port= 9160; int main() { CassandraFactory cf(host, port); tr1::shared_ptrCassandra c(cf.create()); KeyspaceDefinition ks_def; ks_def.setName(demo); c-createKeyspace(ks_def); ColumnFamilyDefinition cf_def; cf_def.setName(users); cf_def.setKeyspaceName(ks_def.getName()); ColumnDefinition name_col; name_col.setName(full_name); name_col.setValidationClass(UTF8Type); ColumnDefinition sec_col; sec_col.setName(birth_date); sec_col.setValidationClass(LongType); sec_col.setIndexType(org::apache::cassandra::IndexType::KEYS); ColumnDefinition third_col; third_col.setName(state); third_col.setValidationClass(UTF8Type); third_col.setIndexType(org::apache::cassandra::IndexType::KEYS); cf_def.addColumnMetadata(name_col); cf_def.addColumnMetadata(sec_col); cf_def.addColumnMetadata(third_col); c-setKeyspace(ks_def.getName()); c-createColumnFamily(cf_def); return 0; }
Re: columns disappearing intermittently
I wonder if one particular node is having trouble; when you notice the missing column, what happens if you execute the read manually from cqlsh or cassandra-cli independently directly on each node? On Wed, Jul 3, 2013 at 2:00 AM, Blake Eggleston bl...@grapheffect.comwrote: Hi All, We're having a problem with our cassandra cluster and are at a loss as to the cause. We have what appear to be columns that disappear for a little while, then reappear. The rest of the row is returned normally during this time. This is, of course, very disturbing, and is wreaking havoc with our application. A bit more info about what's happening: We are repeatedly executing the same query against our cluster. Every so often, one of the columns will disappear from the row and will remain gone for some time. Then after continually executing the same query, the column will come back. The queries are being executed against a 3 node cluster, with a replication factor of 3, and all reads and writes are done with a quorum consistency level. We upgraded from cassandra 1.1.12 to 1.2.6 last week, but only started seeing issues this morning. Has anyone had a problem like this before, or have any idea what might be causing it?
Re: Problem with libcassandra
Hey, I found out that the problem is caused by this line : c-createKeyspace(ks_def); because the below code works fine. #include string.h #include sstream #include iostream #include stdlib.h #include set #include string #include stdio.h #include vector #include libcassandra/cassandra_factory.h #include libcassandra/cassandra.h #include libcassandra/column_family_definition.h #include libcassandra/keyspace.h #include libcassandra/keyspace_definition.h using namespace std; using namespace libcassandra; static string host(127.0.0.1); static int port= 9160; int main() { CassandraFactory cf(host, port); tr1::shared_ptrCassandra c(cf.create()); KeyspaceDefinition ks_def; ks_def.setName(demo); return 0; } On Wed, Jul 3, 2013 at 5:22 PM, Shubham Mittal smsmitta...@gmail.comwrote: no Jordan, the cassandra version I have is Cassandra 1.1.12 On Wed, Jul 3, 2013 at 5:21 PM, Shubham Mittal smsmitta...@gmail.comwrote: This is the gdb output [Thread debugging using libthread_db enabled] terminate called after throwing an instance of 'org::apache::cassandra::InvalidRequestException' what(): Default TException. Program received signal SIGABRT, Aborted. 0x770a0b25 in raise () from /lib/libc.so.6 On Wed, Jul 3, 2013 at 8:38 AM, Jeremiah D Jordan jeremiah.jor...@gmail.com wrote: If you are using 1.2, I would checkout https://github.com/mstump/libcql -Jeremiah On Jul 2, 2013, at 5:18 AM, Shubham Mittal smsmitta...@gmail.com wrote: I am trying to run below code, but it gives this error. It compiles without any errors. Kindly help me. (source of the code : http://posulliv.github.io/2011/02/27/libcassandra-sec-indexes/) terminate called after throwing an instance of 'org::apache::cassandra::InvalidRequestException' what(): Default TException. Aborted #include string.h #include sstream #include iostream #include stdlib.h #include set #include string #include stdio.h #include vector #include libcassandra/cassandra_factory.h #include libcassandra/cassandra.h #include libcassandra/column_family_definition.h #include libcassandra/keyspace.h #include libcassandra/keyspace_definition.h using namespace std; using namespace libcassandra; static string host(127.0.0.1); static int port= 9160; int main() { CassandraFactory cf(host, port); tr1::shared_ptrCassandra c(cf.create()); KeyspaceDefinition ks_def; ks_def.setName(demo); c-createKeyspace(ks_def); ColumnFamilyDefinition cf_def; cf_def.setName(users); cf_def.setKeyspaceName(ks_def.getName()); ColumnDefinition name_col; name_col.setName(full_name); name_col.setValidationClass(UTF8Type); ColumnDefinition sec_col; sec_col.setName(birth_date); sec_col.setValidationClass(LongType); sec_col.setIndexType(org::apache::cassandra::IndexType::KEYS); ColumnDefinition third_col; third_col.setName(state); third_col.setValidationClass(UTF8Type); third_col.setIndexType(org::apache::cassandra::IndexType::KEYS); cf_def.addColumnMetadata(name_col); cf_def.addColumnMetadata(sec_col); cf_def.addColumnMetadata(third_col); c-setKeyspace(ks_def.getName()); c-createColumnFamily(cf_def); return 0; }
Re: Problem with libcassandra
That repo for libcassandra works for cassandra 0.7.x due to changes in the thrift interface we have faced some problems in the past. May be you can take a look to my fork of libcassandra https://github.com/axs -mvd/libcassandra that we are using with cassandra 1.1.11. Besides that, I recommend that you use the cassandra-cli to create keyspacesand column families because that operations fails if some of your nodes is down, so by using cassandra-cli you force, in a way, the supervision of a human being :D. good luck! On Wed, Jul 3, 2013 at 9:12 AM, Shubham Mittal smsmitta...@gmail.comwrote: Hey, I found out that the problem is caused by this line : c-createKeyspace(ks_def); because the below code works fine. #include string.h #include sstream #include iostream #include stdlib.h #include set #include string #include stdio.h #include vector #include libcassandra/cassandra_factory.h #include libcassandra/cassandra.h #include libcassandra/column_family_definition.h #include libcassandra/keyspace.h #include libcassandra/keyspace_definition.h using namespace std; using namespace libcassandra; static string host(127.0.0.1); static int port= 9160; int main() { CassandraFactory cf(host, port); tr1::shared_ptrCassandra c(cf.create()); KeyspaceDefinition ks_def; ks_def.setName(demo); return 0; } On Wed, Jul 3, 2013 at 5:22 PM, Shubham Mittal smsmitta...@gmail.comwrote: no Jordan, the cassandra version I have is Cassandra 1.1.12 On Wed, Jul 3, 2013 at 5:21 PM, Shubham Mittal smsmitta...@gmail.comwrote: This is the gdb output [Thread debugging using libthread_db enabled] terminate called after throwing an instance of 'org::apache::cassandra::InvalidRequestException' what(): Default TException. Program received signal SIGABRT, Aborted. 0x770a0b25 in raise () from /lib/libc.so.6 On Wed, Jul 3, 2013 at 8:38 AM, Jeremiah D Jordan jeremiah.jor...@gmail.com wrote: If you are using 1.2, I would checkout https://github.com/mstump/libcql -Jeremiah On Jul 2, 2013, at 5:18 AM, Shubham Mittal smsmitta...@gmail.com wrote: I am trying to run below code, but it gives this error. It compiles without any errors. Kindly help me. (source of the code : http://posulliv.github.io/2011/02/27/libcassandra-sec-indexes/) terminate called after throwing an instance of 'org::apache::cassandra::InvalidRequestException' what(): Default TException. Aborted #include string.h #include sstream #include iostream #include stdlib.h #include set #include string #include stdio.h #include vector #include libcassandra/cassandra_factory.h #include libcassandra/cassandra.h #include libcassandra/column_family_definition.h #include libcassandra/keyspace.h #include libcassandra/keyspace_definition.h using namespace std; using namespace libcassandra; static string host(127.0.0.1); static int port= 9160; int main() { CassandraFactory cf(host, port); tr1::shared_ptrCassandra c(cf.create()); KeyspaceDefinition ks_def; ks_def.setName(demo); c-createKeyspace(ks_def); ColumnFamilyDefinition cf_def; cf_def.setName(users); cf_def.setKeyspaceName(ks_def.getName()); ColumnDefinition name_col; name_col.setName(full_name); name_col.setValidationClass(UTF8Type); ColumnDefinition sec_col; sec_col.setName(birth_date); sec_col.setValidationClass(LongType); sec_col.setIndexType(org::apache::cassandra::IndexType::KEYS); ColumnDefinition third_col; third_col.setName(state); third_col.setValidationClass(UTF8Type); third_col.setIndexType(org::apache::cassandra::IndexType::KEYS); cf_def.addColumnMetadata(name_col); cf_def.addColumnMetadata(sec_col); cf_def.addColumnMetadata(third_col); c-setKeyspace(ks_def.getName()); c-createColumnFamily(cf_def); return 0; }
Opscenter access roles
Hi, When we connect to Opscenter using an account, we do not see any disconnect button to connect under another account. Thanks -- Cyril SCETBON _ Ce message et ses pieces jointes peuvent contenir des informations confidentielles ou privilegiees et ne doivent donc pas etre diffuses, exploites ou copies sans autorisation. Si vous avez recu ce message par erreur, veuillez le signaler a l'expediteur et le detruire ainsi que les pieces jointes. Les messages electroniques etant susceptibles d'alteration, Orange decline toute responsabilite si ce message a ete altere, deforme ou falsifie. Merci. This message and its attachments may contain confidential or privileged information that may be protected by law; they should not be distributed, used or copied without authorisation. If you have received this email in error, please notify the sender and delete this message and its attachments. As emails may be altered, Orange is not liable for messages that have been modified, changed or falsified. Thank you.
column sort order and reversed sort performance question
We loaded 5 million columns into a single row and when accessing the first 30k and last 30k columns we saw no performance difference. We tried just loading 2 rows from the beginning and end and saw no performance difference. I am sure reverse sort is there for a reason though. In what context do you actually see a performance difference with reverse sort??? 5 million columns took us a while to load into a single row(in fact, a bit slower than loading 10 million columns into 100 rows took on 4 node cluster) and we could load more if needed, but we don't anticipate going beyond 10 million columns in a row at this point. Thanks, Dean
Re: schema management
On Wed, Jul 3, 2013 at 2:06 AM, Silas Smith silas.sm...@gmail.com wrote: Franc, We manage our schema through the Astyanax driver. It runs in a listener at application startup. We read a self-defined schema version, update the schema if needed based on the version number, and then write the new schema version number. There is a chance two or more app servers will try to update the schema at the same time but in our testing we haven't seen any problems result from this even when we forced many servers to all update the schema with many different updates at the same time. And besides we typically do a rolling restart anyway. Todd, Mutagen Cassandra looks pretty similar to what we're doing, but is perhaps a bit more elegant. Will take a look at that now :) Cheers Thanks all, I'll likely stick to cassandra-cli scripts for this project and then look in to Cassandra-Mutagen cheers On Mon, Jul 1, 2013 at 5:55 PM, Franc Carter franc.car...@sirca.org.auwrote: On Tue, Jul 2, 2013 at 10:33 AM, Todd Fast t...@digitalexistence.comwrote: Franc-- I think you will find Mutagen Cassandra very interesting; it is similar to schema management tools like Flyway for SQL databases: Oops - forgot to mention in my original email that we will be looking into Mutagen Cassandra in the medium term. I'm after something with a low barrier to entry initially as we are quite time constrained. cheers Mutagen Cassandra is a framework (based on Mutagen) that provides schema versioning and mutation for Apache Cassandra. Mutagen is a lightweight framework for applying versioned changes (known as mutations) to a resource, in this case a Cassandra schema. Mutagen takes into account the resource's existing state and only applies changes that haven't yet been applied. Schema mutation with Mutagen helps you make manageable changes to the schema of live Cassandra instances as you update your software, and is especially useful when used across development, test, staging, and production environments to automatically keep schemas in sync. https://github.com/toddfast/mutagen-cassandra Todd On Mon, Jul 1, 2013 at 5:23 PM, sankalp kohli kohlisank...@gmail.comwrote: You can generate schema through the code. That is also one option. On Mon, Jul 1, 2013 at 4:10 PM, Franc Carter franc.car...@sirca.org.au wrote: Hi, I've been giving some thought to the way we deploy schemas and am looking for something better than out current approach, which is to use cassandra-cli scripts. What do people use for this ? cheers -- *Franc Carter* | Systems architect | Sirca Ltd marc.zianideferra...@sirca.org.au franc.car...@sirca.org.au | www.sirca.org.au Tel: +61 2 8355 2514 Level 4, 55 Harrington St, The Rocks NSW 2000 PO Box H58, Australia Square, Sydney NSW 1215 -- *Franc Carter* | Systems architect | Sirca Ltd marc.zianideferra...@sirca.org.au franc.car...@sirca.org.au | www.sirca.org.au Tel: +61 2 8355 2514 Level 4, 55 Harrington St, The Rocks NSW 2000 PO Box H58, Australia Square, Sydney NSW 1215 -- *Franc Carter* | Systems architect | Sirca Ltd marc.zianideferra...@sirca.org.au franc.car...@sirca.org.au | www.sirca.org.au Tel: +61 2 8355 2514 Level 4, 55 Harrington St, The Rocks NSW 2000 PO Box H58, Australia Square, Sydney NSW 1215
Re: Problem with libcassandra
hi Alexis, Even if I create keyspaces, column families using cassandra-cli, the column creation and insertion work will still need thrift calls. On Wed, Jul 3, 2013 at 6:05 PM, Alexis Rodríguez arodrig...@inconcertcc.com wrote: That repo for libcassandra works for cassandra 0.7.x due to changes in the thrift interface we have faced some problems in the past. May be you can take a look to my fork of libcassandra https://github.com/ axs-mvd/libcassandra that we are using with cassandra 1.1.11. Besides that, I recommend that you use the cassandra-cli to create keyspaces and column families because that operations fails if some of your nodes is down, so by using cassandra-cli you force, in a way, the supervision of a human being :D. good luck! On Wed, Jul 3, 2013 at 9:12 AM, Shubham Mittal smsmitta...@gmail.comwrote: Hey, I found out that the problem is caused by this line : c-createKeyspace(ks_def); because the below code works fine. #include string.h #include sstream #include iostream #include stdlib.h #include set #include string #include stdio.h #include vector #include libcassandra/cassandra_factory.h #include libcassandra/cassandra.h #include libcassandra/column_family_definition.h #include libcassandra/keyspace.h #include libcassandra/keyspace_definition.h using namespace std; using namespace libcassandra; static string host(127.0.0.1); static int port= 9160; int main() { CassandraFactory cf(host, port); tr1::shared_ptrCassandra c(cf.create()); KeyspaceDefinition ks_def; ks_def.setName(demo); return 0; } On Wed, Jul 3, 2013 at 5:22 PM, Shubham Mittal smsmitta...@gmail.comwrote: no Jordan, the cassandra version I have is Cassandra 1.1.12 On Wed, Jul 3, 2013 at 5:21 PM, Shubham Mittal smsmitta...@gmail.comwrote: This is the gdb output [Thread debugging using libthread_db enabled] terminate called after throwing an instance of 'org::apache::cassandra::InvalidRequestException' what(): Default TException. Program received signal SIGABRT, Aborted. 0x770a0b25 in raise () from /lib/libc.so.6 On Wed, Jul 3, 2013 at 8:38 AM, Jeremiah D Jordan jeremiah.jor...@gmail.com wrote: If you are using 1.2, I would checkout https://github.com/mstump/libcql -Jeremiah On Jul 2, 2013, at 5:18 AM, Shubham Mittal smsmitta...@gmail.com wrote: I am trying to run below code, but it gives this error. It compiles without any errors. Kindly help me. (source of the code : http://posulliv.github.io/2011/02/27/libcassandra-sec-indexes/) terminate called after throwing an instance of 'org::apache::cassandra::InvalidRequestException' what(): Default TException. Aborted #include string.h #include sstream #include iostream #include stdlib.h #include set #include string #include stdio.h #include vector #include libcassandra/cassandra_factory.h #include libcassandra/cassandra.h #include libcassandra/column_family_definition.h #include libcassandra/keyspace.h #include libcassandra/keyspace_definition.h using namespace std; using namespace libcassandra; static string host(127.0.0.1); static int port= 9160; int main() { CassandraFactory cf(host, port); tr1::shared_ptrCassandra c(cf.create()); KeyspaceDefinition ks_def; ks_def.setName(demo); c-createKeyspace(ks_def); ColumnFamilyDefinition cf_def; cf_def.setName(users); cf_def.setKeyspaceName(ks_def.getName()); ColumnDefinition name_col; name_col.setName(full_name); name_col.setValidationClass(UTF8Type); ColumnDefinition sec_col; sec_col.setName(birth_date); sec_col.setValidationClass(LongType); sec_col.setIndexType(org::apache::cassandra::IndexType::KEYS); ColumnDefinition third_col; third_col.setName(state); third_col.setValidationClass(UTF8Type); third_col.setIndexType(org::apache::cassandra::IndexType::KEYS); cf_def.addColumnMetadata(name_col); cf_def.addColumnMetadata(sec_col); cf_def.addColumnMetadata(third_col); c-setKeyspace(ks_def.getName()); c-createColumnFamily(cf_def); return 0; }
Re: Problem with libcassandra
Shubham, You are right, my point is that with non schema-update thrift calls you can tune the consistency level used. bye. On Wed, Jul 3, 2013 at 10:10 AM, Shubham Mittal smsmitta...@gmail.comwrote: hi Alexis, Even if I create keyspaces, column families using cassandra-cli, the column creation and insertion work will still need thrift calls. On Wed, Jul 3, 2013 at 6:05 PM, Alexis Rodríguez arodrig...@inconcertcc.com wrote: That repo for libcassandra works for cassandra 0.7.x due to changes in the thrift interface we have faced some problems in the past. May be you can take a look to my fork of libcassandra https://github.com/ axs-mvd/libcassandra that we are using with cassandra 1.1.11. Besides that, I recommend that you use the cassandra-cli to create keyspaces and column families because that operations fails if some of your nodes is down, so by using cassandra-cli you force, in a way, the supervision of a human being :D. good luck! On Wed, Jul 3, 2013 at 9:12 AM, Shubham Mittal smsmitta...@gmail.comwrote: Hey, I found out that the problem is caused by this line : c-createKeyspace(ks_def); because the below code works fine. #include string.h #include sstream #include iostream #include stdlib.h #include set #include string #include stdio.h #include vector #include libcassandra/cassandra_factory.h #include libcassandra/cassandra.h #include libcassandra/column_family_definition.h #include libcassandra/keyspace.h #include libcassandra/keyspace_definition.h using namespace std; using namespace libcassandra; static string host(127.0.0.1); static int port= 9160; int main() { CassandraFactory cf(host, port); tr1::shared_ptrCassandra c(cf.create()); KeyspaceDefinition ks_def; ks_def.setName(demo); return 0; } On Wed, Jul 3, 2013 at 5:22 PM, Shubham Mittal smsmitta...@gmail.comwrote: no Jordan, the cassandra version I have is Cassandra 1.1.12 On Wed, Jul 3, 2013 at 5:21 PM, Shubham Mittal smsmitta...@gmail.comwrote: This is the gdb output [Thread debugging using libthread_db enabled] terminate called after throwing an instance of 'org::apache::cassandra::InvalidRequestException' what(): Default TException. Program received signal SIGABRT, Aborted. 0x770a0b25 in raise () from /lib/libc.so.6 On Wed, Jul 3, 2013 at 8:38 AM, Jeremiah D Jordan jeremiah.jor...@gmail.com wrote: If you are using 1.2, I would checkout https://github.com/mstump/libcql -Jeremiah On Jul 2, 2013, at 5:18 AM, Shubham Mittal smsmitta...@gmail.com wrote: I am trying to run below code, but it gives this error. It compiles without any errors. Kindly help me. (source of the code : http://posulliv.github.io/2011/02/27/libcassandra-sec-indexes/) terminate called after throwing an instance of 'org::apache::cassandra::InvalidRequestException' what(): Default TException. Aborted #include string.h #include sstream #include iostream #include stdlib.h #include set #include string #include stdio.h #include vector #include libcassandra/cassandra_factory.h #include libcassandra/cassandra.h #include libcassandra/column_family_definition.h #include libcassandra/keyspace.h #include libcassandra/keyspace_definition.h using namespace std; using namespace libcassandra; static string host(127.0.0.1); static int port= 9160; int main() { CassandraFactory cf(host, port); tr1::shared_ptrCassandra c(cf.create()); KeyspaceDefinition ks_def; ks_def.setName(demo); c-createKeyspace(ks_def); ColumnFamilyDefinition cf_def; cf_def.setName(users); cf_def.setKeyspaceName(ks_def.getName()); ColumnDefinition name_col; name_col.setName(full_name); name_col.setValidationClass(UTF8Type); ColumnDefinition sec_col; sec_col.setName(birth_date); sec_col.setValidationClass(LongType); sec_col.setIndexType(org::apache::cassandra::IndexType::KEYS); ColumnDefinition third_col; third_col.setName(state); third_col.setValidationClass(UTF8Type); third_col.setIndexType(org::apache::cassandra::IndexType::KEYS); cf_def.addColumnMetadata(name_col); cf_def.addColumnMetadata(sec_col); cf_def.addColumnMetadata(third_col); c-setKeyspace(ks_def.getName()); c-createColumnFamily(cf_def); return 0; }
Added nodes to cluster, authentication stopped working
Hi all, I have a Cassandra Cluster running and we recently duplicated the cluster. After following all the steps, the cassandra clients started failing with the following message: AuthenticationException(why='Username and/or password are incorrect') The problem is that even I can't login to the CQL shell and check the users, since it says (even with the correct username/password) that 'You have to be logged in and not anonymous to perform this request'. When I created the Cluster I disabled the 'cassandra' superuser and now I can't do anything on my Cluster. Is there any method to reset a user and/or password, or recreate a new superuser?? Otherwise I need to drop all the data from the cluster... Since even disabling authentication and authorization my clients give errors writting data.
CorruptBlockException - recover?
Hi together, I found that one of my cassandra nodes died recently (machine hangs). I restarted the node an run a nodetool repair, while running it has thrown a org.apache.cassandra.io.compress.CorruptBlockException. Is there any way to recover from this? Or would it be best to delete the nodes contents and bootstrap it again? Thanks for any hints, Jan org.apache.cassandra.io.sstable.CorruptSSTableException: org.apache.cassandra.io.compress.CorruptBlockException: (/home/cassandra /data/example/EXAMPLE/example-EXAMPLE-ib-8240-Data.db): corruption detected, chunk at 98414229 of length 8098. at org.apache.cassandra.io.compress.CompressedRandomAccessReader.reBuffer(CompressedRandomAccessReader.java:92) at org.apache.cassandra.io.util.RandomAccessReader.read(RandomAccessReader.java:355) at java.io.RandomAccessFile.readFully(RandomAccessFile.java:414) at java.io.RandomAccessFile.readFully(RandomAccessFile.java:394) at org.apache.cassandra.utils.BytesReadTracker.readFully(BytesReadTracker.java:94) at org.apache.cassandra.utils.ByteBufferUtil.read(ByteBufferUtil.java:395) at org.apache.cassandra.utils.ByteBufferUtil.readWithLength(ByteBufferUtil.java:355) at org.apache.cassandra.db.ColumnSerializer.deserializeColumnBody(ColumnSerializer.java:108) at org.apache.cassandra.db.OnDiskAtom$Serializer.deserializeFromSSTable(OnDiskAtom.java:92) at org.apache.cassandra.db.ColumnFamilySerializer.deserializeColumnsFromSSTable(ColumnFamilySerializer.java:149) at org.apache.cassandra.io.sstable.SSTableIdentityIterator.getColumnFamilyWithColumns(SSTableIdentityIterator.java:235) at org.apache.cassandra.db.compaction.PrecompactedRow.merge(PrecompactedRow.java:109) at org.apache.cassandra.db.compaction.PrecompactedRow.init(PrecompactedRow.java:93) at org.apache.cassandra.db.compaction.CompactionController.getCompactedRow(CompactionController.java:162) at org.apache.cassandra.db.compaction.CompactionIterable$Reducer.getReduced(CompactionIterable.java:76) at org.apache.cassandra.db.compaction.CompactionIterable$Reducer.getReduced(CompactionIterable.java:57) at org.apache.cassandra.utils.MergeIterator$ManyToOne.consume(MergeIterator.java:114) at org.apache.cassandra.utils.MergeIterator$ManyToOne.computeNext(MergeIterator.java:97) at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143) at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138) at org.apache.cassandra.db.compaction.CompactionTask.runWith(CompactionTask.java:146) at org.apache.cassandra.io.util.DiskAwareRunnable.runMayThrow(DiskAwareRunnable.java:48) at org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:28) at org.apache.cassandra.db.compaction.CompactionTask.executeInternal(CompactionTask.java:59) at org.apache.cassandra.db.compaction.AbstractCompactionTask.execute(AbstractCompactionTask.java:62) at org.apache.cassandra.db.compaction.CompactionManager$BackgroundCompactionTask.run(CompactionManager.java:191) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) at java.util.concurrent.FutureTask.run(FutureTask.java:166) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:722)
Re: Opscenter access roles
OpsCenter uses http auth so the credentials will be saved by your browser. There are a couple things you could do. * Clear the local data/cache on your browser * Open your browser in private browsing/incognito mode * Manually enter credentials into the url: http:// user:pw@opscenter_ip:/ -Nick On Wed, Jul 3, 2013 at 7:55 AM, cscetbon@orange.com wrote: Hi, When we connect to Opscenter using an account, we do not see any disconnect button to connect under another account. Thanks -- Cyril SCETBON _ Ce message et ses pieces jointes peuvent contenir des informations confidentielles ou privilegiees et ne doivent donc pas etre diffuses, exploites ou copies sans autorisation. Si vous avez recu ce message par erreur, veuillez le signaler a l'expediteur et le detruire ainsi que les pieces jointes. Les messages electroniques etant susceptibles d'alteration, Orange decline toute responsabilite si ce message a ete altere, deforme ou falsifie. Merci. This message and its attachments may contain confidential or privileged information that may be protected by law; they should not be distributed, used or copied without authorisation. If you have received this email in error, please notify the sender and delete this message and its attachments. As emails may be altered, Orange is not liable for messages that have been modified, changed or falsified. Thank you.
Embedded Cassandra 1.2
We are using Cassandra 1.2 Embedded in a production environment. We are some issues with these lines: SocketAddress remoteSocket.get = socket (); assert socket! = null; ThriftClientState cState = activeSocketSessions.get (socket); The connection is maintained by remoteSocket thread. However, we have several threads that use this connection. Therefore, only the main thread has socket != Null, because this thread initiate the connection. The worker threads have socket ==null. Anyone have any suggestions on how to solve this problem? Thanks! -- Atenciosamente, Sávio S. Teles de Oliveira voice: +55 62 9136 6996 http://br.linkedin.com/in/savioteles Mestrando em Ciências da Computação - UFG Arquiteto de Software Laboratory for Ubiquitous and Pervasive Applications (LUPA) - UFG
Re: Opscenter access roles
thanks Nick, I'll give it a try Regards -- Cyril SCETBON On Jul 3, 2013, at 5:16 PM, Nick Bailey n...@datastax.commailto:n...@datastax.com wrote: OpsCenter uses http auth so the credentials will be saved by your browser. There are a couple things you could do. * Clear the local data/cache on your browser * Open your browser in private browsing/incognito mode * Manually enter credentials into the url: http://user:pw@opscenter_ip:/ -Nick On Wed, Jul 3, 2013 at 7:55 AM, cscetbon@orange.commailto:cscetbon@orange.com wrote: Hi, When we connect to Opscenter using an account, we do not see any disconnect button to connect under another account. Thanks -- Cyril SCETBON _ Ce message et ses pieces jointes peuvent contenir des informations confidentielles ou privilegiees et ne doivent donc pas etre diffuses, exploites ou copies sans autorisation. Si vous avez recu ce message par erreur, veuillez le signaler a l'expediteur et le detruire ainsi que les pieces jointes. Les messages electroniques etant susceptibles d'alteration, Orange decline toute responsabilite si ce message a ete altere, deforme ou falsifie. Merci. This message and its attachments may contain confidential or privileged information that may be protected by law; they should not be distributed, used or copied without authorisation. If you have received this email in error, please notify the sender and delete this message and its attachments. As emails may be altered, Orange is not liable for messages that have been modified, changed or falsified. Thank you. _ Ce message et ses pieces jointes peuvent contenir des informations confidentielles ou privilegiees et ne doivent donc pas etre diffuses, exploites ou copies sans autorisation. Si vous avez recu ce message par erreur, veuillez le signaler a l'expediteur et le detruire ainsi que les pieces jointes. Les messages electroniques etant susceptibles d'alteration, Orange decline toute responsabilite si ce message a ete altere, deforme ou falsifie. Merci. This message and its attachments may contain confidential or privileged information that may be protected by law; they should not be distributed, used or copied without authorisation. If you have received this email in error, please notify the sender and delete this message and its attachments. As emails may be altered, Orange is not liable for messages that have been modified, changed or falsified. Thank you.
Lots of replicate on write tasks pending, want to investigate
In one of our load tests, we're incrementing a single counter column as well as appending columns to a single row (essentially a timeline). You can think of it as counting the instances of an event and then keeping a timeline of those events. The ratio is of increments to appends is 1:1. When we run this on a test cluster with RF = 3, one node gets backed up with a lot of replicate on write tasks pending, eventually maxing out at 4128. We think it's a disk I/O issue that's causing the slowdown (lot of reads), but we're still investigating. A few questions that might speed up understanding the issue: 1. Is there any way to see metadata about the replicate on write tasks pending? We're splitting apart the load test to pinpoint which of those operations is causing an issue, but if there's a way to see that queue, that might save us some work. 2. I'm assuming in our case the cause is incrementing counters because disk reads are part of the write path for counters and are not for appending columns to a row. Does that logic make sense? Thanks in advance, Andrew
Re: Lots of replicate on write tasks pending, want to investigate
On Wed, Jul 3, 2013 at 9:59 AM, Andrew Bialecki andrew.biale...@gmail.comwrote: 2. I'm assuming in our case the cause is incrementing counters because disk reads are part of the write path for counters and are not for appending columns to a row. Does that logic make sense? That's a pretty reasonable assumption if you are not doing any other reads and you see your disk busy doing non-compaction related reads. :) =Rob
Re: CorruptBlockException - recover?
On Wed, Jul 3, 2013 at 7:04 AM, ifjke j.kes...@enercast.de wrote: I found that one of my cassandra nodes died recently (machine hangs). I restarted the node an run a nodetool repair, while running it has thrown a org.apache.cassandra.io.**compress.**CorruptBlockException. Is there any way to recover from this? Or would it be best to delete the nodes contents and bootstrap it again? If you scrub this SSTable (either with the online or offline version of scrub) it will remove the corrupt data and re-write the rest of the SSTable which isn't corrupt into a new SSTable. That is probably safer for your data than deleting the entire set of data on this replica. When that's done, restart the repair. =Rob
Re: CorruptBlockException - recover?
For what its worth. I did this when I had this problem. It didn't work out for me. Perhaps I did something wrong. On Wed, Jul 3, 2013 at 11:06 AM, Robert Coli rc...@eventbrite.com wrote: On Wed, Jul 3, 2013 at 7:04 AM, ifjke j.kes...@enercast.de wrote: I found that one of my cassandra nodes died recently (machine hangs). I restarted the node an run a nodetool repair, while running it has thrown a org.apache.cassandra.io.**compress.**CorruptBlockException. Is there any way to recover from this? Or would it be best to delete the nodes contents and bootstrap it again? If you scrub this SSTable (either with the online or offline version of scrub) it will remove the corrupt data and re-write the rest of the SSTable which isn't corrupt into a new SSTable. That is probably safer for your data than deleting the entire set of data on this replica. When that's done, restart the repair. =Rob
Re: column sort order and reversed sort performance question
On Wed, Jul 3, 2013 at 6:02 AM, Hiller, Dean dean.hil...@nrel.gov wrote: We loaded 5 million columns into a single row and when accessing the first 30k and last 30k columns we saw no performance difference. We tried just loading 2 rows from the beginning and end and saw no performance difference. I am sure reverse sort is there for a reason though. In what context do you actually see a performance difference with reverse sort??? http://thelastpickle.com/2011/10/03/Reverse-Comparators/ When a query does not specify a start column (and does not specify reversed) the server can just start reading columns from the start without having to worry about finding the right place to start. This is exactly what we can do for the Descending CF. For the regular Ascending CF we need to specify reversed, so the server must read the row index and work out which column is column count from the end of the row. There is no comparison really. =Rob
cqlsh + existing cf's + query
I've been running cassandra a while, and have used the PHP api and cassandra-cli, but never gave cqlsh a shot. I'm not quite getting it. My most simple CF is a dumping ground for testing things created as: create column family stats; I was putting random stats I was computing in it. All keys, column names column values are really ascii. Using cqlsh (1.1.12, default shell so CQL 2.0 I believe), I did: USE my_keyspace_name; ASSUME stats(KEY) VALUES are text, NAMES are text, VALUES are text; SELECT * from stats LIMIT 10; Looks great. But, then I try to do: SELECT * from stats WHERE KEY='KNOWN_KEY_NAME'; I get: Bad Request: cannot parse 'KNOWN_KEY_NAME' as hex bytes If I do the hex value for KNOWN_KEY_NAME, it works. E.g. SELECT * from stats WHERE KEY='various_0-9a-f_chars'; I can't find a TO_HEX(string) built in function for SQL. Am I doing something wrong? DESCRIBE TABLE stats; CREATE TABLE stats ( KEY blob PRIMARY KEY ) WITH comment='' AND comparator=blob AND read_repair_chance=1.00 AND gc_grace_seconds=864000 AND default_validation=blob AND min_compaction_threshold=4 AND max_compaction_threshold=32 AND replicate_on_write='false' AND compaction_strategy_class='SizeTieredCompactionStrategy';
Cassandra with vnode and ByteOrderedPartition
We're using ByteOrderedPartition to programmatically choose the machine which a objet will be inserted.* *How can I use *ByteOrderedPartition *with vnode on Cassandra 1.2? * * -- Atenciosamente, Sávio S. Teles de Oliveira voice: +55 62 9136 6996 http://br.linkedin.com/in/savioteles Mestrando em Ciências da Computação - UFG Arquiteto de Software Laboratory for Ubiquitous and Pervasive Applications (LUPA) - UFG
Re: Cassandra with vnode and ByteOrderedPartition
On 3 July 2013 21:04, Sávio Teles savio.te...@lupa.inf.ufg.br wrote: We're using ByteOrderedPartition to programmatically choose the machine which a objet will be inserted.* *How can I use *ByteOrderedPartition *with vnode on Cassandra 1.2? Don't. Managing tokens with ByteOrderedPartitioner is very hard anyway, but with vnodes you have to manually manage many more tokens. Also I doubt BOP + vnodes has had any production testing. Richard.
Re: Cassandra with vnode and ByteOrderedPartition
We were able to implement ByteOrderedPartition on Cassandra 1.1 and insert an object in a specific machine. However, with Cassandra 1.2 and VNodes we can't implement VNode with ByteOrderedPartitioner to insert an object in a specific machine. 2013/7/3 Richard Low rich...@wentnet.com On 3 July 2013 21:04, Sávio Teles savio.te...@lupa.inf.ufg.br wrote: We're using ByteOrderedPartition to programmatically choose the machine which a objet will be inserted.* *How can I use *ByteOrderedPartition *with vnode on Cassandra 1.2? Don't. Managing tokens with ByteOrderedPartitioner is very hard anyway, but with vnodes you have to manually manage many more tokens. Also I doubt BOP + vnodes has had any production testing. Richard. -- Atenciosamente, Sávio S. Teles de Oliveira voice: +55 62 9136 6996 http://br.linkedin.com/in/savioteles Mestrando em Ciências da Computação - UFG Arquiteto de Software Laboratory for Ubiquitous and Pervasive Applications (LUPA) - UFG
Re: Cassandra with vnode and ByteOrderedPartition
On 3 July 2013 22:18, Sávio Teles savio.te...@lupa.inf.ufg.br wrote: We were able to implement ByteOrderedPartition on Cassandra 1.1 and insert an object in a specific machine. However, with Cassandra 1.2 and VNodes we can't implement VNode with ByteOrderedPartitioner to insert an object in a specific machine. You don't have to use vnodes in Cassandra 1.2 - set num_tokens to 1 to disable. Richard.
Re: Lots of replicate on write tasks pending, want to investigate
Can someone remind me why replicate on write tasks might be related to the high disk I/O? My understanding is the replicate on write involves sending the update to other nodes, so it shouldn't involve any disk activity -- disk activity would be during the mutation/write phase. The write path (not replicate on write) for counters involves a read, so that explains the high disk I/O, but for that I'd expect to see many write requests pending (which we see a bit), but not replicate on writes backing up. What am I missing? Andrew On Wed, Jul 3, 2013 at 1:03 PM, Robert Coli rc...@eventbrite.com wrote: On Wed, Jul 3, 2013 at 9:59 AM, Andrew Bialecki andrew.biale...@gmail.com wrote: 2. I'm assuming in our case the cause is incrementing counters because disk reads are part of the write path for counters and are not for appending columns to a row. Does that logic make sense? That's a pretty reasonable assumption if you are not doing any other reads and you see your disk busy doing non-compaction related reads. :) =Rob
Ranged Tombstones causing timeouts, not removed during compaction. How to remove?
We are on 1.2.5 with a 4 node cluster (RF 3) and have a cql3 wide row table. each row has about 2000 columns. While running some test data through it, it started throwing rpc_timeout errors when returning a couple specific rows (with Consistency ONE). After hunting through sstable2json results and looking at the source for it, it looks like these are Ranged Tombstones. I see there's a bug filed (and a patch) for this, but is there a way to clear out the tombstones? I have 'nodetool cleanup'ed, 'nodetool repair'ed and 'nodetool scrub'bed the table, but they just seem to linger as does the problem reading the rows in question. Is there a way I can clear this data out and move forward? Thanks, -Jeff
Re: Ranged Tombstones causing timeouts, not removed during compaction. How to remove?
To force clean out a tombstone. 1. Stop doing deletes on the CF, or switch to performing all deletes at ALL 2. Run a full repair of the cluster for that CF. 3. Change GC grace to be small, like 5 seconds or something for that CF Either: 4. Find all sstables which have that row key in them using sstable2keys/json 5. Use JMX to force those tables to compact with each other. Or 4. Do a major compaction on that CF. -Jeremiah On Jul 3, 2013, at 5:58 PM, Jeff House ho...@flowroute.com wrote: We are on 1.2.5 with a 4 node cluster (RF 3) and have a cql3 wide row table. each row has about 2000 columns. While running some test data through it, it started throwing rpc_timeout errors when returning a couple specific rows (with Consistency ONE). After hunting through sstable2json results and looking at the source for it, it looks like these are Ranged Tombstones. I see there's a bug filed (and a patch) for this, but is there a way to clear out the tombstones? I have 'nodetool cleanup'ed, 'nodetool repair'ed and 'nodetool scrub'bed the table, but they just seem to linger as does the problem reading the rows in question. Is there a way I can clear this data out and move forward? Thanks, -Jeff
Re: Ranged Tombstones causing timeouts, not removed during compaction. How to remove?
Thanks Jeremiah, those are great suggestions. Unfortunately, I have done a full repair and compaction on that CF, but the ranged tombstones remain. -Jeff On Wed, Jul 3, 2013 at 7:54 PM, Jeremiah D Jordan jeremiah.jor...@gmail.com wrote: To force clean out a tombstone. 1. Stop doing deletes on the CF, or switch to performing all deletes at ALL 2. Run a full repair of the cluster for that CF. 3. Change GC grace to be small, like 5 seconds or something for that CF Either: 4. Find all sstables which have that row key in them using sstable2keys/json 5. Use JMX to force those tables to compact with each other. Or 4. Do a major compaction on that CF. -Jeremiah On Jul 3, 2013, at 5:58 PM, Jeff House ho...@flowroute.com wrote: We are on 1.2.5 with a 4 node cluster (RF 3) and have a cql3 wide row table. each row has about 2000 columns. While running some test data through it, it started throwing rpc_timeout errors when returning a couple specific rows (with Consistency ONE). After hunting through sstable2json results and looking at the source for it, it looks like these are Ranged Tombstones. I see there's a bug filed (and a patch) for this, but is there a way to clear out the tombstones? I have 'nodetool cleanup'ed, 'nodetool repair'ed and 'nodetool scrub'bed the table, but they just seem to linger as does the problem reading the rows in question. Is there a way I can clear this data out and move forward? Thanks, -Jeff