Thank you Mikhail. I'll take a look at your utility.
On Jul 13, 2015 5:30 PM, "Mikhail Strebkov" <streb...@gmail.com> wrote:

> Hi Saladi,
>
> Recently I faced a similar problem, I had a lot of CFs to fix, so I wrote
> this: https://github.com/kluyg/cassandra-schema-fix
> I think it can be useful to you.
>
> Kind regards,
> Mikhail
>
> On Mon, Jul 13, 2015 at 11:51 AM, Saladi Naidu <naidusp2...@yahoo.com>
> wrote:
>
>> Sebastian,
>> Thank you so much for providing detailed explanation. I still have some
>> questions and I need to provide some clarifications
>>
>> 1. We do not have code that is creating the tables dynamically. All DDL
>> operations are done through Datastax DevCenter tool. When you say schema to
>> settle, do you means we provide proper consistency level? I don't think
>> there is a provision to do that in tool. Or I can change the SYSTEM
>> KEYSPACE definition of replication factor equal to number of nodes?
>>
>> 2. In the steps described below for correcting this problem - when you
>> say move data from old directory to new, do you mean move the .db file? It
>> will override the current file right?
>>
>> 3. Do we have to rename the directory name to remove CFID i.e. just
>> column family name without CFID? After that, update the System table as
>> well?
>>
>>
>> Naidu Saladi
>>
>>   ------------------------------
>>  *From:* Sebastian Estevez <sebastian.este...@datastax.com>
>> *To:* user@cassandra.apache.org; Saladi Naidu <naidusp2...@yahoo.com>
>> *Sent:* Friday, July 10, 2015 5:25 PM
>> *Subject:* Re: DROP Table
>>
>> #1 The cause of this problem is a CREATE TABLE statement collision. Do
>> *not* generate tables dynamically from multiple clients, even with IF
>> NOT EXISTS. First thing you need to do is fix your code so that this does
>> not happen. Just create your tables manually from cqlsh allowing time for
>> the schema to settle.
>>
>> #2 Here's the fix:
>>
>> 1) *Change your code to not automatically re-create tables (even with IF
>> NOT EXISTS).*
>>
>> 2) Run a rolling restart to ensure schema matches across nodes. Run
>> nodetool describecluster around your cluster. Check that there is only one
>> schema version.
>>
>> ON EACH NODE:
>> 3) Check your filesystem and see if you have two directories for the
>> table in question in the data directory.
>>
>> If THERE ARE TWO OR MORE DIRECTORIES:
>> 4)Identify from schema_column_families which cf ID is the "new" one
>> (currently in use).
>>
>> cqlsh -e "select * from system.schema_column_families"|grep <table name>
>>
>>
>> 5) Move the data from the "old" one to the "new" one and remove the old
>> directory.
>>
>> 6) If there are multiple "old" ones repeat 5 for every "old" directory.
>>
>> 7) run nodetool refresh
>>
>> IF THERE IS ONLY ONE DIRECTORY:
>>
>> No further action is needed.
>>
>> All the best,
>>
>> [image: datastax_logo.png] <http://www.datastax.com/>
>> Sebastián Estévez
>> Solutions Architect | 954 905 8615 | sebastian.este...@datastax.com
>> [image: linkedin.png] <https://www.linkedin.com/company/datastax> [image:
>> facebook.png] <https://www.facebook.com/datastax> [image: twitter.png]
>> <https://twitter.com/datastax> [image: g+.png]
>> <https://plus.google.com/+Datastax/about>
>> <http://feeds.feedburner.com/datastax>
>>
>> <http://cassandrasummit-datastax.com/>
>>
>> DataStax is the fastest, most scalable distributed database technology,
>> delivering Apache Cassandra to the world’s most innovative enterprises.
>> Datastax is built to be agile, always-on, and predictably scalable to any
>> size. With more than 500 customers in 45 countries, DataStax is the
>> database technology and transactional backbone of choice for the worlds
>> most innovative companies such as Netflix, Adobe, Intuit, and eBay.
>>
>>
>>
>> On Fri, Jul 10, 2015 at 12:15 PM, Saladi Naidu <naidusp2...@yahoo.com>
>> wrote:
>>
>> My understanding is that Cassandra File Structure follows below naming
>> convention
>>
>> /cassandra/*data/      <key-spaces> <table>*
>>
>>
>>
>> Whereas our file structure is as below, each table has multiple names and
>> when we drop tables and recreate these directories remain. Also when we
>> dropped the table one node was down, when it came back, we tried to do
>> Nodetool repair and repair kept failing  referring to CFID error listed
>> below
>>
>>
>> drwxr-xr-x. 16 cass cass 4096 May 24 06:49 ../
>> drwxr-xr-x.  4 cass cass 4096 Jul  2 11:09
>> application_by_user-e0eec95019a211e58b954ffc8e9bfaa6/
>> drwxr-xr-x.  2 cass cass 4096 Jun 25 10:15 application_info-
>> 4dba2bf0054f11e58b954ffc8e9bfaa6/
>> drwxr-xr-x.  4 cass cass 4096 Jul  2 11:09
>> application_info-a0ee65d019a311e58b954ffc8e9bfaa6/
>> drwxr-xr-x.  4 cass cass 4096 Jul  2 11:09
>> configproperties-228ea2e0c13811e4aa1d4ffc8e9bfaa6/
>> drwxr-xr-x.  4 cass cass 4096 Jul  2 11:09
>> user_activation-95d005f019a311e58b954ffc8e9bfaa6/
>> drwxr-xr-x.  3 cass cass 4096 Jun 25 10:16
>> user_app_permission-9fddcd62ffbe11e4a25a45259f96ec68/
>> drwxr-xr-x.  4 cass cass 4096 Jul  2 11:09
>> user_credential-86cfff1019a311e58b954ffc8e9bfaa6/
>> drwxr-xr-x.  4 cass cass 4096 Jul  2 11:09
>> user_info-2fa076221b1011e58b954ffc8e9bfaa6/
>> drwxr-xr-x.  2 cass cass 4096 Jun 25 10:15
>> user_info-36028c00054f11e58b954ffc8e9bfaa6/
>> drwxr-xr-x.  3 cass cass 4096 Jun 25 10:15
>> user_info-fe1d7b101a5711e58b954ffc8e9bfaa6/
>> drwxr-xr-x.  4 cass cass 4096 Jun 25 10:16
>> user_role-9ed0ca30ffbe11e4b71d09335ad2d5a9/
>>
>>
>> WARN  [Thread-2579] 2015-07-02 16:02:27,523 IncomingTcpConnection.java:91
>> - UnknownColumnFamilyException reading from socket; closing
>> org.apache.cassandra.db.UnknownColumnFamilyException: Couldn't find
>> cfId=218e3c90-1b0e-11e5-a34b-d7c17b3e318a
>>     at
>> org.apache.cassandra.db.ColumnFamilySerializer.deserializeCfId(ColumnFamilySerializer.java:164)
>> ~[apache-cassandra-2.1.2.jar:2.1.2]
>>     at
>> org.apache.cassandra.db.ColumnFamilySerializer.deserialize(ColumnFamilySerializer.java:97)
>> ~[apache-cassandra-2.1.2.jar:2.1.2]
>>     at
>> org.apache.cassandra.db.Mutation$MutationSerializer.deserializeOneCf(Mutation.java:322)
>> ~[apache-cassandra-2.1.2.jar:2.1.2]
>>     at
>> org.apache.cassandra.db.Mutation$MutationSerializer.deserialize(Mutation.java:302)
>> ~[apache-cassandra-2.1.2.jar:2.1.2]
>>     at
>> org.apache.cassandra.db.Mutation$MutationSerializer.deserialize(Mutation.java:330)
>> ~[apache-cassandra-2.1.2.jar:2.1.2]
>>     at
>> org.apache.cassandra.db.Mutation$MutationSerializer.deserialize(Mutation.java:272)
>> ~[apache-cassandra-2.1.2.jar:2.1.2]
>>     at org.apache.cassandra.net.MessageIn.read(MessageIn.java:99)
>> ~[apache-cassandra-2.1.2.jar:2.1.2]
>>     at
>> org.apache.cassandra.net.IncomingTcpConnection.receiveMessage(IncomingTcpConnection.java:168)
>> ~[apache-cassandra-2.1.2.jar:2.1.2]
>>     at
>> org.apache.cassandra.net.IncomingTcpConnection.receiveMessages(IncomingTcpConnection.java:150)
>> ~[apache-cassandra-2.1.2.jar:2.1.2]
>>     at
>> org.apache.cassandra.net.IncomingTcpConnection.run(IncomingTcpConnection.java:82)
>> ~[apache-cassandra-2.1.2.jar:2.1.2]
>>
>>
>> Naidu Saladi
>>
>>
>>
>>
>>
>

Reply via email to